我是 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之间的关系?
数据库服务器可能会在一段时间后关闭其一侧的连接 - 导致应用程序中出现一些错误,因为它会尝试在服务器端不再可用的连接上发送查询。
为了避免这种情况,您可以让池定期检查连接(想想 ping)的有效性。这就是
idle_test_period
的用途。
timeout
是池将从池中删除连接的时间跨度,因为该连接有一段时间没有检出(使用),并且池中包含的连接多于 c3pO.min_size
。
我认为这个设置在休眠中使用,以便每隔几秒验证一次池连接。考虑一个场景,如果在数据库端,密码被更改。 Hibernate 已经对旧密码进行了池化连接。因此,池的密码错误是安全漏洞。因此,休眠时将在几秒钟后进行验证。它将使该池连接失效。