c3p0.idle_test_period的使用

问题描述 投票:0回答:2

我是 c3p0 的新手,对 :

的使用感到困惑
c3p0.idle_test_period

在此链接中:如何配置 C3P0 连接池

idleTestPeriod :  Must be set in hibernate.cfg.xml (or hibernate.properties), Hibernate default:  
0, If this is a number greater than 0, c3p0 will test all idle, pooled but unchecked-out  
connections, every this number of seconds.

这种测试的目的是什么(idel、池化连接),以及c3p0.idle_test_period和c3p0.timeout之间的关系?

java hibernate c3p0
2个回答
28
投票

数据库服务器可能会在一段时间后关闭其一侧的连接 - 导致应用程序中出现一些错误,因为它会尝试在服务器端不再可用的连接上发送查询。

为了避免这种情况,您可以让池定期检查连接(想想 ping)的有效性。这就是

idle_test_period
的用途。

timeout
是池将从池中删除连接的时间跨度,因为该连接有一段时间没有检出(使用),并且池中包含的连接多于
c3pO.min_size


1
投票

我认为这个设置在休眠中使用,以便每隔几秒验证一次池连接。考虑一个场景,如果在数据库端,密码被更改。 Hibernate 已经对旧密码进行了池化连接。因此,池的密码错误是安全漏洞。因此,休眠时将在几秒钟后进行验证。它将使该池连接失效。

© www.soinside.com 2019 - 2024. All rights reserved.