令和6年度 秋期 応用情報技術者試験 午前 問27
【問題27】
2相コミットで分散トランザクションの原子性を保証する場合,ネットワーク障害の発生によって参加者のトランザクションが,コミットすべきかロールバックすべきかを判断できなくなることがある。このような状況を発生させるネットワーク障害に関する説明として,適切なものはどれか。
調停者のトランザクションが,コミット又はロールバック可否の問合せを参加者に送る直前に障害になった。
調停者のトランザクションが,コミット又はロールバックの決定を参加者に送る直前に障害になった。
調停者のトランザクションに,コミット又はロールバック可否の応答を参加者が返す直前に障害になった。
調停者のトランザクションに,コミット又はロールバックの完了を参加者が返す直前に障害になった。
【解説】
2相コミットは分散トランザクションでデータの一貫性と原子性を保証するために行われるプロトコルです。2相コミットには以下の2つのフェーズがあります。
- 第1フェーズ(準備フェーズ)
調停者が参加者に対してコミットの可否を問合せ、参加者は応答を返します。
- 第2フェーズ(コミットフェーズ)
調停者が最終的なコミットまたはロールバックの決定を参加者に送信し、参加者はそれを実行します。
各選択肢の確認
ア: コミット又はロールバック可否の問合せを送る直前に障害が発生した場合。
誤り。これは準備フェーズに入る前の障害であり、参加者はまだ判断待ちの状態であるため不確定状態は発生しません。
イ: コミット又はロールバックの決定を送る直前に障害が発生した場合。
正しい。調停者が最終決定を送る直前に障害が発生すると、参加者はコミットすべきかロールバックすべきかを判断できなくなり、不整合の原因になります。
ウ: コミット又はロールバック可否の応答を参加者が返す直前に障害が発生した場合。
誤り。この段階では、参加者が可否確認の返答を出す前の段階であり、不確定状態には至りません。
エ: コミット又はロールバックの完了を返す直前に障害が発生した場合。
誤り。この段階では処理はほぼ完了しており、原子性が失われる不整合は発生しません。
【答え】
イ: 調停者のトランザクションが,コミット又はロールバックの決定を参加者に送る直前に障害になった。
出典:令和6年度 秋期 応用情報技術者試験 午前 問27