令和6年度 秋期 応用情報技術者試験 午前 問27
テクノロジ/データベース2 相コミットで分散トランザクションの原子性を保証する場合,ネットワーク障害の発生によって参加者のトランザクションが,コミットすべきか又はロールバックすべきかを判断できなくなることがある。このような状況を発生させるネットワーク障害に関する説明として,適切なものはどれか。
出典:令和6年度 秋期 応用情報技術者試験 午前 問27
- ア調停者のトランザクションが,コミット又はロールバック可否の問合せを参加者に送る直前に障害になった。
- イ調停者のトランザクションが,コミット又はロールバックの決定を参加者に送る直前に障害になった。
- ウ調停者のトランザクションに,コミット又はロールバック可否の応答を参加者が返す直前に障害になった。
- エ調停者のトランザクションに,コミット又はロールバックの完了を参加者が返す直前に障害になった。
正解:イ
解説
2相コミットでは,調停者が各参加者にコミット可否を問い合わせ(第1相),その結果を基にコミットまたはロールバックの決定を各参加者に送信します(第2相)。この決定を送る直前に調停者側の障害が発生すると,参加者は問合せへの回答は済んでいるのに最終的な決定を受け取れず,コミットすべきかロールバックすべきか判断できなくなります。
選択肢ごとの解説
- ア誤り。問合せを送る直前の障害であれば,参加者はまだ問合せ自体を受け取っておらず,通常どおりロールバックすればよいため判断不能にはなりません。
- イ正しい。決定を参加者に送る直前に障害が起きると,参加者はコミットすべきかロールバックすべきか判断できなくなります。
- ウ誤り。応答を返す直前の障害であれば,調停者側が応答未達を検知してタイムアウト処理(ロールバックなど)で対応でき,参加者側が判断不能になるわけではありません。
- エ誤り。完了報告を返す直前の障害は,決定自体は既に参加者に届いているため,参加者がコミット・ロールバックの判断に迷うことはありません。