2相コミットとは?
2相コミットとは、複数のデータベースにまたがる更新を、全体として確定するか全体として取り消すかに揃えるための手順。調整役が各参加者に確定可能かを問い合わせる第1相と、全員が可なら確定を指示する第2相からなり、分散環境の原子性を担保する。
応用情報技術者試験の過去問では2回出題されています(2019年度〜2024年度)。
にそうこみっと
2相コミットの意味
複数のデータベースにまたがる更新を、全体として確定するか全体として取り消すかに揃えるための手順。調整役が各参加者に確定可能かを問い合わせる第1相と、全員が可なら確定を指示する第2相からなり、分散環境の原子性を担保する。
2相コミットの具体例
銀行Aの口座から引き落とし、銀行Bの口座へ入金する処理では、両行のDBに確定可能かを問い合わせ、両方が可と答えたときだけ確定を指示する。片方でも不可なら双方を取り消すので、引き落としだけが成立する状態を防げる。
2相コミットは試験でどう引っ掛けられる?
第1相で可と答えた後、確定指示が届く前に調整役が落ちると、参加者は資源を押さえたまま判断できない宙ぶらりん状態になる。この弱点は3相コミットで緩和されるが、通信回数が増える。
2相コミットと関連する用語
2相コミットが出た過去問
分散トランザクション管理において、複数サイトのデータベースを更新する場合に用いられる2相コミットプロトコルに関する記述のうち、適切なものはどれか。
正解:主サイトが全ての従サイトからコミット準備完了メッセージを受け取った場合、全ての従サイトに対してコミット要求を発行する。
要点:2相コミットは全サイトの準備完了が揃って初めてコミットする
2相コミットでは、第1相で主サイトが各従サイトにコミット準備を要求し、全サイトから準備完了の応答が揃ってはじめて、第2相で全サイトにコミットを指示します。1つでも準備できないサイトがあれば、全サイトにロールバックを指示します。全員一致でなければコミットしないのが原則です。
出典:令和1年度 秋期 応用情報技術者試験 午前 問30(IPA)2相コミットで分散トランザクションの原子性を保証する場合、ネットワーク障害の発生によって参加者のトランザクションが、コミットすべきか又はロールバックすべきかを判…
正解:調停者のトランザクションが、コミット又はロールバックの決定を参加者に送る直前に障害になった。
要点:2相コミットは決定通知前の調停者障害で参加者が不確定になる
2相コミットでは、参加者が第1相で可否を回答した後、調停者からの最終決定を待つ「不確定(インダウト)」状態になる。この状態のときに調停者が決定を送る直前に障害となると、参加者は自分ではコミットすべきかロールバックすべきか判断できず、資源を保持したままブロックされる。これが2相コミットの弱点として知られる。
出典:令和6年度 秋期 応用情報技術者試験 午前 問27(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。