在JDBC中停止或终止长时间运行的查询

时间:2012-06-08 10:39:44

标签: java oracle jdbc

有没有办法在JDBC中停止或终止长时间运行的Oracle查询?它通常最终会重启应用程序服务器以使jdbc与Oracle DB断开连接。

在Java或JDBC中寻找类似于SQL Plus - Kill session的功能

SQL Plus中的

SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';

在java中执行的任何线索?

3 个答案:

答案 0 :(得分:7)

缺少jdbc超时,如果在另一个线程中运行查询,可以使用Statement.cancel()来终止它。

答案 1 :(得分:6)

可能有点偏,但我建议改用JDBC Timeout。它有额外的好处,实际上是优雅地终止而不是强制终止。

使用现代应用服务器,您通常可以从数据源配置定义JDBC超时。

答案 2 :(得分:1)

您可以尝试使用Statement.setQueryTimeout