XA 라이브러리와 게이트웨이
본 장에서는 XA 라이브러리와 XA 게이트웨이에 대한 개념과 환경설정 방법에 대해서 설명한다.
1. 개념
X/Open XA는 2PC(2 Phase Commit)를 통한 분산 트랜잭션 처리를 위해 X/Open에서 명시한 표준이다. XA는 DBMS 벤더별로 제공하고 있으며, 이 표준 규약을 통해서 이기종 간의 트랜잭션이 보장된다. Tmax에서는 이러한 XA 라이브러리와 XA 게이트웨이를 통해 XA를 제공함으로서 이기종과의 2PC를 보장한다.
2. 환경설정
본 절에서는 XA 라이브러리와 XA 게이트웨이의 환경설정 방법에 대해 설명한다.
2.1. XA 라이브러리
XA 라이브러리명은 <libtxa.so>이다.
Tmax 시스템과 연동하여 트랜잭션을 처리할 애플리케이션은 Tmax의 XA 라이브러리를 함께 연결하여 사용해야 한다.
또한 애플리케이션이 Tmax의 버퍼형인 FIELD/STRUCT형 버퍼를 사용할 때는 환경변수로 SDLFILE 또는 FDLFILE을 다음과 같이 설정해야 한다.
export SDLFILE=/usr/home/tmax/tmax.sdl export FDLFILE=/usr/home/tmax/tmax.fdl
Tmax에서 제공하는 XA 라이브러리를 이용하여 XA API를 사용하려면 xa-switch를 설정해야 한다. xa-swtch명은 tmaxxaosw로서 Tmax와 트랜잭션을 연동할 애플리케이션에서 설정한다. XA 라이브러리 설정 예제와 실제 애플리케이션에서 이 라이브러리를 연동하는 Makefile은 예제를 참조한다.
항목들은 구분자(+)로 구별하여 각각 설정해야 한다. |
필수 항목
아래의 field는 대소문자를 구별하므로 반드시 아래의 문자열로 설정해야 한다.
-
host = ip:port
-
XA 게이트웨이가 listen하고 있는 IP와 포트 정보는 구분자인 콜론(:)으로 구별하여 설정한다.
-
IPv6 프로토콜을 사용할 경우에는 IP와 포트 번호를 구분하기 위해서 IP 주소에 대괄호 ([ ])로 감싸준다. 또한 ipv6 항목을 'y’로 설정한다.
host = [2011::100:200]:9500+ipv6=y
-
선택 항목
-
timeout = int_value
-
ipv6 = [y|n]
-
사용하는 프로토콜을 설정한다.
-
다음은 설정값에 대한 설명이다.
설정값 설명 y
호스트가 IPv6 프로토콜인 경우 설정한다.
n
설정하지 않거나 'N으로 설정하면 IPv4 프로토콜을 사용하여 host로 접속한다.
-
2.2. XA 게이트웨이
XA 게이트웨이는 Tmax의 게이트웨이로 동작을 하며 다른 게이트웨이와 마찬가지로 Tmax의 환경 파일에 등록을 해야 한다.
XA 게이트웨이는 Tmax의 환경 파일 중 GATEWAY 절에 다음과 같이 등록을 해야 한다.
*GATEWAY Gateway Name GWTYPE = { TMAX | TMAXNONX | SNACICS | OSITP | JEUS JEUW_ASYNC | TUXEDO | TUXEDO_ASYNC | WSGW | XAGW } PORTNO = Listen_port NODENAME = 노드명 [DIRECTION = (BIDIR) | IN | OUT,] [TIMEOUT = second,] [LOCAL_IPV6 = Y | N]
필수 항목
항목은 대소문자를 구별하므로 반드시 다음의 문자열로 설정해야 한다.
-
Gateway Name = string
-
GATEWAY 절에는 반드시 GWNAME이 설정되어야 한다. 16자를 넘지 않아야 하며, 알파벳으로 시작해야 한다.
-
-
GWTYPE = string
-
이 필드는 여러 Tmax의 게이트웨이 타입 중에 어떤 게이트웨이 타입인지를 설정하는 것으로 XA 게이트웨이를 사용할 때는 'XAGW’로 설정해야 한다.
-
-
PORTNO =Listen_port
-
XA 게이트웨이가 listen할 포트를 설정하며, 이 포트는 xa_open string의 호스트 설정과 동일한 값이어야 한다.
-
-
NODENAME = 노드명
-
XA 게이트웨이가 기동할 노드명을 설정하며, 노드의 IP는 xa_open string의 호스트 설정과 동일한 값이어야 한다.
-
각 설정 항목에 대한 자세한 내용은 Administration Guide의 환경 파일 설정을 참고한다. |
선택 항목
-
DIRECTION = IN
-
XA 게이트웨이는 IN 채널만 지원하는 게이트웨이이므로 반드시 설정값은 'IN’으로 설정해야 한다.
-
-
TIMEOUT = numeric
-
범위 : 1 ~ 128
-
기본값 : 1
-
단위 : 초
-
게이트웨이를 이용하는 경우 양 도메인의 CLH 프로세스 간 병령 통신 채널 수를 지정한다.
-
게이트웨이 프로세스가 처리량이 아주 많고 서비스의 소요시간이 길 경우 다중 채널을 두어 병렬 통신으로 처리하여 처리속도를 증가시킬 수 있다. TMAXNONTX 타입의 게이트웨이의 경우 2~3개 이하의 CPC로도 충분하다.
-
-
LOCAL_IPV6 = [Y | N]
-
XA 게이트웨이가 listen 소켓을 생성할 때 IPv6 프로토콜을 사용할 것인지 여부를 설정한다.
-
다음은 설정값에 대한 설명이다.
설정값 설명 Y
IPv6 프로토콜을 사용하는 경우 설정한다.
N
설정하지 않거나 'N’으로 지정하면 IPv4 프로토콜을 사용한다.
-
각 설정 항목에 대한 자세한 내용은 Administration Guide의 환경 파일 설정을 참고한다. |
설정 예제
다음은 XA 게이트웨이 설정에 대한 예제이다.
*GATEWAY XAGW1 GWTYPE = XAGW, PORTNO = 10042, NODENAME = tmax1, DIRECTION = IN, TIMEOUT = 30, CPC=5, LOCAL_IPV6 = N