환경설정
본 장에서는 Host-link를 등록하는 방법을 설명한다.
1. Tmax 환경설정 파일
Host-link는 Tmax 환경설정 파일에 별도의 절을 갖지 않고 SERVICE 절에 추가만 하면 사용이 가능하다. 단, 트랜잭션(2PC, Synclevel2) 기능을 사용하려면 SERVER 절 대신 GATEWAY 절을 사용해야 한다.
현재 트랜잭션 게이트웨이는 LU 6.2에서만 사용 가능하고 게이트웨이 유형이 SNACICS인 경우에만 지원한다.
각 절의 설정 항목에 대한 자세한 설명은 Tmax Administration Guide를 참고한다. |
1.1. SERVER 절
다음은 SERVER 절의 형식이다. 실제 등록하는 내용은 사용 예제를 참고한다.
*SERVER ServerName SVGNAME = server-group-name, [SVRTYPE = CUSTOM_GATEWAY,] [MIN = number,] [MAX = number] ...
필수 항목
-
ServerName = string
-
Host-link 공유 메모리를 관리하는 서버명으로 반드시 SERVER 절에 한 번 설정해야 한다.
-
사용자가 임의의 이름으로 등록할 수 있고, 등록한 후 반드시 환경설정 파일의 APPDIR 항목에서 지정한 경로에 등록한 이름의 Host-link 프로그램을 복사해야 한다.
-
-
SVGNAME = string
-
서버 그룹명을 설정한다.
-
선택 항목
-
SVRTYPE = CUSTOM_GATEWAY
-
서버 유형을 설정한다. Host-link이므로 CUSTOM_GATEWAY로 설정한다.
-
-
MIN = numeric
-
범위: 1 ~ MAX_INT
-
기본값: 1
-
Host-link 프로세스의 최소 개수를 설정한다.
-
-
MAX = numeric
-
범위: 1 ~ MAX_INT
-
기본값: 1
-
Host-link 프로세스의 최대 개수를 설정한다.
-
사용 예제
다음은 SERVER 절의 설정에 대한 예제이다.
*SERVER hkh SVGNAME = svg1, SVRTYPE = CUSTOM_GATEWAY snalugw SVGNAME = svg1, SVRTYPE = CUSTOM_GATEWAY, MIN = 2, MAX = 2 ...
1.2. GATEWAY 절
다음은 GATEWAY 절의 형식이다. GATEWAY 절은 선택적으로 필요한 경우 관련 내용을 설정한다. 실제 등록하는 내용은 사용 예제를 참고한다.
*GATEWAY GatewayName NODENAME = node-name, GWTYPE = SNACICS, [CPC = channel-number] ...
필수 항목
-
GatewayName = string
-
게이트웨이 이름으로 Host-link 실행 파일명을 설정한다.
-
사용자가 임의의 이름으로 등록할 수 있고, 등록한 후 반드시 환경설정 파일의 APPDIR 항목에서 지정한 경로에 등록한 이름의 Host-link 프로그램을 복사해야 한다.
-
-
NODENAME=string
-
노드명을 설정한다.
-
-
GWTYPE=SNACICS
-
게이트웨이 유형을 설정한다. 현재 지원하고 있는 SNACICS를 설정한다.
-
선택 항목
-
CPC = numeric
-
범위 : 1 ~ 128
-
기본값 : 1
-
CPC의 수를 설정한다. CPC(CLH Per Channel)는 Tmax 시스템에서 노드 간의 CLH 프로세스 채널 수를 의미한다. CLH는 서버와 클라이언트를 연결하는 Tmax 엔진이다.
-
사용 예제
다음은 GATEWAY 절의 설정에 대한 예제이다.
*GATEWAY snacics_s GWTYPE = SNACICS, NODENAME = node1, CPC = 10 snacics_r GWTYPE = SNACICS, NODENAME = node1, CPC = 10
1.3. SERVICE 절
다음은 SERVICE 절의 형식이다. 실제 등록하는 내용은 사용 예제를 참고한다.
*SERVICE ServiceName SVRNAME = server-process-name ...
필수 항목
-
ServiceName = string
-
크기 : 63자 이내 (단, CONVERSION의 Map을 사용하는 경우 8자 이내의 string으로 설정한다)
-
서버 프로그램 내의 함수명(서비스 루틴명)이 사용된다. 반드시 SERVICE 절에서 유일한 이름이어야 한다. 멀티 도메인 환경에서는 모든 도메인 중에서 유일한 이름을 권장한다.
-
-
SVRNAME = server-process-name
-
서비스가 속할 서버명을 설정한다.
-
사용 예제
다음은 SERVICE 절의 설정에 대한 예제이다.
*SERVICE SNALUGW SVRNAME = snalugw ...
2. Host-link 환경설정 파일
Host-link 환경설정 파일은 Host-link 시스템을 실행하기 위해 필요한 서비스 정보, 데이터 로깅, 데이터 변환, 세션 채널 사용 방식 등 다양한 정보를 등록하는 파일이다. 파일은 8개의 절로 구성되는데, HOSTLINK 절, SERVER 절, SERVICE 절, LUINFO 절은 필수이고 그 외의 절은 필요한 경우 선택적으로 설정한다.
2.1. HOSTLINK 절
HOSTLINK 절의 형식은 다음과 같고, 전체적인 Host-link의 환경을 설정한다.
*HOSTLINK Host-link Name TMAX = Y|(N), SHMKEY = shared memory segment key
필수 항목
-
Host-link Name = string
-
크기 : 63자 이내
-
Host-link명을 설정한다. 설정한 이름은 HOSTLINK 절에서 유일해야 한다.
-
-
TMAX = Y|N
-
다음은 각 설정값에 대한 설명으로, 현재는 Y만 지원한다.
설정값 설명 Y
Tmax와 연동하여 Host-link를 운영한다.
N
Host-link를 독립적으로 운영한다. 현재 지원하지 않는다.
-
-
SHMKEY = numeric
-
범위 : 32768 ~ 262143
-
Host-link는 내부 정보를 공유 메모리로 관리한다. 공유 메모리의 세그먼트를 가리키는 값이다.
-
2.2. SERVER 절
SERVER 절의 형식은 다음과 같고, Host-link 서버의 환경을 설정한다.
* SERVER ServerName TMAXSVRNAME = tmaxserver name, TMAXSVRNO = server index, SVRTYPE = {LU0 | LU62S | LU62R | CTG | CICSTCPIP | IMSTCPIP }, [HLINKNAME = Host-Link명,] [FUNCTION = DPL | DTP,] [HOSTID = host id,] [SESSION_TYPE = IMS_INITSELF|IMS_AUTO|CICS_INITSELF|CICS_AUTO,] [MSGSIZE = 1 ~ MAX_INT,] [TIMEWAIT = WAIT | NOWAIT,] [LINKDOWN_TIMEOUT = 1 ~ MAX_INT,] [SESSION_TIMEOUT = 1 ~ MAX_INT,] [BUFFERING = Y | N,] [INBOUNDLU = (POOL) | DEDICATE,] [BIDLU = (POOL) | DEDICATE,] [LINKNAME = linkname,] [TRXID = transaction_xid,] [HOSTADDR = 호스트 IP 주소 또는 호스트명,] [HOSTPORT = 호스트 포트,] [LISTENPORT = listen port,] [SESSION = 1 ~ MAX_INT,] [MAXSVR = 1 ~ MAX_INT,] [REPSEND = Y | N,] [COMMSIZETYPE = INPUT_EQUAL|INPUT_1024|INPUT_2048|(INPUT_4096)| MAPFILE|SPECIFY_SIZE,] [DELOUTHSIZE = 1 ~ MAX_INT,] [SVRLIST = 서버 리스트]
필수 항목
-
ServerName = string
-
크기 : 63자 이내
-
서버명은 하나의 Host-link 프로세스를 표시하는 논리명으로 SERVER 절에서 유일해야 한다.
-
Tmax 환경설정 파일에 하나의 Host-link를 서버로 등록한 후 MIN, MAX 항목을 각 2로 설정했다면 SERVER 절에 2개의 서버가 설정되어야 한다.
-
-
TMAXSVRNAME = string
-
크기 : 63자 이내
-
Tmax 환경설정 파일의 SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
-
TMAXSVRNO = string
-
크기 : 63자 이내
-
Tmax 환경설정 파일의 SERVER 절에서 MIN, MAX 항목 값에 따른 Index를 설정한다.
-
SERVER 절의 MIN, MAX를 각각 2로 설정한 경우 Index는 00부터 시작하여 00, 01로 설정할 수 있다.
-
-
SVRTYPE = {LU0 | LU62S | LU62R | CTG | CICSTCPIP | IMSTCPIP}
-
호스트와 통신할 프로토콜의 유형을 설정한다.
-
현재 LU0, LU62S, LU62R, CTG만 지원한다.
-
선택 항목
-
HLINKNAME = string
-
크기 : 63자 이내
-
HOSTLINK 절의 Host-link Name과 동일하게 설정한다.
-
-
FUNCTION = DPL | DTP
-
함수를 호출하는 방식을 설정한다.
-
SVRTYPE 항목이 LU62S 혹은 LU62R인 경우에만 설정한다.
-
-
HOSTID = string
-
크기 : 4자 이내
-
세션을 맺을 호스트의 ID를 설정한다.
-
Host-link가 해당 호스트와 세션을 연결하기 위해 Initself 데이터를 호스트로 전송하는데 HOSTID가 Initself 데이터에 포함된다.
-
SVRTYPE 항목을 LU0으로 설정한 경우에만 해당되는 항목으로 SVRTYPE이 LU0로 설정되는 경우 필수로 설정해야 한다.
-
-
SESSION_TYPE = IMS_INITSELF | IMS_AUTO | CICS_INITSELF | CICS_AUTO
-
기본값 : IMS_INITSELF
-
호스트와 세션을 연결할 때 Initself 처리 방식을 설정한다.
-
SVRTYPE 항목을 LU0으로 설정한 경우에만 해당되는 항목이다.
-
-
MSGSIZE = numeric
-
기본값 : 1024
-
범위
구분 설명 LU 0
1~MAX_INT
LU 6.2
1024~MAX_INT (단, OpenFrame의 CICS를 사용할 경우 32000으로 설정한다.)
-
-
TIMEWAIT = WAIT | NOWAIT
-
Tmax 클라이언트와 서버에서 타임아웃이 발생했을 때의 동작을 설정한다.
-
다음은 각 설정값에 대한 설명이다.
설정값 설명 WAIT
해당 세션을 그대로 사용한다.
NOWAIT
해당 세션을 끊고 다시 세션을 시작한다.
-
-
LINKDOWN_TIMEOUT = numeric
-
범위 : 1~MAX_INIT
-
Host-link와 호스트 사이의 링크 라인이 끊어졌을 때 링크 라인이 활성화되어 있는지를 체크하는 시간 간격을 설정한다.
-
-
SESSION_TIMEOUT = numeric
-
크기 : 1~MAX_INIT
-
세션이 끊어졌을 때 세션이 활성화되어 있는지를 체크하는 시간 간격을 설정한다.
-
-
BUFFERING = Y | N
-
Pool 방식으로 세션을 사용할 때 설정한다.
-
Host-link 프로세스에 사용 가능한 세션이 없는 경우의 동작을 설정한다.
-
다음은 각 설정값에 대한 설명이다.
설정값 설명 Y
다른 프로세스로 요청을 하지 않고 가능한 세션이 생길 때까지 큐에 저장한다.
N
다른 프로세스로 요청을 전달한다.
-
-
INBOUNDLU = (POOL) | DEDICATE
-
Host-link에서 세션을 운용할 수 있는 방식을 설정한다.
-
SVRTYPE 항목을 LU0으로 설정한 경우에만 해당되는 항목이다.
-
-
BIDLU = (POOL) | DEDICATE
-
BID 데이터의 처리 방식을 설정한다. Pool 방식과 Dedicate 방식의 자세한 내용은 INBOUND를 참고한다.
-
SVRTYPE 항목을 LU0으로 설정한 경우에만 해당되는 항목이다.
-
-
LINKNAME = string
-
크기 : 63자 이내
-
호스트와 통신할 때 물리적으로 연결할 이름을 설정한다.
이름은 다음 명령을 통해 확인할 수 있다.
sna –d l
-
Host-link는 LINKNAME이 활성화된 경우에만 서비스를 수행한다. 활성화 상태가 아닌 경우 tmadmin으로 Host-link 프로세스를 확인하면 NOT-READY로 나타난다.
-
SVRTYPE 항목이 LU0, LU6.2S, LU6.2R로 설정되는 경우 필수로 설정해야 한다.
-
-
TRXID = string
-
크기 : 4 자 이내
-
트랜잭션 ID를 설정한다. 설정된 정보는 프로그램명과 함께 호스트의 서비스를 찾기 위한 ID로 사용된다.
-
-
HOSTADDR = literal
-
크기 : 255자 이내
-
호스트 주소를 설정한다. IP 주소 또는 호스트명을 설정할 수 있다.
-
SVRTYPE 항목을 CICSTCPIP 또는 IMSTCPIP 설정한 경우에만 해당되는 항목으로 현재는 사용하지 않는다.
-
-
HOSTPORT = numeric
-
범위 : 1~MAX_INT
-
호스트 포트를 설정한다.
-
SVRTYPE 항목을 CICSTCPIP 또는 IMSTCPIP 설정한 경우에만 해당되는 항목으로 현재는 사용하지 않는 항목이다.
-
-
LISTENPORT = numeric
-
범위 : 1~MAX_INT
-
Listen하고 있는 포트를 설정한다.
-
SVRTYPE 항목을 CICSTCPIP 또는 IMSTCPIP 설정한 경우에만 해당되는 항목으로 현재는 사용하지 않는 항목이다.
-
-
SESSION = numeric
-
범위 : 1~MAX_INT
-
SVRTYPE 항목을 CTG로 설정한 경우 이 값은 호스트와 연결할 세션 값을 의미한다.
-
LU0, LU6.2의 경우 해당 서버 LU의 세션 수의 합으로 자동 설정되므로 별도로 설정할 필요가 없다.
-
-
MAXSVR = numeric
-
범위 : 1~MAX_INT
-
Tmax 환경설정 파일에서 MIN, MAX 항목에 설정된 값과 동일하게 설정한다.
-
Host-link 프로세스가 기동할 때 SESSION 항목에서 설정한 개수만큼의 세션이 Host-link 프로세스에 연결된다.
-
SVRTYPE 항목을 CTG로 설정한 경우에만 해당되는 항목이다.
-
-
REPSEND = Y | N
-
tpacall(NOREPLY)의 경우 응답에 대해서 설정한다.
-
다음은 각 설정값에 대한 설명이다.
설정값 설명 Y
sendtype = AP_SEND_DATA_DEALLOC_FLUSH로 응답을 전송한다.
N
sendtype = AP_SEND_DATA_DEALLOC_ABEND로 응답을 전송한다.
-
-
COMMSIZETYPE = INPUT_EQUAL | INPUT_1024 | INPUT_2048 | (INPUT_4096) | MAPFILE | SPECIFY_SIZE
-
기본값 : INPUT_4096
-
COMMAREA의 크기를 설정한다.
-
SVRTYPE 항목을 LU62S로 설정한 경우에만 해당되는 항목이다.
-
다음은 세부 설정값에 대한 설명이다.
설정값 설명 INPUT_EQUAL
입력 데이터의 크기와 동일하게 설정한다.
INPUT_1024
입력 데이터와 크기가 같거나 큰 수 중 가장 가까운 1024 배수로 설정된다.
INPUT_2048
입력 데이터와 크기가 같거나 큰 수 중 가장 가까운 2048 배수로 설정된다.
INPUT_4096
입력 데이터와 크기가 같거나 큰 수 중 가장 가까운 4096 배수로 설정된다.
MAPFILE
MAP 파일의 'COMMSIZE’와 동일한 값이 설정된다.
SPECIFY_SIZE
'MSGSIZE’와 동일한 값이 설정된다.
-
-
DELOUTHSIZE = numeric
-
범위 : 1~MAX_INT
-
호스트가 데이터를 수신할 때 버릴 데이터의 크기를 설정한다. 데이터의 앞에서부터 설정된 크기만큼 버린다.
-
SVRTYPE 항목을 LU0 또는 LU62S로 설정한 경우에만 해당되는 항목이다.
-
-
SVRLIST = string
-
크기 : 256자 이내
-
SVRTYPE 항목을 CTG로 설정한 경우에만 해당되는 항목이다.
-
사용 예제
다음은 세션 운영과 관련된 항목 설정에 대한 예제이다.
-
SNA LU 0
INBOUNDLU 항목을 'POOL’로 설정하면 Host-link는 연결된 세션을 통해 Round Robin 방식으로 호스트에 서비스를 요청한다. BIDLU 항목을 DEDICATE으로 설정하면 특정한 세션으로 BID 데이터를 받는다.
*SERVER snalugw00 ... INBOUNDLU = POOL, BIDLU = DEDICATE, ...
-
SNA LU 6.2
FUNCTION 항목을 'DPL’로 설정하면 Tmax 시스템에서 호스트로 서비스를 요청할 때 DPL 방식으로 세션을 사용한다.
*SERVER snalusgw00 ... FUNCTION = DPL, ...
2.3. SERVICE 절
SERVICE 절의 형식은 다음과 같고, SERVER의 BID 서비스, ROP 서비스, OUT 서비스, TCL 서비스 등을 설정한다.
*SERVICE ServerName [BIDSVCNAME = BID svc name,] [BIDSVCPOS = 1 ~ MAX_INT,] [BIDSVCSIZE = 1 ~ 16,] [ROPSVCNAME = ROP svc name,] [ROPSVCPOS = 1 ~ MAX_INT,] [ROPSVCSIZE = 1 ~ 16,] [OUTSVCNAME = outsvc name,] [OUTSVCPOS = 1 ~ MAX_INT,] [OUTSVCSIZE = 1 ~ 16,] [RLYSVCNAME = relay svc name,] [RLYSVCPOS = 1 ~ MAX_INT,] [RLYSVCSIZE = 1 ~ 16,] [TCLSVCNAME = tclsvc name,] [TCLSVCPOS = 1 ~ MAX_INT,] [TCLSVCSIZE = 1 ~ 16,] [CANSVCNAME = cansvc name,] [POSTOKSVCNAME = postoksvc name,] [POSTFAILSVCNAME = postfailsvc name]
필수 항목
-
ServerName = string
-
크기 : 63자 이내
-
SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
선택 항목
-
BIDSVCNAME = string
-
크기 : 63자 이내
-
호스트에서 강제로 전송한 BID 데이터를 처리할 Tmax 시스템의 서비스명을 설정한다.
-
등록한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
BIDSVCPOS = numeric
-
범위 : 1~MAX_INT
-
BID 데이터를 처리할 서비스를 BID 데이터 중 어느 위치에서 가져올 것인지 설정한다.
-
설정한 위치의 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다. 설정하면 BIDSVCNAME 항목에서 정의한 서비스명은 사용하지 않는다.
-
-
BIDSVCSIZE = numeric
-
범위 :1~16
-
BID 데이터를 처리할 서비스를 BID 데이터의 특정 위치에서 가져올 때, 서비스명의 길이를 설정한다.
-
BIDSVCPOS 항목을 설정한 경우 이 항목은 반드시 설정해야 한다.
-
-
ROPSVCNAME = string
-
크기 : 63자 이내
-
호스트에서 특정 단말에 접속한 프린터에 데이터를 전송한 경우 이 데이터를 처리할 Tmax 시스템의 서비스를 설정한다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
ROPSVCPOS = numeric
-
범위 : 1~MAX_INT
-
ROP 데이터를 처리할 서비스를 ROP 데이터 중 어느 위치에서 가져올 것인지 설정한다.
-
설정한 위치의 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다. 설정하면 ROPSVCPOS 항목에서 정의한 서비스명은 사용하지 않는다.
-
-
ROPSVCSIZE = numeric
-
범위 : 1~16
-
ROP 데이터를 처리할 서비스를 ROP 데이터의 특정 위치에서 가져올 때 서비스명의 길이를 설정한다.
-
-
OUTSVCNAME = string
-
크기 : 63자 이내
-
호스트로부터 요청한 데이터를 처리할 Tmax 시스템의 서비스명을 설정한다.
-
OUTSVCPOS 항목을 등록하지 않고 이 항목만 등록할 경우 호스트로부터 요청한 모든 데이터는 이 항목에서 정의한 서비스로 요청된다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
OUTSVCPOS = numeric
-
범위 : 1~MAX_INT
-
호스트로부터 요청한 데이터를 처리할 서비스를 OUTBOUND 데이터 중 어느 위치에서 가져올 것인지 설정한다.
-
설정한 위치의 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다. 설정하면 OUTSVCNAME 항목에서 정의한 서비스명은 사용하지 않는다.
-
-
OUTSVCSIZE = numeric
-
범위 : 1~16
-
OUTBOUND 데이터를 처리할 서비스를 OUTBOUND 데이터 중 특정 위치에서 가져올 때 서비스명의 길이를 설정한다.
-
-
RLYSVCNAME = string
-
크기 : 63자 이내
-
tpforward로 Host-link 서비스를 호출할 경우 Host-link 시스템은 처리 결과를 항상 Relay 서비스로 연계한다. Flag에 TPNOREPLY 값을 설정하는 것과 관계없이 Host-link 시스템은 호스트로 서비스를 요청하고 응답받은 데이터를 이 항목에서 정의한 서비스로 tprelay를 한다.
-
RLYSVCPOS 항목과 RLYSVCSIZE 항목이 설정된 경우 이 항목은 무시된다. 사용자 헤더에 Relay할 서비스가 동시에 설정된 경우 이 항목이 우선순위를 갖는다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
RLYSVCPOS = numeric
-
범위 : 1~MAX_INT
-
tpforward로 Host-link 서비스를 호출하고 호스트로부터 받은 응답 데이터 중 tprelay할 서비스명의 위치를 설정한다.
-
RLYSVCSIZE 항목이 동시에 설정된 경우 이 항목이 우선순위를 갖는다. 설정하면 RLYSVCNAME 항목에서 정의한 서비스명은 사용하지 않는다.
-
-
RLYSVCSIZE = numeric
-
범위 : 1~16
-
호스트로부터 받은 응답 데이터 중에서 tprelay할 서비스명을 찾을 때 서비스명의 길이를 설정한다.
-
-
TCLSVCNAME = string
-
크기 : 63자 이내
-
tpacall에 Flag 값을 TPNOREPLY로 설정하여 Host-link를 호출한 경우 Host-link는 호스트로 서비스를 요청하고 응답받은 데이터를 처리할 수가 없다. 이 항목을 설정하면 Host-link는 정의한 서비스로 tpacall한다.
-
TCLSVCPOS 항목과 TCLSVCSIZE 항목이 설정된 경우 이 항목은 무시된다.
-
사용자 헤더에 Relay할 서비스가 동시에 설정된 경우 이 항목이 우선순위를 갖는다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
TCLSVCPOS = numeric
-
범위 : 1~MAX_INT
-
tpacall에 Flag 값을 TPNOREPLY로 설정하여 Host-link를 호출한 경우 호스트로부터 받은 응답 데이터 중에서 tpacall할 서비스명을 찾을 위치를 설정한다.
-
설정하면 TCLSVCNAME 항목에서 정의한 서비스명은 사용하지 않는다.
-
TCLSVCSIZE 항목이 동시에 설정된 경우 이 항목이 우선순위를 갖는다.
-
-
TCLSVCSIZE = numeric
-
범위 : 1~16
-
tpcall할 서비스명을 호스트로부터 받은 응답 데이터 중에서 찾을 때 서비스명의 길이를 설정한다.
-
-
CANSVCNAME = string
-
크기 : 63자 이내
-
호스트로부터 응답이 타임아웃 이후에 온다면 데이터가 버려지는데 이 항목을 설정하면 Host-link는 정의한 서비스로 tpacall한다.
-
SVRTYPE 항목을 LU62S로 설정한 경우에만 해당되는 항목이다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
POSTOKSVCNAME = string
-
크기 : 63자 이내
-
SVRTYPE 항목을 LU0 또는 LU62R로 설정한 경우에만 해당되는 항목이다.
-
호스트로 데이터를 성공적으로 전달하면 해당 데이터를 정의한 서비스로 tpacall을 한다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
-
POSTFAILSVCNAME = string
-
크기 : 63자 이내
-
SVRTYPE 항목을 LU0 또는 LU62R로 설정한 경우에만 해당되는 항목이다.
-
호스트로 데이터 전달을 실패하면 해당 데이터를 정의한 서비스로 tpacall을 한다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
2.4. LOGGING 절
LOGGING 절은 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 지정한 서비스를 호출할 수 있도록 설정한다.
* LOGGING Log Server Name [LOGPATH = log path,] [LOGTYPE = (HEX) | TEXT | E2A,] [LOGSVC = log 서비스명]
필수 항목
-
Log Server Name = string
-
크기 : 63자 이내
-
로그를 남길 서버를 설정하는 항목으로 SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
설정하면 해당 서버는 로그를 파일로 남기거나 LOGSVC 항목에 설정한 서비스를 호출할 수 있게 된다.
-
선택 항목
-
LOGPATH = string
-
크기 : 256자 이내
-
로그 파일의 경로와 이름을 설정한다.
-
절대 경로('/'로 시작되는 경로)로 정의하면 그 경로를 그대로 사용한다. 상대 경로('/'로 시작되지 않는 경로)로 정의하면 Tmax의 환경설정 파일 NODE 절의 ULOGDIR 항목에 정의한 디렉터리의 하위 경로에 로그 파일이 저장된다.
-
LOGSVC 항목이 설정된 경우 이 항목은 무시된다.
-
LOGTYPE 항목을 동시에 정의하지 않으면 로깅은 실행되지 않는다.
-
-
LOGTYPE = (HEX) | TEXT | E2A
-
데이터를 로깅할 때의 형식을 설정한다.
-
다음은 각 세부 설정값에 대한 설명이다.
설정값 설명 HEX
출력 데이터를 16진수 값으로 출력한다. (기본값)
TEXT
문자열 형태의 데이터를 라인 단위로 출력한다.
E2A
EBCDIC 코드를 ASCII 코드로 변환한 후 HEX로 출력한다.
-
LOGPATH 항목을 동시에 정의하지 않으면 로그를 남길 서버명으로 로그 파일이 저장된다.
-
-
LOGSVC = string
-
크기 : 63자 이내
-
송수신 데이터를 로깅할 때 Host-link 시스템에서 제공하는 파일에 로깅하지 않고 사용자가 작성한 서비스로 로깅할 때 설정한다.
-
Host-link 시스템은 특정 헤더(LOGHEADER, userinc/hlinkapi.h)를 추가하여 데이터와 같이 서비스를 호출한다.
-
설정한 서비스명은 반드시 Tmax 시스템에 등록된 이름이어야 한다.
-
사용 예제
데이터 로깅의 예제는 다음과 같다.
*LOGGING snalu0gw00 LOGPATH = aaa, LOGTYPE = HEX, LOGSVC = LOGSVC
Tmax 환경설정 파일의 NODE 절에 ULOGDIR=/home/tmax/log/ulog로 설정하면 로그 파일은 "/home/tmax/log/ulog/aaa_서버 index.현재 시간"으로 저장된다.
LOGTYPE 항목을 HEX로 설정하였으므로 다음과 같이 HEX 값으로 데이터를 저장한다. LOGSVC 항목을 설정했으므로 Host-link 시스템이 제공하는 파일에 로깅하지 않고 설정한 LOGSVC로 로깅한다.
HOSTLINK → HOST Length[70] time[14:10:58.375] 00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740 |.......@@......@| 00000010 40f9f1f0 4040f0f0 f0f04040 40404040 |@...@@....@@@@@@| 00000020 40e5c8e3 f5f0f040 d3404080 80808080 |@......@.@@.....| 00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9 |.@..............| 00000040 f0f91ed5 1e0d |...... | HOST → HOSTLINK Length[70] time[14:10:58.376] 00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740 |.......@@......@| 00000010 40f9f1f0 4040f0f0 f0f04040 40404040 |@...@@....@@@@@@| 00000020 40e5c8e3 f5f0f040 d3404080 80808080 |@......@.@@.....| 00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9 |.@..............| 00000040 f0f91ed5 1e0d |...... |
2.5. CONVERSION 절
CONVERSION 절의 형식은 다음과 같고, 해당 서버의 데이터를 변환한다.
* CONVERSION ServerName [INBOUND = Y|(N)] [INBOUND_KOR = Y|(N),] [INBOUND_SKIP = 1 ~ MAX_INT,] [OUTBOUND = Y|(N),] [OUTBOUND_KOR = Y|(N),] [OUTBOUND_SKIP = 1 ~ MAX_INT,] [MAPPATH = map path]
필수 항목
-
ServerName = string
-
크기 : 63자 이내
-
SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
선택 항목
-
INBOUND = Y|(N)
-
기본값 : N
-
항목을 Y로 설정하면 Host-link는 호스트로 전송하는 모든 데이터를 ASCII에서 EBCDIC으로, 완성형 한글을 조합형 한글로 변환한다. 한글을 변환할 경우 ASCII는 2Byte 중 첫 번째 Byte의 첫 비트가 1로 되어 있으면 이를 한글로 인식하는데 호스트는 한글 시작과 끝을 의미하는 문자를 두어 한글인지 EBCDIC 코드인지 판단한다.
예를 들어 '홍길동’을 변환할 경우 '0x0e홍길동0x0f’으로 변환된다. '홍 길 동’의 경우 '0x0e홍0x0f + space + 0x0e길0x0f + space + 0x0e동0x0f’로 변환된다.
-
-
INBOUND_KOR = Y|(N)
-
기본값 : N
-
코드를 변환할 때 한글을 포함할 것인지를 설정한다.
-
다음은 세부 설정값에 대한 설명이다.
설정값 설명 Y
한글을 포함하여 ASCII를 EBCDIC으로 변환한다.
N
한글은 변환하지 않고 ASCII를 EBCDIC으로만 변한다.
-
INBOUND = N으로 설정된 경우 INBOUND_KOR=Y로 설정된 설정값은 무시된다.
-
-
INBOUND_SKIP = numeric
-
범위 : 1~MAX_INT
-
코드를 변환할 때 제외할 특정 Byte를 설정한다. 데이터에 HEX 데이터가 포함된 경우 이를 무시하기 위해 사용한다.
-
INBOUND =N으로 설정된 경우 INBOUND_SKIP에 설정된 내용은 무시된다.
-
-
OUTBOUND = Y|(N)
-
기본값 : N
-
항목을 Y로 설정하면 EBCDIC을 ASCII로, 조합형 한글을 완성형 한글로 변환한다. 한글 시작과 끝을 의미하는 문자는 Space로 변환되어 맨 끝에 삽입된다.
예를 들어 '0x0e홍길동0x0f’의 경우 '홍길동+space+space’로 변환된다.
-
-
OUTBOUND_KOR = Y|(N)
-
기본값 : N
-
코드를 변환할 때 한글을 포함할 것인지를 설정한다.
-
다음은 세부 설정값에 대한 설명이다.
설정값 설명 Y
한글을 포함하여 ASCII를 EBCDIC으로 변환한다.
N
한글은 변환하지 않고 ASCII를 EBCDIC으로만 변한다.
-
OUTBOUND = N로 설정된 경우 OUTBOUND_KOR=Y로 설정된 설정값은 무시된다.
-
-
OUTBOUND_SKIP = numeric
-
범위 : 1~MAX_INT
-
코드를 변환할 때 제외할 특정 Byte를 설정한다.
-
데이터에 HEX 데이터가 포함된 경우 이를 무시하기 위해 사용한다.
-
OUTBOUND =N으로 설정된 경우 OUTBOUND_SKIP에 설정된 내용은 무시된다.
-
-
MAPPATH = literal
-
크기 : 255자 이내
-
Host-link와 호스트가 통신을 하려면 각 서비스에서 처리하는 포맷으로 데이터를 주고받아야 한다. 각 포맷을 정의하는 파일이 존재하는 디렉터리를 설정한다.
-
파일명은 다음과 같다.
구분 설명 LU0
데이터 앞부분 8 Byte(사용자 헤더가 있을 경우는 사용자 헤더 이후 8 Byte)를 사용한다.
LU62S
TPGWINFO_T 데이터 구조체의 pgmname을 사용한다.
LU62R
Tmax의 서비스명을 사용한다. Map 파일명이 8자이므로 Tmax 서비스는 8자 이내로 정의되어야 한다.
-
사용 예제
데이터 변환 예제는 다음과 같다.
*CONVERSION snalugw00 INBOUND = Y, INBOUND_KOR = N, INBOUND_SKIP = 50, OUTBOUND = N, OUTBOUND_KOR = N, OUTBOUND_SKIP = 55, ...
예제를 실행하면 Host-link는 호스트로 전송하는 모든 데이터를 ASCII에서 EBCDIC으로, 완성형 한글을 조합형 한글로 변환한다. INBOUND_KOR 항목은 N으로 설정했으므로 한글은 제외하고 변환이 진행되고 INBOUND_SKIP 항목에서 설정한 만큼 제외하여 변환한다. INBOUND와 반대로 OUTBOUND 항목은 N으로 설정했으므로 EBCDIC에서 ASCII로의 변환은 수행되지 않는다.
CONVERSION 절에서 MAPPATH 항목을 설정하는 경우 Map 파일을 등록해야 한다. MAP 파일명은 MAPPATH에서 정의된 패스에 존재해야 하며, "파일명.map" 파일로 등록되어야한다. 파일명은 8자 이내로 정의해야 한다.
다음은 Map 파일의 등록 예제와 각 항목에 대한 설명이다.
# COMMSIZE는 INPUT/OUTPUT에서 같이 사용해야 함으로 INPUT/OUTPUT중 # 큰 size의 값을 입력해야 합니다. *COMMSIZE 1024 *INPUT #--------------------------------------------------------------- # 항목명 항목 길이 데이터 타입 # 데이터 타입: CHAR, NUMERIC(UNPACK), KOREAN, BINARY, USER-TYPE #--------------------------------------------------------------- a 10 CHAR b 10 KOREAN c 5 NUMERIC d 10 BINARY *OUTPUT a 10 CHAR b 10 KOREAN c 5 NUMERIC d 10 BINARY e 3 USER1 <USER1> e1 6 CHAR e2 10 KOREAN e3 8 BINARY </USER1>
항목 | 설명 |
---|---|
COMMSIZE |
리모트 노드와 송수신하는 데이터의 길이를 설정하는 항목이다. 모든 서비스 메시지 중 가장 긴 메시지의 길이로 입력해야 한다. |
INPUT |
게이트웨이에서 리모트 노드로 전송하는 메시지의 정보를 등록하는 항목이다. 게이트웨이에서 리모트 노드로 서비스를 요청하는 경우 리모트 노드로 요청하는 메시지의 포맷을 등록한다. 반대로 리모트 노드에서 Tmax로 서비스를 요청하는 경우에는 Tmax 서비스의 처리 결과의 포맷을 등록한다. |
OUTPUT |
리모트 노드에서 게이트웨이로 수신받은 메시지의 정보를 등록하는 항목이다. 게이트웨이에서 리모트 노드로 서비스를 요청하는 경우 리모트 노드에서 처리한 결과를 수신받는 메시지의 포맷을 등록한다. 반대로 리모트 노드에서 Tmax로 서비스를 요청하는 경우에는 Tmax로 서비스를 요청하는 메시지의 포맷을 등록한다. |
INPUT/OUTPUT 영역은 다음의 항목으로 구성된다.
-
항목명
사용자가 참조용으로만 사용하는 이름이다. 게이트웨이는 항목명으로 인식하고 내부에서는 사용하지 않는다.
-
항목 길이
송수신 데이터에서 각 항목의 실제 길이를 나타낸다. 각 항목의 길이만 표현하면 게이트웨이 내부에서 Offset로 변환하여 사용한다. Offset는 항상 0부터 시작한다.
-
데이터 타입
송수신 데이터에서 각 항목의 데이터 타입을 지정한다.
데이터 타입 설명 CHAR
영문자, 숫자, 한글 포함하는 경우에 사용한다. CHAR 타입을 사용하는 경우 변환 후 메시지의 사이즈에 대해 정확히 설정해야 한다.
한글이 포함된 경우 한글과 다른 코드(영문자, 숫자, 특수문자) 사이에 한글의 시작과 끝 문자가 포함된다. UNIX로 전환할 경우 한글 시작과 끝 문자는 space로 변경되어 맨 끝으로 이동된다.
NUMERIC
데이터가 모두 숫자인 경우에 사용하고 코드 변환은 CHAR 타입과 동일하다.
NUMERIC이 Integer를 의미하는 것은 아님을 주의한다.
KOREAN
데이터가 모두 한글인 경우 사용한다. 2Byte 단위로 코드가 변환된다.
SOSI
KOREAN과 유사하나 호스트로 전환할 때 처음과 끝에 한글 시작과 끝 문자가 포함된다. UNIX로 전환할 때에는 한글 시작과 끝 문자가 스페이스로 변경되어 맨 끝으로 이동된다.
CHARSOSI
SOSI와 비슷하나 UNIX로 전환할 때 한글 시작과 끝 문자를 전환하지 않고 그대로 둔다. 호스트에서 UNIX로의 전환만 지원된다.
BINARY
이 타입의 데이터는 코드 변환이 수행되지 않는다. 데이터 중 코드를 변환하지 않을 경우에는 이 타입으로 설정한다.
USER-TYPE
Array 형식의 데이터 타입을 지정할 경우에 사용한다.
예를 들어 화면에 여러 개의 항목이 반복해서 나올 경우에 각 항목을 반복 횟수만큼 등록해야 하는 번거로움이 있다. 또는 반복 횟수를 데이터로 표현하는 경우에는 몇 번의 반복이 되는지를 알 수 없어 코드 변환이 어렵다. 이를 위해 사용자는 사용자 정의 타입을 지정하여 Array 형태의 데이터를 쉽게 변환할 수 있다.
위의 Map 파일에서 USER1은 사용자가 지정한 사용자 정의 타입이다. 타입명은 사용자가 임의로 지정하면 된다.
[주의]
사용자 정의 타입의 데이터에서 항목 길이는 Array의 반복 횟수가 저장될 버퍼의 크기를 지정한다는 점에 주의한다. 즉, Array의 반복 횟수는 매 전문마다 유동적이다. 반복 횟수의 값은 당연히 숫자이며 CHAR 형태로 저장되어야 한다. 이후 Array의 각 항목이 시작되기 전에 <USER-TYPE>, 끝난 후에 </USER-TYPE>을 삽입해야 한다. 위의 경우에는 e1, e2, e3을 Array 항목으로 인식하며, 매 전문의 e 항목의 시작 위치에서 항목 길이인 3만큼 먼저 읽어서 반복 횟수를 읽어 들인 후 그 횟수만큼 코드를 반복하여 변환한다.
2.6. DUMMYDATA 절
호스트로부터 수신한 데이터의 사이즈가 0이거나 데이터 중 특정 값이 설정된 경우 DUMMY 데이터로 간주하도록 설정하는 절이다. DUMMYDATA 절은 서버 타입(SVRTYPE)이 LU0인 경우에만 설정한다.
다음은 DUMMYDATA 절의 형식이다.
* DUMMYDATA ServerName [ZEROSIZE = (Y)|N,] [DUMMYPOS = dummy position,] [DUMMYVAL = dummy value]
필수 항목
-
ServerName = string
-
크기 : 63자 이내
-
SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
선택항목
-
ZEROSIZE = (Y)|N
-
기본값 : Y
-
호스트로부터 수신한 데이터의 길이가 0Byte인 경우에 사용하는 항목이다.
-
다음은 세부 설정값에 대한 설명이다.
설정값 설명 Y
호스트에서 0Byte가 수신되어도 응답으로 간주하고 Host-link 시스템의 서비스를 호출할 클라이언트에 응답을 전송한다.
N
0Byte가 수신된 경우 해당 데이터를 무시한다.
-
-
DUMMYPOS = numeric
-
범위 : 1~MAX_INT
-
호스트로부터 수신한 데이터에서 무시할 값이 있는 위치를 설정한다.
-
설정하지 않으면 수신된 모든 데이터는 클라이언트로 전달된다.
-
-
DUMMYVAL = string
-
크기 : 8자 이내
-
DUMMYPOS 항목에서 지정한 위치의 값과 비교할 값을 설정한다. 설정한 값은 EBCDIC 코드로 변환하여 비교한다.
-
2.7. USERHEADER 절
USERHEADER 절의 형식은 다음과 같고, Host-link와 오픈 환경 시스템 사이에 사용자 헤더를 설정한다.
* USERHEADER ServerName [HSIZE = 1 ~ 512,] [SVCPOS = 1 ~ HSIZE - 1,] [SVCSIZE = 1 ~ 16,] [LUTYPEPOS = 1 ~ HSIZE - 1,] [LUTYPESIZE = 1 ~ 8,] [LUNAMEPOS = 1 ~ HSIZE - 1,] [LUNAMESIZE = 1 ~ 8,] [WSNAMEPOS = 1 ~ HSIZE - 1,] [WSNAMESIZE = 1 ~ 8,] [ERRCODEPOS = 1 ~ HSIZE - 1,] [ERRCODESIZE = 1 ~ 4,] [TIMEWAITPOS = 1 ~ HSIZE - 1]
필수 항목
-
ServerName = string
-
크기 : 63자 이내
-
SERVER 절에서 설정한 서버명과 동일하게 설정한다.
-
선택 항목
-
HSIZE = numeric
-
범위 : 1~512
-
헤더의 길이를 설정한다.
-
Host-link는 헤더 데이터를 보관했다가 호스트로부터 응답을 수신하면 해당 헤더 데이터를 응답 앞부분에 추가하여 오픈 환경 시스템으로 전송한다. 또한 호스트로부터 요청한 서비스나 BID 데이터를 받은 경우에도 이 헤더를 수신 데이터 앞에 추가하여 지정한 서비스를 호출한다.
-
헤더 데이터 중에서 세션을 찾을 정보를 가져오므로 세션 운용을 Dedicate 방식으로 설정하는 경우 이 헤더를 반드시 지정해야 한다.
-
-
SVCPOS = numeric
-
범위 : 1~HSIZE-1
-
사용자 헤더 데이터 중에서 서비스명의 위치를 설정한다.
-
tpacall에 TPNOREPLAY나 tpforward로 Host-link를 호출하고 호스트로부터 응답을 수신하면 Host-link는 이 항목에 설정한 서비스명으로 서비스를 호출한다.
-
-
SVCSIZE = numeric
-
범위 : 1~16
-
사용자 헤더 데이터 중에서 서비스명의 길이를 설정한다.
-
-
LUTYPEPOS = numeric
-
범위 : 1~HSIZE-1
-
데이터를 호스트로 전송할 때 업무별로 구분된 세션 중 원하는 세션의 위치를 설정한다.
-
한 Host-link에 속한 많은 세션을 업무별로 구분하여 사용할 경우 설정하는 항목이다.
-
SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
LUTYPESIZE = numeric
-
범위 : 1~8
-
데이터를 호스트로 전송할 때 업무별로 구분된 세션 중 특정 세션의 길이를 설정한다.
-
SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
LUNAMEPOS = numeric
-
범위 : 1~HSIZE-1
-
Host-link 시스템이 오픈 환경 시스템에 요청한 서비스를 송수신할 때 사용하는 세션의 위치를 설정한다.
-
SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
LUNAMESIZE = numeric
-
범위 : 1~8
-
Host-link 시스템이 오픈 환경 시스템에 요청한 서비스를 송수신할 때 사용하는 세션의 길이를 설정한다.
-
SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
WSNAMEPOS = numeric
-
범위 : 1~HSIZE-1
-
세션 운용을 Dedicate 방식으로 사용할 경우에만 사용하는 항목으로 특정 세션으로 데이터를 송수신하기 위해 세션의 위치를 설정한다.
-
SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
WSNAMESIZE = numeric
-
범위 : 1~8
-
특정 세션으로 데이터를 송수신하기 위해 세션의 길이를 설정한다.
-
Host-link 시스템이 세션 운용을 Dedicate 방식으로 사용할 경우에만 사용하는 항목이므로 SVRTYPE 항목이 LU0인 경우에만 사용하는 항목이다.
-
-
ERRCODEPOS = numeric
-
범위 : 1~HSIZE-1
-
Host-link 시스템이 호스트로 서비스를 요청할 때 오류가 발생하거나 타임아웃으로 응답을 수신하지 못할 때 오픈 환경 시스템에 오류 코드를 전달하기 위해 사용하는 항목으로 오류 코드가 있는 위치를 설정한다.
-
Host-link는 이 항목에 설정한 위치에 ERRCODESIZE 항목에서 설정한 길이의 오류 코드를 문자로 변환하여 응답한다.
-
-
ERRCODESIZE = numeric
-
범위 : 1~4
-
ERRCODEPOS 항목과 함께 사용하는 항목으로 오류 코드의 길이를 설정한다.
-
-
TIMEWAITPOS = numeric
-
범위 : 1~HSIZE-1
-
타임아웃이 발생했을 때 세션을 끊고 다시 시작할 것인지(NOWAIT), 세션을 그대로 사용할 것인지(WAIT)를 설정한 위치를 설정한다.
-
게이트웨이 헤더
SVRTYPE 항목이 LU62S의 경우 사용자 헤더 전에 반드시 게이트웨이 헤더가 있어야 한다. 게이트웨이 헤더는 "usrinc/hlinkapi.h"에 다음과 같이 선언되어 있다.
struct tpgwinfo { char svc[XATMI_SERVICE_NAME_LENGTH]; char trxid[HOST_TRANS_LENGTH]; char pgmname[HOST_PROGRAM_LENGTH]; char userid[HOST_USERID_SIZE]; char passwd[HOST_PASSWD_SIZE]; char resvd[16]; }; typedef struct tpgwinfo TPGWINFO_T;
멤버 | 설명 |
---|---|
char svc[XATMI_SERVICE_NAME_LENGTH] |
Non Blocking 모드로 사용하는 경우나 비동기 방식일 때 응답 데이터를 처리할 서비스명을 설정한다. |
char trxid[HOST_TRANS_LENGTH] |
호출될 호스트의 TP명을 설정한다. 이 항목은 SVRTYPE이 LU62S이고 function이 DPL일 경우 필수적으로 기재해 주어야 하는 항목이다. 크기는 4자 이내로 설정한다. |
char pgmname[HOST_PROGRAM_LENGTH] |
호출될 호스트의 프로그램명을 설정한다. SVRTYPE 항목이 LU62S로 설정된 경우 이 항목에 설정된 이름으로 MAP 파일을 참조한다. |
char userid[HOST_USERID_SIZE] |
사용자 ID를 설정한다. |
char passwd[HOST_PASSWD_SIZE] |
비밀번호를 설정한다. |
char resvd[16] |
현재 사용되지 않는다. |
사용 예제
사용자 헤더의 예제는 다음과 같다.
*USERHEADER snalu0gw00 HSIZE = 41, # user total header size SVCPOS = 1, # user defined svc name position SVCSIZE = 15, # user defined svc name length LUTYPEPOS = 16, # inbound lu type position LUTYPESIZE = 7, # inbound lu type length LUNAMEPOS = 23, # output only, lu name position LUNAMESIZE = 7, # output only, lu name length WSNAMEPOS = 30, # only INBOUNDLU is DEDICATE WSNAMESIZE = 7, # only INBOUNDLU is DEDICATE ERRCODEPOS = 37, # output only ERRCODESIZE = 3, # output only TIMEWAITPOS = 40 # time wait position
2.8. LUINFO 절
LUINFO 절의 형식은 다음과 같고, 호스트와 Host-link 시스템의 세션 정보를 설정한다.
*LUINFO LU Name SVRNAME = servername [HOSTID = 호스트 ID,] [WSNAME = ws name,] [DIRECTION = INBOUND | OUTBOUND,] [LUTYPE = lu type,] [FQPLUNAME = partner-fully qualified lu name,] [TPNAME = 호스트와 세션을 연결하기 위한 LU명,] [MODENAME = 세션 용도,] [SYNCMODE = NONE | CONFIRM | SYNCPT,] [SESSION = 1 ~ 50,] [NETNAME = lu 네트워크명]
필수 항목
-
LU Name = string
-
크기 : 8자 이내
-
LU 세션명을 설정한다.
-
-
SVRNAME = string
-
크기 : 63자 이내
-
LU 세션이 연결되는 서버명을 설정한다.
-
선택 항목
-
HOSTID = string
-
크기 : 4자 이내
-
해당 세션이 속한 호스트 ID를 설정한다.
-
-
WSNAME = string
-
크기: 16자 이내
-
Host-link가 세션을 Dedicate 방식으로 운용할 경우에 사용하는 항목이다.
-
설정한 값을 사용자 헤더 정보에 저장하고 해당 위치를 USERHEADER 절의 WSNAMEPOS 항목과 WSNAMESIZE 항목에 설정하면 해당 세션으로 데이터를 송수신할 수 있다.
-
SNA LU 0에 해당되는 항목이다.
-
-
DIRECTION = INBOUND|OUTBOUND
-
해당 세션이 INBOUND인지 OUTBOUND인지 설정한다.
-
SNA LU 0에 해당되는 항목이다.
-
-
LUTYPE = string
-
크기 : 8자 이내
-
각 세션을 용도별로 구분하기 위한 항목이다. INBOUND 세션일 경우(DIRECTION = INBOUND) 사용자가 원하는 값을 설정하고, Host-link 환경설정 파일의 USERHEADER 절 중 LUTYPEPOS와 LUTYPESIZE 항목에 설정된 위치에 이 항목에서 설정한 타입을 설정한다.
-
OUTBOUND 세션일 경우(DIRECTION = OUTBOUND)에는 다음의 3가지로 구분된다.
구분 설명 일반 세션
호스트에서 먼저 서비스를 요청하는 세션이다.
BID 세션
호스트에서 강제 메시지를 전달하기 위한 세션이다.
ROP 세션
특정 단말의 프린터에 데이터를 전송하는 세션이다.
-
SNA LU 0에 해당되는 항목이다.
-
-
FQPLUNAME = string
-
크기 : 17자 이내
-
SNA LU 6.2에 해당되는 항목으로 상대 LU의 전체 이름(partner-fully qualified lu name)을 설정한다.
-
SVRTYPE이 LU62R인 경우 해당 항목을 설정하지 않아도 hkcfl이 가능하다.
-
설정하지 않을 경우 communication 서버의 LU alias에 대응되는 모든 PLUNAME으로부터의 요청들을 처리할 수 있게된다.
-
SVRTYPE이 LU62R인 경우 FQPLUNAME 항목에 구분자 콤마(,)를 통해 하나 이상의 pluname을 지정할 수 있으며, 최대 32개까지 가능하다. 단, 구분자 외에 공백이 들어가서는 안 된다.
여러 개의 FQPLUNAME이 지정된 경우 각각의 모든 FQPLUNAME에 대해서 communication 서버로부터 attach notify를 받을 수 있게 된다.
FQPLUNAME="GBOKO1.S2T0,GBOKO1.S0T0"
-
-
TPNAME = string
-
크기 : 64자 이내
-
LU의 로컬 TPNAME을 설정한다.
-
SNA LU 6.2에 해당되는 항목이다.
-
-
MODENAME = string
-
크기 : 8자 이내
-
해당 세션의 모드명을 설정한다. 사용할 모드명에 대해서는 호스트 관리자에게 문의한다.
-
SNA LU 6.2에 해당되는 항목이다.
-
-
SYNCMODE = NONE | CONFIRM | SYNCPT
-
기본값 : NONE
-
호스트의 Syncpoint의 레벨을 지원한다.
-
SNA LU 6.2에 해당되는 항목이다.
-
-
SESSION = numeric
-
범위 : 1 ~ 50
-
하나의 LU에 설정될 수 있는 세션 개수를 설정한다.
-
SNA LU 0의 경우는 하나의 LU당 한 세션만 연결할 수 있으므로 1로 설정할 수 있다.
-
-
NETNAME = string
-
크기 : 8자 이내
-
LU의 네트워크명을 설정한다. 완전한 LU명(fully qualified lu name)은 'LU네트워크명.LU명’으로 구성된다. 예를 들어 "TESTNET.TESTLU"의 경우 'TESTNET이 LU 네트워크명’이다.
-
3. 서비스별 환경설정
본 절에서는 각각의 서비스에 대해 설명과 환경설정 방법에 대해서 설명한다.
3.1. INBOUND
INBOUND에 해당하는 서비스는 tpcall, tpacall, tpforward이다.
tpcall
tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다. Host-link 시스템은 일반 서버 프로세스와 다르게 CPC를 사용하여 동시에 여러 서비스를 처리할 수 있다. 예를 들어 CPC를 5로 설정한 경우 Host-link는 동시에 5건의 서비스를 처리할 수 있다.
서비스의 처리 과정은 다음과 같다.
-
Tmax 시스템에서 Tmax 환경설정 파일에 정의한 Host-link 서비스를 호출한다.
-
Host-link는 해당 호스트에서 제공하는 프로그램에 데이터를 전송한다.
-
호스트는 해당 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 서비스를 호출한 Tmax 시스템에 응답 데이터를 전송한다.
tpacall
tpacall 서비스는 요청된 서비스를 처리한 후 Tmax 시스템에 응답하는 서비스와 응답하지 않는 서비스로 나뉜다.
-
Tmax 시스템에 응답하는 서비스
Tmax 시스템에 응답하는 서비스는 tpcall 서비스와 동일하게 처리된다.
tpacall - Tmax 시스템에 응답하는 서비스-
Tmax 시스템에서 Tmax 환경설정 파일에 정의한 Host-link 서비스를 호출한다.
-
Host-link는 해당 호스트에서 제공하는 프로그램에 데이터를 전송한다.
-
호스트는 해당 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 서비스를 호출한 Tmax 시스템에 응답 데이터를 전송한다.
-
-
Tmax 시스템에 응답하지 않는 서비스
Tmax 시스템에 응답하지 않는 서비스의 처리 과정은 다음과 같다.
tpacall - Tmax 시스템에 응답하지 않는 서비스-
Tmax 시스템에서 Tmax 환경설정 파일에 정의한 Host-link 서비스를 호출한다.
-
Host-link는 해당 호스트에서 제공하는 프로그램에 데이터를 전송한다.
-
호스트는 해당 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 환경설정 파일에 설정된 연계 서비스를 호출한다.
Tmax 시스템에 응답하지 않는 서비스의 경우 Host-link가 호스트의 응답을 수신하여 다른 서비스로 연계할 수 있다. 연계 서비스명은 다음의 방법으로 인식한다. 다음 방법을 Host-link 환경설정 파일에 설정하지 않으면 호스트에서 수신한 응답 데이터는 무시된다. tpacall을 할 때 Flag에 TPNOREPLY 값을 설정하여 서비스를 호출하고 Host-link 환경설정 파일에 다음과 같은 연계 서비스를 정의한다.
-
SERVICE 절
*SERVICE snalu0gw00 TCLSVCNAME = TPACALL_RECV, # defaule svc name TCLSVCPOS = 1, TCLSVCSIZE = 10, ...
호스트에서 수신한 데이터 중 첫 번째부터 열한 번째 데이터를 서비스명으로 인식하여 해당 서비스를 호출한다. TCLSVCPOS 항목과 TCLSVCSIZE 항목을 정의하지 않으면 TCLSVCNAME에 정의한 서비스명으로 호출한다.
-
USERHEADER 절
*USERHEADER snalu0gw00 HSIZE = 100, # user total header size SVCPOS = 1, # user defined svc name position SVCSIZE = 10, # user defined svc name size LUNAMEPOS = 11, # output only LUNAMESIZE = 10,# output only WSNAMEPOS = 21, # only INBOUNDLU is DEDICATE WSNAMESIZE = 10,# only INBOUNDLU is DEDICATE ERRCODEPOS = 31,# output only ERRCODESIZE = 4,# output only TIMEWAITPOS = 1 # WAIT or NOWAIT value position
SVCPOS 항목과 SVCSIZE 항목으로 서비스명을 인식한다.
-
TPGWINFO_T
TPGWINFO_T의 SVC 멤버에서 정의한 서비스명을 인식한다.
-
tpforward
tpforward 서비스는 Flag에 TPNOREPLY 값을 설정하지 않고 Host-link 서비스를 호출하는 서비스와 TPNOREPLY 값을 설정하여 Hos-link 서비스를 호출하는 서비스로 나뉜다.
-
TPNOREPLY 값을 설정하지 않을 경우
서버 프로그램에서만 호출할 수 있는 서비스로 Tmax 3.5 버전에서는 다음과 같이 동작하나 3.8 버전부터는 Flag 값 설정과 무관하게 항상 TPNOREPLY 값을 설정할 경우로 동작한다.
tpforward - TPNOREPLY를 설정한 경우-
Tmax 시스템에서 Tmax 환경설정 파일에 정의한 Host-link 서비스를 호출한다.
-
Host-link는 해당 호스트에서 제공하는 프로그램에 데이터를 전송한다.
-
호스트는 해당 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 tpforward 서비스를 호출한 클라이언트로 응답을 전송한다.
-
-
TPNOREPLY 값을 설정할 경우
서비스의 처리 과정은 다음과 같다.
tpforward - TPNOREPLY를 설정하지 않은 경우-
Tmax 시스템에서 Tmax 환경설정 파일에 정의한 Host-link 서비스를 호출한다.
-
Host-link는 해당 호스트에서 제공하는 프로그램에 데이터를 전송한다.
-
호스트는 해당 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 환경설정 파일에 정의된 서비스로 응답을 전송한다.
서버 프로세스에서 tpcall로 Host-link 시스템의 서비스를 호출하면 응답이 수신될 때까지 해당 서버 프로세스는 블록 상태이다. 이러한 단점을 보완하기 위해 서비스를 송신과 수신 서비스로 분리한다.
송신 서비스는 Host-link 시스템에 tpforward로 서비스를 호출하고 서비스를 종료한다. Host-link 시스템은 호스트에서 응답을 수신하면 수신 서비스를 호출하여 응답을 처리하게 한다. 수신 서비스명은 tpacall과 동일하게 Host-link 환경설정 파일을 통해 인식한다.
-
SERVICE 절
*SERVICE snalu0gw00 ... #RLYSVCNAME = TPACALL_RECV, # defaule svc name RLYSVCPOS = 1, # svcname position RLYSVCSIZE = 10, # max length 16 ...
Host-link 시스템이 호스트로 서비스를 요청하다가 오류가 발생할 경우 Host-link는 RLYSVCPOS 항목과 RLYSVCSIZE 항목에 정의한 서비스로 오류를 전달한다. RLYSVCPOS 항목과 RLYSVCSIZE 항목에서 정의한 서비스는 서비스를 시작하기 전에 반드시 서비스 데이터가 정상인지 오류인지를 판단해야 한다. tpurcode가 0보다 크면 오류로, 그렇지 않으면 정상적인 데이터로 판단한다.
RLYSVCPOS 항목과 RLYSVCSIZE 항목이 정의되어 있지 않다면 RLYSVCNAME에 정의한 서비스로 오류를 전달한다.
-
USERHEADER 절
*USERHEADER snalu0gw00 HSIZE = 100, # user total header size HSVCPOS = 1, # user defined svc name position HSVCSIZE = 10, # user defined svc name size ...
HSVCPOS 항목과 HSVCSIZE 항목으로 서비스명을 인식한다.
-
TPGWINFO_T
TPGWINFO_T의 SVC 멤버에서 정의한 서비스명을 인식한다.
-
3.2. OUTBOUND
OUTBOUND 서비스는 호스트에서 Tmax 시스템의 서비스를 호출하여 처리 결과를 받는 형태의 서비스이다. OUTBOUND 서비스의 처리 과정은 다음과 같다.
-
호스트에서 Host-link로 서비스를 요청한다.
-
Host-link는 환경설정 파일에 정의된대로 Tmax 시스템의 서비스를 호출한다.
-
Tmax 시스템의 서비스를 처리하고 처리 결과를 Host-link에 전송한다.
-
Host-link는 응답 데이터를 호스트에 전송한다.
Tmax 시스템에서 제공하는 서비스명은 다음 2가지 방식으로 인식한다.
-
SERVICE 절
*SERVICE snalu0gw00 ... #OUTSVCNAME = OUTBOUND, # defaule svc name OUTSVCPOS = 1, # outsvc position OUTSVCSIZE = 10, # max length 16 ...
Host-link는 OUTSVCPOS 항목과 OUTSVCSIZE 항목에서 정의한 위치에서 서비스명을 찾아서 서비스를 호출한다. OUTSVCPOS 항목과 OUTSVCSIZE 항목을 정의하지 않으면 모든 OUTBOUND 데이터는 OUTSVCNAME 항목에서 정의한 서비스를 호출한다.
-
USERHEADER 절
*USERHEADER snalu0gw00 ... ERRCODEPOS = 1, #reponse error position ERRCODESIZE = 4, # max length 4 ...
ERRCODEPOS 항목과 ERRCODESIZE 항목은 Tmax 시스템에서 제공하는 서비스가 없거나 또는 비정상적으로 종료된 경우 오류를 전송하기 위해 사용하는 항목이다. 오류 데이터는 호스트로부터 수신된 데이터 중 ERRCODEPOS 항목에 정의한 위치에 ERRORCODESIZE 항목만큼의 사이즈로 정의된다. 이 오류 데이터를 호스트로 전송한다.
3.3. BID 및 ROP
호스트에서 강제로 Host-link 시스템의 특정 세션에 메시지를 전달할 수 있는 기능이 있는데 이를 BID나 ROP라고 한다. Host-link 시스템은 BID나 ROP 데이터를 수신하면 Host-link 환경설정 파일의 SERVICE 절에 정의한 BID나 ROP 서비스를 호출한다.
OUTBOUND 서비스는 처리 결과를 반드시 호스트로 전송해야 하나 BID 데이터는 호스트로부터 수신만 받고 응답하지 않는 형태이다.
서비스의 처리 과정은 다음과 같다.
-
호스트에서 BID나 ROP 요청을 호출한다.
-
게이트웨이에서 설정에 있는 Tmax의 서비스로 해당 요청을 호출한다.
-
서비스에서는 업무를 처리한 후 tpreturn을 수행한다. 요청 자체가 BID나 ROP이기 때문에 응답은 호스트까지 전달하지는 않는다.
Tmax 시스템에서 제공하는 서비스명은 환경설정 파일의 SERVER 절을 통해 인식한다.
*SERVICE snalu0gw00 ... #BIDSVCNAME = BIDSVC, # defaule svc name BIDSVCPOS = 1, # svcname position BIDSVCSIZE = 10, # max length 16 #ROPSVCNAME = ROPSVC, #default svc name ROPSVCPOS = 11, #svcname position ROPSVCSIZE = 10, # max length 16 ...
Host-link는 BIDSVCPOS 항목과 BIDSVCSIZE 항목에서 정의한 대로 서비스명을 찾아 서비스를 호출한다(ROP 서비스의 경우 ROPSVCPOS 항목과 ROPSVCSIZE 항목). BIDSVCPOS 항목과 BIDSVCSIZE 항목을 정의하지 않은 경우 모든 BID 데이터는 BIDSVCNAME 항목에서 정의한 서비스를 호출한다(ROP 서비스의 경우 ROPSVCNAME 항목)
4. 환경설정 파일 컴파일
4.1. hkcfl
hkcfl은 텍스트 형태의 Host-link 환경설정 파일을 컴파일하여 이진 Host-link 환경설정 파일(hlinkcfg)을 만드는 명령어이다. 컴파일하는 중 에러가 발생하면 컴파일을 중단하고 정상적으로 컴파일이 완료되면 이진 환경설정 파일이 생성된다.
다음은 명령어 사용법에 대한 설명이다.
-
사용 방법
hkcfl [-h] [-p] [-o 이진 Host-link 환경설정 파일명] -i 텍스트 Host-link 환경설정 파일명 -c 주석처리 문자
항목 설명 [-h]
온라인 도움말을 보여준다.
[-p]
Host-link 환경설정 파일의 컴파일 실행 내용을 화면에 출력한다.
[이진 Host-link 환경설정 파일명]
컴파일 결과물인 이진 Host-link 환경설정 파일명을 명시하는 데 사용된다. 경로와 함께 지정할 수 있으며, 경로가 지정되지 않은 경우 ${TMAXDIR}/config에 결과물이 생성된다. (기본값: 'hlinkcfg')
-i 텍스트 Host-link 환경설정 파일명
텍스트 형태의 Host-Link 환경 파일명을 명시하는 데 사용된다. 필수 옵션으로, 디렉터리가 지정되지 않았을 경우 ${TMAXDIR}/config로 설정된다. 경로와 함께 지정될 수 있으며, 소스 파일을 찾지 못한 경우에는 경고 메시지가 출력된다.
-c 주석처리 문자
텍스트 형태의 환경설정 파일의 주석 문자를 변경한다. 기본적으로는 '#' 문자가 주석 문자로 사용된다.