分散トランザクション処理で利用される2相コミットプロトコルでは、コミット処理を開始する調停者(coordinator)と、調停者からの指示を受信してから必要なアクションを開始する参加者(participant)がいる。
この2相コミットプロトコルに関する記述のうち、適切なものはどれか。
ア | 参加者は、フェーズ1で調停者にコミット了承の応答を返してしまえば、フェーズ2のコミット要求を受信しなくても、ローカルにコミット処理が進められる。 |
イ | 調停者に障害が発生するタイミングによっては、その回復処理が終わらない限り、参加者全員がコミットもロールバックも行えない事態が起こる。 |
ウ | 一つの分散トランザクションに複数の調停者及び参加者が存在し得る。 例えば、5個のシステム(プログラム)が関与している場合、調停者数が2、参加者の数が3となり得る。 |
エ | フェーズ1で返答のない参加者が存在しても、調停者は強制的にそのトランザクションをコミットすることができる。 |
答え イ
【解説】
ア | 参加者は、フェーズ2のコミット要求を受信してからコミットを行う。 |
イ | 調停者がフェーズ1の問い合わせ実施後に障害が発生すると、参加者はフェーズ2待ちで止まってしまい、調停者の回復を待つことになる。 |
ウ | 2相コミットプロトコルで調停者は必ず1つである。 |
エ | 調停者はフェーズ1の問い合わせに対し、全参加者から応答を受信しないと、フェーズ2のコミット要求は行えない。 |
【キーワード】
・コミット
・2相コミットプロトコル