java - 如何从池中删除无效的数据库连接

标签 java oracle tomcat connection-pooling

我正在使用 tomcatoracle 数据库的连接池。它工作正常,但是当我在很长一段时间后使用我的应用程序时,它给出了错误“连接重置”。我收到此错误是因为 oracle 服务器的物理连接在 tomcat 数据源的逻辑连接关闭之前关闭。因此,在从数据源获取连接之前,我正在使用连接对象的 isValid(0) 方法检查连接有效性,如果物理连接已关闭,该方法会给出 false。但我不知道如何从池中删除那个无效连接对象。

最佳答案

这可能是因为在数据库服务器上,有一个超时不允许连接超过设定的时间,或者如果它没有收到表明它仍然有效的消息就终止。解决此问题的一种方法是打开 keepalive。这些基本上 ping 数据库服务器说它们仍然是有效连接。

This是关于 Tomcats DBCP 配置的一个很好的链接。查看标题为“防止 dB 连接池泄漏”的部分。这看起来可能是一个不错的起点。

关于java - 如何从池中删除无效的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030512/

相关文章:

php - Oracle 即时客户端 DYLD_LIBRARY_PATH 错误

java - 将 Java .war 应用程序部署到 digital ocean Ubuntu

java - 仅在运行 java -jar 时循环依赖,不使用 spring-boot :run

java - 为什么在我的 java 程序中没有正确处理这个异常?

java - gwt 2.7 支持的最新版本的 hibernate-validator 是什么?

sql - 从组中排除第一行

java - 设置对象数组值时出错

java - Spring JPA hibernate : slow SELECT query

java - 找到部署在tomcat中的web应用的pom.xml

tomcat - Jquery 自动完成不适用于本地主机