トランザクション処理 (全58問中52問目)
No.52
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新可能かどうかを問い合わせ,すべてのサイトが更新可能であることを確認した後,データベースの更新処理を行う方式はどれか。
出典:平成17年秋期 問63
- 2相コミット
- 排他制御
- ロールバック
- ロールフォワード
- [出題歴]
- 基本情報技術者 H14春期 問69
- 基本情報技術者 H29春期 問28
分類
テクノロジ系 » データベース » トランザクション処理
正解
ア
解説
2相コミットは、トランザクションを、他のサイトに更新可能かどうかを確認する第1フェーズと、更新を確定する第2フェーズに分け、各サイトのトランザクションをコミットもロールバックも可能な中間状態(セキュア状態)にした後、全サイトがコミットできる場合だけトランザクションをコミットするという方法で分散データベース環境でのトランザクションの原子性・一貫性を保証する手法です。
具体的には、コミットの調整を行う1つのノードを「調停者」、ネットワーク上の他のノードを「参加者」として、次の手順でコミットが行われます。
具体的には、コミットの調整を行う1つのノードを「調停者」、ネットワーク上の他のノードを「参加者」として、次の手順でコミットが行われます。
- 調停者となったノードはネットワーク上の他のノードにコミットの可否を問い合わせる。
- 全参加者からコミットの合意を得られた場合は、全参加者にコミットの実行要求を発行する。コミットの停止を応答した参加者がいた場合、またはタイムアウトとなった場合は、全参加者にロールバックの実行要求を発行する。
- 各参加者は、コミット(またはロールバック)の完了とともに調停者に処理完了のメッセージを送る。
- 調停者が、全参加者からの処理完了メッセージを受け取り、トランザクションの完了となる。
- 正しい。
- 排他制御は、トランザクションの整合性を保つために1つのタスクがトランザクションを実行している間は、その処理が終わるまで他のタスクからのトランザクション要求を待機させる方法です。
- ロールバックは、トランザクションの途中、プログラムのバグなどでアプリケーションが強制終了した場合に、更新前ログを用いてデータベースをトランザクション開始直前の状態に戻す処理です。
- ロールフォワードは、更新後ログを用いて今まで処理したトランザクションを再現し、システム障害直前までデータベース情報を復帰させる処理です。