Tomcat和JDBC连接池-报告未关闭连接的计时

Tomcat和JDBC连接池-报告未关闭连接的计时,jdbc,apache-commons-dbcp,Jdbc,Apache Commons Dbcp,我的代码中有几个地方没有正确关闭数据库连接。这会在catalina.out中定期报告,并显示如下消息:org.apache.commons.dbcp.弃置trace$弃置对象异常:由以下代码创建的dbcp对象从未关闭。对于其他未关闭的连接,这些消息会在接下来的几个小时内重复不同的时间 通过查看catalina.out中的其他信息,我可以看到这些消息是在上午7:40左右打印到catalina.out的。我也看到过其他的例子,在卡塔琳娜,第二天就有报道。我的问题是,什么决定了这些消息何时打印到cat

我的代码中有几个地方没有正确关闭数据库连接。这会在catalina.out中定期报告,并显示如下消息:org.apache.commons.dbcp.弃置trace$弃置对象异常:由以下代码创建的dbcp对象从未关闭。对于其他未关闭的连接,这些消息会在接下来的几个小时内重复不同的时间


通过查看catalina.out中的其他信息,我可以看到这些消息是在上午7:40左右打印到catalina.out的。我也看到过其他的例子,在卡塔琳娜,第二天就有报道。我的问题是,什么决定了这些消息何时打印到catalina.out?这到底是如何工作的?

DBCP是开源的,因此您可以自己查看代码并找到答案。DBCP检查废弃连接的方式是一种协作式垃圾收集。从连接池签出连接时,它首先检查放弃的连接并将其清除

因此,如果在几个小时内没有请求新连接,则放弃的连接将不会被删除。当一个工作日开始时,从池中请求连接时,它将首先删除所有放弃的连接


如果查看的代码,取决于它将调用的配置,这反过来将撤销并记录放弃的连接。

DBCP是开源的,因此您可以自己查看代码并找到答案。DBCP检查废弃连接的方式是一种协作式垃圾收集。从连接池签出连接时,它首先检查放弃的连接并将其清除

因此,如果在几个小时内没有请求新连接,则放弃的连接将不会被删除。当一个工作日开始时,从池中请求连接时,它将首先删除所有放弃的连接

如果查看的代码,这取决于它将调用的配置,而配置反过来将撤销并记录放弃的连接