我希望能够在Oracle 10.2.0.4中终止用户的查询而不会终止整个会话.这将允许查询结束,但不会将该用户记录在其会话之外,因此他们可以继续进行其他查询.这有可能吗?或者是杀死会话的直言不讳是结束查询执行的唯一方法?
我有针对Oracle 10g数据库运行的Java JDBC应用程序.我设置了PreparedStatement来执行查询,然后调用ps.executeQuery()来运行它.有时查询需要很长时间,我需要将其删除.我有另一个线程访问PreparedStatement对象,并在其上调用cancel().
我的问题是,这实际上是否会破坏数据库中的查询?或者它只是从客户端切断它,并且查询仍然在Oracle的内部运行?
谢谢!
我正在阅读Oracle 文档中的中断。我无法弄清楚以下部分。它指出
如果线程长时间不调用抛出 InterruptedException 的方法怎么办?然后它必须定期调用 Thread.interrupted,如果收到中断则返回 true。例如:
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我绞尽脑汁地想理解,如果一个线程长时间没有调用抛出 InterruptedException 的方法,这是什么意思?其次,Thread.interrupted()的用法是什么,它是一种线程可以向自身发送中断的方法?这个场景的实际用途是什么?谢谢。