平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問12
テクノロジ/データベース分散データベースシステムにおいて,複数のデータベースを更新する場合に用いられる 2 相コミットの処理手順として,適切なものはどれか。
出典:平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問12
- ア主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
- イ主サイトは,各データベースサイトにコミットが可能であることを確認した後,コミットを発行する。
- ウ主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
- エ主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
正解:イ
解説
2相コミットは,まず主サイト(調停者)が各データベースサイトにコミット可否を問い合わせ,全てのサイトからコミット可能である旨の応答を得てから,実際にコミットを指示するという2段階の手順で実行されます。
選択肢ごとの解説
- ア誤り。準備ができていない場合だけでなく,準備ができた場合にもその旨の応答を返す必要があり,主サイトは全サイトからの応答を待ってコミット可否を判断します。
- イ正しい。主サイトは各データベースサイトにコミットが可能かどうかを確認したうえで,全サイトが可能であることを確認してからコミットを発行します。
- ウ誤り。コミットが失敗した場合に単純に再度コミットを発行するのではなく,2相コミットでは事前の準備確認(第1相)によって失敗を防ぐ仕組みになっています。
- エ誤り。ロックの成功だけでコミットを発行するのではなく,各サイトにコミット可否を確認する準備フェーズを経る必要があります。