一つのトランザクションはトランザクションを開始した後、五つの状態(アクティブ、アボート処理、アボート済、コミット処理中、コミット済)をとりえるものとする。
このとき、取ることのない状態遷移はどれか。
遷移前の状態 | 遷移後の状態 | |
ア | アボート処理中 | アボート済 |
イ | アボート処理中 | コミット処理中 |
ウ | コミット処理中 | アボート処理中 |
エ | コミット処理中 | コミット済 |
答え イ
【解説】
トランザクションのアクティブは処理を開始することであり、処理が正常に終わるとコミットを行い、処理が正常に終わらなかった時はアボートする。
そして、正常の場合はコミット処理中の次はコミット済になる。
また、正常でないときは処理中に異常になったときのアボート処理中の次の状態はアボート済と、コミット処理中に異常になったときのアボート処理中である。
ここで、アボート処理中はすでに異常処理なのでここから正常処理系のコミット処理中という状態遷移はあり得ない。
遷移前の状態 | 遷移後の状態 | |
イ | アボート処理中 | コミット処理中 |
【キーワード】
・トランザクション処理