ITサービスマネージャ暗記無料で始める

2相ロッキングプロトコルとは?にそうロッキングプロトコル

2相ロッキングプロトコルとは、トランザクションが扱うロックを、獲得だけを行う成長相と解放だけを行う縮退相に分け、いったん解放を始めたら新たなロックを取らないという規約。参加するトランザクションがすべてこれを守れば、同時に走らせた結果が何らかの順番で1本ずつ流した結果と一致すること(直列化可能性)が保証される。

最終更新:2026-10-06

試験情報

ITサービスマネージャ試験の過去問では1回出題されています。

ITサービスマネージャ試験の頻出用語/午前II

別名:2相ロック、2PL、two-phase locking

この語が出る過去問を解く →

背景

同時実行を許すと処理量は伸びるが、同じ行を二つの処理が前後して触ることで、片方の更新が消えるといった不整合が生じる。実行の順序をそのつど検証するのは現実的でないため、各トランザクションが単独で守れる規約の形にして、規約さえ守れば結果の正しさが導かれるように組み立てられた。

具体例

夜間バッチと日中のオンライン処理が同じ在庫テーブルへ触る構成では、必要な行ロックを処理の前半で取り切り、コミットまで解放しない作りにする。Oracle DatabaseやPostgreSQLの既定の分離レベルは多版同時実行制御で動くが、SELECT ... FOR UPDATE で明示的にロックを取る箇所は、この規約の考え方で設計する。

試験での引っ掛け

直列化可能性は保証するが、デッドロックは防げない——互いに相手のロックを待つ状態は規約を守っていても起き得るので、検出とタイムアウトは別に用意する。解放をコミット時まで遅らせる方式は厳格2相ロックと呼び、他のトランザクションが未コミットの値を読まないためカスケードアボートを防げる。両者を同じものとして扱う記述に注意する。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:午前II
  • 直列化可能性は保証するが、デッドロックは防げない——互いに相手のロックを待つ状態は規約を守っていても起き得るので、検出とタイムアウトは別に用意する。