본 장에서는 Host-link의 상태를 모니터링하는 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의 세션 정보를 조회한다. |
서버 타입에 해당하는 Host-link 시스템의 프로세스 수를 조회하는 함수이다. 함수를 통해 얻은 Host-link의 공유 메모리 정보를 tpgethlinkproc, tpgethlinkluinfo, tpgethlinkssinfo 3개의 API에서 사용한다.
프로토타입
int tpgethlinksvr(int shmkey, int svrtype)
파라미터
파라미터 | 설명 |
---|---|
shmkey | Host-link의 공유 메모리 키 값이다. |
svrtype | 서버 타입을 설정한다.
|
반환값
반환값 | 설명 |
---|---|
Host-link의 프로세스 수 | 함수 호출에 성공한 경우이다. |
-1 | 함수 호출에 실패한 경우이다. |
서버 타입에 해당하는 Host-link 프로세스의 정보를 조회하는 함수이다.
프로토타입
int tpgethlinkproc(int svrtype, HLPROCINFO *info)
파라미터
파라미터 | 설명 |
---|---|
svrtype | 서버 타입을 설정한다.
|
info | 서버 프로세스 정보가 담길 구조체 테이블의 버퍼이다. 반드시 tpgethlinksvr()에서 받은 수만큼 구조체 버퍼를 할당해야 한다. |
반환값
반환값 | 설명 |
---|---|
0 | 함수 호출에 성공한 경우이다. |
-1 | 함수 호출에 실패한 경우이다. |
Host-link 시스템에 속한 서버의 LU 정보를 조회하는 함수이다. 이 함수는 내부에서 LU 수만큼 메모리를 할당하므로 이 함수를 사용한 이후에는 반드시 할당된 메모리를 해제해야 한다.
프로토타입
HLLUINFO * tpgethlinkluinfo(char *svrname, int *lunum)
파라미터
파라미터 | 설명 |
---|---|
svrname | Host-link 시스템에 속한 서버명이다. |
lunum | 반환되는 LU의 개수이다. |
반환값
반환값 | 설명 |
---|---|
구조체 테이블 | 함수 호출에 성공한 경우이다. Host-link 서버의 LU 정보를 담고있는 구조체 테이블을 반환한다. |
NULL | 함수 호출에 실패한 경우이다. |
Host-Link 시스템에 속한 LU의 세션 정보를 조회하는 함수이다. 이 함수는 내부에서 세션 수만큼 메모리를 할당하므로 이 함수를 사용한 이후에는 반드시 할당된 메모리를 해제해야 한다.
프로토타입
HLSESSINFO * tpgethlinkssinfo(char *luname, int *ssnum)
파라미터
파라미터 | 설명 |
---|---|
luname | Host-link 시스템에 속한 LU명이다. |
ssnum | 반환되는 세션의 개수이다. |
반환값
반환값 | 설명 |
---|---|
구조체 테이블 | 함수 호출에 성공한 경우이다. Host-link LU의 세션 정보를 담고 있는 구조체 테이블을 반환한다. |
NULL | 함수 호출에 실패한 경우이다. |
API 설명 중 Host-link에서 정의한 구조체는 HLPROCINFO, HLLUINFO, HLSESSINFO이다.
구조체 | 설명 |
---|---|
HLPROCINFO | Host-link 서버의 프로세스 정보를 담고있는 구조체이다. |
HLLUINFO | Host-link 서버의 LU 정보를 담고있는 구조체이다. |
HLSESSINFO | Host-link LU의 세션 정보를 담고 있는 구조체이다. |
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이다. |
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 처리 건수이다. |
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이다. |
Host-link의 에러 코드는 다음과 같다.