2相コミットで分散トランザクションの原子性を保証する場合、ネットワーク障害の発生によって参加者のトランザクションが、コミットすべきかロールバックすべきかを判断できななくなることがある。
このような状況を発生させるネットワーク障害に関する説明として、適切なものはどれか。
ア |
調停者のトランザクションが、コミット又はロールバック可否の問合せを参加者に送る直前に障害になった。 |
イ |
調停者のトランザクションが、コミット又はロールバックの決定を参加者に送る直前に障害になった。 |
ウ |
調停者のトランザクションに、コミット又はロールバック可否の応答を参加者が返す直前に障害になった。 |
エ |
調停者のトランザクションに、コミット又はロールバックの完了を参加者が返す直前に障害になった。 |
答え イ
【解説】
ア |
調停者のトランザクションが、コミット又はロールバック可否の問合せを参加者に送る直前に障害になると、参加者は調停者からのコミットが行えるか問い合わせが来ないため、ロールバックを行います。(×) |
イ |
調停者のトランザクションが、コミット又はロールバックの決定を参加者に送る直前に障害になると、参加者は調停者からの要求待ちのまま判断ができなくなってしまいます。(〇) |
ウ |
調停者のトランザクションに、コミット又はロールバック可否の応答を参加者が返す直前に障害になった場合、参加者は調停者からの問合せが来ないため、ロールバックを行います。(×) |
エ |
調停者のトランザクションに、コミット又はロールバックの完了を参加者が返す直前に障害になった場合、参加者はすでにコミット又はロールバックを実施済みなので判断の必要はありません。(×) |
【キーワード】
・2相コミットプロトコル
【キーワードの解説】
- 2相コミットプロトコル(Two-Phase Commit Protocol)
分散システムにおいて、全データベースがトランザクション終了時に同時にコミットするための手順のことです。
2相コミットプロトコルでは、まず処理全体を管理する調停者が、参加者に対し、コミットが行えるか問い合わせ(フェーズ1)、全ての参加者から「準備完了」の応答があったら、コミットを行うことを参加者に要求(フェーズ2)し、コミットが行われる。
参加者のどれかで問題が発生した場合には、ロールバック処理で処理の撤回を行う。
もっと、「2相コミット」について調べてみよう。
戻る
一覧へ
次へ
|