c3p0中的'testConnectionOnCheckin'是什么意思?

时间:2012-10-09 21:31:51

标签: java hibernate c3p0

我一直试图通过c3p0文档,但无法理解' testConnectionOnCheckin'属性。

文档说 - "连接在被包含在池中之后进行测试"。

此属性是否仅适用于c3p0创建的新连接在包含在池中之前进行测试?检查新连接有什么意义?它们通常不会有效吗?

还有几天我的应用程序日志显示如下:

[managed:2 unused:2 excluded:1]

我的应用程序为一个特定的连接抛出了异常,我认为这个连接被排除在外'一。被排除在外'在池中计算连接并且c3p0可以将其交给应用程序而不检查有效性吗?如果没有,那么将设​​置' testConnectionOnCheckin'在我的应用程序使用之前测试此排除的连接是否有效?

我为太多问题道歉,但这只是我感到困惑。

由于 Jitendra

1 个答案:

答案 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标记这些连接被销毁,而不是在客户端签入时重新集成到池中。

我希望这有帮助!