tmax hostlink guide - tcpip - kr. · pdf file시스템이 cics이면 listener는 cskl를...

68
Tmax HostLink Guide (TCP/IP) Copyright © 2000 TmaxSoft Co., Ltd. All Rights Reserved

Upload: dangminh

Post on 11-Mar-2018

258 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide (TCPIP)

Copyright copy 2000 TmaxSoft Co Ltd All Rights Reserved

Tmax HostLink Guide 1

Copyright Notice Copyrightcopy2000 TmaxSoft Co Ltd All Rights Reserved TmaxSoft Co Ltd 대한민국 서울시 강남구 대치동 946-1 글라스타워 18 층 우)135-708 Restricted Rights Legend This software and documents are made available only under the terms of the TmaxSoft License Agreement and may be used or copied only in accordance with the terms of this agreement No part of this document may be reproduced transmitted or translated in any form or by any means electronic mechanical manual or optical without the prior written permission of TmaxSoft Co Ltd 소프트웨어 및 문서는 오직 TmaxSoft Co Ltd와의 사용권 계약 하에서만 이용이 가능하며 사용권 계약에 따라서 사용하거나 복사 할 수 있습니다 또한 이 매뉴얼에서 언급하지 않은 정보에 대해서는 보증 및 책임을 지지 않습니다 이 매뉴얼에 대한 권리는 저작권에 보호되므로 발행자의 허가 없이 전체 또는 일부를 어떤 형식이나 사진 녹화 기록 정보 저장 및 검색 시스템과 같은 그래픽이나 전자적 기계적 수단으로 복제하거나 사용할 수 없습니다 Trademarks Tmax WebtoB WebT and JEUS are registered trademarks of TmaxSoft Co Ltd All other product names may be trademarks of the respective companies with which they are associated Tmax WebtoB WebT JEUS 는 TmaxSoft Co Ltd의 등록 상표입니다 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다 Tmax HostLink Guide ndash TCPIP

Document Edition Date Version

TMS0-0107-05-400 Jan 7 2006 Tmax 40

Tmax 제품은 아래 표와 같이 Tmax Base Tmax Standard Options 으로 나누어집니다 본 서는 Tmax Standard 와 옵션 중에 굵게 기울임꼴로 인쇄되어 있는 내용을 포함하고 있습니다

Tmax Base TP Function (Excluding 2 Phase Commit) Tmax Standard TP Function + 2 Phase Commit

Tmax Options Web Admin Console X25 Gateway TCPIP Gateway Host-Link Power Builder Interface Module SERIAL

Tmax HostLink Guide 2

Gateway TCPIP Service Gateway 이 책에 관하여

Tmax Host-Link Guide 는 Tmax 시스템을 이용하여 IBM 호스트와 TCPIP 로 연동 시 필요한 기능과 사용 방법을 설명하고 그에 따른 예제 프로그램을 포함한다 이 책의 독자는 Application 프로그램을 개발하기 위해 Tmax Unix C Programming TCPIP 에 대한 기본적인 지식과 text editror(vi 등)를 사용할 수 있는 능력이 있어야 한다 누구를 위한 책인가 이 책은 IBM Host 와 Tmax 가 통신할 수 있도록 개발을 하는 개발자를 위해 Host-Link 를 좀 더 알기 쉽도록 하기 위한 책이다 Host-Link 의 개략적인 설명과 함께 실제로 사용하기 위해 Host-Link Configuration 파일 설정을 상세히 설명하였으므로 보고 쉽게 Host-Link 를 사용할 수 있도록 하였다 어떻게 사용하는가 본 매뉴얼은 내용은 다음과 같다 1 Host-Link 란 2 Host-Link 구성 요소 3 Host-Link 관리 4 Host-Link Configuration 5 Host-Link 기능 6 Host-link Service 각 절에서 Host-Link 를 사용하는데 필요한 적절한 설명을 하고 있으므로 Host-Link 에 대해 알기 위해서는 처음서부터 보면서 실제로 따라하기 바란다 Related publications Tmax Getting Started Guide Tmax Administration Guide

Tmax HostLink Guide 3

차 례

1 Host-Link 란 5

11 개념 5

12 Host-Link 구조 7

121 구조적 관점 7

122 기능적 관점 8

13 TCPIP Host-Link 8

2 Host-Link 구성 요소 9

21 호스트 TCPIP Socket 인터페이스 9

22 Host Handler 프로그램 9

23 Application Worker 프로그램 10

24 Host Requestor 프로그램 11

25 Work- Request 프로그램 11

26 Host Listener 12

27 TCPIP Host-Link 구성도 12

271 호스트 서비스 요청 12

272 Tmax 서비스 요청 14

28 TCPIP Host-Link 구성 요소별 처리 FLOW 15

281 호스트 Listener 프로그램 시작 15

282 호스트 프로그램 호출 처리 FLOW 16

283 Tmax 서비스 호출 처리 FLOW 18

3 Host-Link 관리 21

311 Host-Link 시작과 종료 21

Tmax HostLink Guide 4

4 Host-Link Configuration 22

41 Tmax Configuration 파일 22

411 SERVER 절 항목 23

412 SERVICE 절 항목 23

42 Host-Link Configuration 파일 23

421 Configuration 작성시 주의 사항 24

422 HOSTLINK 절 25

423 SERVER 절 26

424 SERVICE 절 30

425 LOGGING 절 34

426 CONVERSION 절 35

427 USERHEADER 절 38

5 Host-Link 기능 40

51 데이터 변환 40

52 데이터 Logging 45

53 사용자 헤더 47

54 서비스명 찾는 순서 48

55 세션 장애 복구 방법 48

6 Host-Link Service 50

61 tpcall 서비스 50

62 tpacall 서비스 52

63 tpforward 서비스 57

64 Outbound 서비스 60

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 2: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 1

Copyright Notice Copyrightcopy2000 TmaxSoft Co Ltd All Rights Reserved TmaxSoft Co Ltd 대한민국 서울시 강남구 대치동 946-1 글라스타워 18 층 우)135-708 Restricted Rights Legend This software and documents are made available only under the terms of the TmaxSoft License Agreement and may be used or copied only in accordance with the terms of this agreement No part of this document may be reproduced transmitted or translated in any form or by any means electronic mechanical manual or optical without the prior written permission of TmaxSoft Co Ltd 소프트웨어 및 문서는 오직 TmaxSoft Co Ltd와의 사용권 계약 하에서만 이용이 가능하며 사용권 계약에 따라서 사용하거나 복사 할 수 있습니다 또한 이 매뉴얼에서 언급하지 않은 정보에 대해서는 보증 및 책임을 지지 않습니다 이 매뉴얼에 대한 권리는 저작권에 보호되므로 발행자의 허가 없이 전체 또는 일부를 어떤 형식이나 사진 녹화 기록 정보 저장 및 검색 시스템과 같은 그래픽이나 전자적 기계적 수단으로 복제하거나 사용할 수 없습니다 Trademarks Tmax WebtoB WebT and JEUS are registered trademarks of TmaxSoft Co Ltd All other product names may be trademarks of the respective companies with which they are associated Tmax WebtoB WebT JEUS 는 TmaxSoft Co Ltd의 등록 상표입니다 기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다 Tmax HostLink Guide ndash TCPIP

Document Edition Date Version

TMS0-0107-05-400 Jan 7 2006 Tmax 40

Tmax 제품은 아래 표와 같이 Tmax Base Tmax Standard Options 으로 나누어집니다 본 서는 Tmax Standard 와 옵션 중에 굵게 기울임꼴로 인쇄되어 있는 내용을 포함하고 있습니다

Tmax Base TP Function (Excluding 2 Phase Commit) Tmax Standard TP Function + 2 Phase Commit

Tmax Options Web Admin Console X25 Gateway TCPIP Gateway Host-Link Power Builder Interface Module SERIAL

Tmax HostLink Guide 2

Gateway TCPIP Service Gateway 이 책에 관하여

Tmax Host-Link Guide 는 Tmax 시스템을 이용하여 IBM 호스트와 TCPIP 로 연동 시 필요한 기능과 사용 방법을 설명하고 그에 따른 예제 프로그램을 포함한다 이 책의 독자는 Application 프로그램을 개발하기 위해 Tmax Unix C Programming TCPIP 에 대한 기본적인 지식과 text editror(vi 등)를 사용할 수 있는 능력이 있어야 한다 누구를 위한 책인가 이 책은 IBM Host 와 Tmax 가 통신할 수 있도록 개발을 하는 개발자를 위해 Host-Link 를 좀 더 알기 쉽도록 하기 위한 책이다 Host-Link 의 개략적인 설명과 함께 실제로 사용하기 위해 Host-Link Configuration 파일 설정을 상세히 설명하였으므로 보고 쉽게 Host-Link 를 사용할 수 있도록 하였다 어떻게 사용하는가 본 매뉴얼은 내용은 다음과 같다 1 Host-Link 란 2 Host-Link 구성 요소 3 Host-Link 관리 4 Host-Link Configuration 5 Host-Link 기능 6 Host-link Service 각 절에서 Host-Link 를 사용하는데 필요한 적절한 설명을 하고 있으므로 Host-Link 에 대해 알기 위해서는 처음서부터 보면서 실제로 따라하기 바란다 Related publications Tmax Getting Started Guide Tmax Administration Guide

Tmax HostLink Guide 3

차 례

1 Host-Link 란 5

11 개념 5

12 Host-Link 구조 7

121 구조적 관점 7

122 기능적 관점 8

13 TCPIP Host-Link 8

2 Host-Link 구성 요소 9

21 호스트 TCPIP Socket 인터페이스 9

22 Host Handler 프로그램 9

23 Application Worker 프로그램 10

24 Host Requestor 프로그램 11

25 Work- Request 프로그램 11

26 Host Listener 12

27 TCPIP Host-Link 구성도 12

271 호스트 서비스 요청 12

272 Tmax 서비스 요청 14

28 TCPIP Host-Link 구성 요소별 처리 FLOW 15

281 호스트 Listener 프로그램 시작 15

282 호스트 프로그램 호출 처리 FLOW 16

283 Tmax 서비스 호출 처리 FLOW 18

3 Host-Link 관리 21

311 Host-Link 시작과 종료 21

Tmax HostLink Guide 4

4 Host-Link Configuration 22

41 Tmax Configuration 파일 22

411 SERVER 절 항목 23

412 SERVICE 절 항목 23

42 Host-Link Configuration 파일 23

421 Configuration 작성시 주의 사항 24

422 HOSTLINK 절 25

423 SERVER 절 26

424 SERVICE 절 30

425 LOGGING 절 34

426 CONVERSION 절 35

427 USERHEADER 절 38

5 Host-Link 기능 40

51 데이터 변환 40

52 데이터 Logging 45

53 사용자 헤더 47

54 서비스명 찾는 순서 48

55 세션 장애 복구 방법 48

6 Host-Link Service 50

61 tpcall 서비스 50

62 tpacall 서비스 52

63 tpforward 서비스 57

64 Outbound 서비스 60

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 3: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 2

Gateway TCPIP Service Gateway 이 책에 관하여

Tmax Host-Link Guide 는 Tmax 시스템을 이용하여 IBM 호스트와 TCPIP 로 연동 시 필요한 기능과 사용 방법을 설명하고 그에 따른 예제 프로그램을 포함한다 이 책의 독자는 Application 프로그램을 개발하기 위해 Tmax Unix C Programming TCPIP 에 대한 기본적인 지식과 text editror(vi 등)를 사용할 수 있는 능력이 있어야 한다 누구를 위한 책인가 이 책은 IBM Host 와 Tmax 가 통신할 수 있도록 개발을 하는 개발자를 위해 Host-Link 를 좀 더 알기 쉽도록 하기 위한 책이다 Host-Link 의 개략적인 설명과 함께 실제로 사용하기 위해 Host-Link Configuration 파일 설정을 상세히 설명하였으므로 보고 쉽게 Host-Link 를 사용할 수 있도록 하였다 어떻게 사용하는가 본 매뉴얼은 내용은 다음과 같다 1 Host-Link 란 2 Host-Link 구성 요소 3 Host-Link 관리 4 Host-Link Configuration 5 Host-Link 기능 6 Host-link Service 각 절에서 Host-Link 를 사용하는데 필요한 적절한 설명을 하고 있으므로 Host-Link 에 대해 알기 위해서는 처음서부터 보면서 실제로 따라하기 바란다 Related publications Tmax Getting Started Guide Tmax Administration Guide

