c3p0.idle_test_period的使用。

2022-09-03 18:19:11

我是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 之间的关系是什么?


答案 1

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

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

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


答案 2

我认为此设置用于休眠状态,以便在每隔几秒钟后验证池连接。考虑一个在数据库端更改密码的情况。在旧密码上休眠已池化连接。因此,使用错误密码的池是安全漏洞。因此,当休眠将在几秒钟后验证它。这将使该池连接失效。


推荐