【发布时间】:2016-10-26 16:58:00
【问题描述】:
我正在使用 JDBC 连接到 oracle,并且我没有显式关闭 JDBC 连接,但是在运行我的应用程序几天后,我看到 SQL 语句因“java.sql.SQLException: Closed Connection”而失败。
这可能是什么原因,我确定我没有通过调用 java.sql.Connection.close() 方法来关闭它。
【问题讨论】:
-
如果在指定时间内不使用连接,java会在超过空闲超时时间后关闭连接....如果在连接对象创建过程中不指定该参数有一个我不记得正确的默认值......因此,当超过这个时间时,连接会自动关闭
-
@Abhishek 请提供此断言的来源。
-
@Abhishek 我一直在使用该连接。我将再次检查我的代码。谢谢
-
你在使用
try-with-resources吗?还是连接池? -
所以你的连接池,“由你的开发者设计”是迄今为止最有可能过早关闭的嫌疑犯。而不是Java。我只能建议他们进行更多测试。更好的是,把它扔掉并使用一个已经有效的,比如 Apache DBCP。