令和6年度 秋期 応用情報技術者試験 午前 問27
テクノロジデータベース
この問題は2024(R6)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
2相コミットで分散トランザクションの原子性を保証する場合,ネットワーク障害の発生によって参加者のトランザクションが,コミットすべきか又はロールバックすべきかを判断できなくなることがある。このような状況を発生させるネットワーク障害に関する説明として,適切なものはどれか。
解答・解説を読む
正解: 選択肢イ
2相コミット(Two-Phase Commit)プロトコルは、分散データベース環境などにおいてトランザクションの原子性を保証するための手法です。処理は「コミット可否の問合せ(第1相)」と「コミットまたはロールバックの決定(第2相)」の2段階で行われます。
参加者のトランザクションが「コミットすべきかロールバックすべきか判断できなくなる状態(ブロッキング状態)」に陥るのは、参加者が調停者に対してコミット準備完了(Ready)の応答を返した後、調停者からの最終的な決定(Global Commit / Global Rollback)を受け取るまでの間にネットワーク障害などが発生した場合です。この時、参加者は他サイトの状況がわからないため自律的な判断ができず、資源のロックを保持したまま待機することになります。
各選択肢の解説
- ア:誤り。 調停者が問合せを送る直前に障害が発生した場合、参加者はまだ処理要求を受け取っていない段階です。したがって、タイムアウト等によって自律的にロールバックを行うと判断できます。
- イ:正しい。 参加者が「コミット可」の応答を返した後、調停者が最終決定を送る直前(または通信中)にネットワーク障害が発生すると、参加者は最終決定を受け取れないため、コミットすべきかロールバックすべきか判断できなくなります。
- ウ:誤り。 参加者が応答を返す直前に障害が発生した場合、参加者はまだ「コミット可」の意志を伝えていません。この状態であれば、参加者は自律的に処理を取りやめてロールバックすることが可能です。
- エ:誤り。 参加者が完了を返す直前に障害が発生した場合、参加者はすでに調停者からの「決定」を受け取ってコミットまたはロールバックの処理を実行済みです。したがって、判断できなくなる状況には該当しません。