ENABLING TABLE LOCK FAILS WITH ORA-00054 DUE TO PENDING DISTRIBUTED TRANSACTIONS (Doc ID 1301281.1)

Last updated on MAY 05, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 9.2.0.1 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


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;





Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms