平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベースデータベース更新における2相コミットに関する記述のうち,適切なものはどれか。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14
- ア2相コミットは,トランザクションの処理途中のデータを他のトランザクションから参照できなくする制御方式のことである。
- イ2相コミットを行うためには,同時に更新しようとする分散データベースの全てが更新可能かどうかを判断するためのやり取りが必要である。
- ウ2相コミットを採用している場合,ロールバックは発生しない。
- エ2相コミットを使えば,通信異常が発生しても,トランザクションをコミットさせることができる。
正解:イ
解説
2相コミットは,分散データベースにおいて複数サイトにまたがるトランザクションを確実に一貫した形でコミット又はロールバックさせるためのプロトコルです。第1相(準備フェーズ)で,コーディネータ(主サイト)が各参加サイトに対して「更新をコミットできるか」を問い合わせ,全参加サイトから準備完了(コミット可能)の応答を得られた場合にのみ,第2相(コミットフェーズ)で実際のコミット指示を出します。
選択肢ごとの解説
- ア誤り。トランザクション処理途中のデータを他のトランザクションから参照できなくする制御は,ロック機構など同時実行制御の役割であり,2相コミットの説明ではありません。
- イ正しい。2相コミットの第1相(準備フェーズ)では,コーディネータが各参加サイトに対して更新可能かどうかを問い合わせ,全サイトからの応答を確認するためのやり取りが必要です。
- ウ誤り。準備フェーズでいずれかの参加サイトが更新不可能と応答した場合など,2相コミットを採用していてもロールバックが発生することがあります。
- エ誤り。通信異常(ネットワーク障害)が発生すると,参加サイトがコミットの最終指示を受け取れず,コミットすべきかロールバックすべきか判断できない不確定状態(in-doubt)に陥ることがあり,必ずコミットさせられるわけではありません。