본 장에서는 TCPGWTHR 환경 구성 및 환경 파일 설정에 대해 설명한다.
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 |
appbin | tcpgwlsn, clihdrshm, tcpgwlsn64, clhhdrshm64 |
usrinc | tcphdr.h, hlinkapi.h |
Windows
디렉터리 | 파일명 |
---|---|
lib | tcpgwhdr.lib, tcpgwhdr.dll, tmaxgw.lib, tmaxgw.dll, tmaxgwmt.lib, tmaxgwmt.dll |
bin | tcpgwlsn.exe, clihdrshm.exe |
usrinc | tcphdr.h, hlinkapi.h |
TCPGWTHR를 사용하기 위해서는 Tmax 환경 파일에 Listener 프로세스 또는 Clishm 프로세스 및 Handler 프로세스를 서버로 등록해야 한다. Tmax 서버 중 UCS 방식의 서버와 등록 방법이 비슷한데, SVRTYPE이 'UCS'에서 'CUSTOM_GATEWAY'라는 것외에 차이점은 없다. TCPGWTHR을 사용하기 위해 Tmax 환경 파일을 수정할 때는SERVER 절과 SERVICE 절만 설정하면 된다.
*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
TCPGWTHR는 Tmax 환경 파일에 등록할 수 있는 항목이 제한되어 있는 관계로 CLOPT 항목에 몇 가지 옵션을 설정해야 한다. 옵션에 따라서 TCPGWTHR의 동작 방식이 다르므로 아래의 설명을 정확히 이해해야 한다.
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 옵션
옵션 | 설명 |
---|---|
[-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 옵션
옵션 | 설명 |
---|---|
[-F] | 옵션을 사용하면 dedicate 모드로 동작한다. 게이트웨이 환경 파일을 입력할 때 Full Path로 입력해야 한다. 파일의 등록 방법은 “2.3. TCPGWTHR 환경 파일”을 참고한다. |
[-k] | 게이트웨이 내에서 정보를 공유하기 위해 사용되는 공유 메모리를 위한 키(key)값이다. 입력한 키와 키+1을 사용한다. |
[-N] | Handler 프로세스 개수이다. Handler 프로세스의 MIN 값을 적용하면 되며, Handler 프로세스의 MIN, MAX는 동일하게 해야 한다. |
[-w] | 시스템이 Windows일 경우 게이트웨이 내부적으로 사용할 포트번호이다. |
Tmax 환경 파일의 CLOPT 절에 [-F] 옵션으로 지정한 파일은 아래에 설명하는 포맷으로 등록되어 있어야 한다. 파일은 리모트 노드 주소와 서버 ID를 등록하는 파일이다.
주소 정보 환경 파일은 클라이언트 모드와 서버 모드에 따라 다음과 같이 설정한다.
클라이언트 모드
클라이언트 모드에서 멀티서버로 연결하고자 하는 경우에는 다음과 같이 설정한다.
####################################################### # 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 ID | Tmax 서비스로부터 게이트웨이 서비스를 호출하는 경우 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