제2장 환경설정

내용 목차

2.1. 개요
2.2. Tmax 환경 구성
2.3. TCPGWTHR 환경 파일
2.3.1. 주소 정보 환경 파일

본 장에서는 TCPGWTHR 환경 구성 및 환경 파일 설정에 대해 설명한다.

2.1. 개요

TCPGWTHR 서버를 구성하려면 운영체제에 따라 다음과 같은 파일들이 존재해야 한다.

  • UNIX

    디렉터리파일명
    lib

    libtcpgwhdr.a, libtcpgwhdr.so, libtmaxgw.a, libtmaxgw.so, libtmaxgwmt.a,

    libtmaxgwmt.so

    lib64

    libtcpgwhdr.a, libtcpgwhdr.so, libtmaxgw.a, libtmaxgw.so, libtmaxgwmt.a,

    libtmaxgwmt.so

    appbintcpgwlsn, clihdrshm, tcpgwlsn64, clhhdrshm64
    usrinctcphdr.h, hlinkapi.h
  • Windows

    디렉터리파일명
    libtcpgwhdr.lib, tcpgwhdr.dll, tmaxgw.lib, tmaxgw.dll, tmaxgwmt.lib, tmaxgwmt.dll
    bintcpgwlsn.exe, clihdrshm.exe
    usrinctcphdr.h, hlinkapi.h

2.2. Tmax 환경 구성

TCPGWTHR를 사용하기 위해서는 Tmax 환경 파일에 Listener 프로세스 또는 Clishm 프로세스 및 Handler 프로세스를 서버로 등록해야 한다. Tmax 서버 중 UCS 방식의 서버와 등록 방법이 비슷한데, SVRTYPE이 'UCS'에서 'CUSTOM_GATEWAY'라는 것외에 차이점은 없다. TCPGWTHR을 사용하기 위해 Tmax 환경 파일을 수정할 때는SERVER 절과 SERVICE 절만 설정하면 된다.

다음은 Tmax 환경 파일의 예이다.

*DOMAIN        
tmax        SHMKEY = 88000,
            MINCLH = 1,
            MAXCLH = 1,
            TPORTNO = 8800
*NODE        
tmax1        TMAXDIR = "/home/tmax",
             APPDIR = "/home/tmax/appbin"
        
*SVRGROUP        
svg1        NODENAME = tmax1
        
*SERVER
tcpgwlsn   SVGNAME = svg1, MIN = 1, MAX = 1, 
           SVRTYPE = CUSTOM_GATEWAY, RESTART = N, 
           CLOPT = "-- -P 1029 -N 3 -k 98765"

tcpgwhdr1  SVNAME = svg1, MIN = 3, MAX = 3, SCHEDULE = RR,
           SVRTYPE = CUSTOM_GATEWAY, CPC = 10, TARGET = tcpgwhdr,
           CLOPT = "-- -P 1029 -N 10 -s –L tcpgwlsn"

*SERVICE
svcgw     SVRNAME = tcpgwhdr1

CLOPT 항목(TCPGWTHR 옵션)

