2相コミットとは?
2相コミットとは、複数のサイトにまたがる更新を一括して確定するための手順。第1相(準備相)で調停者が全サイトにコミット可否を問い合わせ、全サイトが可と答えたら第2相(コミット相)でコミットを指示する。1つでも不可ならすべてロールバックさせる。
データベーススペシャリスト試験の過去問では5回出題されています(2016年度〜2021年度)。
にそうコミット
2相コミットの意味
複数のサイトにまたがる更新を一括して確定するための手順。第1相(準備相)で調停者が全サイトにコミット可否を問い合わせ、全サイトが可と答えたら第2相(コミット相)でコミットを指示する。1つでも不可ならすべてロールバックさせる。
2相コミットの具体例
本社と支店のデータベースを同時に更新する処理で、片方だけ確定してしまう事態を防ぐ。
2相コミットは試験でどう引っ掛けられる?
準備相で「可」と答えたサイトは、指示が届くまでコミットもロールバックもできない不確定状態(ブロッキング)に置かれる。調停者が障害で指示を出せないと待ち続けることになる。この弱点を改善したのが3相コミット。
2相コミットと関連する用語
2相コミットが出た過去問
分散データベースシステムにおいて、複数のデータベースを更新する場合に用いられる2相コミットの処理手順として、適切なものはどれか。
正解:主サイトは、コミットが可能であることを各データベースサイトに確認した後、コミットを発行する。
要点:2相コミットは全サイトの可否確認後にコミットを指示する
2相コミットは、まず主サイトが全サイトにコミット可能かを問い合わせて可否を集める第1相(準備フェーズ)と、全サイトから可の応答が得られた場合にコミットを指示する第2相(コミットフェーズ)から成る。1サイトでも不可なら全サイトへロールバックを指示し、分散したデータベースの整合性を保つ。
出典:平成28年度 春期 データベーススペシャリスト試験 am2 問14(IPA)データベース更新における2相コミットに関する記述のうち、適切なものはどれか。
正解:2相コミットを行うためには、同時に更新しようとする分散データベースの全てが更新可能かどうかを判断するためのやり取りが必要である。
要点:2相コミットは全サイトへの可否確認のやり取りが前提
2相コミットでは、第1相で調停役のサイトが関係する全サイトにコミット可能かどうかを問い合わせ、その応答を集めてから第2相でコミットまたはロールバックを指示する。この可否確認のやり取りがあるからこそ、分散した複数のデータベースの更新を一括して確定・取消しできる。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問14(IPA)分散データベースのトランザクションは複数のサブトランザクションに分割され、複数のサイトで実行される。このとき、トランザクションのコミット制御に関する記述のうち、…
正解:2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
要点:2相コミットでも指示が届かないと判断できず待たされる
2相コミットには、了承応答を返した後に主サイトからの最終指示が届かないと、そのサイトがコミットもロールバックもできずロックを保持したまま待ち続けるという弱点がある。これをブロッキングと呼び、2相コミットでも完全には避けられない。
出典:平成30年度 春期 データベーススペシャリスト試験 am2 問13(IPA)分散データベースシステムにおいて、複数のデータベースサイトを更新する場合に用いられる2相コミットの処理手順のうち、適切なものはどれか。
正解:主サイトは、コミットが可能であることを各データベースサイトに確認した後、コミットを発行する。
要点:2相コミットは可否確認の相とコミット指示の相から成る
2相コミットでは、第1相で主サイトが各サイトにコミット可能かを問い合わせて可否の応答を集め、全て可であれば第2相でコミットを指示する。1サイトでも不可であれば全サイトにロールバックを指示することで、分散データベース全体の整合性を保つ。
出典:令和1年度 春期 データベーススペシャリスト試験 am2 問15(IPA)分散データベースのトランザクションが複数のサブトランザクションに分割され、複数のサイトで実行されるとき、トランザクションのコミット制御に関する記述のうち、適切な…
正解:2相コミットを用いても、サブトランザクションが実行されるサイトに主サイトの指示が届かず、サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
要点:2相コミットは指示不達時に不確定で待つブロッキング問題を残す
2相コミットでは、参加サイトが了承を返した後に主サイトからの最終指示を待つ。この待ち状態のときに主サイトが障害を起こしたり通信が途切れたりすると、参加サイトはコミットすべきかロールバックすべきか判断できず、資源をロックしたまま待ち続けることになる。これがブロッキング問題であり、イが正しい。
出典:令和3年度 秋期 データベーススペシャリスト試験 am2 問12(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。