Oracle/etc

2PC_PENDING

pbj1102 2022. 1. 25. 12:20
반응형

-- 분산 트랜잭션 행 확인
select * from DBA_2PC_PENDING;

-- 아래의 쿼리로 행 풀기.
select 'rollback force '''||LOCAL_TRAN_ID||''';' from dba_2pc_pending;

select 'COMMIT force '''||LOCAL_TRAN_ID||''';' from dba_2pc_pending;



-- 안풀리면 서버 들어가서 아래와 같이 강제적으로 정리 COMMIT 진행 필요
exec dbms_transaction.purge_lost_db_entry('105.28.196344');

COMMIT 필수


이유.  JDBC 로 붙을 경우 POOL 형식이 분산트랜잭션을 사용하게 되면 발생됨. 
기본적으로 RAC 경우 2번 노드가 죽으면, 1번노드가 찾아서 Clean up 시키지만 
못 찾게 되면 hang 현상에 빠지게됨

 - 대부분 was 가 비정상적(oom)으로 죽을 경우 발생됨

반응형

'Oracle > etc' 카테고리의 다른 글

Reorg  (0) 2022.01.26
audit  (0) 2022.01.25
SYSAUX  (0) 2022.01.25
undo, rollback  (0) 2022.01.25
sequence  (0) 2022.01.25