티스토리 뷰

IT/ORACLE_DB_SQL

[DB] XA구조 (XA사용 이유)

긍정탁 2021. 11. 2. 08:54

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단계 커밋 지원 -> 안정적 트랜잭션 처리

 

 

 

찍어서 풀지말고 확실하게 알고 풀자!

영어공부를 어디서부터 시작해야 할지 모른다면?

지금 바로 해커스에서 무료로 내 영어실력 확인하기

▽▽▽▽▽▽ 바로가기

https://bit.ly/3mggc1n

 

해커스인강 기초영어 레벨테스트

 

nefing.com

 

 

※ 해당 광고클릭은 필자에게 경제적으로 큰 도움이 됩니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31