ITサービスマネージャ 2022年 午前2 問23
問題文
図は、分散システムにおける2相コミットプロトコルの正常処理の流れを表している。③の動作はどれか。

選択肢
ア:アンロック実行指示
イ:コミット可否問合せ
ウ:コミット実行指示(正解)
エ:ログ取得指示
🔒 解説は解答すると表示されます
2相コミットの正常処理【午前2解説】
正解の理由
③は、コーディネータであるシステムAが、参加者であるシステムBとシステムCにコミットの実行を指示する段階です。したがって、正解はウです。
2相コミットでは、まずコーディネータが参加者にコミット可能かを問い合わせます。参加者全員からコミット可能との返答を受け取ると、コーディネータはコミット実行を指示します。図では、このコミット実行指示が③に当たります。
解法ステップ
- 図のシステムAを、トランザクション全体を調整するコーディネータと捉えます。
- ①は、AからB・Cへの問い合わせです。参加者がコミットできるかを確認するため、「コミット可否問合せ」に当たります。
- ②は、B・CからAへの返答です。正常処理では、どちらもコミット可能であることを返します。
- ③は、AからB・Cへの指示です。全参加者がコミット可能と判断された後なので、「コミット実行指示」です。
- ④は、B・CからAへの処理結果の返答です。
選択肢別の誤答解説
-
ア:アンロック実行指示
コミット後にロックが解放されることはありますが、③の通信は参加者にコミットを実行させる指示です。アンロックそのものを指す選択肢ではありません。 -
イ:コミット可否問合せ
コミットできるかどうかを尋ねる処理です。図では①に当たり、③ではありません。 -
ウ:コミット実行指示
参加者全員からコミット可能との返答を受けた後、コーディネータがコミットを指示する処理です。③に該当します。 -
エ:ログ取得指示
ログは障害発生時の復旧などに使われますが、2相コミットの正常処理における③のメッセージではありません。
よくある誤解
-
①と③を取り違える
①は「コミットしてよいか」の問い合わせで、③は「コミットを実行せよ」という指示です。問い合わせと実行指示は別の段階です。 -
②と④を同じ返答だと考える
②はコミット可否への投票、④はコミット実行指示を受けた後の返答です。返答の目的が異なります。 -
2相コミットを単なる2回の通信と捉える
「準備・投票」と「決定通知」の2段階で、参加者の処理結果をそろえる仕組みです。
補足コラム
2相コミットの基本的な流れは、次のとおりです。
- 準備フェーズ:コーディネータが参加者にコミット可能かを問い合わせます。
- 投票フェーズ:参加者がコミット可能かどうかを返答します。
- 決定フェーズ:全参加者がコミット可能なら、コーディネータがコミットを指示します。
- 完了通知:参加者が処理結果をコーディネータに返答します。
この問題では、①が準備の問い合わせ、②が投票、③がコミットの決定通知、④が完了通知に当たります。
FAQ
Q. 参加者のうち1台でもコミットできない場合はどうなりますか?
A. コーディネータはコミットではなく中止(ロールバック)を指示します。各参加者は、その指示に従って処理を取り消します。
A. コーディネータはコミットではなく中止(ロールバック)を指示します。各参加者は、その指示に従って処理を取り消します。
Q. ③の後に、参加者はすぐに処理を終えますか?
A. コミットを実行した後、参加者は処理結果をコーディネータへ返答します。図の④がその返答に当たります。
A. コミットを実行した後、参加者は処理結果をコーディネータへ返答します。図の④がその返答に当たります。
関連キーワード: 2相コミット、コーディネータ、参加者、コミット可否問合せ、投票、ロールバック

\ せっかくなら /
ITサービスマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

