제2장 환경설정

내용 목차

2.1. Tmax 환경설정
2.2. 서버 사용 방법

본 장에서는 MultipleRM을 사용하기 위한 Tmax 환경설정과 서버 사용법에 대해서 설명한다.

2.1. Tmax 환경설정

MultipleRM 서버는 다수의 RM을 지원하기 때문에 한 서버 그룹을 하나의 RM을 표현하는 기존 설정으로는 표현할 수 없다. MultipleRM 서버를 지원하기 위해서 SVGTYPE 항목에 'MTMAX', 'STMAX'를 추가하고, SVGLIST 항목과 RMID 항목을 추가한다.

MTMAX는 STMAX 서버 그룹들의 묶음인 대표 서버 그룹을 표현한다. MTMAX에 속한 서버들은 MultipleRM 서버가 되어 SVGLIST에 있는 STMAX들의 RM들에 대해 처리가 가능해진다.

예를 들어 Tibero와 Oracle이 같은 프로세스에서 동작해야 하고 함께 트랜잭션에 포함되어야 할 경우 STMAX 서버 그룹으로 먼저 Tibero와 Oracle을 설정한다. MTMAX 서버 그룹을 생성하여 SVGLIST에 STMAX 서버 그룹을 설정하고 서버에는 MTMAX 서버 그룹에 속한 서버를 설정하면 MultipleRM 서버 설정이 가능해진다.

다음은 앞에서 설명한 환경설정의 예제이다.

*SVRGROUP
svg_s1        NODENAME = hahehihol,
              DBNAME = ORACLE,
              OPENINFO="Oracle_Xa+SqlNet=KOR04+Acc=P/scott/tiger+SesTm=60",
              TMSNAME = tms_ora,
              SVGTYPE = STMAX

svg_s2        NODENAME = hahehihol,
              DBNAME = TIBERO,
              OPENINFO ="TIBERO_XA:user=scott,pwd=tiger, sestm=60,db=kor01_tibero",
              TMSNAME = tms_tbr,
              SVGTYPE = STMAX

svgm1         NODENAME = hahehihol,
              SVGLIST = "svg_s1,svg_s2",
              SVGTYPE = MTMAX

다음은 STMAX 관련 설정항목으로 아래 항목은 반드시 설정되어야 한다.

항목설명
NODENAME사용할 노드 이름을 설정한다.
DBNAME해당하는 RM의 이름을 표현한다. 현재 'TIBERO', 'ORACLE' 만 지원한다.
OPENINFOSTMAX는 XA 서버 그룹이어야 하기 때문에 해당하는 OPENINFO를 입력해야 한다.
TMSNAME해당 서버 그룹의 데이터베이스 관리를 담당할 TMS 프로세스명을 정의한다.
SVGTYPE반드시 STMAX로 입력해야 한다.
RMID

한 MTMAX에 속한 STMAX들 중 같은 RM을 사용하는 것이 있다면 인스턴스를 구분하기 위해서 RMID를 구분하여 입력한다. 다른 RM이라면 값을 입력하지 않아도 된다.

위의 예제에서는 다른 RM을 사용하기 때문에 RMID를 설정하지 않았다. RMID의 설정 예제는 절 3.2.2. “환경설정”을 참고한다.

다음은 MTMAX 관련 설정항목으로 아래 항목은 반드시 설정되어야 한다.

항목설명
NODENAME사용할 노드 이름을 설정한다.
SVGLIST포함하는 STMAX 서버 그룹의 이름을 콤마(,) 구분자로 나열한다.
SVGTYPE반드시 'MTMAX'로 설정해야 한다.

2.2. 서버 사용 방법

TCS, UCS와 MultipleRM 서버의 사용 방법은 동일하다. TCS, UCS에서 사용하던 일부 함수를 제외한 모든 API를 사용할 수 있고 프로그램 구조 또한 동일하다.

단, 서버에 따라 다음과 같이 프로그램 구성 요소가 달라진다.

  • TCS, UCS 방식의 서버

    TCS, UCS를 빌드하기 위해서는 다음과 같이 구성한다.

    사용자 코드 + libsvr(ucs) + db_stub(nodb) library
  • MultipleRM 서버

    MultipleRM 서버의 경우 다음과 같이 구성한다.

    사용자 코드 + libsvr(ucs) + libnodb