상태 모니터링 API와 구조체

본 장에서는 Host-link의 상태를 모니터링하는 API와 구조체에 대해 설명한다.

1. API

Host-link 시스템은 Host-link의 상태를 모니터링할 수 있는 API를 제공한다. API는 Host-link 시스템이 실행된 후 Tmax 시스템의 클라이언트, 서버 프로그램 및 기타 일반 프로그램에서 사용할 수 있다.

다음은 Host-link 상태 모니터링을 위한 API 목록이다.

API 설명

tpgethlinksvr

서버 타입에 해당하는 Host-link 시스템의 프로세스 수를 조회한다.

tpgethlinkproc

서버 타입에 해당하는 Host-link 프로세스의 정보를 조회한다.

tpgethlinkluinfo

Host-link 시스템에 속한 서버의 LU 정보를 조회한다.

tpgethlinkssinfo

Host-link 시스템에 속한 LU의 세션 정보를 조회한다.

1.1. tpgethlinksvr

서버 타입에 해당하는 Host-link 시스템의 프로세스 수를 조회하는 함수이다. 함수를 통해 얻은 Host-link의 공유 메모리 정보를 tpgethlinkproc, tpgethlinkluinfo, tpgethlinkssinfo 3개의 API에서 사용한다.

  • 프로토타입

    int tpgethlinksvr(int shmkey, int svrtype)
  • 파라미터

    파라미터 설명

    shmkey

    Host-link의 공유 메모리 키 값이다.

    svrtype

    서버 타입을 설정한다.

    • SVRTYPE_LU0

    • SVRTYPE_LU62S

    • SVRTYPE_LU62R

    • SVRTYPE_CTG

    • SVRTYPE_CSKL

    • SVRTYPE_IMSLSTN

    • SVRTYPE_IMSOTMA

  • 반환값

    반환값 설명

    Host-link의 프로세스 수

    함수 호출에 성공한 경우이다.

    -1

    함수 호출에 실패한 경우이다.

1.2. tpgethlinkproc

서버 타입에 해당하는 Host-link 프로세스의 정보를 조회하는 함수이다.

  • 프로토타입

    int tpgethlinkproc(int svrtype, HLPROCINFO *info)
  • 파라미터

    파라미터 설명

    svrtype

    서버 타입을 설정한다.

    • SVRTYPE_LU0

    • SVRTYPE_LU62S

    • SVRTYPE_LU62R

    • SVRTYPE_CTG

    • SVRTYPE_CSKL

    • SVRTYPE_IMSLSTN

    • SVRTYPE_IMSOTMA

    info

    서버 프로세스 정보가 담길 구조체 테이블의 버퍼이다. 반드시 tpgethlinksvr()에서 받은 수만큼 구조체 버퍼를 할당해야 한다.

  • 반환값

    반환값 설명

    0

    함수 호출에 성공한 경우이다.

    -1

    함수 호출에 실패한 경우이다.

1.3. tpgethlinkluinfo

Host-link 시스템에 속한 서버의 LU 정보를 조회하는 함수이다. 이 함수는 내부에서 LU 수만큼 메모리를 할당하므로 이 함수를 사용한 이후에는 반드시 할당된 메모리를 해제해야 한다.

  • 프로토타입

    HLLUINFO * tpgethlinkluinfo(char *svrname, int *lunum)
  • 파라미터

    파라미터 설명

    svrname

    Host-link 시스템에 속한 서버명이다.

    lunum

    반환되는 LU의 개수이다.

  • 반환값

    반환값 설명

    구조체 테이블

    함수 호출에 성공한 경우이다. Host-link 서버의 LU 정보를 담고있는 구조체 테이블을 반환한다.

    NULL

    함수 호출에 실패한 경우이다.

1.4. tpgethlinkssinfo

Host-Link 시스템에 속한 LU의 세션 정보를 조회하는 함수이다. 이 함수는 내부에서 세션 수만큼 메모리를 할당하므로 이 함수를 사용한 이후에는 반드시 할당된 메모리를 해제해야 한다.

  • 프로토타입

    HLSESSINFO * tpgethlinkssinfo(char *luname, int *ssnum)
  • 파라미터

    파라미터 설명

    luname

    Host-link 시스템에 속한 LU명이다.

    ssnum

    반환되는 세션의 개수이다.

  • 반환값

    반환값 설명

    구조체 테이블

    함수 호출에 성공한 경우이다. Host-link LU의 세션 정보를 담고 있는 구조체 테이블을 반환한다.

    NULL

    함수 호출에 실패한 경우이다.

2. 구조체

API 설명 중 Host-link에서 정의한 구조체는 HLPROCINFO, HLLUINFO, HLSESSINFO이다.

구조체 설명

HLPROCINFO

Host-link 서버의 프로세스 정보를 담고있는 구조체이다.

HLLUINFO

Host-link 서버의 LU 정보를 담고있는 구조체이다.

HLSESSINFO

