환경설정

본 장에서는 SRLGW의 환경 구성과 환경 파일 구성에 대해 설명한다.

1. 개요

SRLGW 서버를 구성하려면 다음과 같은 파일들이 존재해야 한다. 파일(SRLGW와 라이브러리)들은 Tmax SRLGW 설치시 각 디렉터리 아래에 생성된다.

다음과 같이 운영체제에 따라 사용되는 환경 파일이 달라진다.

  • UNIX

    디렉터리 파일명

    Lib

    tmaxcom.a, tmaxcom.so

    Lib64

    tmaxcom.a, tmaxcom.so

    appbin

    serialgw

  • Windows

    디렉터리 파일명

    Lib

    tmaxcom.lib, tmaxcom.dll

    bin

    serialgw.exe

현재 Windows 시스템에 대해서만 SRLGW가 수행되고 UNIX 시스템은 다음 버전에서 지원할 예정이다.

2. Tmax 환경 구성

SRLGW를 사용하기 위해서는 Tmax 환경 파일에 SRLGW를 서버로 등록해야 한다. 등록 방법은 Tmax 서버 중 UCS 방식의 서버와 비슷한데 단, SVRTYPE이 UCS에서 CUSTOM_GATEWAY라는 차이가 있다. SRLGW를 사용하기 위해 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
serialgw   SVGNAME = svg1, MIN = 1, MAX = 1, CPC = 10,
           SVRTYPE = CUSTOM_GATEWAY,
           CLOPT = "-- -F /home/tmax/config/serlal.cfg -w 5050"

*SERVICE
COM1       SVRNAME = serialgw
COM2       SVRNAME = serialgw
항목 설명

MIN

SRLGW의 프로세스 개수를 지정하는 항목으로서 값은 항상 1로 지정해야 한다.

CPC

CPC 항목은 Tmax 엔진과 SRLGW 간의 채널 수를 지정하는 항목으로, Tmax의 클라이언트나 서비스에서 리모트 노드로 요청하는 경우에는 동시에 요청하는 수만큼 CPC 수를 지정해야 한다. 반대인 경우에는 SRLGW는 Tmax 엔진으로 tpacall로 요청하므로 많은 채널을 사용할 필요는 없다.

CLOPT

CLOPT 항목(SRLGW 옵션) 내용을 참고한다.

SVCTIME

SRLGW는 리모트 노드로 요청한 서비스에 대해서 서비스 타임아웃을 적용하지 않는다. 리모트 노드로 서비스 요청만하고 응답은 별도의 서비스로 처리하므로 SRLGW에서는 서비스 타임아웃을 적용하지 않는다.

CLOPT 항목(SRLGW 옵션)

SRLGW는 Tmax 환경 파일에 등록할 수 있는 항목이 제한되어 있기 때문에 CLOPT 항목에 몇 가지 옵션을 설정해야 한다.

다음에 설명하는 옵션에 따라서 SRLGW이 동작 방식이 다르므로 아래의 설명을 정확히 이해해야 한다.

옵션 설명

[-F]

SRLGW에서 사용할 Serial 포트에 대한 정보 및 리모트 노드를 찾는 서비스명이 등록된 파일을 지정하는 항목이다. SRLGW는 이 옵션에 지정한 파일의 정보를 로드하여 리모트의 노드와 연결한다.

또한 Tmax의 서비스나 클라이언트에서 리모트 노드로 서비스 요청시 요청한 서비스명으로 리모트 노드를 찾고자 하는 경우에도 사용한다. 파일의 등록 방법은 SRLGW 환경 파일을 참고한다.

[-w]

SRLGW는 내부적으로 하나의 포트에 대해서 하나의 스레드가 처리하는 구조로 되어있다. 각각의 포트 담당 스레드에서 메인 스레드로 데이터를 전달하기 위해서 하나의 소켓을 사용하는데, 이때 사용할 포트 번호를 지정하는 항목이다. (기본값 포트번호: 8880).

[-q]

리모트 노드에서 Tmax의 서비스를 요청시 지연처리 방식으로 사용할 수 있다. 즉, Tmax에서 제공하는 RQ에 임시 데이터를 보관한 후에 나중에 일괄적으로 처리하는 방식으로 SQLGW를 사용할 수 있는데, 이때 사용할 RQ명을 등록하는 옵션이다.

[-A]

SRLGW와 리모트 노드 간 송수신 데이터에 대해서 ACK/NAK 메시지를 주고받을 것인지를 지정하는 옵션이다. 이 옵션을 지정하면 송수신 데이터에 대해서 ACK/NAK를 주고받는다.

Tmax의 SRLGW는 내부적으로 ACK/NAK 메시지를 처리하나 리모트 노드의 COM 라이브러리에서는 ACK/NAK를 처리하지 않으므로 사용자 측 프로그램에서 이에 대한 처리 부분이 있어야 한다. (기본값: ACK/NAK 주고받지 않음)

[-t]

리모트로부터 ACK를 수신받을 대기시간을 지정하는 옵션이다. 이 시간내에 ACK/NAK 메시지가 없으면 ACK 메시지를 받은 것으로 간주한다. (기본값 : 무한)

2.1. ACK/NAK 응답 SRLGW

다음은 ACK/NAK 메시지를 받을 경우의 SRLGW 환경설정에 대한 예이다.

