応用情報技術者試験 令和5年秋 午前問30 解説付き過去問
問題
DBMSをシステム障害発生後に再立上げするとき、ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして、適切なものはどれか。
ここで、トランザクションの中で実行される処理内容は次のとおりとする。


正解
解説
この問題は、システム障害発生後に、どのトランザクションをロールフォワードし、どのトランザクションをロールバックすべきかを判断するものです。
チェックポイント法を前提とした障害回復処理の流れを理解し、各トランザクションの状態から適切な処理を導き出します。
- チェックポイントと障害回復の仕組み
- ロールフォワード
チェックポイント以降にコミットされたトランザクションの更新内容を、更新後ログを用いてデータベースに反映する。 - ロールバック
障害発生時点でコミットされていないトランザクションについて、更新前ログを用いて処理を取り消す。 - トランザクションの状態確認
- T1:チェックポイントより前にコミット → ロールフォワードもロールバックも不要
- T2:チェックポイント後にコミット → ロールフォワード対象
- T3:実行中だが書込み処理なし → ログ未生成 → ロールバック不要
- T4:実行中だが書込み処理なし → ログ未生成 → ロールバック不要
- T5:チェックポイント後にコミット → ロールフォワード対象
- T6:実行中かつ書込み処理あり → ログあり → ロールバック対象
- 最終的な処理判断
- ロールフォワードすべきトランザクション:T2, T5
- ロールバックすべきトランザクション:T6
- 処理不要(リカバリ対象外):T1, T3, T4
チェックポイント法では、障害発生時にデータベースの状態は直前のチェックポイントの状態に戻されます。
その後、障害発生直前の状態に復旧するために、以下の2つの操作が行われます。
問題図から、各トランザクションの処理状況とログ記録の有無を確認します。
まとめると、次のようになります。
したがって、正しい組合せは T2・T5 がロールフォワード、T6 がロールバックとなります。