Java tomcat jdbc池最大活动未工作?

Java tomcat jdbc池最大活动未工作?,java,mysql,spring,tomcat,Java,Mysql,Spring,Tomcat,我对应用程序使用SpringJDBC模板。。并在tomcat中部署它。。我想将连接池与tomcat jdbc一起使用。我的连接配置是 <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> &l

我对应用程序使用SpringJDBC模板。。并在tomcat中部署它。。我想将连接池与tomcat jdbc一起使用。我的连接配置是

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3310/mydb" /> 
    <property name="username" value="***" /> 
    <property name="password" value="***" /> 
    <property name="maxWait" value="10000" />
    <property name="removeAbandonedTimeout" value="60" />
    <property name="removeAbandoned" value="true" />
    <property name="logAbandoned" value="false" />
    <property name="initialSize" value="10" /> 
    <property name="maxActive" value="100" /> 
    <property name="minIdle" value="10" /> 
</bean> 

我不知道怎么做,但是当我运行一些测试,并检查mysql中的最大线程时,它显示活动线程比配置中配置的最大活动线程多。那么,为什么配置中的maxActive不工作?如何让它工作?例如,maxActive是100,但当我签入mysql时,活动线程比maxActive多

maxActive(int)可以连接的最大活动连接数 同时从该池中分配。默认值为100

maxIdle(int)应保留在中的最大连接数 游泳池随时可用。默认值为maxActive:100个空闲连接 定期检查(如果启用)和空闲的连接 在超过我的时间内,维克多·莱蒂梅米利将被释放。(另见 testWhileIdle)

因此,我建议您也使用maxIdle,例如:

<property name="maxIdle" value="100">

但是可能有一个问题,如果你能显示你的连接管理代码,这将是有益的


这里有一个关于Spring的声明式和编程式事务管理连接问题的有趣链接:

我也遇到了同样的问题,我的tomcat版本是tomcat 9

下面是我的解决方案:您应该将maxTotal值设置为100,而不是maxActive

maxTotal:池中的最大数据库连接数。确保您配置的mysqld max_连接足够大,足以处理所有数据库连接。设置为-1表示无限制

来自