Tomcat 连接池、maxActive 和 maxWait 属性

Tomcat connection pooling, maxActive and maxWait properties

我在 Tomcat 有一个 Java 服务 运行,它使用 Tomcat 的 DataSource 和 org.apache.tomcat.jdbc.pool 的 PoolProperties ] 如 "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连接池和Apache DBCP是两种不同的连接池实现。

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