기술 정보
home
채널 소개
home

25001 에러 및 서비스 지연 현상 해결

문서 유형
장애 해결
분야
모니터링/점검
키워드
ERROR_XA_PROTO
적용 제품 버전
6FS06
오류 코드
25001

현상

slog에 ERROR_XA_PROTO(-25001)가 발생하며 서비스가 지연됩니다.
[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]
SQL
복사

원인

해당 세션에서 이미 처리하고 있는 분산 트랜잭션이 있으나, 다시 분산 트랙잭션을 시작하려는 요청이 오는 경우 이러한 현상이 발생합니다.

해결

DBA의 판단 하에 dba_2pc_pending을 조회해 수동으로 처리합니다.
이는, 분산 트랙잭션 프로토콜 상 in-doubt tx가 있을때 commit, rollback 여부를 DB가 자체적으로 판단할 수 없기 때문에 DBA의 판단이 필요합니다.

1. 대상 확인

DBA_2PC_PENDING 뷰는 현재 정체되고 있는 XA 트랜잭션 브랜치(XA Transaction Branch)의 정보를 보여주는 뷰입니다.
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.
SQL
복사

2. Commit, Rollback 처리

원하는 XA 트랜잭션 브랜치에 커밋 명령을 실행할 수 있습니다. 이 때 해당 XA 트랜잭션 브랜치에서 점유하고 있던 리소스는 반환되고 해당 트랜잭션은 커밋됩니다.
LOCAL_TRAN_ID = 트랜잭션 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.
SQL
복사
참고
DBA_2PC_PENDING 뷰: 현재 정체되고 있는 XA 트랜잭션 브랜치(XA Transaction Branch)의 정보를 보여주는 뷰 입니다.