Host-link LU의 세션 정보를 담고 있는 구조체이다.

2.1. HLPROCINFO

HLPROCINFO는 Host-link 서버의 프로세스 정보를 담고있는 구조체이다.

struct HLPROCINFO
{
     int svrno;
     int msgsize;
     int function;
     int cpc;
     int buffering;
     int innum;
     int outnum;
     int line_status;
     char svrname[20];
     char linkname[8];
     char trxid[4];
     char svrlist[128];
}
멤버 설명

int svrno

SERVER 절의 TMAXSVRNO이다.

int msgsize

SERVER 절의 MSGSIZE이다.

int function

SERVER 절의 FUNCION이다.

  • DPL(1)

  • DTP(2)

int cpc

SERVER 절의 CPC이다.

int buffering

SERVER 절의 BUFFERING이다.

  • YES(1)

  • NO(0)

int innum

SERVER 절의 SESSION이다.

int outnum

미사용 멤버이다.

int line_status

해당 서버의 회선 상태이다.

  • Active(1)

  • Inactive(0)

char svrname[20]

SERVER 절의 Server Name이다.

char linkname[8]

SERVER 절의 LINKNAME이다.

char trxid[4]

SERVER 절의 TRXID이다.

char svrlist[128]

SERVER 절의 SVRLIST이다.

2.2. HLLUINFO

HLLUINFO는 Host-link 서버의 LU 정보를 담고있는 구조체이다.

struct HLLUINFO
{
     char luname[8];
     char wsname[8];
     char lutype[12];
     char svcname[16];
     char tpname[64];
     char pluname[16];
     char modename[8];
     int status;
     int send;
     int direction;
     int session;
     int available;
     int count;
}
멤버 설명

char luname[8]

LUINFO 절의 LUNAME이다.

char wsname[8]

LU 처리 중인 WSNAME이다.

char lutype[12]

LUINFO 절의 LUTYPE이다.

char svcname[16]

LU 처리 중인 서비스명이다.

char tpname[64]

LUINFO 절의 TPNAME이다.

char pluname[16]

LUINFO 절의 PLUNAME이다.

char modename[8]

LUINFO 절의 MODENAME이다.

int status

LU 상태이다.

  • LU-LU(0x50)

  • LU-SSCP(0x51)

  • DOWN(0x52)

  • CSDN(0x53)

  • ACTLU(0x54)

  • INACTLU(0x55)

  • NSPE(0x56)

int send

LU 0 호스트로의 메시지 전송 여부이다.

  • NONE(0)

  • SENT(1)

  • TIMEOUT(2)

int direction

LUINFO 절의 DIRECTION이다.

  • INBOUND(1)

  • OUTBOUND(2)

int session

LUINFO 절의 SESSION이다.

int available

LU6.2의 이용 가능한 세션 수이다.

int count

LU 처리 건수이다.

2.3. HLSESSINFO

HLSESSINFO는 Host-link LU의 세션 정보를 담고 있는 구조체이다.

struct HLSESSINFO
{
     int status;
     char luname[8];
     char local_tp[16];
     unsigned char tp_id[8];
     char remote_tp[16];
     char pgmname[8];
     char wsname[8];
     unsigned int conv_id;
     time_t time;
}
멤버 설명

int status

LU6.2 세션의 상태이다.

  • READY(1)

  • BUSY(2)

char luname[8]

LU6.2 세션명이다.

char local_tp[16]

LU6.2 세션의 로컬 TPNAME이다.

unsigned char tp_id[8]

LU6.2 세션의 로컬 TPID이다.

char remote_tp[16]

LU6.2 세션의 리모트 TPNAME이다.

char pgmname[8]

LU6.2 세션의 PGMNAME이다.

char wsname[8]

LU6.2 세션의 WSNAME이다.

unsigned int conv_id

LU6.2 세션의 Conversation ID이다.

time_t time

LU6.2 세션의 Timestamp이다.

3. 에러 코드

Host-link의 에러 코드는 다음과 같다.

에러 코드 설명

TPEOS

Host-link에서 사용하는 메모리를 할당하는 과정에서 발생하는 에러이다.

TPENOREADY

Host-link 시스템에서 관리하는 많은 세션 중 사용 가능한 세션이 없을 경우 발생하는 에러이다.

TPESVCERR

Host-link 프로세스에서 호스트로 데이터를 전송할 때 발생하는 에러이다.

TPESVCFAIL

Host-link 프로세스에서 호스트로 데이터를 수신할 때 발생하는 에러이다.

TPEBADDESC

Host-link 프로세스에서 호스트로 데이터를 전송한 후에 호스트로부터 센스 코드가 전송된 경우 발생하는 에러이다.

TPETIME

Host-link 프로세스에서 호스트로 데이터를 전송한 후에 지정된 시간이 초과할 경우 발생하는 에러이다.

TPEPROTO

Host-link 프로세스에서 관리하는 Link 세션이 비활성화된 경우 발생하는 에러이다.