SET CURRENT LOCK TIMEOUT ステートメント

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

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

呼び出し

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

許可

必要ありません。

構文

Read syntax diagramSkip visual syntax diagramSETCURRENTLOCK TIMEOUT=WAITNOT WAITNULLWAITinteger-constanthost-variable

説明

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

WAIT
CURRENT LOCK TIMEOUT の値を -1 に設定します。この値は、ロックが解除されるか、デッドロックが検出される (SQLSTATE 40001 または 57033) まで、データベース・マネージャーが待機することを意味します。
NOT WAIT
CURRENT LOCK TIMEOUT の値を 0 に設定します。この値は、獲得できないロックをデータベース・マネージャーが待機せず、エラー (SQLSTATE 40001 または 57033) が戻されることを意味します。
ヌル
CURRENT LOCK TIMEOUT の値を設定解除し、ロックを待機する際に locktimeout データベース構成パラメーターの値を使用することを指定します。 特殊レジスターに戻される値は、locktimeout の値が変更されると変化します。
WAIT 整数定数
-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