DBデータベーススペシャリスト試験 午前Ⅱ

平成25年度春期 データベーススペシャリスト 午前Ⅱ 問13

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

問題

2相コミットで分散トランザクションの原子性を保証する場合,ネットワーク障害の発生によって参加者のトランザクションが,コミットすべきかロールバックすべきかを判断できなくなることがある。このような状況を発生させるネットワーク障害に関する説明として,適切なものはどれか。

選択肢

  1. ア
    調停者のトランザクションが,コミット又はロールバック可否の問合せを参加者に送る直前に障害になった。
  2. イ
    調停者のトランザクションが,コミット又はロールバックの決定を参加者に送る直前に障害になった。
  3. ウ
    調停者のトランザクションに,コミット又はロールバック可否の応答を参加者が返す直前に障害になった。
  4. エ
    調停者のトランザクションに,コミット又はロールバックの完了を参加者が返す直前に障害になった。
解き方のヒントを見る

トランザクション境界を見極める視点

トランザクションの開始から終了までを一つのまとまりとして捉え、処理途中の状態と確定後の状態を分けて確認しましょう。各操作の役割を時系列で整理すると、整合性を考える軸が明確になります。

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

一つの処理単位がどこで区切られ、途中の変更がいつ確定または取り消しの対象になるかに注目し、境界の前後でデータの状態を整理してください。

視点

処理を個別の操作の集合として眺めるのではなく、関連する変更を同じ処理単位として追跡します。境界の位置、途中経過、終了後に期待される一貫した状態を区別して考えると、整合性に関する論点を整理しやすくなります。

確認ポイント

  • 処理単位の開始点と終了点を時系列で整理する
  • 各操作が途中状態か確定後の状態かを区別する
  • 境界をまたぐ前後で整合性の観点を一つずつ確認する
正解と解説を見る

正解

イ

解説

二相コミットでは、調停者が参加者の準備結果を集めた後、コミットまたはロールバックの最終決定を参加者へ通知する。最終決定の通知前に調停者が障害になると、参加者は自分の処理結果を確定できず、判断不能な状態になる。

理由

参加者はまずコミット又はロールバックの可否を調停者へ応答し、その後、調停者が全参加者の結果を基に最終決定を通知する。最終決定が届かなければ、参加者は処理を確定できない。

比較

問合せや可否の応答に関する通信障害では、最終決定そのものが未通知とは限らない。一方、最終決定を送る直前の障害では、参加者が決定を受け取れず、コミットかロールバックかを判断できなくなる。

選択肢ア

これは不正解だよ。可否の問合せは、調停者が参加者の準備状況を確認するための段階である。この直前に調停者が障害になっても、設問が想定する最終決定の通知直前の不確定状態を直接示してはいない。

選択肢イ(正解)

これは正解だよ。参加者から可否の応答を集めた後、調停者はコミット又はロールバックを決定して参加者へ通知する。その決定を送る直前に障害が起きると、参加者は最終結果を判断できなくなる。

選択肢ウ

これは不正解だよ。参加者が可否の応答を返す直前は、調停者が準備状況を集める途中の段階である。ここでは最終的なコミット又はロールバックの決定が参加者へ通知される場面とは異なる。

選択肢エ

これは不正解だよ。参加者が完了を返す直前という状況は、コミット又はロールバックの決定を受けた後の処理段階である。参加者が最終決定を判断できない原因となる、決定通知前の障害とは一致しない。

学習のポイント

二相コミットの準備段階と最終決定通知段階の役割を区別して理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成25年度春期 データベーススペシャリスト試験 午前Ⅱ 問13(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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