Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何中止正在运行的JDBC事务?_Java_Jdbc - Fatal编程技术网

Java 如何中止正在运行的JDBC事务?

Java 如何中止正在运行的JDBC事务?,java,jdbc,Java,Jdbc,有没有办法提前中止事务?比如说,我向数据库发送了一个命令,该命令运行五分钟,四分钟后,我想中止它 JDBC是否定义了一种向DB发送停止连接信号的方法?不,您不能使用标准JDBC中止它 您可以尝试检查特定的RDBMS是否定义了一些扩展来支持它。我猜您想要做的是防止应用程序在长时间运行的查询/事务上阻塞。为此,JDBC支持查询超时的概念。您可以使用以下方法设置查询超时: java.sql.Statement.setQueryTimeout(seconds) 并通过回滚事务来处理execute方法引

有没有办法提前中止事务?比如说,我向数据库发送了一个命令,该命令运行五分钟,四分钟后,我想中止它


JDBC是否定义了一种向DB发送停止连接信号的方法?

不,您不能使用标准JDBC中止它


您可以尝试检查特定的RDBMS是否定义了一些扩展来支持它。

我猜您想要做的是防止应用程序在长时间运行的查询/事务上阻塞。为此,JDBC支持查询超时的概念。您可以使用以下方法设置查询超时:

java.sql.Statement.setQueryTimeout(seconds)

并通过回滚事务来处理execute方法引发的SQLException。当然,只有当autocommit设置为false,并且JDBC驱动程序支持语句时,这才有效。cancel。

签出语句。cancel。

正如james提到的,将取消正在运行的语句select、update、,JDBC文档特别指出Statement.cancel可以安全地从另一个线程运行,甚至建议在超时线程中调用它


在取消该语句后,您仍然需要回滚事务。从另一个线程运行时没有安全记录。应该在主线程中执行所有其他JDBC调用。您可以在取消语句后处理它。执行。。。由于取消,调用完成时出现JDBCException。

我已经让供应商告诉我这一点。如果某个特定的JDBC驱动程序没有实现Statement.cancel,那就是实现质量问题。它就在那里,并针对该用例进行了记录。我认为这是一种更好、更简单的方法,因为它允许胎面自行清洁,而不是让外部线程进行清洁,这总是涉及一组新的问题。以下是oracle在调用语句时的特定行为。取消: