我使用的是c3p0(0.9.1.2)版本,大约一小时后,我看到numUnclosedOrphanedConnections
慢慢增加,就像每小时1次一样。 c3p0 docs说
numUnclosedOrphanedConnections在调用后仅为非零 到softReset()。它表示已连接的数量 当软复位发生时检查出来,因此是静默的 从池中排除,并且仍未被客户端关闭 应用
为什么c3p0会进行软复位?我的c3p0设置就像
initialPoolSize=1
minPoolSize=1
maxPoolSize=100
maxIdleTime=60
checkoutTimeout=5000
testConnectionOnCheckin=true
答案 0 :(得分:1)
感谢Steve帮我解决问题。这就是我做到的。
启用c3po的调试级别日志记录:
<logger name="com.mchange" additivity="false">
<level value="DEBUG" />
<appender-ref ref="C3p0Appender" />
</logger>
c3p0设置:
debugUnreturnedConnectionStackTraces=true
# 30 sec is enough for me but you should change it for your case
unreturnedConnectionTimeout=30
在c3p0日志文件中搜索的关键字是:“逾期资源签出”
此日志记录仅在c3p0的trunk版本中启用。它应该在pre6版本中出现。