SET CURRENT LOCK TIMEOUT ステートメント

SET CURRENT LOCK TIMEOUT ステートメントは、 CURRENT LOCK TIMEOUT 特殊レジスターの値を変更します。

このステートメントは、トランザクションの制御下にありません。

呼び出し

このステートメントはアプリケーション・プログラムに組み込むことができ、また対話式に出すことができます。 このステートメントは、動的に作成できる実行可能ステートメントです。

許可

必要ありません。

構文

構文図を読む構文図をスキップするSETCURRENTLOCK TIMEOUT=WAITNOT WAITNULLWAIT integer-constanthost-variable

説明

指定値は -1 から 32767 までの整数 (両端を含む) (SQLSTATE 428B7)、または NULL 値でなければなりません。

WAIT
CURRENT LOCK TIMEOUT の値を -1 に設定します。この値は、ロックが解除されるか、デッドロックが検出される (SQLSTATE 40001 または 57033) まで、データベース・マネージャーが待機することを意味します。
NOT WAIT
CURRENT LOCK TIMEOUT の値を 0 に設定します。この値は、獲得できないロックをデータベース・マネージャーが待機せず、エラー (SQLSTATE 40001 または 57033) が戻されることを意味します。
NULL
CURRENT LOCK TIMEOUT の値を設定解除するように指定します。 ロックの待機の際には、locktimeout データベース構成パラメーターの値が使用されます。 特殊レジスターに戻される値は、locktimeout の値が変更されると変化します。
WAIT integer-constant
-1 から 32767 までの整数を指定します。 -1 の値は、整数値なしで WAIT キーワードを指定することと等価です。 0 の値は、NOT WAIT 節を指定するのと等価です。 値が 1 から 32767 までの場合は、ロックを獲得できない場合にエラー (SQLSTATE 40001 または 57033) が戻される前に、データベース・マネージャーはその秒数だけ待機します。
host-variable
タイプが INTEGER の変数です。 値は -1 から 32767 までの範囲内である必要があります。 host-variable が関連した標識変数を伴っていて、 その標識変数の値が NULL 値を指定している場合、CURRENT LOCK TIMEOUT の値は設定解除されます。 これは NULL キーワードを指定するのと等価です。

  • 特殊レジスターの更新された値は、このステートメントが正常実行されると即時に有効になります。 ステートメントの実行中に使用される特殊レジスター値はステートメント実行の初めに固定されるため、 実行を開始したステートメントによって CURRENT LOCK TIMEOUT 特殊レジスターの更新された値が戻されるのは、 SET LOCK TIMEOUT ステートメントが正常に完了した後になります。
  • 代替構文: Informix® データベース製品との互換性のために、以下の代替構文がサポートされています。 これらの代替は非標準であり、使用すべきではありません。
    • TIMEOUT の代わりに MODE を指定できます。
    • 等号 (=) 演算子の代わりに TO を指定できます。

  • 例 1: エラーを戻す前に 30 秒間待つよう、ロック・タイムアウト値を設定します。
       SET CURRENT LOCK TIMEOUT 30
  • 例 2: locktimeout データベース構成パラメーター値が代わりに使用されるように、 ロック・タイムアウト値を設定解除します。
      SET CURRENT LOCK TIMEOUT NULL