我正在使用Apache Commons Pool 2
,我已将配置testWhileIdle
设置为true,这意味着Pool框架将检查它们是否有效的空闲对象。
我会问这种检查是否定期发生,如果是,默认间隔是什么,以及我如何更改它。
我之所以这样问,是因为池中的对象应该定期连接到服务器以保持活跃,我认为池validateObject
方法是实现此目的的好地方。
Per @ user7294900的评论,有两个配置参数:
timeBetweenEvictionRunsMillis
,默认值为-1 minEvictableIdleTimeMillis
,默认值为1800 * 60 * 30 我有两个问题:
validateObject
方法中打印对象的哈希码,我发现只有3个对象&# 39;哈希代码已经打印出来,然后再没有打印消息,看起来{5}每隔5秒没有调用validateObject
或者validateObject
的调用被卡住了吗?我发现了问题,请参阅评论
答案 0 :(得分:1)
您可以使用\ update newList
更改空闲验证时间,请参阅Tomcat JDBC Connection Pool。
timeBetweenEvictionRunsMillis(int)到的毫秒数 在空闲连接验证/清除线程的运行之间休眠。 该值不应设置为1秒以下。它决定了我们的频率 检查空闲,放弃连接以及我们验证空闲的频率 连接。默认值为5000(5秒)。