이 장에서는 imqcmd 유틸리티를 사용하여 브로커 및 해당 서비스를 관리하는 방법에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
이 장에서 브로커 관리와 관련된 모든 항목을 설명하지는 않습니다. 추가 항목들은 별도로 다음 장에서 설명합니다.
브로커에서 물리적 대상 관리. 물리적 대상 만들기, 표시, 업데이트 및 완전 삭제 방법과 사용 불능 메시지 대기열 사용 방법은 6 장, 물리적 대상 관리을 참조하십시오.
브로커에 대한 보안 설정. 사용자 인증, 액세스 제어, 암호화, 비밀번호 파일, 감사 로깅 등과 같은 항목에 대한 자세한 내용은 7 장, 보안 관리을 참조하십시오.
imqcmd 및 imqusermgr 명령줄 유틸리티를 사용하여 브로커를 관리합니다. 브로커를 관리하기 전에 다음을 수행해야 합니다.
imqbrokerd 유틸리티 명령을 사용하여 브로커를 시작합니다. 브로커가 실행될 때까지는 다른 명령줄 유틸리티를 사용할 수 없습니다.
Message QueueTM 관리자를 설정할지 아니면 기본 계정을 사용할지를 결정합니다. 관리 명령을 사용하려면 사용자 이름과 비밀번호를 지정해야 합니다.
Message Queue를 설치하면 기본 플랫 파일 사용자 저장소가 설치됩니다. 저장소는 admin 및 guest 사용자의 두 가지 기본 항목과 함께 제공됩니다. Message Queue를 테스트하는 경우 기본 사용자 이름과 비밀번호(admin/admin)를 사용하여 imqcmd 유틸리티를 실행할 수 있습니다.
작업 시스템을 설정하는 경우 관리자에 대한 인증과 권한 부여를 설정해야 합니다. 파일 기반 사용자 저장소 설정 또는 LDAP 디렉토리 서버 사용 구성에 대한 자세한 내용은 7 장, 보안 관리을 참조하십시오. 작업 환경에서는 보안을 위해 기본이 아닌 사용자 이름과 비밀번호를 사용하는 것이 좋습니다.
브로커에 대한 보안 연결을 사용하려면 대상 브로커 인스턴스에서 ssladmin 서비스를 설정하고 활성화합니다. 자세한 내용은 메시지 암호화를 참조하십시오.
imqcmd 유틸리티를 사용하여 브로커와 해당 서비스를 관리할 수 있습니다.
imqcmd 명령의 구문, 하위 명령 및 옵션에 대한 자세한 내용은 13 장, 명령줄 참조을 참조하십시오. 물리적 대상 관리에 대한 자세한 내용은 별도의 장으로 제공되는 15 장, 물리적 대상 등록 정보 참조을 참조하십시오.
imqcmd 유틸리티에서 도움말을 표시하려면 -h 또는 -H 옵션을 사용합니다. 하위 명령은 사용하지 마십시오. 특정 하위 명령에 대한 도움말은 볼 수 없습니다.
예를 들어, 다음 명령은 imqcmd에 대한 도움말을 표시합니다.
imqcmd -H
-h 또는 -H 옵션을 포함하는 명령줄을 하위 명령 또는 다른 옵션과 함께 입력할 경우 imqcmd 유틸리티는 -h 또는 -H 옵션만 처리합니다. 명령줄의 모든 다른 항목은 무시됩니다.
Message Queue 제품 버전을 표시하려면 -v 옵션을 사용합니다. 예를 들면 다음과 같습니다.
imqcmd -v
-v 옵션을 포함하는 명령줄을 하위 명령 또는 다른 옵션과 함께 입력할 경우 imqcmd 유틸리티는 -v 옵션만 처리합니다. 명령줄의 모든 다른 항목은 무시됩니다.
각 imqcmd 하위 명령은 사용자 저장소에 대해 인증되므로 사용자 이름과 비밀번호가 필요합니다. -h 또는 -H 옵션을 사용하여 도움말을 표시하는 명령과, -v 옵션을 사용하여 제품 버전을 표시하는 명령만 제외됩니다.
-u 옵션을 사용하여 관리자 이름을 지정합니다. 관리자 이름을 생략하면 이름을 묻는 명령 프롬프트가 표시됩니다. 예를 들어, 다음 명령은 기본 브로커에 대한 정보를 표시합니다.
imqcmd query bkr -u admin
이 장의 예에서는 쉽게 이해할 수 있도록 기본 사용자 이름 admin을 -u 옵션의 인수로 표시합니다. 작업 환경에서는 사용자 정의 사용자 이름을 사용하게 됩니다.
다음 방법 중 하나를 사용하여 비밀번호를 지정합니다.
비밀번호 파일(passfile)을 만들고 해당 파일에 비밀번호를 입력합니다. 명령줄에서 -passfile 옵션을 사용하여 비밀번호 파일의 이름을 입력합니다.
비밀번호를 묻는 명령 프롬프트를 표시하게 합니다.
Message Queue의 이전 버전에서는 imqcmd 명령줄에서 -p 옵션을 사용하여 비밀번호를 지정할 수 있었습니다. 이 옵션은 더 이상 사용되지 않으며 향후 버전에서는 제거됩니다.
imqcmd의 기본 브로커는 로컬 호스트에서 실행되고 있는 브로커이며 기본 포트는 7676입니다.
원격 호스트에서 실행 중인 브로커나 기본 포트가 아닌 포트에서 수신 중인 브로커 또는 둘 다에 명령을 실행하는 경우 -b 옵션을 사용하여 브로커의 호스트 및 포트를 지정해야 합니다.
이 절의 예에서는 imqcmd 사용 방법을 설명합니다.
첫 번째 예에서는 localhost의 포트 7676에서 실행 중인 브로커의 등록 정보를 나열하므로 -b 옵션이 필요하지 않습니다. 이 명령에서는 기본 관리자 이름(admin)을 사용하고 비밀번호를 생략했기 때문에 비밀번호를 묻는 명령 프롬프트가 표시됩니다.
imqcmd query bkr -u admin
다음 예에서는 myserver 호스트의 1564 포트에서 실행 중인 브로커의 등록 정보를 나열합니다. 사용자 이름은 aladdin입니다. (이 명령을 실행하려면 사용자 저장소를 업데이트하여 사용자 이름 aladdin을 admin 그룹에 추가해야 함).
imqcmd query bkr -b myserver:1564 -u aladdin
다음 예에서는 localhost의 포트 7676에서 실행 중인 브로커의 등록 정보를 나열합니다. 명령의 초기 시간 제한은 20초로 설정되고 시간 초과 이후의 시도 횟수는 7로 설정됩니다. 사용자의 비밀번호는 명령을 호출할 때 해당 디렉토리에 있는 myPassfile이라는 비밀번호 파일에 있습니다.
imqcmd query bkr -u admin -passfile myPassfile -rtm 20 -rtr 7
브로커에 보안 연결을 위해 이 예에 -secure 옵션을 포함시킬 수 있습니다. -secure 옵션을 지정하면 서비스가 구성되고 시작된 경우 imqcmd에서 ssladmin 서비스가 사용됩니다.
단일 브로커에 대한 정보를 쿼리 및 표시하려면 query bkr 하위 명령을 사용합니다.
다음은 query bkr 하위 명령 구문입니다.
imqcmd query bkr -b hostName: portNumber
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에 해당하는 현재 등록 정보 설정을 나열합니다. 지정한 브로커에 연결된 실행 중인 브로커(멀티 브로커 클러스터에서)의 목록도 표시합니다.
imqcmd query bkr -u admin
이 명령은 비밀번호를 묻는 메시지를 표시한 후 다음과 같은 출력을 생성합니다.
Version 3.6 Instance Name imqbroker Primary Port 7676 Current Number of Messages in System 0 Current Total Message Bytes in System 0 Current Number of Messages in Dead Message Queue 0 Current Total Message Bytes in Dead Message Queue 0 Log Dead Messages true Truncate Message Body in Dead Message Queue false Max Number of Messages in System unlimited (-1) Max Total Message Bytes in System unlimited (-1) Max Message Size 70m Auto Create Queues true Auto Create Topics true Auto Created Queue Max Number of Active Consumers 1 Auto Created Queue Max Number of Backup Consumers 0 Cluster Broker List (active) Cluster Broker List (configured) Cluster Master Broker Cluster URL Log Level INFO Log Rollover Interval (seconds) 604800 Log Rollover Size (bytes) unlimited (-1) |
update bkr 하위 명령을 사용하여 다음과 같은 브로커 등록 정보를 업데이트할 수 있습니다.
다음은 update bkr 하위 명령 구문입니다.
imqcmd update bkr [-b hostName: portNumb er]-o attribute=value [[-o attribute=value1] …]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에 해당하는 지정된 속성을 변경합니다. 예를 들어, 다음 명령은 대기열 대상의 자동 생성을 해제합니다.
imqcmd update bkr -o "imq.autocreate.queue=false" -u admin
등록 정보에 대한 자세한 내용은 14 장, 브로커 등록 정보 참조을 참조하십시오.
브로커를 시작한 후에는 imqcmd 하위 명령을 사용하여 브로커의 상태를 제어할 수 있습니다.
브로커를 일시 중지하면 브로커의 연결 서비스 스레드가 지연되고 브로커에서는 연결 포트의 수신을 중지합니다. 따라서 브로커가 더 이상 새로운 연결을 받아들이거나, 메시지를 수신 또는 디스패치할 수 없습니다.
그러나 브로커를 일시 중지하더라도 admin 연결 서비스는 지연되지 않으므로 브로커에 대한 메시지 흐름을 규제하는 데 필요한 관리 작업은 수행할 수 있습니다. 또한 브로커를 일시 중지해도 cluster 연결 서비스는 지연되지 않습니다. 그러나 클러스터 내의 메시지 전달은 클러스터의 여러 브로커에서 수행하는 전달 기능에 따라 다릅니다. 따라서 클러스터에서 브로커를 일시 중지하면 일부 메시지 트래픽이 느려질 수 있습니다.
다음은 pause bkr 하위 명령 구문입니다.
imqcmd pause bkr [-b hostName: portNumber]
이 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커를 일시 중지합니다.
다음 명령은 myhost의 포트 1588에서 실행 중인 브로커를 일시 중지합니다.
imqcmd pause bkr -b myhost:1588 -u admin
개별 연결 서비스와 개별 물리적 대상을 일시 중지할 수도 있습니다. 자세한 내용은 연결 서비스 일시 중지 및 다시 시작 및 물리적 대상 일시 중지 및 다시 시작을 참조하십시오.
브로커를 다시 시작하면 브로커의 서비스 스레드가 다시 활성화되고 브로커가 포트 수신을 다시 시작합니다.
다음은 resume bkr 하위 명령 구문입니다.
imqcmd resume bkr [-b hostName: portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커를 다시 시작합니다.
다음 명령은 localhost의 포트 7676에서 실행 중인 브로커를 다시 시작합니다.
imqcmd resume bkr -u admin
브로커를 종료하면 브로커 프로세스가 자연스럽게 종료됩니다. 브로커가 새로운 연결 및 메시지 수락을 중지하고 기존 메시지 전달을 완료한 다음 브로커 프로세스를 종료합니다.
다음은 shutdown bkr 하위 명령 구문입니다.
imqcmd shutdown bkr [-b hostName: portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커를 종료합니다.
다음 명령은 ctrlsrv의 포트 1572에서 실행 중인 브로커를 종료합니다.
imqcmd shutdown bkr -b ctrlsrv:1572 -u admin
restart bkr 하위 명령을 사용하여 브로커를 종료하고 다시 시작합니다. 다음은 restart bkr 하위 명령 구문입니다.
imqcmd restart bkr [-b hostName: portNumber]
이 하위 명령은 브로커를 처음 시작할 때 지정한 옵션을 사용하여 기본 브로커 또는 지정한 호스트 및 포트의 브로커를 종료하고 다시 시작합니다. 다른 옵션을 선택하려면 원하는 옵션을 지정하여 브로커를 종료하였다가 다시 시작합니다.
브로커에 대한 메트릭 정보를 표시하려면 metrics bkr 하위 명령을 사용합니다.
다음은 metrics bkr 하위 명령 구문입니다.
imqcmd metrics bkr [-b hostName: portNumber] [-m metricType] [-int interval] [-msp numSamples]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에 대한 브로커 메트릭을 표시합니다.
-m 옵션을 사용하여 다음 메트릭 유형 중 하나를 지정하여 표시합니다.
ttl 브로커에 유입되고 유출되는 메시지와 패킷에 대한 메트릭을 표시합니다(기본 메트릭 유형).
rts 브로커에 유입 및 유출되는 메시지와 패킷의 메트릭을 초당 속도로 표시합니다.
cxn 연결, 가상 메모리 힙 및 스레드를 표시합니다.
-int 옵션을 사용하여 메트릭 표시 간격(초)을 지정합니다. 기본값은 5초입니다.
-msp 옵션을 사용하여 출력에 표시되는 샘플 수를 지정합니다. 기본값은 무제한 수입니다(무한).
예를 들어, 다음 명령은 브로커에 메시지가 유입 및 유출되는 속도를 10초 간격으로 표시합니다.
imqcmd metrics bkr -m rts -int 10 -u admin
다음과 같은 결과가 출력됩니다.
-------------------------------------------------------- Msgs/sec Msg Bytes/sec Pkts/sec Pkt Bytes/sec In Out In Out In Out In Out -------------------------------------------------------- 0 0 27 56 0 0 38 66 10 0 7365 56 10 10 7457 1132 0 0 27 56 0 0 38 73 0 10 27 7402 10 20 1400 8459 0 0 27 56 0 0 38 73 |
브로커에서 수집하여 보고하는 데이터에 대한 자세한 설명은 브로커 전체 메트릭을 참조하십시오.
imqcmd 유틸리티에는 다음과 같은 연결 서비스 관리 작업을 수행할 수 있는 하위 명령이 포함되어 있습니다.
브로커는 응용 프로그램 클라이언트 및 관리 클라이언트 모두와의 연결을 지원합니다. 현재 Message Queue 브로커에서 사용 가능한 연결 서비스는 표 5–1에서 확인할 수 있습니다. 표에 나타난 것과 같이 각 서비스는 NORMAL(응용 프로그램 클라이언트) 또는 ADMIN(관리 클라이언트) 중에서 사용하는 서비스 유형과 기본 전송 프로토콜에 연결됩니다.
표 5–1 Message Queue 연결 서비스
서비스 이름 |
서비스 유형 | |
---|---|---|
NORMAL | ||
NORMAL | ||
NORMAL | ||
NORMAL | ||
ADMIN |
TCP |
|
ADMIN |
TLS(SSL 기반 보안) |
imqcmd 하위 명령을 사용하면 연결 서비스 전체를 관리하거나 특정 연결 서비스를 관리할 수 있습니다. 하위 명령의 대상이 특정 서비스인 경우 -n 옵션을 사용하여 표 5–1의 서비스 이름 열에 나열된 이름 중 하나를 지정합니다.
브로커에서 사용 가능한 연결 서비스를 나열하려면 list svc 하위 명령을 사용합니다.
다음은 list svc 하위 명령 구문입니다.
imqcmd list svc [-b hostName: portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 연결 서비스를 모두 나열합니다.
다음 명령은 localhost의 포트 7676에서 실행 중인 브로커의 모든 서비스를 나열합니다.
imqcmd list svc -u admin
이 명령은 다음과 같은 정보를 출력합니다.
------------------------------------------------ Service Name Port Number Service State ------------------------------------------------ admin 41844 (dynamic) RUNNING httpjms - UNKNOWN httpsjms - UNKNOWN jms 41843 (dynamic) RUNNING ssladmin dynamic UNKNOWN ssljms dynamic UNKNOWN |
단일 서비스에 대한 정보를 쿼리 및 표시하려면 query 하위 명령을 사용합니다.
다음은 query svc 하위 명령 구문입니다.
imqcmd query svc -n serviceName [-b hostName:portNumber]
query svc 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 실행 중인 지정된 서비스에 대한 정보를 표시합니다.
예를 들면 다음과 같습니다.
imqcmd query svc -n jms -u admin
이 명령은 비밀번호를 묻는 메시지를 표시한 후 다음과 같은 출력을 생성합니다.
Service Name jms Service State RUNNING Port Number 60920 (dynamic) Current Number of Allocated Threads 0 Current Number of Connections 0 Min Number of Threads 10 Max Number of Threads 1000 |
update 하위 명령을 사용하여 표 5–2에 나열된 서비스 등록 정보 중 하나 이상을 변경할 수 있습니다.
표 5–2 imqcmd에서 업데이트하는 연결 서비스 등록 정보
등록 정보 |
설명 |
---|---|
port |
업데이트할 서비스에 할당된 포트입니다(httpjms 또는 httpsjms에는 적용되지 않음). 값이 0인 경우 포트 매퍼가 포트를 동적으로 할당합니다. |
minThreads | |
maxThreads |
서비스에 할당된 최대 스레드 수입니다. |
다음은 update 하위 명령 구문입니다.
imqcmd update svc -n serviceName [-b hostName:portNumber] -o attribute=value [-o attribute=value1]…
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 실행 중인, 지정된 서비스의 지정된 속성을 업데이트합니다. 서비스 속성에 대한 자세한 내용은 연결 등록 정보를 참조하십시오.
다음 명령은 jms 서비스에 할당된 최소 스레드 수를 20으로 변경합니다.
imqcmd update svc -n jms -o "minThreads=20" -u admin
단일 서비스에 대한 메트릭 정보를 표시하려면 metrics 하위 명령을 사용합니다.
다음은 metrics 하위 명령 구문입니다.
imqcmd metrics svc -n serviceName [-b hostName:portNumber] [-m metricType ] [-int interval] [-msp numSamples]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 지정된 서비스의 메트릭을 표시합니다.
-m 옵션을 사용하여 표시할 메트릭 유형을 지정합니다.
ttl 브로커에 유입 및 유출되는 메시지와 패킷의 메트릭을 지정된 연결 서비스를 통해 표시합니다(기본 메트릭 유형).
rts 브로커에 메시지와 패킷이 유입 및 유출되는 초당 속도에 대한 메트릭을 지정된 연결 서비스를 통해 표시합니다.
cxn 연결, 가상 메모리 힙 및 스레드를 표시합니다.
-int 옵션을 사용하여 메트릭 표시 간격(초)을 지정합니다. 기본값은 5초입니다.
-msp 옵션을 사용하여 출력에 표시되는 샘플 수를 지정합니다. 기본값은 무제한 수입니다(무한).
예를 들어, 다음 명령은 jms 연결 서비스에서 처리된 메시지 및 패킷의 누적 총 수를 구합니다.
imqcmd metrics svc -n jms -m ttl -u admin
이 명령은 비밀번호를 묻는 메시지를 표시한 후 다음과 같은 출력을 생성합니다.
------------------------------------------------- Msgs Msg Bytes Pkts Pkt Bytes In Out In Out In Out In Out ------------------------------------------------- 164 100 120704 73600 282 383 135967 102127 657 100 483552 73600 775 876 498815 149948 |
imqcmd를 사용하여 연결 서비스 메트릭을 보고하는 방법에 대한 자세한 내용은 연결 서비스 메트릭을 참조하십시오.
일시 중지할 수 없는 admin 서비스를 제외한 모든 서비스를 일시 중지하려면 pause svc 및 resume svc 하위 명령을 사용합니다.
다음은 pause svc 하위 명령 구문입니다.
imqcmd pause svc -n serviceName [-b hostName:portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 실행 중인 지정된 서비스를 일시 중지합니다.예를 들어, 다음 명령은 기본 프로커에서 실행 중인 httpjms 서비스를 일시 중지합니다.
imqcmd pause svc -n httpjms -u admin
서비스를 일시 중지하면 다음과 같은 현상이 나타납니다.
브로커는 일시 중지된 서비스에서 새 클라이언트 연결 수신을 멈춥니다. Message Queue 클라이언트가 새 연결을 열려고 하면 예외가 발생합니다.
일시 중지된 서비스의 기존 연결은 모두 그대로 유지되지만 브로커는 서비스가 다시 시작될 때까지 이러한 연결의 모든 메시지 처리를 지연합니다(예를 들어, 클라이언트가 메시지를 보내려고 하면 서비스가 다시 시작될 때까지 send 메소드가 차단됨).
브로커가 이미 수신한 메시지의 메시지 전달 상태는 그대로 유지됩니다(예를 들어, 트랜잭션이 중단되지 않고 서비스가 다시 시작되면 메시지 전달이 재개됨).
서비스를 다시 시작하려면 resume svc 하위 명령을 사용합니다.
다음은 resume svc 하위 명령 구문입니다.
imqcmd resume svc -n serviceName[-b hostName:portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트에서 실행 중인 지정된 서비스를 다시 시작합니다.
imqcmd 유틸리티의 하위 명령을 사용하여 연결 정보를 나열하고 가져올 수 있습니다.
list cxn 하위 명령은 지정된 서비스 이름의 모든 연결을 나열합니다. 다음은 list cxn 하위 명령 구문입니다.
imqcmd list cxn [-svn serviceName] [-b hostName:portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 지정된 서비스 이름의 연결을 모두 나열합니다.서비스 이름을 지정하지 않는 경우 모든 연결이 나열됩니다.
예를 들어, 다음 명령은 기본 브로커에 대한 모든 연결을 나열합니다.
imqcmd list cxn -u admin
이 명령은 비밀번호를 묻는 메시지를 표시한 후 다음과 같은 출력을 생성합니다.
Listing all the connections on the broker specified by: ----------------------------------- Host Primary Port ------------------------------------ localhost 7676 --------------------------------------------------------------------------- Connection ID User Service Producers Consumers Host --------------------------------------------------------------------------- 1964412264455443200 guest jms 0 1 127.0.0.1 1964412264493829311 admin admin 1 1 127.0.0.1 Successfully listed connections. |
단일 연결 서비스에 대한 정보를 쿼리 및 표시하려면 query 하위 명령을 사용합니다.
query cxn -n connectionID [-b hostName:portNumber]
이 하위 명령은 기본 브로커 또는 지정한 호스트 및 포트의 브로커에서 지정된 연결에 대한 정보를 표시합니다.
imqcmd query cxn -n 421085509902214374 -u admin
이 명령은 비밀번호를 묻는 메시지를 표시한 후 다음과 같은 출력을 생성합니다.
Connection ID 421085509902214374 User guest Service jms Producers 0 Consumers 1 Host 111.22.333.444 Port 60953 Client ID Client Platform |
imqcmd 하위 명령을 사용하면 다음 중 하나를 수행하여 브로커의 영구 가입을 관리할 수 있습니다.
영구 가입 나열
영구 가입에 대한 모든 메시지 제거
영구 가입 완전 삭제
영구 가입은 클라이언트에 영구로 등록된 주제에 가입하는 것입니다. 여기에는 고유한 아이디가 있으며, 사용자가 비활성 상태인 동안에도 브로커에서 가입에 대한 메시지를 보존해야 합니다. 보통 브로커는 메시지가 만료될 때 영구 가입자에 대해 보존된 메시지만 삭제할 수 있습니다.
지정된 물리적 대상에 대한 영구 가입을 나열하려면 list dur 하위 명령을 사용합니다. 다음은 list dur 하위 명령 구문입니다.
imqcmd list dur -d destName
예를 들어, 다음 명령은 로컬 호스트의 기본 포트에서 브로커를 사용하여 SPQuotes 주제에 대한 모든 영구 가입을 나열합니다.
imqcmd list dur -d SPQuotes
list dur 하위 명령은 주제의 각 영구 가입에 대해 영구 가입의 이름과 사용자의 클라이언트 아이디, 이 주제의 대기열에 들어 있는 메시지의 수, 영구 가입 상태(활성/비활성)를 반환합니다. 예를 들면 다음과 같습니다.
Name Client ID Number of Durable Sub Messages State ---------------------------------------------------------------- myDurable myClientID 1 INACTIVE |
list dur 하위 명령에서 반환된 정보를 사용하여 완전 삭제하거나 메시지를 제거할 영구 가입을 확인할 수 있습니다.
purge dur 하위 명령은 지정된 클라이언트 식별자를 사용하여 지정된 영구 가입에 대한 모든 메시지를 제거합니다. 다음은 purge dur 하위 명령 구문입니다.
imqcmd purge dur -n subscrName -c clientID
destroy dur 하위 명령은 지정한 클라이언트 식별자에 해당하는 지정된 영구 가입을 완전 삭제합니다. 다음은 destroy dur 하위 명령 구문입니다.
imqcmd destroy dur -n subscrName -c clientID
예를 들어, 다음 명령은 영구 가입 myDurable과 클라이언트 아이디 myClientID를 완전 삭제합니다.
imqcmd destroy dur -n myDurable -c myClientID
클라이언트 응용 프로그램에서 시작하는 모든 트랜잭션은 브로커에서 추적됩니다. 이는 단순한 Message Queue 트랜잭션일 수도 있고 분산 트랜잭션(XA 자원) 관리자가 관리하는 분산 트랜잭션일 수도 있습니다.
모든 트랜잭션에는 브로커의 트랜잭션을 고유하게 나타내는 64비트 숫자 즉, Message Queue 트랜잭션 아이디가있습니다. 분산 트랜잭션에도 분산 트랜잭션 관리자가 할당하는 최대 128바이트의 분산 트랜잭션 아이디(XID)가 있습니다. Message Queue에서는 Message Queue 트랜잭션 아이디와 XID 사이의 연결을 보존합니다.
분산 트랜잭션에 오류가 발생하면 그 트랜잭션은 PREPARED 상태로 남아 완결되지 않을 수도 있습니다. 따라서 관리자는 준비된 상태로 남아 있는 트랜잭션을 모니터하고 롤백 또는 완결해야 합니다.
브로커가 추적 중인 모든 트랜잭션을 나열하려면 list txn 명령을 사용합니다. 다음은 list tx 하위 명령 구문입니다.
imqcmd list txn
예를 들어, 다음 명령은 브로커에 있는 모든 트랜잭션을 나열합니다.
imqcmd list txn
list 하위 명령은 각 트랜잭션에 대해 트랜잭션 아이디, 상태, 사용자 이름, 메시지 또는 확인 응답의 수, 작성 시간을 반환합니다. 예를 들면 다음과 같습니다.
--------------------------------------------------------------- Transaction ID State User name # Msgs/ Creation time # Acks --------------------------------------------------------------- 64248349708800 PREPARED guest 4/0 1/30/02 10:08:31 AM 64248371287808 PREPARED guest 0/4 1/30/02 10:09:55 AM |
명령은 브로커에 있는 로컬 및 분산 트랜잭션을 모두 표시합니다. PREPARED 상태인 트랜잭션만을 완결 또는 롤백할 수 있습니다. 트랜잭션이 오류로 인해 준비 상태에 있고 분산 트랜잭션 관리자에서 완결을 진행하고 있지 않다는 것이 확인된 경우에만 완결 또는 롤백할 수 있습니다.
예를 들어, 브로커의 자동 롤백 등록 정보가 false로 설정되어 있으면(표 14–2 참조) 브로커를 시작할 때 PREPARED 상태인 트랜잭션을 수동으로 완결 또는 롤백해야 합니다.
list 하위 명령도 트랜잭션에서 생성된 메시지의 수와 트랜잭션에서 확인 응답된(#Msgs/#Acks) 메시지의 수를 표시합니다. 트랜잭션이 완결될 때까지는 이런 메시지가 전달되지 않으며 확인 응답이 처리되지도 않습니다.
query 하위 명령을 사용하면 클라이언트 아이디, 연결 아이디, 분산 트랜잭션 아이디(XID) 등의 여러 추가 값을 볼 수 있습니다. 다음은 query txn 하위 명령 구문입니다.
imqcmd query txn -n transactionID
예를 들어, 다음 예는 아래와 같은 출력을 생성합니다.
imqcmd query txn -n 64248349708800
Client ID Connection guest@192.18.116.219:62209->jms:62195 Creation time 1/30/02 10:08:31 AM Number of acknowledgments 0 Number of messages 4 State PREPARED Transaction ID 64248349708800 User name guest XID 6469706F6C7369646577696E6465723130313234313431313030373230 |
commit 및 rollback 하위 명령을 사용하여 분산 트랜잭션을 완결 또는 롤백할 수 있습니다. 앞에서 설명한 것과 같이, PREPARED 상태에 있는 트랜잭션만 완결 또는 롤백할 수 있습니다.
다음은 commit 하위 명령 구문입니다.
imqcmd commit txn -n transactionID
예를 들면 다음과 같습니다.
imqcmd commit txn -n 64248349708800
imqcmd rollback txn -n transactionID
자세한 내용은 표 14–2의 imq.transaction.autorollback 등록 정보를 참조하십시오.
브로커를 시작할 때 PREPARED 상태에 있는 트랜잭션을 자동으로 롤백하도록 브로커를 구성할 수도 있습니다.