令和元年度 秋期 基本情報技術者試験 午前 問28
テクノロジ/データベース一つのトランザクションはトランザクションを開始した後,五つの状態(アクティブ,アボート処理中,アボート済,コミット処理中,コミット済)を取り得るものとする。このとき,取ることのない状態遷移はどれか。 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:令和元年度 秋期 基本情報技術者試験 午前 問28
- ア遷移前の状態:アボート処理中 → 遷移後の状態:アボート済
- イ遷移前の状態:アボート処理中 → 遷移後の状態:コミット処理中
- ウ遷移前の状態:コミット処理中 → 遷移後の状態:アボート処理中
- エ遷移前の状態:コミット処理中 → 遷移後の状態:コミット済
正解:イ
解説
トランザクションはアクティブな状態から,正常終了に向かう「コミット処理中→コミット済」の流れか,異常終了に向かう「アボート処理中→アボート済」の流れのいずれかに進みます。コミット処理中に障害が起きればアボート処理中に切り替わることはあり得ますが,いったん取消し処理を始めたアボート処理中から,改めて確定処理であるコミット処理中に戻ることはありません。
選択肢ごとの解説
- ア誤り。取消し処理が完了してアボート済になる自然な遷移であり,実際に起こり得ます。
- イ正しい。取消しを開始したトランザクションが確定処理に転じることはなく,この遷移は起こり得ません。
- ウ誤り。コミット処理の途中で障害などが発生すれば取消し処理に移ることがあり,起こり得る遷移です。
- エ誤り。確定処理が完了してコミット済になる正常な遷移であり,起こり得ます。