1

我一直在尝试浏览 c3p0 文档,但无法理解“testConnectionOnCheckin”属性。

文档说 - “连接在它们被包含在池中之前已经过测试”。

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

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

[managed:2 unused:2 excluded:1]

我的应用程序为一个特定连接抛出异常,我认为它是“排除”的一个。“排除”连接是否计入池中,c3p0 是否可以在不检查有效性的情况下将其移交给应用程序?如果没有,那么设置“testConnectionOnCheckin”会在我的应用程序使用它之前测试这个排除的连接的有效性吗?

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

谢谢吉滕德拉

4

1 回答 1

3

testConnectionOnCheckin 在客户端签入后(即通过 Connection.close())测试连接,但在它们重新集成到连接池之前。我不确定您正在查看什么文档,但请参阅

http://www.mchange.com/projects/c3p0/#testConnectionOnCheckin

http://www.mchange.com/projects/c3p0/#configuring_connection_testing

我通常建议结合使用 idleConnectionTestPeriod 和 testConnectionsOnCheckIn(以及快速的 preferredTestQuery)来测试连接。

“排除的”连接是客户端当前正在使用的连接,但 c3p0 注意到它有故障。c3p0 将这些连接标记为在客户端签入时被销毁而不是重新集成到池中。

我希望这有帮助!

于 2012-10-10T09:07:47.777 回答