3

我正在使用 c3p0 (0.9.1.2) 版本,大约一个小时后,我看到每小时numUnclosedOrphanedConnections增加 1 个。c3p0 文档说

numUnclosedOrphanedConnections 仅在调用 softReset() 后才会为非零值。它表示发生软重置时签出的连接数,因此从池中静默排除,并且客户端应用程序保持未关闭的连接数。

为什么 c3p0 做软复位?我的 c3p0 设置就像

initialPoolSize=1
minPoolSize=1
maxPoolSize=100
maxIdleTime=60
checkoutTimeout=5000
testConnectionOnCheckin=true
4

1 回答 1

1

感谢史蒂夫帮助我修复它。我就是这样做的。

为 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 的中继版本中启用。它应该在 pre6 版本中。

于 2012-10-30T14:54:24.720 回答