Tmax HostLink Guide 3

차 례

1 Host-Link 란 5

11 개념 5

12 Host-Link 구조 7

121 구조적 관점 7

122 기능적 관점 8

13 TCPIP Host-Link 8

2 Host-Link 구성 요소 9

21 호스트 TCPIP Socket 인터페이스 9

22 Host Handler 프로그램 9

23 Application Worker 프로그램 10

24 Host Requestor 프로그램 11

25 Work- Request 프로그램 11

26 Host Listener 12

27 TCPIP Host-Link 구성도 12

271 호스트 서비스 요청 12

272 Tmax 서비스 요청 14

28 TCPIP Host-Link 구성 요소별 처리 FLOW 15

281 호스트 Listener 프로그램 시작 15

282 호스트 프로그램 호출 처리 FLOW 16

283 Tmax 서비스 호출 처리 FLOW 18

3 Host-Link 관리 21

311 Host-Link 시작과 종료 21

Tmax HostLink Guide 4

4 Host-Link Configuration 22

41 Tmax Configuration 파일 22

411 SERVER 절 항목 23

412 SERVICE 절 항목 23

42 Host-Link Configuration 파일 23

421 Configuration 작성시 주의 사항 24

422 HOSTLINK 절 25

423 SERVER 절 26

424 SERVICE 절 30

425 LOGGING 절 34

426 CONVERSION 절 35

427 USERHEADER 절 38

5 Host-Link 기능 40

51 데이터 변환 40

52 데이터 Logging 45

53 사용자 헤더 47

54 서비스명 찾는 순서 48

55 세션 장애 복구 방법 48

6 Host-Link Service 50

61 tpcall 서비스 50

62 tpacall 서비스 52

63 tpforward 서비스 57

64 Outbound 서비스 60

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 4: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 3

차 례

1 Host-Link 란 5

11 개념 5

12 Host-Link 구조 7

121 구조적 관점 7

122 기능적 관점 8

13 TCPIP Host-Link 8

2 Host-Link 구성 요소 9

21 호스트 TCPIP Socket 인터페이스 9

22 Host Handler 프로그램 9

23 Application Worker 프로그램 10

24 Host Requestor 프로그램 11

25 Work- Request 프로그램 11

26 Host Listener 12

27 TCPIP Host-Link 구성도 12

271 호스트 서비스 요청 12

272 Tmax 서비스 요청 14

28 TCPIP Host-Link 구성 요소별 처리 FLOW 15

281 호스트 Listener 프로그램 시작 15

282 호스트 프로그램 호출 처리 FLOW 16

283 Tmax 서비스 호출 처리 FLOW 18

3 Host-Link 관리 21

311 Host-Link 시작과 종료 21

Tmax HostLink Guide 4

4 Host-Link Configuration 22

41 Tmax Configuration 파일 22

411 SERVER 절 항목 23

412 SERVICE 절 항목 23

42 Host-Link Configuration 파일 23

421 Configuration 작성시 주의 사항 24

422 HOSTLINK 절 25

423 SERVER 절 26

424 SERVICE 절 30

425 LOGGING 절 34

426 CONVERSION 절 35

427 USERHEADER 절 38

5 Host-Link 기능 40

51 데이터 변환 40

52 데이터 Logging 45

53 사용자 헤더 47

54 서비스명 찾는 순서 48

55 세션 장애 복구 방법 48

6 Host-Link Service 50

61 tpcall 서비스 50

62 tpacall 서비스 52

63 tpforward 서비스 57

64 Outbound 서비스 60

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 5: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 4

4 Host-Link Configuration 22

41 Tmax Configuration 파일 22

411 SERVER 절 항목 23

412 SERVICE 절 항목 23

42 Host-Link Configuration 파일 23

421 Configuration 작성시 주의 사항 24

422 HOSTLINK 절 25

423 SERVER 절 26

424 SERVICE 절 30

425 LOGGING 절 34

426 CONVERSION 절 35

427 USERHEADER 절 38

5 Host-Link 기능 40

51 데이터 변환 40

52 데이터 Logging 45

53 사용자 헤더 47

54 서비스명 찾는 순서 48

55 세션 장애 복구 방법 48

6 Host-Link Service 50

61 tpcall 서비스 50

62 tpacall 서비스 52

63 tpforward 서비스 57

64 Outbound 서비스 60

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 6: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 5

1 Host-Link 란

11 개념 과거에는 호스트(IBM HOST 를 말함)를 이용하여 중앙 집중식 처리로 모든 업무를 처리하는 방식으로 호스트를 이용하였다 뿐만 아니라 현재에도 여전히 뛰어난 안정성을 바탕으로 많은 고객을 확보하고 있다 이와 더불어 호스트 기반 업무에 대한 오픈 시스템화는 기술적 혹은 경제적인 많은 어려움을 수반한다 서버 시스템에 대한 안정성에 대해 많은 관리자가 여전히 신뢰하고 있지 못하는 것이 현실이다 하지만 전자 상거래와 같은 웹 서비스와의 통합이 요구되고 있는 점 역시 새로운 시대적 요구이다 이러한 시대적 요구를 따르지 않고 오직 호스트만을 이용하여 고객의 새로운 요구를 충족 시키기에는 역부족일 수 밖에 없다 따라서 오픈 시스템과 레거시 시스템인 호스트와의 적절한 연계는 필수적이라고 할 수 있다

고객의 다양한 요구를 충족하고 기존의 서비스를 충분히 이용하면서 보다 쉽고 빠르게 새로운 시스템을 구축할 수 있도록 호스트와 오픈 시스템 사이의 연동을 원활히 이루어질 수 있도록 Tmax 사에서 제공하는 시스템이 Host-Link 이다

Host-Link 는 호스트에 존재하는 기존의 에플리케이션 서비스 혹은 신규로 작성한 서비스를 클라이언트서버 환경의 에플리케이션에서 제공하는 서비스 처리 방식과 동일한 방식으로 접근할 수 있도록 하는 Gateway 이다

호스트 연동 시 복잡한 통신 부분은 Host-Link 에서 담당함으로 사용자는 단순히 호스트에 있는 서비스를 호출하기만 하면 Host-Link 가 자연스럽게 둘 사이를 연계 시켜준다

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 7: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 6

그림 1-1 Host-Link 개요도

Host-Link 는 호스트 시스템과 여러 가지 프로토콜(LU0 LU62 TCPIP) 별로 접속 모듈을 제시하여 기존의 개발된 메인 프레임 코드를 수정 없이 사용할 수 있도록 지원하는 등 기 투자된 메인 프레임 자원에 대한 활용도를 높일 수 있다 또한 Tmax 시스템과 연동하여 메인 프레임에서 개방형 환경으로 매끄러운 이주를 가능하게 한다 더불어 유연한 에플리케이션 로직을 구성할 수 있도록 서버 시스템 내에서 동기비동기전달형 통신 방식을 지원하여 Tmax 와 연결되어 있는 클라이언트서버 프로그램에서 호스트에서 제공하는 서비스를 직접 호출할 수 있거나 반대로 호스트로부터 Tmax 에서 제공하는 서비스를 호출할 수 있도록 지원한다

호스트 시스템과 원활한 서비스 처리를 위하여 Host-Link 는 LU0 LU62 TCPIP 프로토콜을 지원하며 LU62 방식에서도 APPC 및 CPI-C 타입 연결을 제공할 뿐만 아니라 분산 프로그램 링크(Distributed Program Link DPL)와 분산 트랜잭션 프로세싱(Distributed Transaction Processing DTP)을 지원한다

LU0 LU62 방식의 Host-Link 는 서버 시스템에 존재하는 System Network Architecture Gateway(이후 SNAGW 라 칭함)를 통해서 호스트와 연결을 맺게 된다 따라서 서버에는 호스트와 연결을 위한 SNAGW 가 설치되어야 한다 예를 들어 Solaris 시스템의 경우에는 SNAP-IX HP-UX 시스템의 경우에는 SNAPlus2 그리고 AIX 시스템의 경우에는 IBM Comm Server 등이 설치되어야 한다

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 8: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 7

12 Host-Link 구조 이 매뉴얼은 Host-Link 시스템 중 TCPIP 방식으로 호스트와 연동하는 방법에 대해서 설명할 것이다 기타 다른 Host-Link(LU0 LU62)는 해당 방식의 매뉴얼을 참조하십시오 TCPIP 를 이용하여 호스트와 연동시 구조적인 관점과 기능적인 관점에 대해서 살펴보면 다음과 같다

121 구조적 관점

Host-Link 는 Tmax 의 Custom Gateway 방식으로 관리된다 따라서 Host-Link 를 실행하기 위해서는 Tmax Configuration (Host-Link 등록 방법 참조) 파일에 Custom Gateway 타입으로 등록 되어야 한다 Custom Gateway 방식으로 사용됨으로써 다음과 같은 장점을 지닌다

첫째 CPC 를 사용하여 다중 채널의 사용이 가능하다 Host-Link 는 Tmax 시스템과 다중 채널을 연결함으로써 동시에 여러 건의 업무를 처리할 수 있다

둘째 송신 프로세스 측면에서 유량 제어가 가능하다 Host-Link 는 기본적으로 송신 프로세스와 수신 프로세스로 나뉜다 Host-Link 는 호스트와 연결된 세션 수 보다 많은 거래가 동시에 요청되는 경우 초과되는 서비스에 대해서 송신 프로세스내의 큐에 적체된다 사용 가능한 세션이 발생되는 즉시 이 세션을 통해 FIFO 방식으로 서비스를 요청한다

셋째 Tmax 시스템의 기동종료와 함께 동작한다 Host-Link 는 Tmax 시스템의 기동과 함께 기동되며 Tmax 시스템의 종료와 함께 자동적으로 종료된다

넷째 일반 서버 프로세스 형태로 관리가 가능하다 일반 프로세스는 프로세스 단위로 기동과 종료가 가능하다 Host-Link 도 이와 마찬가지로 tmdowntmboot 명령어를 사용하여 기동 및 종료가 가능하다 또한 시스템 관리 툴인 tmadmin 을 통해 처리 건수 및 평균 응답 시간 등을 확인할 수 있다

다섯째 서비스 형태로 호출 가능하다 Host-Link 는 환경 파일에 하나의 서비스를 갖도록 규정된다 따라서 클라이언트 혹은 서버 시스템 내에서 Host-Link 를 사용하기 위해서는 Tmax 시스템 내에서 다른 일반 서비스 호출방식과 동일하게 서비스 명으로 호출할 수 있다

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 9: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 8

Host-Link 는 Tmax 시스템과 유기적인 구성으로 다양한 형태의 업무 구성이 가능하다 즉 동기비동기전달형 통신 방식을 지원함으로써 개발자의 요구에 맞게 서비스를 요청할 수 있으며 전달형과 같은 형태의 방식으로도 사용될 수 있다 통신 방식에 대해서는 페이지 관계상 언급을 피하며 좀더 자세한 내용에 대해서는 Tmax C Programming Guide 와 Tmax 백서 ndash 프로그래밍 모델을 참고하기 바란다

122 기능적 관점

Host-Link 는 이기종 프로토콜에 대한 투명한 접근 방법을 제공한다 개발자는 호스트와 세션을 위한 기본적인 환경 설정만 지정하여 Host-Link 가 정상적으로 연결될 수 있도록 하면 된다 일단 연결이 성공적으로 이루어지면 개발자는 Host-Link 에서 제공하는 Naming Service 기능에 따라 Host-Link 가 제공하는 서비스 명으로 호스트와의 서비스를 처리할 수 있다

