使用c3p0.idle_test_period。

我是c3op的新手,对以下内容的使用感到困惑:

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,以便在每几秒后validation池化连接。 考虑一种情况,如果在数据库端,密码被更改。 Hibernate已经在旧密码上汇集了连接。 所以这是安全漏洞,有错误的密码池。所以当hibernate将在几秒后validation它。 它将使该池化连接无效。