MetricSign
Start free
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

  1. 1Step 1: Check the Oracle trace file referenced in the alert log for the full deadlock graph.
  2. 2Step 2: Ensure all pipelines that touch the same tables lock rows in the same order.
  3. 3Step 3: Add indexes on foreign key columns to reduce the scope of locks during DML.
  4. 4Step 4: Reduce transaction size — commit smaller batches to release locks faster.
  5. 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.

Frequently asked questions

Does Oracle resolve deadlocks automatically?

Oracle detects and resolves deadlocks by rolling back one statement (not the whole transaction). You need to retry the rolled-back statement — it won't retry automatically.

Source · docs.oracle.com/error-help/db/ora-00060

Other locking errors