問題
デッドロック発生時の対処は何か。
選択肢
- 1いずれかのトランザクションをロールバック
- 2全トランザクション強制終了
- 3そのまま放置
- 4DB再起動
正解
1. いずれかのトランザクションをロールバック
詳しい解説を見る解説を閉じる
解説
デッドロックは、複数のトランザクションが互いに相手の確保した資源のロック解放を待ち合い、どちらも先に進めなくなる状態である。放置しても自然には解消しないため、DBMSはデッドロックを検出すると、いずれか一方のトランザクションを犠牲として選んでロールバックし、ロックを解放してもう一方を先に進めるのが通常の対処である。全トランザクションの強制終了は影響が過大で不要。そのまま放置すれば待ち状態が永続し業務が停止する。DB再起動は最終手段であり通常の対処ではない。基本情報技術者試験では、デッドロックの発生条件(互いに逆順で資源をロックする)と予防策(資源へのアクセス順序を全トランザクションで統一する)も併せて頻出する。
一問一答
科目A 180問+科目B 60問