High severitylocking
Oracle Database Error:
ORA-00060
What does this error mean?
Two or more sessions are waiting on each other's locks, forming a cycle that Oracle automatically breaks by rolling back one of the statements.
Common causes
- 1Two pipeline branches update the same rows in opposite order
- 2Missing indexes cause full table scans that lock many rows
- 3Row-level triggers acquire locks in a different order than the calling statement
- 4Parallel pipeline activities update parent and child tables in different sequences
How to fix it
- 1Step 1: Check the Oracle trace file referenced in the alert log for the full deadlock graph.
- 2Step 2: Ensure all pipelines that touch the same tables lock rows in the same order.
- 3Step 3: Add indexes on foreign key columns to reduce the scope of locks during DML.
- 4Step 4: Reduce transaction size — commit smaller batches to release locks faster.
- 5Step 5: Add retry logic in the pipeline: Oracle rolls back only the statement, not the transaction, so a retry is safe.
Example log output
ORA-00060: deadlock detected while waiting for resource
See Note 60 in the trace file.