*DOMAIN
...
*NODE
...
*SVRGROUP
...
*SERVER
serialgw          SVGNAME = svg1, MIN = 1, MAX = 1, CPC = 10,
                  SVRTYPE = CUSTOM_GATEWAY,
                  CLOPT = "-- -F /home/tmax/config/serlal.cfg –w 5555 –A"
*SERVICE
COM1              SVRNAME = serialgw

위와 같이 환경 파일을 작성한 경우 serialgw라는 이름의 SRLGW는 1개가 Tmax boot시에 기동되고 serialgw의 서비스명은 COM1이다. SRLGW는 리모트 노드와 데이터 송수신할 때 ACK/NAK 메시지를 주고받아야 하므로 리모트 노드의 프로그램의 경우 ACK/NAK에 대한 부분을 감안해야 한다.

2.2. 지연처리 SRLGW

다음은 RQ를 이용하여 지연처리 방식으로 SRLGW를 사용할 경우의 환경설정에 대한 예이다.

*DOMAIN
...
*NODE
...
*SVRGROUP
...
*SERVER
serialgw          SVGNAME = svg1, MIN = 1, MAX = 1, CPC = 10,
                  SVRTYPE = CUSTOM_GATEWAY,
                  CLOPT = "-- -F /home/tmax/config/serlal.cfg –w 5555 –q testq"
*SERVICE
COM1              SVRNAME = serialgw

위와 같이 환경 파일을 작성하고 리모트 노드에서 COM 라이브러리를 이용하여(flags에 COMMDELAY set) Tmax으로 서비스를 요청하면 SRLGW는 요청 데이터를 "testq"에 저장한다.

SRLGW는 리모트 노드에서 수신한 데이터를 RQ에 저장만 할 뿐 어떠한 처리도 하지 않으므로 사용자는 RQ에 저장된 데이터를 처리할 수 있어야 한다.

3. SRLGW 환경 파일

Tmax 환경 파일의 CLOPT 절에 [-F] 옵션으로 지정한 파일은 포맷 정보 환경 파일에 포맷이 등록되어야 한다.

3.1. 주소 정보 환경 파일

다음은 리모트 노드와 Serial로 연결할 포트에 대한 정보를 등록하는 파일이다. 파일에 등록한 포트 정보와 리모트 노드에서 사용하는 포트 정보는 반드시 일치해야만 한다.

SRLGW는 환경 파일에 등록된 수만큼 내부적으로 스레드를 할당하므로 리모트 노드와 Serial 통신을 원하는 모든 포트를 등록해야 한다. 다음의 파일에 등록되지 않은 리모트 노드는 SRLGW와 통신할 수 없다.

#######################################################
# gwno baudrate stopbit Parity Byte Port    Tmaxsvc
# 0       9600     1      ODD    8  COM1      SVC
#######################################################
# line start with "#" is comment line
# gwno must start at 0 and be increased by 1
# stopbit: 1, 1.5, 2
# parity : NONE, ODD, EVEN
# byte: 5, 6, 7, 8
# port: serial port name
# svc:  tmax service name
#######################################################
0       9600    1       NONE    8       COM1    SVC1
0       9600    1       NONE    8       COM2    SVC2

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

항목 설명

gwno

Tmax 환경 파일의 MIN 항목의 값이 2 이상인 경우에 사용하는 항목이다. 그러나 MIN 항목이 항상 1이므로 이 항목은 항상 0으로 지정해야 한다.

baudrate

리모트 노드와 SRLGW 사이의 통신 속도를 지정하는 항목이다.

stopbit

serial 통신을 하는 경우 사용하는 Stop Bit 수를 지정하는 항목이다.

Stop Bit는 다음 3가지 중 하나를 선택하여 지정한다.

  • 1 Bit

  • 1.5 Bit

  • 2 Bit

Parity

Parity를 지정하는 항목이다.

다음 중 하나를 선택하여 지정한다.

  • NONE

  • ODD

  • EVEN

Byte

한 Byte가 몇 Bit로 구성되었는지를 지정하는 항목으로 5, 6, 7, 8 중 하나를 선택하여 지정한다.

Port

리모트 노드와 연결된 포트명을 지정하는 항목이다. SRLGW를 지정한 포트를 이용하여 리모트 노드와 통신하므로 리모트 노드와 물리적으로 연결된 포트명을 등록해야 한다.

Tmaxsvc

Tmax의 클라이언트나 서비스에서 특정 리모트 노드에 서비스를 요청하기 위해서는 SRLGW에 보내고자 하는 리모트 노드를 알려주어야 한다. 이러한 경우에 사용하는 항목으로 SRLGW는 항목에 지정한 서비스명으로 SRLGW를 호출하면 해당 서비스명으로 리모트 노드를 찾아서 해당 리모트 노드에 데이터를 전송한다.

항목에 지정한 서비스명은 반드시 Tmax 환경 파일의 SERVICE 절에 등록된 서비스명이어야 한다. SRLGW가 리모트 노드를 찾는 방법은 위와 같이 등록한 서비스명으로 찾는 방법과 나중에 리모트 노드에서 SRLGW로 연결을 설정할 때 리모트 노드명을 등록할 수 있다. 이렇게 등록하는 리모트의 이름은 반드시 Tmax 환경 파일의 SERVICE 절에 등록된 이름이어야 한다.