Oracle に SQL 文を投げるのですが、この SQL は結構時間がかかります。
途中でキャンセルしたくなったとき、キャンセルボタンを押すと
Oracle のプロセスを強制終了するようにしたいのですが、
Java で書く場合、どのようにやればいいのでしょうか?
方法を教えてください。
たとえば、SQL 文を投げたとき、このIDを保存して、
キャンセルボタンを押したときにこうやって kill するとかが知りたいです。
実際のプログラムを例示してくれるとうれしいです。
以上、よろしくお願いいたします。
java.sql.Statement#cancel()を呼びだすことによってキャンセルできるようです。
Statement (Java Platform SE 6)
DBMS およびドライバの両方が SQL 文の終了をサポートする場合に、この Statement オブジェクトを取り消します。このメソッドは、1 つのスレッドが別のスレッドによって実行中の文を取り消すのに使用できます。
ここのページの「Statement.cancelの使用」を見る限り、OracleのJDBCドライバでcancel()メソッドは実装されているようです。
以下のSQL文にてセッションを強制終了することが可能。
ALTER SYSTEM KILL SESSION sid, #serial;