SC情報処理安全確保支援士試験 午前Ⅱ

平成27年度春期 情報処理安全確保支援士 午前Ⅱ 問21

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

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

2相コミットで調停者が止まると何が困る?

2相コミットでは、調停者が「準備してね」と参加者に聞いたあとに止まってしまうと、参加者は「確定していいの?取り消すの?」を自分だけでは決められないよ。たとえるなら、幹事が全員に「注文の準備OK?」と確認した直後に連絡不能になり、店員も参加者も注文確定かキャンセルか判断できず待つしかない状態だね。このように、指示待ちで処理が止まることがあるんだ。

この問題で問われていること

2相コミットには、調停者の障害によって参加者がcommitかrollbackかを決められず、処理がブロックされる場合がある、というblocking問題を理解しているかがポイントだよ。

2PC Blocking

in two-phase commit、 participants can remain blocked waiting for the coordinator's final decision if the coordinator fails

prepare phase\ncoordinator fails\nparticipants cannot decide alone\nwait for final decision

確認ポイント

  • 調停者障害時の待ち状態を見る。
  • 参加者は単独確定できない。
  • 2 相コミットの欠点として覚える。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。参加者がフェーズ1で「コミットしてもいいよ」と返しただけでは、まだ本当にコミットしてはいけないよ。これは結婚式の出欠で「行けます」と返事した段階で、まだ式が正式開催かどうかの連絡を待つようなものだね。フェーズ2で調停者から正式に「コミットして」と言われてから処理を進める必要があるよ。

選択肢イ(正解)

これは正解だよ。調停者が「コミットするか中止するか」を最後に指示する係なので、その人が途中で倒れると、参加者は勝手に判断できなくなることがあるよ。たとえると、合鍵を持った管理人だけが「店を開けるか閉めるか」を決める場面で、管理人が連絡不能になる感じだね。回復するまで参加者が待たされることがあり、これが2相コミットの弱点だよ。

選択肢ウ

これは不正解だよ。2相コミットでは、基本的に一つの取引をまとめる「窓口役」の調停者は1人で、参加者が複数いる形になるよ。旅行の幹事が1人いて、参加メンバー全員に「行ける?」と確認するイメージだね。幹事が何人も同時に別々の判断をすると、話が食い違うので、この説明は間違いだよ。

選択肢エ

これは不正解だよ。フェーズ1で返事がない参加者がいるのに強制コミットするのは危ないよ。全員に「準備OK?」と聞いて、誰かが返事しないまま出発したら、その人だけ準備できていないかもしれないよね。2相コミットでは全員の了承がそろわなければ、基本的にコミットには進めないんだ。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度春期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針