简体   繁体   English

甲骨文有时会关闭JDBC连接吗?

[英]Does oracles close JDBC connections sometimes?

I'm using JDBC to connect to oracle and im not explicitly closing JDBC connection, but after running my application for few days, i see that SQL statements are failing with "java.sql.SQLException: Closed Connection". 我正在使用JDBC连接到oracle,并且没有明确关闭JDBC连接,但是在运行我的应用程序几天后,我看到SQL语句因“ java.sql.SQLException:Closed Connection”而失败。

What could be the possible reasons for that, i'm sure that i'm not closing it by calling java.sql.Connection.close() method. 可能的原因是什么,我确定我没有通过调用java.sql.Connection.close()方法来关闭它。

but after running my application for few days 但是运行我的应用程序几天后

Oracle may close the connection after some idle time or a proxy somewhere between your app and Oracle. 在一些空闲时间或您的应用程序与Oracle之间的某个位置建立代理之后,Oracle可能会关闭连接。 Best way to keep connections alive is to maintain a heartbeat link. 使连接保持活动状态的最佳方法是维持心跳链接。 Most databases provide a validation query which is "SELECT 1" or something else. 大多数数据库提供的验证查询为“ SELECT 1”或其他。

If you use a pooling mechanism, it is just a configuration. 如果使用池化机制,那么它只是一个配置。 Otherwise you have to do it manually your own. 否则,您必须自己手动执行此操作。

java.sql.Connection.isValid(timeout)

If not, refresh the connection 如果没有,请刷新连接

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM