Tomcat 连接池、maxActive 和 maxWait 属性

Iva*_*ken 5 tomcat connection-pooling jdbc

我有一个在 Tomcat 中运行的 Java 服务,它使用 TomcatDataSourcePoolProperties来自 org.apache.tomcat.jdbc.pool 的“Plain Ol'Java”示例

在 Tomcat 8.0.29 的 stage 环境中,我注意到 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.
Run Code Online (Sandbox Code Playgroud)

我在 Tomcat 8.0.21 的开发环境中没有看到这样的日志条目。

我无法将数据源设置为 JNDI 资源,并且在PoolProperties.

如何设置这些值,以便它们不会被忽略?

Mic*_*zka 6

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

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