【问题标题】:Tomcat connection pooling, maxActive and maxWait propertiesTomcat 连接池、maxActive 和 maxWait 属性
【发布时间】:2015-12-17 12:17:20
【问题描述】:

我有一个在 Tomcat 中运行的 Java 服务,它使用来自 org.apache.tomcat.jdbc.pool 的 Tomcat 的 DataSourcePoolProperties,就像在 "Plain Ol' Java" example 中一样。

在具有 Tomcat 8.0.29 的舞台环境中,我注意到 Catalina 日志中有以下两行。

WARNING [localhost-startStop-1] org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.getObjectInstance Name = somedb Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "50" for "maxActive" property, which is being ignored.
WARNING [localhost-startStop-1] org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory.getObjectInstance Name = somedb Property maxWait is not used in DBCP2 , use maxWaitMillis instead. maxWaitMillis default value is -1. You have set value of "10000" for "maxWait" property, which is being ignored.

我在具有 Tomcat 8.0.21 的开发环境中看不到此类日志条目。

我无法将数据源设置为 JNDI 资源,并且在 PoolProperties 中看不到任何与 maxTotal 和 maxWaitMillis 对应的设置器。

如何设置这些值以使它们不被忽略?

【问题讨论】:

    标签: tomcat jdbc connection-pooling


    【解决方案1】:

    Tomcat JDBC 连接池和 Apache DBCP 是两种不同的连接池实现。

    在您的舞台环境中,您可能在类路径中有 Apache DBCP2,而 Tomcat 尝试使用它而不是 Tomcat JDBC 连接池。

    【讨论】:

    • 你说得对,我在应用程序中发现了一个过时的数据源声明作为 JNDI 资源。看起来该声明导致了这些警告。
    • 感谢您提供此信息
    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 2019-12-02
    • 2012-01-15
    • 2012-03-02
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多