c3p0 maxIdleTime无法正常工作

时间:2016-07-18 15:10:22

标签: java c3p0

我有一个带有postgresql的java spring休眠应用程序。这是我的C3p0设置

    <property name="acquireIncrement" value="5"/>
    <property name="initialPoolSize" value="5"/>
    <property name="minPoolSize" value="5" />
    <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />

    <property name="maxIdleTime" value="1800"/>
    <property name="numHelperThreads" value="6"/>
    <property name="maxStatements" value="0" />
    <property name="maxStatementsPerConnection" value="20" />

    <property name="idleConnectionTestPeriod" value="3000" />

在Pgadmin,我看到连接闲置超过2个小时。是否还有其他需要设置的属性

1 个答案:

答案 0 :(得分:0)

maxIdleTime设置适用于池中空闲的连接。这意味着没有签出。您是否可能有一些未关闭的连接?在这种情况下,连接将被打开并且不被视为空闲,因为它们已签出但未签入。对于这种情况,您可以设置unreturnedConnectionTimeoutdebugUnreturnedConnectionStackTraces以查找此未关闭连接的位置。

http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout

http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces