Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> deadlock detection
How does oracle detect deadlocks? Here is my best guess. Oracle's lock manager tracks locks at the object level, but not at the row level.
transaction A locks row 1 in table A
transaction B locks row 1 in table B
Transaction A attempts to lock row 1 in table B, but is forced to wait. Transaction B attempts to lock row 1 in table A, but is forced to wait.
The oracle lock manager notes that this at the object level. So it is possible that this is a deadlock. The lock manager then checks the transaction table for the row that is locked in each table and from that can determine whether this is a deadlock condition.
Am I correct?
![]() |
![]() |