ENABLING TABLE LOCK FAILS WITH ORA-00054 DUE TO PENDING DISTRIBUTED TRANSACTIONS
(Doc ID 1301281.1)
Last updated on FEBRUARY 12, 2020
Applies to:
Oracle Database - Enterprise Edition - Version 9.2.0.1 and laterOracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Information in this document applies to any platform.
Symptoms
Enabling table DDL lock fails with the ORA-00054 error
SQL> alter table test enable table lock;
alter table test enable table lock
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
alter table test enable table lock
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
There are no blocking sessions in the database.
A restart of the database, even in RESTRICT mode, does not resolve the issue.
A check of the DBA_2PC VIEWS reveals that there are pending distributed transactions to be recovered.
SELECT * FROM DBA_2PC_PENDING;
SELECT * FROM DBA_2PC_NEIGHBORS;
SELECT * FROM DBA_2PC_NEIGHBORS;
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |