我的数据源配置有问题。
我有一个带有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/