戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2009年 秋期 午前231


問題文

分散トランザクション処理で利用される 2 相コミットプロトコルでは、コミット処理を開始する調停者 (coordinator) と、調停者からの指示を受信してから必要なアクションを開始する参加者 (participant)がいる。この2相コミットプロトコルに関する記述のうち、適切なものはどれか。

選択肢

参加者は、フェーズ1で調停者にコミット了承の応答を返してしまえば、フェーズ2のコミット要求を受信していなくても、ローカルにコミット処理が進められる。
調停者に障害が発生するタイミングによっては、その回復処理が終わらない限り参加者全員がコミットもロールバックも行えない事態が起こる。(正解)
一つの分散トランザクションに複数の調停者及び参加者が存在し得る。例えば,5個のシステム(プログラム)が関与している場合、調停者の数が2、参加者の数が3となり得る。
フェーズ1で返答のない参加者が存在しても、調停者は強制的にそのトランザクションをコミットすることができる。

2相コミットプロトコルの特徴と課題【午前2 解説】

要点まとめ

  • 結論:2相コミットプロトコルでは調停者の障害時に全参加者が処理停止し、回復までコミットもロールバックもできない状態が発生する。
  • 根拠:調停者が全体の意思決定を管理し、参加者は調停者の指示なしに処理を進められないため、調停者障害時は待機状態になる。
  • 差がつくポイント:調停者の役割と障害時の影響を正確に理解し、参加者が独自にコミットできない点を押さえることが重要。

正解の理由

は、調停者の障害がトランザクション全体の進行を停止させることを正しく説明しています。2相コミットは調停者が全体の合意を取りまとめるため、調停者が障害で停止すると、参加者はコミットもロールバックもできず、回復処理が完了するまで待機状態になります。これが2相コミットの大きな課題の一つです。

よくある誤解

参加者はフェーズ1でコミット了承を返したら自律的にコミットできると誤解しがちですが、実際は調停者の最終指示が必要です。調停者が複数存在することもありません。

解法ステップ

  1. 2相コミットプロトコルの役割分担(調停者と参加者)を確認する。
  2. フェーズ1(準備フェーズ)とフェーズ2(コミット/ロールバックフェーズ)の流れを理解する。
  3. 調停者の障害時の影響を考慮し、参加者の動作制限を把握する。
  4. 選択肢の内容と照らし合わせて正誤を判断する。

選択肢別の誤答解説

  • ア:参加者はフェーズ1で了承応答を返しても、調停者のコミット指示がない限りローカルでコミット処理を進められません。
  • :正解。調停者障害時に全参加者が処理停止し、回復まで待機状態になることを正しく説明。
  • ウ:2相コミットでは調停者は1つで、複数の調停者が存在することはありません。
  • エ:フェーズ1で返答のない参加者がいる場合、調停者は強制コミットできず、トランザクションは中断されます。

補足コラム

2相コミットプロトコルは分散トランザクションの整合性を保証する基本的な手法ですが、調停者の単一障害点問題やブロッキング問題が課題です。これを解決するために3相コミットやPaxosなどの分散合意アルゴリズムが提案されています。

FAQ

Q: 参加者はなぜ調停者の指示なしにコミットできないのですか?
A: 参加者が独自にコミットすると整合性が崩れるため、調停者の全体合意が必須です。
Q: 調停者が障害から回復したらどうなりますか?
A: 調停者はログを参照してトランザクションの状態を復元し、参加者に指示を再送して処理を再開します。

関連キーワード: 2相コミット、分散トランザクション、調停者、参加者、障害回復、トランザクション整合性
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について