티스토리 뷰
XA는 2PC(2 phase commit)을 통한 분산 트렌젝션 처리를 위한 X-Open에서 명시한 표준.
예를 들어 Oracle데이타베이스와 IBM DB2 데이타베이스간에 2단계검증을 통한 2PC를 보장하여 트렌젝션을 보장시켜주는 것.
등록 된 하나 이상의 데이터베이스 간에 2PC 트랜잭션이 보장되어야 할 때 XA datasource 사용
하나 이상이 데이터베이스를 접근하더라도, 굳이 트랜잭션이 보장되어야 할 필요성이 없다면 Non-XA-datasource 사용하면 됨
[트랜잭션 수행 단계]
# 2PC
begin -> end -> prepare -> commit
글로벌 트랜잭션을 하려면 반드시 2PC를 해야만 한다.
글로벌 트랜잭션은 여러 리소스 사이에서 처리하는 작업이기 때문에 "분산" 트랜잭션(Distribute Transaction)이라고도 함.
# 1PC
begin -> end -> commit
트랜잭션에 참여한 리소스들이 서로 같은 리소스라고 확인이 되었을 경우에는 prepare가 필요없다
위와 같이 처리하는것을 1PC(one-phase-commit)이라고 부름.
이렇게하면 prepare를 안해도 되므로 트랜잭션의 처리 성능 향상에 도움을 줄 수 있다.
따라서 1PC는 트랜잭션 성능 향상(Transaction optimization)의 한 방법이다.
주의할 것은 1PC도 글로벌 트랜잭션이다. 로컬 트랜잭션 아님.
<XA JDBC를 사용하는 이유>
-> JTA를 사용하기 위함임
-> 데이터베이스 두개 이상을 사용하거나, XA스펙을 지원하는 자원일 경우 2단계 커밋 지원 -> 안정적 트랜잭션 처리
찍어서 풀지말고 확실하게 알고 풀자!
영어공부를 어디서부터 시작해야 할지 모른다면?
지금 바로 해커스에서 무료로 내 영어실력 확인하기
▽▽▽▽▽▽ 바로가기
※ 해당 광고클릭은 필자에게 경제적으로 큰 도움이 됩니다.
'IT > ORACLE_DB_SQL' 카테고리의 다른 글
SQLPLUS 이전 쿼리 다시 수행하는 방법/실행 쿼리 수정방법 (0) | 2022.12.23 |
---|---|
[ORACLE] ORA 01858 해결법 (0) | 2022.11.25 |
ORACLE/Synonym 간단 정리 및 응용 쿼리 (0) | 2021.06.18 |
ORACLE/ojdbc 버전 'ORA-28040' 해결 (0) | 2021.06.15 |
ORACLE/ 계정권한 'ORA-01012: 로그온되지 않았습니다.' (0) | 2021.06.15 |