我们正在维护一个有5年历史的Web项目,最近我们一直在遇到登录缓慢的问题。经检查,c3p0 Connection Pools
在用户登录时达到极限。有没有办法调试/修复此问题?
Current versions:
-c3p0:0.9.1.2
-hibernate:3.6.7.Final
-mysql connector: 5.1.23
下面是
c3p0 setting
。<bean id="c3p0PooledMysqlDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="XX"/>
<property name="user" value="XXXX"/>
<property name="password" value="XXXX"/>
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="acquireIncrement" value="3"/>
<property name="idleConnectionTestPeriod" value="300"/>
<property name="maxIdleTime" value="900"/>
<property name="maxIdleTimeExcessConnections" value="599" />
<property name="maxPoolSize" value="60"/>
<property name="minPoolSize" value="5"/>
<property name="maxStatements" value="0"/>
<property name="testConnectionOnCheckout" value="true"/>
<property name="preferredTestQuery" value="select 1" />
</bean>
日志片段:
315315行:11:06:29,208调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-98)获得测试-池已满。
[管理:60;最多:60]行317353:11:06:41,533调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-101)获得测试-池已满
出来。 [管理:60;最多:60]行317370:11:06:41,569调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-102)获得测试-池已满
出来。 [管理:60;最多:60]行317715:11:06:51,561调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-103)获得测试-池已满
出来。 [管理:60;最多:60]行317829:11:06:57,643调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-105)获得测试-池已满
出来。 [管理:60;最多:60]行317900:11:07:01,539调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-106)获得测试-池已满
出来。 [管理:60;最多:60]行318002:11:07:05,510调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-107)获得测试-池已满
出来。 [管理:60;最多:60]行318070:11:07:09,336调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-108)获得测试-池已满
出来。 [管理:60;最多:60]行318118:11:07:13,857调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-109)获得测试-池已满
出来。 [管理:60;最多:60]行318166:11:07:19,692调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-89)获得测试-池已满。
[管理:60;最多:60]行318239:11:07:28,669调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-38)获得测试-池已满。
[管理:60;最多:60]行318786:11:08:08,560调试
[com.mchange.v2.resourcepool.BasicResourcePool]
(ajp--172.21.66.54-8009-110)获得测试-池已满
出来。 [管理:60;最多:60]第3行
任何帮助,将不胜感激。我们已经调试了一个多星期。
最佳答案
检查是否有连接泄漏。参见例如c3p0 deadlocks in Hibernate或c3p0的文档directly。
哦,请升级到c3p0 0.9.5.2。 c3p0 0.9.1.x非常非常老。
关于mysql - c3p0连接池总是被耗尽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41993984/