또한 Host-Link SNA LU 62 의 경우 호스트에서 제공하는 Mirror 를 통해서 서비스를 전달하는 DPL 방식과 직접적으로 호스트 서비스와 연결하는 DTP 방식을 지원하는 등의 다양한 형태의 통신방식을 제공한다

INBOUND OUTBOUND 서비스를 모두 지원하며 Host-Link 환경 파일에 지정된 내용에 따라 선택적으로 운영 가능하다

13 TCPIP Host-Link Host-Link 는 여러 가지 프로토콜을 이용하여 호스트와 연동할 수 있다 이 매뉴얼은 오픈 시스템에서 외부 시스템과 통신시 가장 일반적인 통신 방식인 TCPIP 의 소켓 인터페이스를 통하여 호스트 시스템과 연동하는 방식에 대해서만 설명한다 TCPIP Host-Link(이하 Host-Link 라 칭함)는 호스트 시스템에서 실행되는 프로그램과 Tmax 가 실행되는 서버 시스템에서 실행되는 프로그램으로 나누어 진다 이 매뉴얼은 두 시스템에서 실행되는 프로그램과 그에 따른 환경 파일 설정에 대해서 설명할 것이다

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 10: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 9

2 Host-Link 구성 요소

TCPIP 프로토콜을 사용하여 호스트와 통신하는 Host-Link 구성 요소에는 호스트 단에서 실행되는 4 개의 프로그램(Handler Application Worker Requestor Work-Request)과 Tmax 서버에서 실행되는 호스트 Gateway 로 이루어 진다 TCPIP Host-Link 는 TCPIP 프로토콜을 사용함으로 Socket 통신을 사용하고 또한 호스트에서 제공하는 Listener 를 이용한다 호스트 시스템이 CICS 이면 Listener 는 CSKL 를 사용하고 IMS 인 경우에는 IMS-Listener 나 OTMA 를 이용한다

21 호스트 TCPIP Socket 인터페이스 TCPIP Host-Link 는 TCPIP 위에서 실행됨으로 사전에 호스트에서 소켓 인터페이스를 사용할 수 있도록 설정을 해야 한다 Host-Link 는 TCPIP 자체는 제공하지 않고 호스트에서 제공하는 TCPIP 를 이용함으로 호스트 TCPIP 에 대한 또 다른 참조는 호스트에서 제공하는 TCPIP 매뉴얼을 참조 하십시오

또한 Host-Link 는 호스트에서 제공하는 Listener 를 사용하여 Host-Link 프로그램을 실행하고 소켓을 전달 받아 Tmax 의 Host-Link Gateway 와 통신한다 TCPIP Host-Link 을 사용하고자 할 경우에는 호스트 시스템에 맞는 Listener 를 실행시켜야 한다 Listener 에 대한 상세 설명은 호스트에서 제공하는 Listener 매뉴얼을 참조 하십시오

22 Host Handler 프로그램 이 프로그램은 TCPIP 상에서 Tmax 호스트 Gateway 와 통신하는 호스트 프로그램이다 특히 Handler 는 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트에서 제공하는 프로그램을 호출하고 그 결과를 Tmax 호스트

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 11: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 10

Gateway 로 전달한다 Handler 는 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되고 Tmax 호스트 Gateway 와 세션이 끊어지면 자동적으로 종료된다 그러므로 사용자는 임의로 Handler 을 실행시킬 경우 비 정상적으로 작동한다 Handler 는 Tmax 호스트 Gateway 가 요청한 연결을 Listener 로부터 전달 받아서 이 소켓을 이용하여 Tmax 호스트 Gateway 로부터 요청을 받아서 호스트 프로그램을 실행하고 결과를 돌려준다 Handler 와 Tmax 호스트 Gateway 사이의 세션은 Listener 로부터 전달 받기 때문에 하나의 세션만이 유지되며 Tmax 호스트 Gateway 에서 Listener 로 연결을 요청한 개수 만큼 Handler 프로그램이 수행된다

Handler 는 두 가지 타입이 있는데 첫째는 Tmax 호스트 Gateway 로부터 받은 요청을 Handler 에서 직접 호스트 프로그램을 실행하고 Handler 는 호스트 프로그램으로부터 결과를 기다리고 그 결과를 Tmax 호스트 Gateway 에 결과를 준다 둘째는 Tmax 호스트 Gateway 로 받은 요청을 직접 실행하지 않고 Application Worker 를 통하여 호스트 프로그램을 실행하고 그 결과를 Tmax 호스트 Gateway 에 주는 두 종류의 Handler 가 있다 전자는 Tmax 호스트 Gateway 와 동기형 방식으로 처리되어 한번에 하나의 요청만 처리한다 동시에 두개 이상의 처리를 할 경우에는 동시 요청의 수에 맞게 Handler 프로그램을 실행해야 한다 이런 종류의 Handler 를 Iterative Server 라고 한다 반대로 하나의 Handler 에서 동시에 많은 요청을 처리하는 방식이 후자 타입니다 이 타입의 Handler 는 멀티플렉싱 방식으로 Application Worker 와 통신한다 Tmax 호스트 Gateway 에서 하나의 요청이 오면 Handler 는 Application Worker 를 실행하고 처리 메시지를 Application Worker 에 전달하고 Handler 는 다음 요청이나 Application Worker 로부터 결과를 받을 수 있도록 대기한다 Application Worker 는 직접 호스트 프로그램을 실행하여 그 결과를 받아서 Handler 에 전달하면 Handler 는 Tmax 호스트 Gateway 에 전송한다 이러한 방식으로 처리하기 때문에 동시에 많은 요청을 처리할 수 있다 이런 타입의 Handler 를 Concurrent Server 라고 한다

23 Application Worker 프로그램 Application Worker 는 Handler 가 Concurrent Server 타입인 경우에 호스트 프로그램을 Handler 대신에 실행시켜 주는 프로그램이다 Handler 는 Tmax

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 12: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 11

호스트 Gateway 로부터 요청이 오면 Application Worker 를 하나 실행시키고 Tmax 호스트 Gateway 로부터 받은 데이터를 전달한다 Application Worker 는 호스트 프로그램을 COMMAREA 를 통하여 실행하고 결과를 받아서 Handler 에게 전달하고 종료한다

24 Host Requestor 프로그램 이 프로그램은 Handler 프로그램과 반대로 호스트 프로그램에서 Tmax 서비스를 호출하는 경우에 호스트에서 Tmax 호스트 Gateway 로 요청을 보내는 프로그램이다 호스트 프로그램은 Work-Request 를 통해서 Requestor 에게 서비스를 요청하면 Requestor 는 Tmax 호스트 Gateway 에 서비스를 요청하고 Tmax 호스트 Gateway 로부터 받은 결과를 Work-Request 에 전달하다 특히 Requestor 는 Handler 의 Concurrent Server 처럼 많은 서비스 요청을 동시에 처리 할 수 있다

Handler 와 동일하게 Requestor 의 실행은 먼저 Tmax 호스트 Gateway 가 호스트 시스템에서 제공하는 Listener 에게 요청하여 자동적으로 실행되나 Tmax 호스트 Gateway 와 세션이 끊어져도 자동적으로 종료된다 또한 Requestor 와 Tmax 호스트 Gateway 사이의 세션은 다중 세션으로 이루어진다 Listener 에 의해서 실행된 Requestor 는 지정한 포트번호를 Listen 하면 Tmax 호스트 Gateway 는 Configuration 에 등록한 세션 수 만큼 Requestor 와 연결하여 동시에 많은 서비스를 수행 할 수 있도록 구성한다 그러므로 Handler 처럼 많은 프로그램을 호스트에 실행할 필요가 없다

25 Work- Request 프로그램 이 프로그램은 호스트 사용자 프로그램에서 Tmax 서비스를 호출하기 위해서 Requestor 에 서비스 요청 데이터를 보내기 위한 서브 프로그램이다 EXEC CICS LINK(CICS 인 경우)로 호출되면 Work- Request 는 Requestor 와 TCPIP 소켓을 연결하여 COMMAREA 의 데이터를 전달하고 응답이 올 때까지 기다린다 Tmax 서비스에서 처리한 결과는 Work- Request 을 통하여 다시 사용자 프로그램에 전달되게 된다

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 13: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 12

26 Host Listener IBM 에서 제공하는 TCPIP 소켓 Listener 는 Tmax 호스트 Gateway 에서 요청한 Connection 을 Handler 나 Requestor 에게 전달한다 두 프로그램의 구분은 호스트에서 정의하는 트랜잭션 이름으로 구별한다 이 Listener 는 CICS 인 경우 CSKL IMS 인 경우 IMS-Listener 나 OTMA 이며 이미 IBM 에서는 위의 Listener 를 공급하고 있다 TCPIP Host-Link 를 사용하기 위해서는 호스트 TCPIP 와 Listener 가 설치되어 있어야 한다

27 TCPIP Host-Link 구성도 TCPIP Host-Link 의 구성은 첫째 Tmax 에서 호스트로 서비스를 요청하는 경우이고 둘째는 호스트에서 Tmax 로 서비스를 요청하는 경우이다

271 호스트 서비스 요청

Tmax 클라이언트나 서비스 프로그램에서 호스트 프로그램을 호출하는 방식은 두 가지가 방식이 있는데 이를 그림으로 표현하면 아래 그림과 같다

그림 2-1 호스트 서비스 요청을 위한 Iterative Server 방식

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 14: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 13

Iterative Server 방식은 Handler 별로 한번에 하나의 요청을 처리 하는 방식으로 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 호스트 프로그램을 호출하고 호스트 프로그램에서 결과를 리턴할 때까지 블록 된다 호스트 프로그램으로부터 결과를 받으면 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다 하나의 Handler 프로그램은 Tmax 호스트 Gateway 와 하나의 소켓만 유지되나 Tmax 호스트 Gateway 입장에서 보면 Tmax 호스트 Gateway 는 동시에 호스트에서 실행되는 많은 Handler 들과 소켓을 연결할 수 있다

Tmax 호스트 Gateway 가 호스트와 새로운 소켓을 연결하면 자동적으로 Handler 프로그램이 실행되어 두 프로그램 사이에 소켓이 연결된다

그림 2-2 호스트 서비스 요청을 위한 Concurrent Server 방식

Concurrent Server 방식은 Iterative Server 방식과 동일하게 Handler 가 실행되나 하나의 요청에 대해서 Handler 가 직접 호스트 프로그램을 실행시키고 응답을 받기 위해서 블록 되어있지 않고 Application Worker 을 통하여 호스트 프로그램을 실행시키도록 Application Worker 를 실행하여 요청을 처리한다 처리 순서를 간략하게 살펴보면 Tmax 클라이언트나 서비스 프로그램에서 호스트 시스템에 Tmax 호스트 Gateway 를 통해서 서비스 요청을 보내면 Handler 는 Application Worker 를 실행한다 Application Worker 는 해당 호스트 프로그램을 EXEC CICS LINK(CICS 인 경우) 방식으로 호출하고 결과를 기다린다 호스트 프로그램 처리가 완료되면 Application Worker 는 결과를 Handler 에게 전달하고 종료한다 Handler 는 해당 결과를 서비스를 요청한 Tmax 의 클라이언트나 서비스에 전달하게 된다

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 15: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 14

Tmax 호스트 Gateway 와 소켓 유지는 Iterative Server 방식과 동일하나 Concurrent Server 방식은 많은 요청이 동시에 하나의 소켓을 공유하여 동시에 처리 할 수 있다

272 Tmax 서비스 요청

위에서 설명한 것과 반대로 호스트에서 Tmax 의 서비스를 호출하는 방식으로도 Host-Link 를 사용할 수 있다 이 방식은 호스트에 Requestor 프로그램을 통해서 Tmax 호스트 Gateway 에 서비스를 요청한다 먼저 그림을 통해서 살펴보면 아래 그림과 같은 구조이다

