Document Type | Troubleshooting
Category | Monitoring/Inspection
Applicable Product Version | 6FS06
Document Number | TMOTS021
Issue
An ERROR_XA_PROTO(-25001) occurs in the slog, causing service delays.
[I] Session is associated with some xa branch. XA request other than XA_END cannot be accepted. type=xa_start [I] THROW. ec=ERROR_XA_PROTO(-25001) [ XA protocol error. ] (csr_id:4294967295) [tbsvr_msg_xa.c:146:tbsvr_msg_xa_common]
Cause
This issue occurs when there is already a distributed transaction being processed in the session, but a request to start another distributed transaction is received.
Solutions
Under the DBA's judgment, query dba_2pc_pending and handle manually.
This is because, according to the distributed transaction protocol, when there is an in-doubt transaction, the database cannot determine commit or rollback on its own, so the DBA's judgment is required.
1. Identify Target
The DBA_2PC_PENDING view shows information about XA transaction branches that are currently stalled.
SQL> SELECT LOCAL_TRAN_ID, XID, STATUS FROM DBA_2PC_PENDING; LOCAL_TRAN_ID ------------------------------------- XID ------------------------------------- STATUS --------------- 2.16.18 1.1000.1000 PREPARED 1 selected.
2. Commit or Rollback Processing
You can execute a commit command on the desired XA transaction branch. At this time, resources held by the XA transaction branch are released and the transaction is committed.
- LOCAL_TRAN_ID = Transaction ID
SQL> SELECT LOCAL_TRAN_ID, XID, STATUS FROM DBA_2PC_PENDING; LOCAL_TRAN_ID ------------------------------------- XID ------------------------------------- STATUS --------------- 2.16.18 1.1000.1000 PREPARED 1 selected.
NoteThe DBA_2PC_PENDING view shows information about XA transaction branches that are currently stalled.