我有一个在Tomcat中运行的Java服务,它使用org.apache.Tomcat.jdbc.pool中Tomcat的DataSource
和PoolProperties
,如"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。
如何设置这些值,使它们不会被忽略?
在您的stage环境中,类路径中可能有Apache DBCP2,Tomcat尝试使用它而不是Tomcat JDBC连接池。
您必须使用以下jar文件:commons-pool-1.5.4.jar和common-dbcp-1.4.jar