Middleware를 이용한 효과적인 Resource의 관리
1. TP Monitor 의 Architecture
- 일반적인 TP monitor의 Design은 3-tier architecture design 을 가진다.
- Client는 Presentation logic만 신경을 쓰면 된다.
- TP monitor API는 Database와의 통신에 이용 된다.
가. DB 와의 API를 제공
나. Transaction의 관리
다. Transaction management code를 가지고 있다.
2. X/Open DTP(Distributed Transaction Processing) Model
- 이기종 RM(Resource Manager)를 공유할 수 있는 복수개의 application
program간에 상호 규약을 정의한 architecture 를 말한다.
- X/Open company에 의해 제정 되었다.
- 이 규약은 여러 RM과 여러 AP 간의 standard interface 를 정의 하였다.
그리고 xa() ,ax() 등과 같은 표준 interface로만 통신하므로 호환이 가능.
---> xa() ... --->
TM(Tuxedo,CICS... ) 표준 Interface RM(Oracle,Informix..)
<--- ax() ... <---
3. Oracle*XA 란
Oracle product는 X/Open DTP 규약의 XA interface를 따른다. 결국,Oracle XA는 libxa.a 라는 library 형태로 Oracle은 제공 하고 있다.
그리고, Pro*C 등의 compile시 link가 되어서 setup 된다. Oracle은 XA규약과는 무관한 즉, Non-XA인 Oracle Server가 관장하는 2 Phase commit 을 이용한 DTP의 관리도 가능하고 여기에 대해서도 설명을 하겠다.
4. X/Open DTP Model의 구성요소
1) AP (Application Program) .
Transaction의 영역과 transaction을 구성하는 action들을 규정한다.
2) RM (Resource Manager) .
Database와 같은 shared resource 에 대한 access 제공
3) TM (Transaction Manager) .
Transaction의 id(XIDs) 를 할당하고 해당 XID의 Transaction을 monitor
하고 coordinate 한다.
4) TM 이 생성하는 XID는 Oracle의 Tx id와는 format이 다름.
5) AP,TM,RM 의 상호 작용
a. AP 에서 tx_begin() 으로 transaction 의 시작
b. TM 은 tx_begin()을 receive 받아 새로운 Xid 를 생성 후 RM 에게 Xid를
건네 준다.
c. 전달받은 Xid를 이용 RM 은 xa_start() 를 oracle server process에게 전달.
d. Oracle에서 처리 후 success 면 confirmation을 AP 로 전달함.
e. 이 후 는 AP 와 RM 간에 SQL 을 통하여 처리 가 됨.
5. XA 에서 요구되는 RM 의 조건
1) 한 Transaction을 한 Application server process에서 다른 application
process 로 옮길 수 있어야 한다.
2) 분리된 Process 간에 commit 도 보장 되어야 한다.
session과 Transaction 은 어떤 특정 Application Server Process 와
연결된 stat를 가질 수 없다.
3) 이러한 일련의 과정을 TPM 이 GTID(Global Transaction Id) 를 가지고
관리 한다.
|