応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験日:2025年4月20日(あと1日)

応用情報技術者試験 令和6年秋 午前問27 解説付き過去問

問題

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

正解

解説

2相コミットプロトコルは、分散トランザクションにおいて原子性を保証するための仕組みです。このプロトコルは、調停者と参加者間で以下の2つのフェーズを通じて実行されます:

  1. 準備フェーズ(Prepare Phase)
    調停者が参加者に対して「トランザクションをコミットできるかどうか」を問い合わせ、参加者が「コミット可能」または「ロールバック」と応答します。
  2. コミットフェーズ(Commit Phase)
    調停者が「全員コミット可能」と判断した場合、参加者に「コミット」指示を送ります。一部でも「ロールバック」と応答した場合は、参加者全員に「ロールバック」指示を送ります。

このプロトコルでは、ネットワーク障害が発生すると、特定の状況下で参加者が「コミットすべきか」「ロールバックすべきか」を判断できなくなることがあります。

問題文に記載された状況は、「調停者がコミットまたはロールバックの決定を参加者に送る直前に障害が発生した場合」です。この場合、参加者は準備フェーズで「コミット可能」と応答しており、コミットの決定が通知されていないため、判断ができなくなります。

この状況は2相コミットのデメリットの一つであり、ネットワーク障害や調停者の障害が発生した場合、トランザクションが不確定な状態になることがある点に注意が必要です。