그림 2-3 Tmax 서비스 요청을 위한 방식

호스트 프로그램은 Requestor 에게 직접 요청 메시지를 전달 할 수 없으므로 Work-Request 에게 Tmax 서비스를 요청한다 Work-Request 는 Requestor 와 소켓으로 연결하여 서비스를 요청하면 Requestor 는 리모트의 Tmax 호스트 Gateway 에게 전달하여 서비스를 수행하게 된다 처리 결과도 Requestor 를 통해서 Work-Request 프로그램에 전달되면 해당 결과를 호스트 프로그램에 전달하고 Work-Request 는 종료하게 된다

호스트 프로그램에서 먼저 요청을 보낼지라도 Requestor Handler 프로그램을 실행하는 방법과 동일하게 실행된다 차이점은 하나의 Handler 는 Tmax 호스트 Gateway 와 하나의 소켓만 유지되는데 반해 Requestor 는 Listener 를 통해서 단순히 실행만 되고 지정된 포트를 Listen 하여 Tmax 호스트 Gateway 로부터 멀티 소켓을 연결한다 그러므로 하나의 Requestor 는 Tmax 호스트 Gateway 와 많은 소켓을 사용함으로 동시에 많은 요청을 처리 할 수 있다

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 16: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 15

또한 Handler 는 Tmax 호스트 Gateway 와 소켓이 끊어지면 자동적으로 다운되나 Requestor 는 Down 되지 않고 계속해서 Tmax 호스트 Gateway 로부터 연결을 기다린다

28 TCPIP Host-Link 구성 요소별 처리 FLOW Host-Link 를 사용하려면 각 구성 요소별로 실행되는 순서와 업무 처리 Flow 에 대해서 확실히 이해해야 한다 여기서는 다음과 같은 내용에 대해서 설명할 것이다

호스트 Listener 프로그램 시작

호스트 프로그램 호출 처리 Flow

Tmax 서비스 호출 처리 Flow

281 호스트 Listener 프로그램 시작

먼저 호스트에서 TCPIP 를 사용하기 위해서는 TCPIP 가 설치되어 있어야 하고 그에 따른 Configure 정보가 정확히 등록되어 있어야 한다 설치 및 Configure 에 대한 상세한 정보는 IBM 에서 제공하는 메뉴얼을 참조 하십시오

이런 환경 하에서 IBM 에서 제공하는 Listener 프로그램을 실행한다 Listener 는 Configure 에서 지정한 포트번호를 Listen 하여 리모트에서 연결 요청이 들어올 때까지 기다린다 리모트에서 연결 요청이 오면 리모트에서 제공하는 트랜잭션 코드에 맞는 프로그램을 실행하고 소켓을 전달한다 예를 들어 Tmax 호스트 Gateway 에서 연결을 요청하고 Handler 트랜잭션 코드를 보내면 Listener 는 Handler 프로그램을 실행하고 Handler 에게 리모트 소켓을 전달한다

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 17: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 16

282 호스트 프로그램 호출 처리 FLOW

Handler 는 Listener 를 통해서 자동적으로 실행되고 종료된다 Listener 로부터 받은 소켓은 Handler 가 종료될 때까지 서비스 요청 및 응답을 전송하기 위해서 사용한다 이런 방법으로 Handler 가 실행됨으로 사용자는 Host-Link Configuration 에 정의만 하면 하나 이상의 Handler 를 쉽게 실행할 수 있다 또한 Host-Link 관리자는 트랜잭션 코드를 사용하여 Iterative Server 와 Concurrent Server 를 분리하여 실행 할 수 있다

Tmax 호스트 Gateway 와 Handler 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하는 방법은 일반 Tmax 서비스를 호출하는 방식과 동일하게 Naming 서비스 방식으로 호출한다 Iterative Server 나 Concurrent Server 나 서비스 요청 방식은 동일함으로 여기서는 Iterative Server 방식에 대해서 설명한다

Tmax 클라이언트나 서비스에서 호스트 프로그램을 호출하여 결과를 받는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

클라이언트 호스트 Gateway Listener Handler 호스트 프로그램

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 18: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 17

① Connection Tmax 가 boot 되면 Host-Link Configuration 에 정의된 채널 수 많큼 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Handler 를 실행하고 소켓을 givesocket 한다 Handler 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ 서비스 요청 Tmax 클라이언트에서 호스트 프로그램 처리를 요청하면 Tmax 는 해당 요청을 호스트 Gateway 에 전달한다

④ 서비스 요청 호스트 Gateway 는 Handler 에게 메시지를 전달하여 처리를 요청한다

⑤ 프로그램 실행 Handler 는 요청한 정보를 분석하여 메시지 처리에 해당하는 프로그램을 EXEC CICS LINK(CICS 인 경우)로 실행한다

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 19: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 18

⑥ 응답 전송 호스트 프로그램 처리를 마치고 COMMAREA 를 통하여 응답을 준다

⑦ 응답 전송 Handler 는 리모트의 호스트 Gateway 에 응답을 전송한다

⑧ 응답 전송 호스트 Gateway 에서 응답을 리턴하면 Tmax 는 서비스를 요청한 클라이언트에게 응답을 준다

283 Tmax 서비스 호출 처리 FLOW

호스트에서 Tmax 서비스를 호출하는 경우에도 먼저 Tmax 호스트 Gateway 가 Listener 를 통해서 자동적으로 Requestor 를 실행한다 Requestor 가 실행되면 Tmax 호스트 Gateway 는 Configuration 에 지정한 채널 수 많큼 직접 Requestor 에 연결을 요청한다 Tmax 호스트 Gateway 와 Requestor 사이에 소켓이 연결되고 초기화 작업이 완료되면 이때부터 사용자는 서비스를 요청하여 결과를 받을 수 있다 호스트 프로그램에서 Tmax 의 서비스를 마치 호스트에 있는 프로그램을 호출하는 방식과 동일하게 서비스를 요청한다 호스트 프로그램에서 Tmax 서비스를 호출하는 처리 Flow 에 대해서 표로 나타내면 다음과 같다

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 20: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 19

① Connection Host-Link Configuration 에 정의한 Host-Link 는 Tmax 가 boot 되면 단 하나의 채널만 Listener 에 연결을 요청한다

② givesocket Listener 는 연결 요청이 오면 새로운 소켓을 생성하고 호스트 Gateway 에서 전송한 트랜잭션에 해당하는 Requestor 를 실행하고 소켓을 givesocket 한다 Requestor 는 takesocket 하여 Listener 로부터 호스트 gateway 와 연결된 소켓을 받는다

③ Multi Connection Tmax 호스트 Gateway 는 Requestor 에 Host-Link Configuration 에 정의된 나머지 채널에 대해서 연결을 요청한다

④ 서비스 요청 호스트 프로그램은 호출한 서비스명을 포함한 데이터를 EXEC CICS LINK(CICS 인 경우)로 Work-Request 를 실행하고 전달한다

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 21: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 20

⑤ 서비스 전달 Work-Request 는 Requestor 에 소켓을 연결하고 서비스 요청 데이터를 전달한다

⑥ 서비스 전달 Requestor 는 Tmax 호스트 Gateway 와 연결된 채널 중 사용 가능한 채널에 메시지를 전송한다

⑦ 서비스 요청 Tmax 호스트 Gateway 는 Requestor 에서 요청한 서비스명을 이용하여 Tmax 에 서비스를 요청한다

⑧ 응답 리턴 Tmax 서비스가 처리를 완료하고 응답을 Tmax 호스트 Gateway 에 리턴 한다

⑨ 응답 전달 Tmax 호스트 Gateway 에 응답 메시지를 Requestor 에서 서비스 요청시 사용한 채널에 응답을 전송한다

⑩ 응답 전달 Requestor 는 서비스를 요청한 Work-Request 를 찾아서 응답을 전송한다

⑪ 응답 전송 Work-Request 는 Requestor 에서 받은 응답을 호스트 프로그램에 전달한다

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 22: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 21

3 Host-Link 관리

311 Host-Link 시작과 종료

Host-Link 시작과 종료는 항상 Tmax 시스템과 연결되어 처리됨으로 별도의 실행 명령이 없이 Tmax 에서 제공하는 시작과 종료로 Host-Link 를 시작하고 종료할 수 있다 더 자세한 Tmax 의 기동 및 종료는 Tmax Administration Guide 를 참조하기 바란다

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 23: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 22

4 Host-Link Configuration

Host-Link 를 사용하기 위해서는 적절한 환경이 마련되어 있어야 한다 따라서 Host-Link 를 사용하는 사용자는 Host-Link 를 실행하기 전에 먼저 Host-Link 가 실행될 환경을 설정해 주어야 한다 Host-Link 를 실행하기 위해서는 다음과 같은 Configuration 작업이 필요하다

Tmax Configuration 등록

Host-Link Configuration 등록

41 Tmax Configuration 파일 기본적인 Tmax Configuration 파일 등록 방법은 Tmax Administration Guide 를 참조하기 바란다 여기서는 이미 Tmax Configuration 파일이 등록되어 있다는 가정 하에서 Host-Link 서버를 어떻게 등록하는 지를 보여준다 Host-Link 는 Tmax Configuration 파일에 별도의 절을 가지지 않고 SERVER 절과 SERVICE 절에 추가만 하면 된다

SERVER 절에 아래와 같이 등록한다

SERVER

hostgw SVGNAME=svg1

MIN=1 MAX=1

SVRTYPE=CUSTOM_GATEWAY

SERVICE 절에 아래와 같이 등록한다

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 24: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 23

HOSTGW SVRNAME=hostgw SVCTIME=30

411 SERVER 절 항목

SERVER 절에 있는 각각의 항목에 대한 설명은 Tmax Administration Guide 를 참고하기 바란다 SERVER 절에 서버 이름으로 설정되어 있는 hostgw 는 Host-Link 실행 파일명 이다 이 이름은 사용자가 임의의 명으로 등록할 수 있다 사용자가 임의의 이름으로 Configuration 에 등록한 후에는 반드시 Configuration 의 APPDIR 항목에서 지정한 path 에 등록한 이름으로 Host-Link 프로그램을 복사하여야 한다

412 SERVICE 절 항목

Tmax 클라이언트나서비스에서 호스트에 요청시 사용할 서비스명을 등록한다 서비스명은 사용자 임으로 하나 이상 등록할 수 있고 등록된 서비스 명중 하나를 호출하여 호스트에 서비스를 요청 할 수 있다

SVCTIME 항목은 모든 서비스명에 동일하게 적용해야 한다

42 Host-Link Configuration 파일 Host-Link 프로그램을 실행 하기 위해서는 많은 정보가 필요하다 즉 서비스 정보 데이터 Logging 데이터 Conversion 세션 채널 사용 방식 등 다양한 정보가 필요한데 이를 등록하는 파일이 Host-Link Configuration 파일이다 Host-Link Configuration 파일은 8 개의 절로 구성된다 각 절들은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 이다 이중 TCPIP Host-Link 는 HOSTLINK SERVER SERVICE LOGGING CONVERSION USERHEADER 절만 등록하면 된다

HOSTLINK 절은 Tmax Configure 의 도메인 절과 동일 한 것으로 Tmax 시스템에 등록되어 있는 전체 Host-Link 프로그램을 대표하는 이름이다 다음으로 Host-Link 속한 각각의 프로그램에 대한 정보를 등록 하는 절이 SERVER 절이다 Tmax Configure 의 SERVER 절에 등록된 수만큼 Host-Link SERVER 절에 별개로 등록되어야 한다 예를 Tmax SREVER 절의

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 25: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 24

항목중 MIN=3 을 등록했으면 Host-Link SERVER 절에는 3 개의 서버 프로세스 정보를 등록해야 한다이 SERVER 절에는 호스트와 TCPIP 로 연결될 호스트 IP 주소 Listener 포트 트랜잭션 등을 등록하는 절이다 위의 두 절은 필수적으로 등록해야 하는 절인데 반해 나머지 절 SERVER LOGGING CONVERSION USERHEADER 절들은 필요에 따라 등록해 두면 된다