TCPGWTHR는 Tmax 환경 파일에 등록할 수 있는 항목이 제한되어 있는 관계로 CLOPT 항목에 몇 가지 옵션을 설정해야 한다. 옵션에 따라서 TCPGWTHR의 동작 방식이 다르므로 아래의 설명을 정확히 이해해야 한다.

  • Listener 옵션

    다음은 Listener 옵션에 대한 설명이다.

    옵션설명
    [-F]옵션을 사용하게 되면 dedicate 모드로 동작한다. 게이트웨이 환경 파일을 입력할 때 Full Path로 입력해야 한다. 파일의 등록 방법은 “2.3. TCPGWTHR 환경 파일”을 참고한다.
    [-P]Listen하고자 하는 포트 번호이다.
    [-k]게이트웨이 내에서 정보를 공유하기 위해 사용되는 공유 메모리를 위한 키(key)값이다. 입력한 키와 키+1을 사용한다.
    [-N]Handler 프로세스 개수이다. Handler 프로세스의 MIN 값을 적용하면 되며, Handler 프로세스의 MIN, MAX는 동일하게 해야 한다.
    [-w]시스템이 Windows일 경우 게이트웨이 내부적으로 사용할 포트 번호이다.
    [-X SERVER_IPV6=[Y/N]]Listen 소켓을 생성할 때 IPv6 프로토콜을 사용할 것인지 여부를 지정하는 옵션이다. 'Y'를 지정하면 IPv6 프로토콜을 사용하고 'N'을 지정하거나 이 옵션을 설정하지 않으면 IPv4 프로토콜을 사용한다. (기본값 : N)
  • Handler 옵션

    다음은 Handler 옵션에 대한 설명이다.

    옵션설명
    [-F]클라이언트 모드에서 멀티 연결을 하고자 하는 경우 게이트웨이 환경 파일을 지정한다. 게이트웨이 환경 파일을 입력할 때 Full Path로 입력해야 한다. 파일의 등록 방법은 “2.3. TCPGWTHR 환경 파일”을 참고한다. IPv6 프로토콜을 지원한다.
    [-r]클라이언트 모드(싱글 연결)일 경우 접속할 Non-Tmax 서버의 IP 또는 hostname이다. IPv6 프로토콜을 지원한다.
    [-P]서버 모드일 경우는 Listener의 포트 번호이다. 클라이언트 모드(Single 연결)일 경우는 접속할 Non-Tmax 서버의 포트 번호이다.
    [-k]게이트웨이 내에서 정보를 공유하기 위해 사용되는 공유 메모리를 위한 키(key)값이다. 입력한 키와 키+1을 사용한다.
    [-s]Handler 프로세스가 서버 모드로 동작할지 클라이언트 모드로 동작할지를 지정한다.
    [-N]

    Handler 프로세스는 Handler당 스레드 개수를 지정한다. 서버 모드에서 게이트웨이 환경 파일을 지정한 경우는 파일을 참조해서 Handler당 스레드 개수를 계산하여 할당할 수 있으므로 지정하지 않아도 된다.

    클라이언트 모드일 경우는 싱글 연결이면 1을 지정해야 하고 멀티 연결일 경우는 접속하고자 하는 수 만큼의 스레드 수를 입력하거나 입력하지 않아도 된다. 입력하지 않은 경우는 Handler의 [-F] 옵션에 지정된 게이트웨이 환경 파일을 참조하여 할당된다.

    [-w]시스템이 Windows일 경우 게이트웨이 내부적으로 사용할 포트 번호이다.
    [-i]TCPGWTHR에서 Channel IRT 기능이 동작하도록 한다. COUSIN으로 구성되어 있고, TCPGWTHR에 연결된 리모트가 하나도 존재하지 않을 경우에는 연결이 존재하는 다른 TCPGWTHR로 요청이 전달된다.
    [-f]Dedicated 모드로 동작하는 경우에는 기본적으로 IP당 하나의 연결만 허용한다. 특정 IP와 연결되어 있는 상태에서 같은 IP로부터 새로운 연결이 요청되면 기존 연결 및 새로운 연결 요청이 모두 해제되었다. 이 옵션을 사용하면 기존의 연결은 정리되고 새로운 연결 요청은 성공하여, 새로운 연결을 이용하여 통신하게 된다.
  • Clishm 옵션

    다음은 Clishm 옵션에 대한 설명이다.

    옵션설명
    [-F]옵션을 사용하면 dedicate 모드로 동작한다. 게이트웨이 환경 파일을 입력할 때 Full Path로 입력해야 한다. 파일의 등록 방법은 “2.3. TCPGWTHR 환경 파일”을 참고한다.
    [-k]게이트웨이 내에서 정보를 공유하기 위해 사용되는 공유 메모리를 위한 키(key)값이다. 입력한 키와 키+1을 사용한다.
    [-N]Handler 프로세스 개수이다. Handler 프로세스의 MIN 값을 적용하면 되며, Handler 프로세스의 MIN, MAX는 동일하게 해야 한다.
    [-w]시스템이 Windows일 경우 게이트웨이 내부적으로 사용할 포트번호이다.

2.3. TCPGWTHR 환경 파일

Tmax 환경 파일의 CLOPT 절에 [-F] 옵션으로 지정한 파일은 아래에 설명하는 포맷으로 등록되어 있어야 한다. 파일은 리모트 노드 주소와 서버 ID를 등록하는 파일이다.

2.3.1. 주소 정보 환경 파일

주소 정보 환경 파일은 클라이언트 모드와 서버 모드에 따라 다음과 같이 설정한다.

  • 클라이언트 모드

    클라이언트 모드에서 멀티서버로 연결하고자 하는 경우에는 다음과 같이 설정한다.

    #######################################################
    #            TCP/IP Thread Gateway Config             #
    #######################################################
    # Server IP  Server Port  Server ID
    # 1.1.1.1     9000          SERVER1
    #######################################################
    # line start with "#" is comment line
    #######################################################
    61.33.32.123  9000        SERVER1
    61.33.32.124  9100        SERVER2

    다음은 IPv6 프로토콜 환경에서 설정에 대한 예제이다. IPv4와 IPv6 주소를 다음과 같이 설정할 수 있다.

    # Server IP    Server Port  Server ID
    2011::100:100  9000        SERVER1
    2011::100:200  9100        SERVER2
    61.33.32.123   9200        SERVER3
    61.33.32.124   9300        SERVER4

    다음은 주소 정보 환경 파일의 항목에 대한 설명이다.

    항목설명
    Server IP리모트 노드의 IP 주소를 등록한다.
    Server Port리모트 노드의 포트 번호를 등록한다.
    Server IDTmax 서비스로부터 게이트웨이 서비스를 호출하는 경우 dedicate 방식으로 채널을 선택하기 위해서 필요한 ID이다. 최대 길이는 31자이다.
  • 서버 모드

    서버 모드에서 dedicate 방식으로 연결하는 경우에는 다음과 같이 설정한다.

    #######################################################
    #            TCP/IP Thread Gateway Config             #
    #######################################################
    # Client IP  Server Port  Client ID
    # 1.1.1.1     9000          CLIENT1
    #######################################################
    # line start with "#" is comment line
    #######################################################
    61.33.32.123  9000        CLIENT1
    61.33.32.124  9100        CLIENT2

    Listener의 '-X SERVER_IPV6' 설정에 따라 IPv4나 IPv6 중 한 가지 방식으로만 설정이 가능하다. 만약 Listener가 IPv6 프로토콜을 사용하는 경우에는 클라이언트의 주소들이 모두 IPv6 형식으로 작성되어야 한다.

    # Client IP    Server Port  Client ID
    2011::100:100  9000        CLIENT1
    2011::100:200  9100        CLIENT2
    2011::100:300  9200        CLIENT3
    2011::100:400  9300        CLIENT4