我正在通过远程连接在 mssql server 2008 数据库上执行一些 CRUD。我在 Java 中有业务逻辑,在finally block 中具有用于连接、语句和结果集 close() 的紧凑代码。
我的疑问是,即使我完成工作,连接端口仍然打开,并且大约需要 20 分钟才能关闭所有连接。我可以使用 netstat -a 命令查看打开的连接。
我需要快速关闭连接,因为每个操作都会多次打开/关闭连接。因此我看到大量连接打开。长时间保留业务逻辑已经关闭的如此多不需要的连接是非常不安全且成本高昂的。
我正在使用最新的 jtds.jar 文件。任何提示或建议将不胜感激。
谢谢,
阿克谢
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// Do stuff
...
} catch (SQLException ex) {
// Exception handling stuff
...
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) { /* ignored */}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) { /* ignored */}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) { /* ignored */}
}
}
最佳答案
抱歉大家,感谢您抽出时间回答我的问题。 连接关闭是一个框架调用,未正确关闭。我无法访问它,所以我认为这不是问题。再次感谢您的宝贵时间和指导。
关于java - 远程数据库连接长时间打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11038836/