2 相コミットで分散トランザクションの原子性を保証する場合,ネットワーク障害の発生によって参加者のトランザクションが,コミットすべきか又はロールバックすべきかを判断できなくなることがある。このような状況を発生させるネットワーク障害に関する説明として,適切なものはどれか。

テクノロジ系

ア 調停者のトランザクションが,コミット又はロールバック可否の問合せを参加者に送る直前に障害になった。

なぜ違う: 第1相の問合せ前なので参加者はまだ投票しておらず、ロールバックすれば安全に判断できる。

イ 調停者のトランザクションが,コミット又はロールバックの決定を参加者に送る直前に障害になった。
ウ 調停者のトランザクションに,コミット又はロールバック可否の応答を参加者が返す直前に障害になった。

なぜ違う: 参加者の投票が届かない状況で、調停者はタイムアウトでロールバックを決定でき、参加者も結論を出せる。

エ 調停者のトランザクションに,コミット又はロールバックの完了を参加者が返す直前に障害になった。

なぜ違う: 既に決定は伝わっており、完了報告が届かないだけなので判断不能にはならない。

正解: イ

要点: 投票後、調停者が「決定」を送る直前に落ちると、参加者は結果待ちで不確定になる。

2相コミットでは、参加者がコミット可否を投票(第1相)した後、調停者が確定した決定(コミット/ロールバック)を参加者へ送る(第2相)。この決定を送る直前に障害が起きると、参加者は自分の投票後で結果を知らされず、コミットすべきかロールバックすべきか判断できないブロッキング状態になる。

この問題に出てくる用語

関連キーワード: 2相コミット・分散トランザクション・原子性

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

応用情報技術者の学習アプリ(応用情報トレ)

出典:令和6年度 秋期 応用情報技術者試験 午前 問27