必ず受かる情報処理技術者試験

問題11

ポケットスタディ 基本情報午後・要点整理―即効!7つの知識 (情報処理技術者試験)

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

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

解答・解説を見る

解答:イ

2層コミットプロトコルは一つのトランザクションが複数のサイトの更新を行う場合に整合性をとるため、すべてのサイトからのコミット応答を確認した後でなければコミット指示を出さない方式である。以下の手順で行われる。

  1. 調停者が参加者に対し更新を指示する。
    ⇒ フェーズ1
  2. 参加者はコミットまたはロールバックのいずれかの応答を調停者に返す。
  3. 参加者からの応答により調停者はコミット指示またはロールバック指示を参加者に対して出す。
    ⇒フェーズ2
  4. すべての参加者からのコミット応答があった場合だけ,参加者に対しコミットを指示しデータベースの更新を行う。一方,参加者から一つでもロールバックの応答があった場合,すべての参加者に対してロールバックの指示を出す。
× 参加者は、フェーズ2のコミット要求を受信しなければ、コミット処理を進められない。
参加者は調停者の要求がない限り更新処理を実行できない。したがって調停者に障害が発生した場合には最悪、参加者全員がコミットもロールバックも行えない事態が起こる。
× 一つの分散トランザクションに複数の調停者及び参加者は存在しえない。
× フェーズ1で返答のない参加者が存在する場合、調停者はそのトランザクションをコミットすることができない。
前の問題 次の問題

Copyrithg naruha