421 Configuration 작성시 주의 사항

각 절의 등록 방법은 Tmax Configuration 등록 방법과 동일하다 등록 방법에 대해서는 Tmax Administration Guide 를 참조하기 바란다 여기서는 간단한 주의 사항에 대해서만 언급한다

그림 4-1 Host-Link Configuration 예

각 절의 이름은 별표()로 시작해야 한다 절의 이름은 HOSTLINK SERVER SERVICE LOGGING CONVERSION DUMMYDATA USERHEADER LUINFO 가 있으며 이들은 대문자로 사용해야 한다 각 절의 등록 순서는 고정되어 있지 않다 따라서 어느 절이 먼저 정의되어도 관계없다

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 26: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 25

절의 시작은 별표()로 시작하고 반드시 대문자 이어야 한다

절명이나 절의 하위 개체명은 반드시 첫번째 칸에서 시작되어야 한다

다른 항목은 첫번째 칸에서 시작할 수 없다

절의 각 항목간에는 콤마()로 구분되어야 한다 콤마()가 없으면 해당 절의 정의가 끝난 것으로 간주한다

항목과 항목사이의 공백은 의미가 없다 즉 항목 간에 공백을 얼마를 두어도 관계가 없다

항목을 정의하지 않으면 디폴트 값으로 설정된다

각 절의 항목들은 다음과 같은 형식으로 정의한다

형태 - numeric string literal YN

numeric 형태에 대해서는 범위를 정의하고 string 과 literal 형태에 대해서는 문자열 크기를 정의한다

디폴트(default) 값이 있는 경우에는 괄호 안에 정의한다

항목 = 형태(default 값)

범위 또는 크기

내용

422 HOSTLINK 절

HOSTLINK 절은 전체적인 Host-Link 의 환경을 설정하는 절이다 HOSTLINK 절의 기본 환경설정 형식은 다음과 같다

Host-Link 이름 TMAX = Y|N

SHMKEY = shared memory segment key

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 27: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 26

각 항목에 대한 자세한 설명은 다음과 같다

Host-Link 이름 ( string 크기 16 자 이내 )

Host-Link 를 대표하는 이름을 등록한다 현재는 특별한 용도로 사용하지 않으나 후에 하나의 Tmax 시스템에 두개 이상의 Host-Link 를 사용할 경우에 사용할 것이다

TMAX = Y | N

Host-Link 를 Tmax 하에서 운영할 것인지 아니면 Host-Link 만을 독립적으로 운영할 것인지를 결정한다 반드시 정의해야 하는 항목으로 현재는 Y 만을 지원한다

SHMKEY = numeric ( 범위 32768 ~ 262143 )

이 항목은 공유 메모리 세그먼트(shared memory segment)를 가리키는 값이다 Host-Link 는 내부적으로 호스트 시스템과 연결된 채널 정보 등을 공유메모리에 관리한다

423 SERVER 절

SERVER 절은 Tmax Configuration 파일 중 SERVER 절에 등록한 모든 Host-Link 서버 프로세스에 대해서 등록하는 절이다 이 절은 Tmax SERVER 절의 MIN 항목에 등록한 개수 만큼 각각의 서버 정보를 등록해야 한다 왜냐하면 각 서버 프로세스 마다 호스트 시스템과 연결할 채널 정보가 다르기 때문이다 Host-Link 는 이 절에서 등록하는 정보를 이용하여 호스트 시스템과 실질적인 채널을 연결한다

SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 28: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 27

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[FUNCTION = DPL | DTP]

[HOSTID = host id]

[MSGSIZE = 1024 ~ 32000]

