상태 모니터링 API와 구조체
본 장에서는 Host-link의 상태를 모니터링하는 API와 구조체에 대해 설명한다.
1. API
Host-link 시스템은 Host-link의 상태를 모니터링할 수 있는 API를 제공한다. API는 Host-link 시스템이 실행된 후 Tmax 시스템의 클라이언트, 서버 프로그램 및 기타 일반 프로그램에서 사용할 수 있다.
다음은 Host-link 상태 모니터링을 위한 API 목록이다.
API | 설명 |
---|---|
서버 타입에 해당하는 Host-link 시스템의 프로세스 수를 조회한다. |
|
서버 타입에 해당하는 Host-link 프로세스의 정보를 조회한다. |
|
Host-link 시스템에 속한 서버의 LU 정보를 조회한다. |
|
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이다.
구조체 | 설명 |
---|---|
Host-link 서버의 프로세스 정보를 담고있는 구조체이다. |
|
Host-link 서버의 LU 정보를 담고있는 구조체이다. |
|
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이다.
|
int cpc |
SERVER 절의 CPC이다. |
int buffering |
SERVER 절의 BUFFERING이다.
|
int innum |
SERVER 절의 SESSION이다. |
int outnum |
미사용 멤버이다. |
int line_status |
해당 서버의 회선 상태이다.
|
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 상태이다.
|
int send |
LU 0 호스트로의 메시지 전송 여부이다.
|
int direction |
LUINFO 절의 DIRECTION이다.
|
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 세션의 상태이다.
|
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 세션이 비활성화된 경우 발생하는 에러이다. |