我有一个带有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个小时。是否还有其他需要设置的属性
答案 0 :(得分:0)
maxIdleTime
设置适用于池中空闲的连接。这意味着没有签出。您是否可能有一些未关闭的连接?在这种情况下,连接将被打开并且不被视为空闲,因为它们已签出但未签入。对于这种情况,您可以设置unreturnedConnectionTimeout
和debugUnreturnedConnectionStackTraces
以查找此未关闭连接的位置。
http://www.mchange.com/projects/c3p0/#unreturnedConnectionTimeout
http://www.mchange.com/projects/c3p0/#debugUnreturnedConnectionStackTraces