Oracle Database / Operations & Incident Response
ORA-02049: investigate a lock timeout in a distributed transaction
A remote transaction can wait until its distributed lock timeout expires. The actual blocker may be on another database.
Environment and inputs: Oracle Database 19c baseline · SQL*Plus-compatible SQL unless RMAN, DGMGRL, ADRCI or a host shell is specified. Check release, patch level, edition and container first.
Start with this diagnostic
Use the stated SQL, RMAN, DGMGRL or host shell and replace sample names with approved targets. DBA and V$ views need authorized catalog access in the correct container. Do not grant broad privileges for an example.
SELECT sid, serial#, event, blocking_session FROM v$session WHERE type = 'USER' AND wait_class <> 'Idle';
Read the result
The local snapshot may show only part of the wait chain. Remote transaction and session evidence are needed to identify the holding operation.
Resolve and verify
Correlate the database link, transaction identifiers and timestamps across participants. Correct lock ordering or transaction duration and apply a safe retry policy.
Operational precautions
Do not merely raise the distributed timeout or force a remote transaction outcome without coordination.