为什么我的Tomcat9没有像minIdle中指定的那样保持jdbc连接打开



我已经将Tomcat9配置为使用server.xml保留一个数据库池,以便与mysql数据库至少有50个连接。当tomcat启动时,我可以通过命令SHOW PROCESSLIST看到那里的所有连接。我不明白为什么几天后我只看到8个连接。

这是我的配置。我包含了一些参数,它们的名称随着tomcat的不同版本而变化,例如maxActive和maxTotal,以确保参数值被采用。

<Resource
name="MySqlDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
url="jdbc:mysql://localhost:3306/MYDB?zeroDateTimeBehavior=convertToNull"
username=*****
password=*****
initialSize="50"
maxActive="100"
maxTotal="100"
minIdle="50"
maxIdle="100"
maxWaitMillis="10000"
maxWait="10000"
maxAge="0"
minEvictableIdleTimeMillis="60000"
timeBetweenEvictionRunsMillis="30000"
suspectTimeout="60"
validationQuery="SELECT 1"
validationInterval="30000"
testOnBorrow="true"
removeAbandoned="true"
removeAbandonedOnBorrow="true"
removeAbandonedOnMaintenance="true"
removeAbandonedTimeout="60"
logAbandoned="true"
/>

会发生什么?这是我的配置错误吗?

我使用mysql-connector-java-5.1.13和OpenJDK 1.8.0_275

我解决了添加此参数的问题:

testWhileIdle="true"

最新更新