平成28年度 春期 午前Ⅱ 問14
トランザクション処理
2相コミットの処理手順
分散データベースシステムにおいて,複数のデータベースを更新する場合に用いられる2相コミットの処理手順として,適切なものはどれか。
- ア主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
- イ主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
- ウ主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
- エ主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
答えと解説を見る
✓ これが正解イ主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
解説
全サイトがコミットできると確かめてから、コミットを発行します。
2相コミットは、名前のとおり二つの段階で進みます。第1段階では、主サイトが各サイトにコミットの準備ができたかを問い合わせ、各サイトは準備ができたかできないかを応答します。第2段階では、すべてのサイトから準備完了の応答がそろった場合に限り主サイトがコミットを発行し、一つでもできないという応答があるか応答が返らなければ、全サイトにロールバックを指示します。先に全サイトの可否を確かめることで、一部のサイトだけがコミットするという食い違いを防ぎます。確認してから実行、の2段階という骨組みを押さえると、手順の説明を見分けられます。
ほかの選択肢はなぜ違うのか
- ア主サイトが各データベースサイトにコミット…:準備要求に対して、各サイトは準備ができた場合も、できない場合も応答を返します。準備ができていない場合だけ応答する形では、応答がないことが準備完了なのか障害なのかを区別できません。
- ウ主サイトは,各データベースサイトにコミッ…:確認をせずにいきなりコミットを発行し、失敗したらやり直すという手順です。一部のサイトだけがコミットし、残りが失敗したままという状態が起こり得るので、2相コミットの手順ではありません。
- エ主サイトは,各データベースサイトのロック…:ロックを取ってからコミットし、ロックを解除するという流れには、各サイトがコミットできるかを確かめる段階がありません。2相コミットの要である準備の問い合わせと応答が抜けています。
この問題の用語
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)