본 장에서는 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의 에러 코드는 다음과 같다.