可以在超时时从另一个线程关闭JDBC连接吗?

时间:2011-09-27 23:36:38

标签: java sql-server jdbc

由于没有任何JDBC操作具有超时概念,如果超出超时,是否建议尝试从其他线程关闭过期操作的JDBC连接?

我知道Statement.cancel方法,但它似乎并不适用于所有情况。此外,我使用的驱动程序不响应中断。

不幸的是,我认为Connection.close是可以用来防止资源泄漏的最低公分母,以防数据库操作陷入困境。

我知道在使用连接池时,我必须关闭真实连接对象。

3 个答案:

答案 0 :(得分:1)

最好的答案是,这取决于您使用的驱动程序。但是从jdbc堆栈的角度来看,应该没问题。

答案 1 :(得分:1)

德比应该没问题: http://db.apache.org/derby/docs/10.8/devguide/cdevconcepts23499.html

根据JDBC规范,您可以与多个线程共享连接和语句

答案 2 :(得分:0)

我将该操作包含在ThreadPoolExecutor中并超时。它会让你更好地控制正在发生的事情。