我的数据源配置有问题。

我有一个带有Java 7的Tomcat 7和一个Quartz Web应用程序。
该应用程序具有配置的数据源:

<Resource
   auth="Container"
   driverClassName="com.mysql.jdbc.Driver"
   factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
   logAbandoned="true"
   maxActive="3"
   maxIdle="1"
   maxWait="10000"
   name="jdbc/name"
   password="XXXXXX"
   removeAbandoned="true"
   removeAbandonedTimeout="120"
   type="javax.sql.DataSource"
   url="jdbc:mysql://xxxxxx:3306/xxxxx?autoReconnect=true&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true"
   username="usr"
   validationQuery="SELECT 1" />


在maxActive = 3的情况下,我希望打开的连接不会超过3个。取而代之的是,每次Quartz Job启动时,我看到一个新连接打开,直到8个连接(不知道这是否是默认限制)。

因此似乎未考虑此参数,但其他原因是,因为与数据库的连接正确,因此用户名,密码等都可以。

你能帮我吗?

谢谢

最佳答案

我回复自己

这是工厂org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory的问题

使用org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory(替换原始的tomcat 7 jar)可以正常工作

不知道为什么,但是可以。使用org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory,即使将initialSize设置为8,也只能实例化一个。只需用org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory替换,就实例化了8个

关于tomcat - MaxActive数据库连接参数不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30641328/

10-10 20:14