4

時間がかかりすぎるアクティブな Oracle 操作があります。セッションを終了せずにプログラムで操作をキャンセルするにはどうすればよいですか?

4

1 に答える 1

4

OCI ライブラリは、この機能を提供します。標準的な例は、クライアントが長時間実行オペレーション中に Control-C を押し、シグナル ハンドラを介してプログラムの制御を取り戻し、長時間実行オペレーションをキャンセルする場合です。

内部的には、クライアントは TCP 接続を介して緊急メッセージを送信し、サーバー側は SIGURG ハンドラーを介して終了を処理します。クライアント操作はこのステータスを受け取ります。

ORA-01013 ("user requested cancel of current operation")
  • C/C++:

OCIBreak()

http://docs.oracle.com/cd/B10500_01/appdev.920/a96584/oci16m96.htm

http://docs.oracle.com/cd/A97630_01/appdev.920/a96584/oci02bas.htm (「通話のキャンセル」)

  • パイソン (cx_Oracle):

conn.cancel()

http://cx-oracle.sourceforge.net/html/connection.html

于 2012-07-19T18:32:09.753 に答える