平成19年 春期 ソフトウェア開発技術者 午前 問67

トランザクションAとBが、共通の資源であるテーブルaとbを表のように更新するとき、デッドロックとなるのはどの時点か。
ここで、表中の@〜Gは処理の実行順序を示す。
また、ロックはテーブルの更新直前に行い、アンロックはトランザクションの終了後に行うものとする。

 ア  B
 イ  C
 ウ  D
 エ  E


答え エ


解説
トランザクションの動きを追って確認します。

B  トランザクションAがテーブルaをロックします。
C  トランザクションBがテーブルbをロックします。
D  トランザクションAはトランザクションBがロックしているテーブルbのアンロック待ちになります。
トランザクションAは停止、トランザクションBは、この時点ではまだ動作しています。
E  トランザクションBはトランザクションAがロックしているテーブルaのアンロック待ちになります。
この時点で、トランザクションA、トランザクションBの両方が停止したので、デッドロック状態です。


キーワード
・デッドロック

キーワードの解説

戻る 一覧へ 次へ