我一直试图通过c3p0文档,但无法理解' testConnectionOnCheckin'属性。
文档说 - "连接在被包含在池中之后进行测试"。
此属性是否仅适用于c3p0创建的新连接在包含在池中之前进行测试?检查新连接有什么意义?它们通常不会有效吗?
还有几天我的应用程序日志显示如下:
[managed:2 unused:2 excluded:1]
我的应用程序为一个特定的连接抛出了异常,我认为这个连接被排除在外'一。被排除在外'在池中计算连接并且c3p0可以将其交给应用程序而不检查有效性吗?如果没有,那么将设置' testConnectionOnCheckin'在我的应用程序使用之前测试此排除的连接是否有效?
我为太多问题道歉,但这只是我感到困惑。
由于 Jitendra
答案 0 :(得分:3)
testConnectionOnCheckin在客户端[即通过Connection.close()]签入后,但在将它们重新集成到连接池之前测试连接。我不确定您正在查看哪些文档,但请参阅
http://www.mchange.com/projects/c3p0/#testConnectionOnCheckin
http://www.mchange.com/projects/c3p0/#configuring_connection_testing
我通常建议使用idleConnectionTestPeriod和testConnectionsOnCheckIn(以及fast preferredTestQuery)的组合来测试Connections。
“排除”连接是客户端当前正在使用的连接,但c3p0注意到它是错误的。 c3p0标记这些连接被销毁,而不是在客户端签入时重新集成到池中。
我希望这有帮助!