locktimeout - ロック・タイムアウト構成パラメーター

このパラメーターは、アプリケーションがロックを獲得するために待機する秒数を指定して、アプリケーションのグローバル・デッドロックを防ぎます。

構成タイプ
データベース
パラメーター・タイプ
  • 構成可能
デフォルト [範囲]
-1 [-1; 0 - 32 767 ]
単位

このパラメーターを 0 に設定した場合、ロックは待機されません。 この状態では、要求時にロックが使用可能でない場合は、アプリケーションは即時に -911 を受け取ります。

このパラメーターを -1 に設定する場合、ロック・タイムアウト検出はオフにされます。 この状態では、次のいずれかのイベントが発生するまで、ロックを待ちます (ただし、要求時にロックが使用可能で ない場合)。
  • ロックが GRANT される
  • デッドロックが発生した。
注: この構成パラメーターに指定した値は、イベント・モニター・ターゲット表のロック・タイムアウトの制御には使用されません。 イベント・モニターは、構成不可能な別個の設定を使用して、イベント・モニター表に対するロックをタイムアウトにします。

推奨: トランザクション処理 (OLTP) 環境では、30 秒が初期値として適当です。 照会のみの環境では、より高い値で開始できます。 両方の場合とも、ベンチマーク技法を使用して、このパラメーターを調整してください。

ユーザーがワークステーションを離れたためにトランザクションが停止した場合のように、 異常な状況が原因で発生している待ち状態をすみやかに検出できるような値を設定してください。 ワークロードがピークであるときに多数の待機状態のロックがあっても、 有効なロック要求がタイムアウトにならないような、十分に高い値を設定すべきです。

データベース・システム・モニターを使用すると、アプリケーション (接続) がロック・タイムアウトを経験した回数、またはデータベースがすべての接続しているアプリケーションについて、 タイムアウト状態を検出した回数を追跡することができます。

次のような場合は、lock_timeout (ロック・タイムアウトの 数) モニター・エレメントの値が高くなる原因になり 得ます。
  • この構成パラメーターの値が低すぎます。
  • ロックを保留している時間が伸びているアプリケーション (トランザクション)。 データベース・システム・モニターを使用すると、これらのアプリケーションの詳細を調べることができます。
  • ロック・エスカレーション (行レベル・ロックから表レベル・ロックへの) によって生じる 可能性のある並行性の問題。