IPA公式正解:イ 2相コミットを用いても,サブトランザクションが実行されるサイトに主サイトの指示が届かず,サブトランザクションをコミットすべきかロールバックすべきか分からない場合がある。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。2相コミットでは、調停者(主サイト)が第1相でコミット準備完了を確認し第2相でコミット指示を送信した際、通信障害等によりコミット指示が参加者(従サイト)に届かない場合、参加者はコミットすべきかロールバックすべきか判断できずブロック(不確定状態)に陥ることがあります。
【詳細解説】■ 本問の核心・解法のポイント
2相コミットプロトコル(2-Phase Commit Protocol: 2PC)は、分散データベース環境においてトランザクションの原子性(All or Nothing)を保証するための制御方式です。
第1相(準備相)で主サイト(調整者)が全参加サイトへコミット可否を問い合わせ(PREPARE)、全サイトがコミット可能(YES/READY)と返答した場合にのみ、第2相(コミット相)でコミット指示(COMMIT)を発行します。しかし、第1相でコミット了承を返答した後に主サイトからの第2相指示が通信障害などで届かなくなると、従サイトは自律的に決定できず不確定状態(ブロッキング)に陥るという弱点があります。
・各選択肢の徹底解説:
・ア:全サイトからコミット了承応答が届いた場合、主サイトは全サイトに対して一律に「コミット」を指示します。サイトごとに異なる指示を出すことはありません。
・イ:【選択肢イ★】第1相で了承応答を返した従サイトに第2相のコミット/ロールバック指示が届かない場合、そのサイトは単独で決定できずブロック状態(不確定状態)となります。
・ウ:2相コミットでは原子性が保証されるため、1つでもサブトランザクションがロールバックされれば、トランザクション全体がロールバックされます。
・エ:個々のサイトが独自に1相コミットを行うと、一部サイトのみコミットされ他サイトが失敗した際に不整合が生じ、一貫性を保証できません。
よって正解はイです。