一段时间后回收 JDBC 连接

Posted

技术标签:

【中文标题】一段时间后回收 JDBC 连接【英文标题】:Recycling JDBC connections after some time 【发布时间】:2012-03-01 14:47:55 【问题描述】:

我有一个使用 Oracle RAC 数据库的应用程序。为了在数据库节点上执行维护任务,我想将所有连接从数据库节点 1 迁移出去,然后关闭节点进行维护。

我想要确保数据库连接不会保持打开超过 X 分钟。当一个 DB 节点进行维护时,在该节点上打开的连接将在最多 X 分钟后关闭,并在另一个节点上重新创建。

使用的连接池是common-dbcp,打算移到tomcat-jdbc。对于这两个池,我看不到强制回收连接一段时间后的配置选项。我错过了什么吗?或者这不是标准选项?

【问题讨论】:

我不认为这是一个选择。您可以在借用时使用测试,但它很昂贵。也许您可以添加一个选项来销毁整个池并重新创建它并在您关闭系统进行维护时调用它 借用测试无济于事,因为节点上已打开的连接仍然有效。销毁整个池会破坏当前打开的连接,这是我试图避免的。 我认为你可以很好地销毁它,以便不在池中的连接在返回后被销毁 【参考方案1】:

查看tomcat-jdbc documentation,我看到有一个 maxAge 参数几乎可以满足我的需要。我将在下周进行一些检查以确认并将更新此答案以反映我的发现。

【讨论】:

结果如何? :)

以上是关于一段时间后回收 JDBC 连接的主要内容,如果未能解决你的问题,请参考以下文章

用jdbc连接mysql数据库,执行程序一段时间后控制台报连接超时。why,如何解决!

JDBC 连接:超时后未重新连接

在春季启动一段时间后,数据库连接丢失

Derby/JDBC 连接生命周期(或空闲超时)

SpringBoot:GenericJDBCException:无法获取 JDBC 连接

Tomcat运行一段时间后,自动停止关闭,To prevent a memory leak,Druid 数据库连接自动关闭, the JDBC Driver has been forcibly unr