본 장에서는 SQ 시스템을 사용하기 위해서 Tmax 환경 파일에 SQ를 설정하는 과정과 관리 툴을 이용한 SQ 상태 정보 확인 및 관리하는 방법에 대해서 설명한다.
실제 애플리케이션 개발에 앞서 SQ 시스템을 시작하기 위해서는 기본적인 설정이 필요하다.
SQ 시스템은 노드 단위로 관리되며 Tmax 환경 파일의 NODE 절에 설정해야 한다.
SQ 시스템을 사용하기 위해서는 NODE 절에 SQKEY, SQSIZE, SQMAX, SQKEYMAX, SQTIMEOUT 항목을 설정한다. SQ를 사용하려면 SQKEY, SQSIZE, SQMAX는 반드시 설정해야 한다.
Tmax 환경 파일 설정에 대한 자세한 내용은 “Tmax Administration Guide”의 “제3장 환경 파일 설정”을 참고한다.
NODE 절의 환경설정 형식은 다음과 같이 정의한다.
* NODE
Node Name SQKEY = 32768~262143 ,
SQSIZE = 4 ~ 4000000,
SQMAX= 2~MAX_INT-1,
SQKEYMAX= 1 ~ MAX_INT,
SQTIMEOUT=1 ~ MAX_INT
*DOMAIN
tmax ...
*NODE
tmax1 ...,
SQKEY = 80000,
SQSIZE = 8192,
SQMAX = 1024,
SQKEYMAX = 64,
SQTIMEOUT = 30
Tmax 시스템이 기동되면 Tmax에서 제공하는 관리 툴인 tmadmin을 이용하여 시스템의 상태를 관리할 수 있다.
관리 툴에 대한 자세한 내용은 "Tmax Administration Guide"를 참고한다.
tmadmin에서 SQ와 관련한 명령으로는 sqinfo(sqi)와 sqpurge(sqp)가 있다.
| 명령어 | 설명 |
|---|---|
| sqinfo(sqi) | 현재 사용되고 있는 SQ 및 GQ에 대한 사용량 및 키에 대한 정보를 조회할 수 있다. |
| sqpurge(sqp) | 관리자가 원하는 키에 대해서 강제 삭제할 수 있는 기능을 제공한다. |
SQ 및 GQ에 대한 사용량 및 키에 대한 정보를 조회할 수 있다. 멀티 노드 환경에서는 노드별로 조회된다. (GQ의 경우 세션 ID는 "0xffffffff"이다.) 옵션을 주지 않을 경우는 모든 SQ 및 GQ에 대한 사용량 등 큐에 대한 정보를 제공한다.
사용법
$ sqi [-k session_id]
예제
다음은 명령어 실행에 대한 예제이다.
$ tmax1 (tmadm): sqi ----------------------------------------------------------------------- session_id type clhno index issuer count size ----------------------------------------------------------------------- 0xffffffff GLOBAL - - - 5 785 0x00000327 SERVER 0 113 svr_ucs 0 0 0x00004000 CLIENT 1 0 192.168.1.123 0 0 0x00004327 SERVER 1 113 svr_ucs 0 0 ----------------------------------------------------------------------- allocated in total = 4096 bytes, actually used = 2208 bytes ----------------------------------------------------------------------- Msg from rnode(tmax2): ----------------------------------------------------------------------- session_id type clhno index issuer count size ----------------------------------------------------------------------- 0xffffffff GLOBAL - - - 0 0 ----------------------------------------------------------------------- allocated in total = 4096 bytes, actually used = 576 bytes -----------------------------------------------------------------------
출력된 각 항목에 대한 설명은 다음과 같다.
| 항목 | 설명 |
|---|---|
| session_id | 현재 생성되어 있는 세션의 ID이다. |
| type | 세션의 타입을 나타낸다.
|
| clhno | SQ인 경우 접속한 CLH의 번호이다. |
| index | SQ인 경우 세션의 인덱스이다. |
| issuer | SQ인 경우 세션에 대한 정보를 타입에 따라 출력한다. 타입이 'CLIENT'인 경우에는 IP를, 'SERVER'인 경우에는 서버명을 출력한다. |
| count | 생성한 큐의 개수이다. |
| size | 큐 데이터 사이즈이다. |
| allocated in total | 사용을 위해서 할당된 메모리 크기를 의미한다. 이 값은 시스템에서 내부적으로 사용하는 메모리 크기를 포함한다. |
| actually used | 할당된 메모리 중 실제 사용 중인 메모리 크기를 의미한다. 이 값은 시스템에서 내부적으로 사용하는 메모리 크기를 포함한다. |
다음은 [-k] 옵션을 사용한 sqi 명령어 사용 예제이다.
$ tmax1 (tmadm): sqi -k 0x00004000 ----------------------------------------------------------------------- ind key(hexa) key(string) klen dlen stime ----------------------------------------------------------------------- 1 61626331 abcd 4 144 10:50:07
출력된 각 항목에 대한 설명은 다음과 같다.
| 항목 | 설명 |
|---|---|
| ind | 순서를 나타낸다. |
| key(hexa) | 키를 hexa 값으로 출력한다. |
| key(string) | 사용자가 생성한 키 문자열이다. |
| klen | 키 문자열 길이이다. |
| dlen | 저장한 데이터 길이이다. (단위: Byte) |
| stime | 저장한 시간이다. |
마스터 모드의 tmadmin의 경우 SQ 및 GQ의 원하는 키를 삭제할 수 있다. 단, 로컬 노드에 위치한 키에 대해서만 삭제 가능하다.
사용법
$ sqp
예제
다음은 명령어 실행에 대한 예제이다.
$ tmax1 (tmadm): sqp 0x00000000 ----------------------------------------------------------------------- ind key(hexa) key(string) klen dlen stime ----------------------------------------------------------------------- 1 61626331 abc1 4 144 10:47:47 select?(1 - 1, 0 for all) 1 1 will be purged. key = 61626331(abc1), klen(dlen) = 4(144). ok?(y or n) y purge ok