결합도의 정도에 따라 한 모듈이 다른 모듈에 지나치게 많이 의존할 때 단단한 결합(tight coupling)이라 하며 느슨한 결합(Loose Coupling)은 서비스가 자신의 독립성을 여전히 유지하면서 다른 서비스의 정보를 요구하는 조건이다.
- Tightly Coupled Branches
Two Phase Commit : Read-only Optimization
[prepare for all branches, commit for last branch]
Serialization : Database Call
- Loosely Coupled Branches
Two Phase Commit : Two phases
[prepare and commit for all branches]
Serialization : None
X/OPEN DTP MODEL에서 Transaction Manager(TM)는 Resource Manager(RM)가 제공하는 XA Interface에서 사용되는 Transaction Identifier(XID)의 해석에 따라 강한 연결(Tightly-Coupled Relationship)과 약한 연결(Loosely-Coupled Relationship), 두 가지 형태에 의해 Transaction Tree를 형성한다.
강한 연결은 동일한 GlobalTransaction에 속해 있는 프로세스들이 동일한 RM을 사용하고 동일한 XID를 사용하는 경우이다. 강한 연결에서 RM은 프로세스들이 요청한 작업에 대해 전체를 하나의 Transaction으로 취급하기 때문에 서로 Data와 Lock을 공유한다.
약한 연결에서는 각각의 작업에 대해 Transaction Branch를 만든다. 즉, 서로 다른 XID를 사용한다.
약한 연결에서는 서로 다른 XID를 사용하므로 RM은 이들을 서로 별개의 Transaction으로 취급하고 서로 Lock을 공유할 수 없다. 그러므로 Transaction Branch간에 Deadlock이 발생할 수 있다.
TUXEDO에서는 동일한 자원을 사용하는 프로세스들을 하나 의 GROUP으로 묶어서 GROUP안에서는 강한 연결을 사용하고 서로 다른 GROUP간의 연결은 약한 연결을 사용한다.
TUXEDO에서 동일한 Database를 사용하는 프로세스를 하나의 GROUP으로 묶는 이유는 Deadlock 을 최소로 하기위함이다.
'▶ Tuxedo > 기술자료' 카테고리의 다른 글
▶ Transaction Level을 알아냄 (0) | 2012.02.23 |
---|---|
▶ Oracle XA 관련 환경변수 (0) | 2012.02.23 |
▶ Tuxedo AP 서버가 비정상 종료한 경우 (0) | 2012.02.23 |
Tuxedo 환경정보에 GW_VALIDATE_HOST=YES 옵션 (0) | 2012.02.23 |
TUXWA4ORACLE (0) | 2012.02.23 |