[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 = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

[MAXSVR = 1 ~ Tmax MIN 항목의 값]

[REPSEND = YN]

[SVRLIST = CICS 서버명 리스트 ]

이 중 TCPIP Host-Link 에서 사용할 항목들만 요약하면 다음과 같다 이

매뉴얼에서는 TCPIP Host-Link 에서 사용할 항목에 대해서만 설명한다

TCPIP Host-Link 에서 사용할 SERVER 절의 전체 형식은 다음과 같다

서버이름 [HLINKNAME = Host-Link 이름]

TMAXSVRNAME = 서버이름

TMAXSVRNO = 서버 index

SVRTYPE = 서버 종류

[TRXID = 트랜잭션 코드]

[WORKERTRXID = Application Worker 트랜잭션 코드]

[WORKERNUM = Worker 프로그램 개수]

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 29: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 28

[HOSTADDR = 호스트 IP 주소]

[HOSTPORT = 호스트 포트번호]

[LISTENPORT = Application Worker Listen 포트번호]

[SESSION = 1 ~ 50]

각 항목에 대한 자세한 설명은 다음과 같다

서버이름 ( string 크기 16 자 이내 )

서버 이름을 설정한다 이 이름은 SERVER 절에서 유일해야 한다

서버 이름은 하나의 Host-Link 프로세스를 표시하는 Logical 한 이름이다 만약 Tmax 환경파일에 하나의 Host-Link 를 서버로 등록을 한 후 MIN MAX 에 각 2 로 설정을 하였다면 SERVER 절에 두개의 서버가 등록되어야 한다

HLINKNAME = string ( 크기 16 자 이내 )

HOSTLINK 절의 Host-Link 이름으로 설정한 이름을 지정한다 이 항목은 옵션 항목으로 등록하지 않아도 된다

TMAXSVRNAME = string ( 크기 16 자 이내 )

이 항목은 Tmax 환경파일에서 설정한 SERVER 절의 서버 이름을 등록한다 이 항목에 등록하는 서버 이름은 Tmax 환경파일에서 등록한 이름과 반드시 동일해야 한다

TMAXSVRNO = numeric ( 범위 1 ~ 99 )

Tmax 환경파일에 MIN MAX 값을 정의하면 서버 번호는 0 부터 시적해서 MAX-1 까지 index 가 부여된다 이렇게 부여되는 index 를 등록한다 만약 Tmax 환경파일의 SERVER 절에 MIN MAX 값을 각각 2 로 설정하였다면 index 는 0 과 1 이 된다

이 값은 같은 TMAXSVRNAME 에 등록한 이름들 중에서는 유일한

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 30: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 29

값이어야 한다

이렇게 Tmax 환경파일에 등록한 서버를 각각 분리하는 이유는 서버 마다 호스트와 연결할 정보가 다르기 때문이다

SVRTYPE = CICSTCPIPS | CICSTCPIPR | IMSTCPIPS | IMSTCPIPR

Host-Link 서버 종류를 정의하는 항목이다 Host-Link 각 서버 별로 호스트와 서비스를 처리 하는 방식이 다르므로 Tmax 환경파일에 등록한 Host-Link 서버의 타입과 동일한 타입을 등록해야 한다

TRXID = string ( 크기 4 ndash 8 자 이내 )

Tmax 호스트 Gateway 에서 호스의 Listener 에 연결을 요청하고 Listener 에게 실행할 프로그램을 알려주기 위한 트랜잭션 코드를 등록하는 항목이다 Tmax 호스트 Gateway 는 Listener 와 Connection 이 연결되면 이 항목에 등록한 트랜잭션 코드를 Listener 에게 전송하여 Handler 나 Requestor 프로그램을 실행 시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERTRXID = string ( 크기 4 ndash 8 자 이내 )

Concurrent Server 방식으로 Handler 를 실행 할 경우에 서비스 요청을 처리할 Application Worker 의 트랜잭션 코드를 등록하는 항목이다 Handler 는 이 항목의 코드를 이용하여 Application Worker 프로그램을 실행시킨다 이 트랜잭션 코드는 호스트 시스템의 환경에 맞게 등록되어 있어야 한다

WORKERNUM = numeric ( 범위 0 ~ MAX_INT )

이 항목은 Handler 에서 동시에 Application Worker 를 실행할 수 있는 개수를 지정하는 항목이다 Handler 는 이 항목에 지정한 개수까지만 Application Worker 를 실행하고 그 이상의 요청이 오면 큐에 저장한 이후에 이 전에 실행한 Application Worker 에서 응답이 온 이후에 다음 요청을 처리하기 위하여 Application Worker 를 실행한다 이 항목은 호스트 시스템 환경에 맞게 적절한 값을 입력해야 한다

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 31: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 30

HOSTADDR = literal

TCPIP Host-Link 프로세스에서 호스트 서버의 Listener 에 Connection 을 하기 위해서는 호스트의 IP 주소가 있어야 한다 이 항목은 호스트의 Listener 가 설치 실행되고 있는 시스템의 IP 주소를 입력하면 된다

HOSTPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 호스트의 Listener 가 Listen 하고 있는 포트번호를 입력한다

LISTENPORT = numeric ( 범위 10000 ~ 50000 )

이 항목은 Concurrent Server 나 또는 Requestor 프로그램에서 사용하는 포트번호로 Concurrent Server 인 경우에는 Application Worker 가 접속하기 위한 포트번호를 나타내고 Requestor 인 경우에는 Work-Request 나 Tmax 호스트 Gateway 에서 사용하는 포트번호 이다 Requestor 인 경우에는 두개의 포트번호를 사용하는데 이 항목에 등록한 포트번호는 Work-Request 에서 사용하고 +1 한 포트번호는 Tmax 호스트 Gateway 에서 Requestor 로 접속하기 위한 포트번호로 사용한다

SESSION = numeric ( 범위 1 - 50)

이 항목은 Handler 나 Requestor 와 몇 개의 채널을 연결할 것인지를 지정하는 항목이다 Handler 인 경우에는 이 항목에 지정한 개수 만큼 Handler 프로그램이 실행되고 Requestor 인 경우에는 지정된 개수 만큼 채널을 연결한다

424 SERVICE 절

SERVICE 절은 Host-Link 를 이용하여 다양한 형태로 시스템을 구축할 수 있는데 각 시스템 구축 시 마다 필요한 서비스를 등록하는 절이다 예를 들어 Host-Link 를 NON 블록킹 모드 로 구축하고 tpforward amp tprelay 방식으로 서비스를 이용할 경우 Host-Link 는 relay 되는 서비스명을 알아야

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 32: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 31

한다 이때 RLYSVCNAME 항목에 relay 서비스명을 등록하면 Host-Link 를 이를 이용하여 호스트에서 응답을 수신시 relay 하게 된다 이와 같이 SERVICE 절에 등록하는 각각의 항목의 Host-Link 를 어떻게 사용하느냐에 따라서 등록하는 항목들이 다르다 여기에 등록한 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다 이 절은 필수적으로 등록해야 하는 절이 아니고 필요에 따라 등록해 주면 된다

SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [BIDSVCNAME = BID svc name]

[BIDSVCPOS = 1 ~ MAX_INT]

[BIDSVCSIZE = 1 ~ 15]

[ROPSVCNAME = ROP svc name]

[ROPSVCPOS = 1 ~ MAX_INT]

[ROPSVCSIZE = 1 ~ 15]

[OUTSVCNAME = outsvc name]

[OUTSVCPOS = 1 ~ MAX_INT]

[OUTSVCSIZE = 1 ~ 15]

[RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

TCPIP Host-Link 에서 사용할 SERVICE 절의 전체 형식은 다음과 같다

서버 이름 [RLYSVCNAME = relay svc name]

[RLYSVCPOS = 1 ~ MAX_INT]

[RLYSVCSIZE = 1 ~ 15]

[TCLSVCNAME = tpacall svc name]

[TCLSVCPOS = 1 ~ MAX_INT]

[TCLSVCSIZE = 1 ~ 15]

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 33: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 32

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 해당 서비스가 속하는 서버의 이름을 등록하는 항목이다

RLYSVCNAME = string ( 크기 16 자 이내 )

tpforward amp tprelay 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에게 relay 하게 된다 이런 방식으로 처리함으로써 Host-Link 에 요청하는 서비스가 블록킹되지 않고 계속해서 서비스를 수행 할 수 있기 때문이다 이렇게 relay 되는 서비스명을 등록하는 항목이다 이 항목에 등록하는 서비스는 반드시 Tmax Configuration 파일의 SERVICE 절에 등록되어 있어야 한다

또한 Host-Link 를 호출하기 위해서 Gateway 헤더의 svc 항목에 서비스 명을 입력한 경우에는 이 항목의 서비스는 무시되고 Gateway 헤더의 svc 를 이용한다

어떤 항목의 서비스를 사용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

RLYSVCPOS = numeric ( 범위 1 ~ MAX_INT )

RLYSVCNAME 항목과 동일한 의미로 relay 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 relay 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 RLYSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

RLYSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 34: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 33

이 항목은 RLYSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

TCLSVCNAME = string ( 크기 16 자 이내 )

이 항목은 비동기 방식으로 Host-Link 를 호출 한 경우에 Host-Link 는 요청을 호스트로 전송한 이후에 응답이 수신되면 Host-Link 는 해당 결과를 다른 서비스에 다시 요청하는 방식이다 Host-Link 를 tpacall 에 TPNOREPLAY 방식으로 호출하면 Host-Link 는 호스트에 서비스만 호출하고 결과는 받지 않는다 그러나 이 항목에 서비스를 등록해 주면 Host-Link 는 결과를 수신했을 때 결과를 버리지 않고 지정한 서비스로 tpacall 에 TPNOREPLY 로 호출한다 이런 방식으로 서비스를 이용할 경우에 tpacall 할 서비스명을 등록한다 RLYSVCNAME 과 동일하게 어떤 서비스를 이용할 것인지는 ldquo서비스명을 찾는 순서rdquo에서 자세히 설명할 것이다

TCLSVCPOS = numeric ( 범위 1 ~ MAX_INT )

TCLSVCNAME 항목과 동일한 의미로 tpacall 서비스를 찾을 수 있는 위치를 등록하는 항목이다 이 항목은 응답으로 수신되는 데이터 중에서 tpacall 서비스명을 찾고자 하는 경우에 사용한다 서비스 Offset 은 0 부터 시작하며 이 항목이 등록되면 위의 TCLSVCNAME 항목은 무시되고 이 항목에서 지정한 위치에서 서비스명을 찾게 된다

TCLSVCSIZE = numeric ( 범위 1 ~ MAX_INT )

이 항목은 TCLSVCPOS 항목과 연계해서 사용하는 항목으로 위의 항목에서 지정한 위치에서 이 항목에 지정한 길이의 데이터를 서비스명으로 인식하도록 서비스명의 길이를 등록하는 항목이다

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 35: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 34

425 LOGGING 절

LOGGING 절은 호스트로 송수신하는 모든 데이터에 대해서 지정한 형식으로 파일에 저장하거나 또는 Logging 서비스를 등록하는 절이다 사용자는 이 절을 등록하여 송수신 데이터를 Logging 할 수 있다

LOGGING 절의 전체 형식은 다음과 같다

서버 이름 [LOGPATH = logging path]

[LOGTYPE = (HEX) | TEXT]

[LOGSVC = logging 서비스 이름]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다 Logging 하고자 하는 서버의 이름을 등록하는 항목이다

LOGPATH = string ( 크기 256 자 이내 )

송수신 데이터를 Logging 하기 위해서는 파일명을 알아야 하는데 이 항목에 Logging 하고자 하는 파일의 패스를 등록한다 패스를 등록하는 방법에 따라서 파일의 패스가 다르게 적용된다 파일의 패스를 절대경로(로 시작되는 경로)로 정의하면 지정한 패스를 그대로 사용하게 되고 상대경로(로 시작되지 않는 경로)로 정의하면 Tmax 의 LOGDIR 항목에 정의한 패스에 이 항목에서 지정한 패스를 더해서 Logging 패스로 사용한다 또한 이 항목에서 지정한 패스가 ldquordquo로 끝나면 Host-Link 는 프로세스명 서버번호 일자로 파일 이름을 부여하고 ldquordquo로 끝나지 않으면 서버번호 일자만 추가해서 파일명으로 사용한다

아래에서 설명할 LOGSVC 항목을 지정하면 이 항목에서 지정한 패스는 무시된다

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 36: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 35

LOGTYPE = (HEX) | TEXT

송수신 데이터를 Logging 시 어떤 방식으로 Logging 할 것인지를 지정하는 항목이다 Logging 방식은 HEX 와 TEXT 방식이 있는데 HEX 는 송수신 데이터를 16 진수 방식으로 Logging 하고 TEXT 를 지정하면 스트링 형태로 Logging 한다

LOGSVC = string ( 크기 16 자 이내 )

송수신 데이터를 Host-Link 에서 Logging 하지 않고 사용자가 작성한 서비스에서 Logging 하고자 하는 경우에 이 항목에 서비스명을 등록한다 Logging 서비스에 전달되는 데이터는 송수신 데이터 외에 Tmax usrinc 의 hlinkapih 파일에 정의된 LOGHEADER 가 포함된다 이 항목에 등록한 서비스 명은 반드시 Tmax 시스템에 등록된 이름이어야 한다

426 CONVERSION 절

CONVERSION 절은 Host-Link 가 실행되는 서버의 코드와 리모트 시스템간에 코드 체계가 다를 경우에 어느 쪽에서든 데이터 변환을 해야만 한다 Host-Link 에서는 송수신 데이터에 대해서 ASCII EBCDIC 완성형 한글 조합형 한글로 변환을 한다 Tmax 호스트 Gateway 는 호스트로 데이터를 송신하기 전에 ASCII =gt EBCDIC 완성형 =gt 조합형으로 코드를 변환하여 전송하고 반대인 응답인 경우에는 EBCDIC =gtASCII 조합형 =gt 완성형으로 변환한다 변환하는 방식은 사용자가 지정한 Map 파일(송수신 format)을 기초로 해서 데이터를 변환한다 코드 변환에 대한 자세한 사항은 ldquo데이터 변환rdquo을 참조하기 바란다

CONVERSION 절의 전체 형식은 다음과 같다

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 37: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 36

서버 이름 [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]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

INBOUND = Y | (N)

이 항목은 호스트로 전송하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다

자세한 설명을 ldquo데이터 변환rdquo을 참조하기 바란다

INBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 38: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 37

INBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND = Y | (N)

이 항목은 호스트에서 수신하는 데이터에 대해서 변환을 할 것인지 아닌지를 지정하는 항목이다 Y 로 설정하면 Host-Link 는 IBM 호스트에서 수신하는 모든 데이터를 EBCDIC =gt ASCII 조합형 한글 =gt 완성형 한글로 변환한다 한글 변환시 IBM 호스트는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단하고 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하기 때문에 Host-Link 에서는 한글 시작과 끝 문자를 공백으로 바꾼다

예를 들어 0x0e 홍길동 0x0f 로 데이터가 수신되면 ldquo홍길동 ldquo으로 0x0e 0x0f 를 두개의 공백으로 변환한다

OUTBOUND_KOR = Y | (N)

Map 파일을 사용함으로 이 항목은 사용하지 않는다

OUTBOUND_SKIP = numeric ( 범위 1 ~ MAX_INT )

Map 파일을 사용함으로 이 항목은 사용하지 않는다

MAPPATH = literal ( 크기 255 자 이내 )

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 39: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 38

이 항목은 서비스 별로 호스트 송수신 Format 이 등록되어 있는 패스를 등록하는 항목이다 Host-Link 는 데이터를 변환할 때 사용자가 정의한 Format 에 따라서 코드를 변환함으로 모든 송수신 데이터에 대해서 송수신 Format 를 등록해야 한다 Tmax 호스트 Gateway 에서 호스트로 서비스를 요청하는 경우에는 클라이언트에서 Host-Link 로 서비스를 요청할 때 사용한 Gateway 헤더의 pgmname 항목에 호스트 프로그램 이름을 넣어서 호출하게 된다 Host-Link 는 pgmname 의 이름으로 이 항목에서 지정한 패스에서 Map 파일을 찾아서 코드를 변환한다 반대로 호스트에서 먼저 Tmax 로 서비스를 요청하는 경우에는 Tmax 서비스 이름으로 Map 파일을 찾아서 코드를 변환 한다

427 USERHEADER 절

이 절은 Tmax 클라이언트나 서비스에서 Host-Link 에 호스트의 서비스 요청을 호출하는 경우에 사용하는 절로서 반대인 경우에는 사용하지 않으므로 등록하지 않아도 된다 이 절을 사용하는 방식은 Host-Link 를 호출하고 결과를 받는 서비스가 다를 경우에 대부분 사용한다 즉 송신 서비스에서 Host-Link 에 서비스를 요청하고 송신 서비스는 종료한다 다음에 호스트에서 응답이 수신되면 Host-Link 는 SERVICE 절에서 등록한 RLYSVCNAME 항목에서 정의 서비스로 relay 하여 응답 데이터를 처리하도록 한다 이런 환경 하에서 호스트에서 처리할 데이터 이 외에 송신 서비스에서 수신 서비스로 데이터를 전달하기 위해서는 호스트 프로그램에게 까지 영향을 미치게 된다 이런 경우에 사용자는 사용자 헤더를 지정하여 송신 서비스에서 수신 서비스로 전달할 데이터를 지정해두면 Host-Link 는 사용자 헤더 데이터를 호스트로 보내지 않고 보관하고 있다가 응답이 수신되면 사용자 헤더 데이터에 응답 데이터를 붙여서 relay 서비스에 전달한다 이렇게 사용함으로써 송수신 서비스를 하나로 작성하는 것보다 시스템 리소스 사용면에서 월등한 이점이 있다

USERHEADER 절의 전체 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

[SVCPOS = 1 ~ HSIZE - 1]

[SVCSIZE = 1 ~ 16]

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 40: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 39

[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]

TCPIP Host-Link 에서 사용할 USERHEADER 절의 형식은 다음과 같다

서버 이름 [HSIZE = 0 ~ 256]

각 항목에 대한 자세한 설명은 다음과 같다

서버 이름 ( string 크기 16 자 이내 )

SERVER 절에서 등록한 서버이름을 지정한다

HSIZE = numeric ( 범위 0 ~ 256 )

이 항목은 사용자의 헤더 길이를 지정하는 항목이다 Host-Link 는 이 헤더 데이터를 보관하였다가 Host 로부터 응답을 수신하면 해당 헤더 데이터를 앞에 추가하여 클라이언트나서버로 전송한다

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 41: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 40

5 Host-Link 기능

이번 장에서는 Host-Link 에서 제공하는 기능들에 대해서 설명할 것이다 다음과 같은 기능에 대해서 설명한다

데이터 변환 기능

데이터 Logging 기능

사용자 헤더 정의 기능

서비스명 찾는 순서

세션 장애 복구 방법

51 데이터 변환 Host-Link 는 TCPIP 로 호스트와 송수신 하는 모든 메시지에 대해서 해당 시스템에 맞는 코드로 변환할 수 있다 Host-Link 는 ASCII EBCDIC 조합형 한글 완성형 한글로 서로간에 코드를 변환한다 이러한 코드 변환은 대부분은 IBM 호스트와 통신할 때 사용하는 것으로 IBM 호스트 시스템이 EBCDIC 코드를 사용하기 때문이다

Host-Link Configuration 파일에 CONVERSION 절을 등록하고 해당 항목(INBOUND OUTBOUND)에 Yes 로 하면 호스트로 전송하는 메시지에 대해서는 ASCII =gt EBCDIC 완성형 한글 =gt 조합형 한글로 코드를 변환하여 전송하고 호스트에서 데이터 수신시 위와 반대로 코드를 변환하여 클라이언트나 서비스에게 전달한다

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 42: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 41

코드 변환시 한글 변환에 항상 문제가 발생하는데 이러한 문제를 감소하기 위해서 Host-Link 는 Map 파일을 등록하여 코드를 변환한다 호스트로 전송하는 데이터는 대부분 한글과 일반 데이터가 포함되는데 이 경우에 Map 파일을 사용하지 않으면 메시지의 길이가 증가될 수 있다 메시지가 길이가 증가되면 호스트 프로그램 처리시 오류가 발생할 수 있다 자세한 코드 변환은 아래에서 설명한다

Host-Link 에서는 Map 파일을 이용하여 코드를 변환하는데 서비스별로 Map 파일을 찾는 방법은 어디에서 먼저 서비스를 요청하느냐에 따라서 다르다 Tmax 에서 호스트로 서비스를 요청하는 경우에는 Gateway 헤더의 pgmname 항목에서 호스트 프로그램 이름으로 Map 파일을 로드하여 코드를 변환한다 반대로 호스트에서 Tmax 서비스를 호출하는 경우에는 Tmax 서비스명으로 Map 파일을 로드하여 코드를 변환한다

INBOUND 항목을 Y 로 설정하면 Host-Link 는 IBM 호스트로 전송하는 모든 데이터를 ASCII 를 EBCDIC 완성형 한글을 조합형 한글로 변환한다 한글 변환시 ASCII 는 2 Bytes 중 첫 번째 Byte 의 첫 bit 가 1 로 되어 있으면 이를 한글로 인식하는데 IBM Host 는 한글 시작과 끝을 가리키는 문자를 두어서 한글인지 EBCDIC 코드인지를 판단한다 이런 방식으로 한글을 관리하다 보니 Host-Link 에서 한글을 변환 할 때 한글 시작과 끝 문자가 추가된다

예를 들어 홍길동을 변환하면 0x0e 홍길동 0x0f 으로 변환된다 그러나 홍 길 동을 변환하면 0x0e 홍 0x0f + space + 0x0e 길 0x0f + space + 0x0e 동 0x0f 로 변환된다 이런 방법으로 메시지를 변환하면 이 한글 항목 다음의 데이터는 늘어난 길이만큼 뒤로 밀리게 된다 그래서 프로그램에서 정의한 구조체와 일치하지 않게 된다 그러나 Map 파일을 사용하면 Host-Link 는 항목별 길이를 지정하면 해당 항목의 길이를 초과할 수 없어서 전문의 길이는 증가되지 않는다

OUTBOUND 항목은 INBOUND 항목과 반대로 EBCDIC 를 ASCII 로 조합형 한글을 완성형 한글로 변환한다 한글 시작과 끝을 가리키는 문자는 공백으로 변환된다 예를 들어 0x0e 홍길동 0x0f 을 홍길동+space+space 로 변환된다

MAP 파일 형식

COMMSIZE 는 INPUTOUTPUT 에서 같이 사용해야 함으로 INPUTOUTPUT 중

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 43: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 42

큰 size 의 값을 입력해야 합니다

COMMSIZE

1024

INPUT

----------------------------------------------------------------

item-name length data-type

data-type 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

ltUSER1gt

e1 6 CHAR

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 44: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 43

e2 10 KOREAN

e3 8 BINARY

ltUSER1gt

COMMSIZE

이 항목은 리모트 노드와 송수신하는 데이터의 길이를 지정하는 항목이다

이 항목은 모든 서비스 메시지(송수신 포함)중 가장 큰 메시지의 길이를

입력해야 한다

INPUT

이 항목은 Tmax 호스트 Gateway 에서 호스트로 전송하는 메시지에

대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서 호스트로

서비스를 요청하는 경우에 이 항목에 호스트 프로그램에서 처리할

메시지의 Format 를 등록하고 반대로 호스트에서 Tmax 로 서비스를

요청하는 경우에는 Tmax 서비스의 처리 결과에 대한 Format 을

등록한다

OUTPUT

이 항목은 호스트에서 Tmax 호스트 Gateway 에서 호스트로 수신 받은

메시지에 대해서 등록하는 항목이다 Tmax 호스트 Gateway 에서

호스트로 서비스를 요청하는 경우에는 호스트 프로그램에서 처리한

결과를 수신 받는 메시지의 Format 을 등록하고 반대로 호스트에서

Tmax 로 서비스를 요청하는 경우에는 Tmax 로 서비스를 요청하는

메시지에 대해서 Format 을 등록한다

항목명

이 이름은 단순히 사용자가 참조용으로만 사용하는 이름이다 Tmax

호스트 Gateway 는 항목명으로 인식하고 내부에서는 사용하지 않는다

항목 길이

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 45: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 44

송수신 데이터의 각 항목의 실제 길이를 나타낸다 각 항목의 길이만

표현하면 Tmax 호스트 Gateway 내부에서 Offset 으로 변환하여

사용한다 Offset 은 항상 0 부터 시작한다

데이터 타입

송수신 각 항목의 데이터 타입을 지정한다

CHAR 이 타입은 데이터가 모든 문자(영문자 숫자 한글)을 포함할 수

있는 항목을 나타낸다

NUMERIC이 타입은 데이터가 숫자만을 나타내는 경우이다 이 타입의

코드 변환은 CHAR 타입과 동일하게 코드를 변환한다 타입 NUMERIC 라

해서 Integer 를 나타내는 것은 아니다

KOREAN 이 타입의 데이터는 모두 한글일 경우에 사용한다 TCPGW 는

이 타입의 데이터는 항상 2 Bytes 단위로 코드를 변환한다 CHAR 에서 한글이 포함된 경우에 한글과 다른 코드(영문자 숫 특수문자) 사이에 한글의 시작과 끝 문자가 포함되는데 반해 이 타입의 데이터는 모두 한글 문자로 인식하기 때문에 처음과 끝에만 한글 시작과 끝 문자가 포함된다

BINARY 이 타입의 데이터는 코드를 변환하지 않는다 사용자는

데이터중 코드를 변환하지 않고자 하는 경우에는 이 타입으로 지정하면

된다

USER-TYPE 이 타입의 데이터는 Array 형식의 데이터 타입을

지정하고자 할 경우에 사용한다 예를 들어 화면에 여러 개의 항목이

반복해서 나올 경우에 각 항목들을 반복 횟수 만큼 등록해야 하는

번거로움이 있다 또는 반복 횟수를 데이터로 표현하는 경우에는 몇번의

반복이 되는지를 알 수 없어 코드 변환이 어렵다 이를 위해서 Host-

Link 는 사용자 정의 타입을 지정하여 Array 형태의 데이터도 쉽게

변환할 수 있다

위의 Map 파일에서 USER1 은 사용자가 지정한 사용자 정의 타입이다

타입 이름은 사용자가 임의로 지정하면 된다 사용자 정의 타입의

데이터는 Array 데이터의 반복을 나타내는 항목이므로 반드시 숫자로

이루어져야 한다 Host-Link 는 사용자 정의 타입을 만나면 이를

Array 의 횟수로 인식한다

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 46: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 45

Array 의 끝은 마지막 항목의 이름을 lsquorsquo로 시작하면 된다 위의 경우에는

e1 e2 e3 을 Array 항목으로 인식해서 e 항목으로 지정한 횟수 만큼

코드를 변환한다

Array 횟수는 Map 파일에 등록하지 않고 Host-Link 와 호스트 사이에

데이터 전문에 표현한다

52 데이터 Logging Host-Link 는 호스트와 송수신하는 모든 데이터를 지정한 파일로 저장하거나 또는 지정한 서비스를 호출할 수 있다 데이터를 Logging 하고자 할 경우에는 반드시 LOGTYPE 항목을 지정해야 한다 다른 LOGPATH 나 LOGSVC 항목만 등록하고 LOGTYPE 항목을 지정하지 않으면 데이터에 대한 Logging 은 이루어 지지 않는다

또한 Logging 서비스가 등록되어 있는 경우에는 패스 항목이 등록되어 있어도 무조건 서비스를 호출한다 데이터 Logging 은 하나의 서비스 요청에 대해서 네 지점의 데이터를 저장한다 첫번째는 Tmax 클라이언트나 서비스에서 Host-Link 로 요청한 데이터 두번째는 요청 데이터를 호스트로 전송하기 직전 세번째는 호스트에서 데이터를 수신하자마자 네번째는 처리 결과나 서비스 요청을 Tmax 로 전송하기 직전에 한다

LOGPATH 항목은 Logging 하고자 하는 Directory 나 파일을 지정하는 항목이다 첫 문자가 lsquorsquo로 시작하지 않으면 Host-Link 는 Tmax 시스템에서 정의한 ULOGDIR 항목의 패스로 부터 시작한다 Tmax 환경파일의 NODE 절에 ULOGDIR=rsquohometmaxlogulogrsquo로 정의하고 Host-Link 환경파일의 LOGGING 절에 LOGPATH=rsquotestrsquo로 하면 Logging 파일은 rsquohometmaxlogulogtest_서버 index일자rsquo 이다

LOGPATH 항목의 마지막 문자가 lsquorsquo로 끝나면 Logging 파일명은 Host-Link 서버 프로세스명으로 파일을 만든다 LOGPATH=rdquotestrdquo로 하면 Logging 파일은 rsquohometmaxlogulog서버프로세스명_서버 index일자rsquo 이다

LOGTYPE 항목은 데이터를 Logging 할 때 어떤 형식으로 할 것인지를 지정하는 항목이다

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 47: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 46

LOGGING_TYPE 를 HEX 로 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141058375]

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[141058376]

00000000 e3f1c9d8 c3e5c840 40d3f0f5 f8f3f740

||

00000010 40f9f1f0 4040f0f0 f0f04040 40404040

||

00000020 40e5c8e3 f5f0f040 d3404080 80808080 ||

00000030 a040f4f5 f9f9f5f0 f4f0f0f8 f0f8f3f9

||

00000040 f0f91ed5 1e0d |

|

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 48: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 47

LOGTYPE 를 TEXT 지정하면 Logging 데이터는 아래와 같다

HOSTLINK HOST Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

HOST HOSTLINK Length[70] time[141135446]

蜃 춧到沖綵亢拙拙瀁辰拙 逮桁春替淙淙蔡琮-

LOGSVC 항목은 사용자가 작성한 Logging 관련 서비스를 등록하는 항목이다 이 항목을 등록하면 Host-Link 프로세스에서는 자체에서 Logging 을 하지 않고 해당 서비스로 Logging 을 넘긴다 서비스 Logging 시 Host-Link 프로세스는 지정한 Logging 헤더 폼으로 서비스를 호출한다 해당 폼은 Tmax 시스템의 usrinchlinkapih 에 LOGHEADER 로 정의되어 있다

53 사용자 헤더 Host-Link 시스템은 Tmax 클라이언트서버와 데이터를 주고 받을 때 특정한 헤더를 정의할 수가 있다 Host-Link 는 이 헤더를 호스트로 전송하지 않고 보관하였다가 호스트에서 응답을 수신하면 수신한 데이터에 이 헤더를 추가하여 응답한다 TCPIP Host-Link 는 호스트로 서비스를 요청하는 경우에만 사용자 헤더를 지정할 수 있다

보통 사용자 헤더는 위에서도 언급한 것처럼 Host-Link 를 호출하고 응답 받는 서비스를 분리하고자 하는 경우에 사용한다 먼저 송신 서비스에서 호스트로 전송하기 전에 서버에서 처리할 부분을 처리하고 나중에 응답을 수신 서비스에서 처리할 경우에 수신 서버 입장에서는 송신 서비스에서 처리한 정보(DB 나 기타 다른 정보)를 모르는 경우가 있다 이를 위해서 송신

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 49: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 48

서비스에서 수신 서비스로 호스트에서 처리한 결과가 오거나 또는 호스트 처리 중 오류가 발생할 경우에 수신 서비스에서 송신 서비스에서 처리한 내용을 수정한다든지 또는 Rollback 할 수 있는 정보를 전달하고자 하는 경우에 사용자 헤더를 사용한다

54 서비스명 찾는 순서 Host-Link 는 Tmax 클라이언트나 서비스에서 Host-Link 를 호출하는 방법에 따라서 연계 서비스를 지원한다 tpforward 로 호출하는 경우에는 tprelay 로 다른 서비스와 연계되고 tpacall 에 TPNOREPLY 를 호출하는 경우에는 tpacall 에 TPNOREPLY 로 다른 서비스를 연계한다 Host-Link 는 이렇게 연계되는 서비스를 찾는 순서가 정해져 있다 가장 먼저 서비스명을 찾는 곳은 Host-Link 호출시 사용한 Gateway 헤더의 svc 항목에서 찾는다 이 항목에 서비스명이 없으면 두번째로 Host-Link Configuration 파일에 정의한 SVCPOS 항목이 지정하고 있는 위치의 응답 데이터에서 서비스명을 찾는다 세번째로 SVCPOS 에 서비스 지정이 없으면 SVCNAME 항목에 정의한 서비스 이름이 적용된다 위의 세가지 모드에서 찾지 못하면 오류를 발생하고 응답 데이터는 버린다 단 일반 tpcall 이나 tpacall 로 호출한 서비스는 다른 서비스로 연계되지 않고 리턴 된다

반대로 호스트에서 먼저 서비스 호출이 일어나는 경우에는 두 가지 순서로 서비스를 찾는다 첫번째는 OUTSVCPOS 에서 지정하고 있는 위치의 서비스 요청 데이터에서 서비스명을 찾는다 OUTSVCPOS 를 지정하지 않는 경우에는 두번째로 OUTSVCNAME 항목에 등록한 서비스명을 이용하여 Tmax 서비스를 호출한다 위의 두가지 방법으로도 서비스를 찾지 못하면 오류로 처리한다

55 세션 장애 복구 방법 Host-Link 의 장애대책은 Tmax 시스템에서 제공하는 장애대책을 기본적으로 따른다 그러나 호스트와 연결된 각각의 세션에 대해서는 Host-Link 에서 장애를 복구한다 TCPIP Host-Link 장애 대책은 세션에 대한 장애 복구만 있다 호스트와 특정 세션이 비 정상적으로 종료 되었을 경우 Host-

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 50: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 49

Link 는 해당 세션을 주기적으로 호스트와 다시 연결을 시도한다 호스트와 세션을 연결하는 방법은 ldquo호스트 프로그램 호출 처리 FLOWrdquo를 참조하기 바란다

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 51: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 50

6 Host-Link Service

Host-Link 는 Tmax 시스템에서 제공하는 기본적인 서비스인 tpcall tpacall tpforward 등을 제공한다(INBOUND) 대화형 모드인 tpconnect tpsend tprecv 는 사용할 수 없다 또한 Host-Link 는 호스트에서 Tmax 시스템에 존재하는 서비스를 호출할 수 있는 방식을 지원한다(OUTBOUND)

61 tpcall 서비스 tpcall 서비스는 Tmax 시스템의 다른 서버 프로세스에서 제공하는 서비스와 동일하게 사용할 수 있는 서비스이다 Host-Link 는 일반 서버 프로세스와 다르게 CPC 를 사용하여 동시에 여러 건의 서비스를 처리할 수 있다 즉 CPC 를 5 를 주었을 경우 Host-Link 는 동시에 5 건의 서비스를 처리할 수 있다

그림 6-1 tpcall 서비스

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 52: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 51

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpcallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPCALL SVRNAME= tpcallsvr

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 53: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 52

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

62 tpacall 서비스 tpacall 의 경우에는 두 가지가 있는데 서비스를 요청하고 응답을 받는 서비스가 있고 서비스만 요청하고 응답을 받지않는 경우가 있을 수 있다 첫번째 방법은 응답을 받는 경우로 tpcall 서비스와 동일하게 처리된다 그러나 두번째 방법은 Host-Link 에서 호스트 응답을 수신할 경우 다른 서비스로 연계할 수 있다 사용자가 Host-Link Configuration 정의에 따라서 다른 서비스로 tpacall 할 것인지를 판단한다 이 경우 Host-Link 는 응답을 받지 않는 모드로 연계 서비스를 요청한다

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 54: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 53

서비스 요청 후 응답 수신

그림 6-2 tpacall 서비스(서비스 요청 후 동일 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터를 서비스를 호출한 클라이언트나 서버에 응답

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 55: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 54

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL SVRNAME= tpacallsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 56: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 55

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

서비스 요청 후 다른 서비스 연계

이런 방식으로 서비스를 호출하는 경우에는 먼저 Tmax 클라이언트나 서비스에서 tpacall 에 TPNOREPLY 로 Host-Link 를 호출하면 Host-Link 는 해당 요청을 호스트에 전송하고 응답을 받는다 응답 데이터가 수신되면 Host-Link 는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-3 tpacall 서비스(서비스 요청 후 타 서비스 응답 수신)

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 57: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 56

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPACALL2 서비스에 서비스 호출

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpacallsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpacallsvr2 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPACALL1 SVRNAME= tpacallsvr1

TPACALL2 SVRNAME= tpacallsvr2

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 58: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 57

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

63 tpforward 서비스 tpforward 방식은 호스트로 서비스를 요청하는 서비스와 응답을 받아서 처리하는 서비스를 분리하는 경우에 사용하는 방식이다 이 방식은 tpacall 에 TPNOREPLY 와 비슷한 방식이나 다른점은 최초에 서비스를 요청한 클라이언트나 서비스에 응답이 전달되는지 전달되지 않는지의 차이 밖에 없다 tpforward 를 사용하면 최초에 서비스를 요청한 곳에 응답이 정확히 전달된다

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 59: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 58

응답 데이터는 위의 ldquo서비스명 찾는 순서rdquo에서 설명한 순서로 서비스를 찾아서 해당 서비스로 응답 데이터를 보낸다

그림 6-4 tpforward 서비스

1 Tmax 클라이언트나 서버에서 Tmax Configuration 에서 정의한 Host-Link 서비스 호출

2 Host-Link 는 해당 호스트의 Handler 에게 데이터를 전송하면 Handler 는 해당 데이터를 수신하고 호스트 프로그램을 실행

3 호스트는 해당 서비스를 처리하고 결과를 Host-Link 에 응답

Host-Link 는 해당 응답 데이터로 TPFORWARD2 서비스로 relay

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 60: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 59

MAXCPC=200

NODE

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

tpforwardsvr1 SVGNAME = svg1 MIN=1 MAX=1

tpforwardsvr12 SVGNAME = svg1 MIN=1 MAX=1

SERVICE

HOSTGW SVRNAME= hostgw

TPFORWARD1 SVRNAME= tpforwardsvr1

TPFORWARD2 SVRNAME= tpforwardsvr12

Host-Link Configuration

HOSTLINK

sample= 98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPS

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 61: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 60

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

64 Outbound 서비스 Outbound 서비스는 서비스 시작이 호스트로부터 발생하는 것으로 호스트에서 Tmax 시스템에 존재하는 서비스를 호출하여 그 처리 결과를 받는 형태의 서비스이다 이 서비스도 Tmax 에서 호스트로 서비스를 요청하는 tpcall 방식과 동일하다

서비스명을 찾는 순서는 위의 ldquo서비스명을 찾는 순서rdquo를 참조하기 바란다

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 62: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 61

그림 6-5 OUTBOUND 서비스

1 호스트에서 Work-Request 를 통해서 Requestor 에게 Tmax 서비스 요청

2 Requestor 는 Tmax 시스템에 있는 Tmax 호스트 Gateway 에 서비스 요청 메시지 전달

3 Tmax 호스트 Gateway 는 요청 메시지를 받아서 Tmax 서비스 호출

4 Tmax 호스트 Gateway 는 서비스 처리 결과를 받음 Tmax 호스트 Gateway 는 Requestor 에 서비스 처리 결과 메시지 전달 Tmax 서비스 처리 결과를 사용자 프로그램에 전달

Tmax Configuration

DOMAIN

res1 SHMKEY = 78880 MINCLH=1 MAXCLH=3

TPORTNO=8988 BLOCKTIME=300

MAXCPC=200

NODE

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 63: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 62

tmax TMAXDIR = hometmax

APPDIR = home tmax appbin

PATHDIR = home tmax path

TLOGDIR = home tmax logtlog

ULOGDIR = home tmax logulog

SLOGDIR = home tmax logslog

IPCPERM = 0666

SVRGROUP

svg1 NODENAME = tmax

SERVER

hostgw SVGNAME = svg1 MIN=1 MAX=1 RESTART=N

outboundsvr SVGNAME = svg1 MIN=1 MAX=1

SERVICE

OUTBOUND SVRNAME= outboundsvr

Host-Link Configuration

HOSTLINK

sample SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

SVRTYPE=CICSTCPR

TRXID=HOSTSEND

HOSTADDR=rdquo1111rdquo

HOSTPORT=12654

LISTENPORT=12655

SESSION=10

LOGGING

hostgw01 LOGPATH=loghostgw01

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 64: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 63

LOGTYPE=HEX

CONVERSION

hostgw01 INBOUND=YES

OUTBOUND=YES

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 65: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 64

부록 A

TCPIP Host-Link 에서 정의할 전체 Configuration 예제이다

HOSTLINK

aaa SHMKEY=98765

TMAX=Y

SERVER

hostgw01 TMAXSVRNAME=hostgw

TMAXSVRNO=01

TYPE=CICSTCPS

ID=HOSTSEND

KERTRXID=rdquoWORKTRANrdquo

KERNUM=10

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

hostgw01 MAXSVRNAME=hostgw

XSVRNO=02

TYPE=CICSTCPR

ID=HOSTSEND

TADDR=rdquo1111rdquo

TPORT=12654

TENPORT=12655

SION=10

SERVICE

hostgw01 LYSVCNAME=RECVSVC

SVCPOS=1

SVCSIZE=10

SVCNAME=TACALSVC

SVCPOS=1

SVCSIZE=10

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 66: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 65

hostgw02 UTSVCNAME=OUTBOUND

SVCPOS=1

TSVCSIZE=10

LOGGING

hostgw01 OGPATH=loghostgw01

TYPE=HEX

SVC=LOGSVC

hostgw02 GPATH=loghostgw02

TYPE=TEXT

CONVERSION

hostgw01 NBOUND=NO

BOUND=NO

hostgw02 NBOUND=YES

BOUND=YES

USERHEADER

hostgw01 SIZE=20

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 67: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 66

부록 B

Host-Link 호스트와 통신 중 상황에 따라서 여러 가지 오류가 발생할 수 있다 사용자는 이 오류 코드를 분석하여 어떠한 오류가 발생했는지 파악해야 한다 각각의 오류 코드는 다음과 같다

오류 코드 설 명

TPEINVAL 호스트로 요청하는 메시지의 길이가 Gateway 헤더 길이보다 작은 경우에 발생

TPEOS Host-Link 에서 사용하는 여러 가지 메모리를 할당할 경우에 발생하는 오류

TPENOREADY Host-Link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우

TPEITYPE 송수신 메시지의 코드 변환시 Map 파일을 로드 하다가 발생하는 오류

TPEOTYPE 호스트에서 Tmax 서비스 호출시 서비스명이 잘못된 경우

TPESYSTEM 메시지를 호스트와 송수신 하다가 오류가 발생하는 경우

호스트로 요청한 메시지를 처리하기 위해서 호스트 프로그램 실행시 오류가 발생한 경우

TPESVCFAIL 호스트의 프로그램에서 서비스 처리시 오류가 발생하는 경우

TPETIME Host-Link 에서 Host 로 데이터를 전송한 이 후에 지정된 시간이 초과 할 경우

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생

Page 68: Tmax HostLink Guide - TCPIP - kr.  · PDF file시스템이 CICS이면 Listener는 CSKL를 사용하고, IMS인 경우에는 IMS-Listener 나 OTMA 를 이용한다. 2.1

Tmax HostLink Guide 67

TPEPROTO 호스트로 요청하는 Tmax 호스트 Gateway 로 호스트에서 요청이 오거나 또는 호스트에서 요청하는 Tmax 호스트 Gateway 로 Tmax 에서 서비스를 요청하는 경우에 발생