我们正在维护一个有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/

10-11 22:25
查看更多