トランザクション処理 (全65問中22問目)
No.22
トランザクションAとBが,共通の資源であるテーブルaとbを表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①~⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクションの終了後に行うものとする。
出典:平成29年春期 問29
- ③
- ④
- ⑤
- ⑥
- [出題歴]
- ソフトウェア開発技術者 H19春期 問67
分類
テクノロジ系 » データベース » トランザクション処理
正解
エ
解説
デッドロックは、共有資源を使用する2つ以上のプロセスが、互いに相手プロセスの必要とする資源を排他的に使用していて、互いのプロセスが相手が使用している資源の解放を待っている状態に陥ってしまうことをいいます。
テーブルのロックに着目して処理を流れを見ていきましょう。
テーブルのロックに着目して処理を流れを見ていきましょう。
- ③でトランザクションAがテーブルaをロックする。
- ④でトランザクションBがテーブルbをロックする。
- ⑤でトランザクションAがテーブルbをロックしようとするが、既にトランザクションBにロックされているのでトランザクションAは待ち状態となる。
- ⑥でトランザクションBがテーブルaをロックしようとするが、既にトランザクションAにロックされているのでトランザクションBは待ち状態となる。