Tomcat连接池、maxActive和maxWait属性



我有一个在Tomcat中运行的Java服务,它使用org.apache.Tomcat.jdbc.pool中Tomcat的DataSourcePoolProperties,如"Plain Ol'Java"示例中所示。

在Tomcat 8.0.29的stage环境中,我注意到Catalina日志中有以下2行。

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的setter。

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

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

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

您必须使用以下jar文件:commons-pool-1.5.4.jar和common-dbcp-1.4.jar

最新更新