Sun Java System Message Queue 3.7 UR1 관리 설명서

브로커 서비스

브로커 구성 등록 정보는 적용되는 서비스 또는 브로커 구성 요소에 따라 몇 개의 범주로 구분될 수 있습니다.

다음 절에서는 이러한 각각의 서비스와 특정 필요에 맞추어 이러한 서비스를 사용자 정의하는 데 사용하는 등록 정보에 대해 설명합니다.

연결 서비스

메시지 브로커는 다양한 전송 프로토콜을 사용하여 응용 프로그램과 관리 클라이언트를 모두 지원하는 다양한 연결 서비스를 제공할 수 있습니다. 연결 서비스와 관련된 브로커 구성 등록 정보는 연결 등록 정보에 나와 있습니다.

표 4–1은 다음의 두 가지 특성으로 구별되는 사용 가능한 연결 서비스를 보여줍니다.

표 4–1 Message Queue 연결 서비스

서비스 이름 

서비스 유형 

프로토콜 유형

jms

NORMAL

TCP

ssljms(엔터프라이즈판)

NORMAL

TLS(SSL 기반 보안)

httpjms(엔터프라이즈판)

NORMAL

HTTP

httpsjms(엔터프라이즈판)

NORMAL

HTTPS(SSL 기반 보안)

admin

ADMIN

TCP 

ssladmin

ADMIN

TLS(SSL 기반 보안) 

브로커의 imq.service.activelist 등록 정보를 설정하면 이러한 연결 서비스 중 하나 또는 모두를 실행하도록 해당 등록 정보를 구성할 수 있습니다. 이 등록 정보의 값은 브로커가 시작될 때 활성화될 연결 서비스 목록입니다. 등록 정보가 명시적으로 지정되지 않은 경우 기본적으로 jmsadmin 서비스가 활성화됩니다.

각 연결 서비스는 특정 인증 및 권한 부여 기능도 지원합니다. 자세한 내용은 보안 서비스를 참조하십시오.

포트 매퍼

각 연결 서비스는 호스트 이름(또는 IP 주소)과 포트 번호로 지정되는 특정 포트에 사용할 수 있습니다. 서비스의 정적 포트 번호를 명시적으로 지정하거나 브로커의 포트 매퍼를 동적으로 할당할 수 있습니다. 포트 매퍼 자체는 일반적으로 표준 포트 번호 7676에 있는 브로커의 기본 포트에 있습니다. 필요할 경우, 브로커 구성 등록 정보 imq.portmapper.port를 사용하여 다른 포트 번호로 대체할 수도 있습니다. 기본적으로 각 연결 서비스는 시작 시 포트 매퍼와 함께 자체적으로 등록됩니다. 클라이언트가 브로커에 대한 연결을 생성하면 Message Queue 클라이언트 런타임은 먼저 포트 매퍼에 연결하여 원하는 연결 서비스에 사용할 포트 번호를 요청합니다.

또는 포트 매퍼를 무시하고 imq.serviceName.protocolType. port 구성 등록 정보(여기서 serviceNameprotocolType표 4–1에 나와 있는 특정 연결 서비스를 나타냄)를 사용하여 연결 서비스에 정적 포트 번호를 명시적으로 할당할 수 있습니다. jms, ssljms, adminssladmin 연결 서비스만 이러한 방식으로 구성할 수 있고, httpjmshttpsjms 서비스는 부록 C, HTTP/HTTPS 지원에 설명된 대로 다른 구성 등록 정보를 사용합니다. 그러나, 일반적으로 정적 포트는 방화벽을 통해 연결을 생성하는 경우( 방화벽을 통해 연결 참조)처럼 특수한 경우에만 사용되며 일반 용도로는 바람직하지 않습니다.


주 –

두 개 이상의 호스트(예: 컴퓨터에 두 개 이상의 네트워크 카드가 설치된 경우)를 사용할 수 있는 경우에는 브로커 등록 정보를 사용하여 연결 서비스가 바인드해야 할 호스트를 지정할 수 있습니다. imq.hostname 등록 정보는 모든 연결 서비스를 위한 단일 기본 호스트를 지정합니다. 그리고 나서 필요할 경우 imq.serviceName. protocolType.hostname(jms, ssljms, admin 또는 ssl 관리 서비스용) 또는 imq.portmapper.hostname(포트 매퍼 자체용)을 사용하여 대체할 수 있습니다.


여러 포트 매퍼 요청을 동시에 받는 경우 이러한 요청은 작업을 기다리는 동안 운영 체제 백로그에 저장됩니다. imq.portmapper.backlog 등록 정보는 이와 같은 백로그 요청의 최대 수를 지정합니다. 이 제한을 초과하면 백로그가 줄어들 때까지 후속 요청이 거부됩니다.

스레드 풀 관리

각 연결 서비스는 다중 스레드 방식으로서, 다중 연결을 지원합니다. 이러한 연결에 필요한 스레드는 브로커에서 각 서비스의 개별 스레드 풀로 유지 관리됩니다. 연결에 필요한 스레드는 해당 연결을 지원하는 서비스의 스레드 풀에 추가됩니다.

선택한 스레딩 모델은 스레드가 단일 연결 전용인지 또는 여러 연결에서 공유할지 여부를 지정합니다.

브로커의 imq.serviceName. threadpool_model 등록 정보는 두 모델 중에서 해당 연결 서비스에 사용할 모델을 지정합니다. 이 등록 정보는 두 가지 문자열 값(dedicated 또는 shared) 중 하나를 사용합니다. 등록 정보를 명시적으로 설정하지 않으면 기본적으로 dedicated로 간주됩니다.

또한 브로커 등록 정보 imq.serviceName. min_threadsimq.serviceName. max_threads를 설정하여 서비스 스레드 풀의 최대 및 최소 스레드 수를 지정할 수 있습니다. 사용 가능한 스레드 수가 지정된 최소 임계값을 초과하는 경우 Message Queue는 최소 임계값에 다시 도달할 때까지 스레드를 종료시켜 여유 스레드를 확보하는 방법으로 메모리 자원을 절약합니다. 로드량이 많은 경우 풀의 최대 수에 도달할 때까지 스레드 수가 증가할 수 있습니다. 이러한 경우 스레드를 사용할 수 있을 때까지 새 연결이 거부됩니다.

공유 스레딩 모델에서는 분산자 스레드를 사용하여 스레드를 활성 연결에 할당합니다. 브로커 등록 정보 imq.shared.connectionMonitor_limit는 단일 분산자 스레드에서 모니터링할 수 있는 최대 연결 수를 지정합니다. 이 등록 정보 값이 작을수록 스레드를 연결에 더 빨리 할당할 수 있습니다. imq.ping.interval 등록 정보는 브로커가 활성 여부를 확인하기 위해 연결을 주기적으로 테스트(“핑”)하는 시간 간격(초)을 지정합니다. 따라서 시도한 메시지 전송이 실패하기 전에 먼저 연결 실패를 감지할 수 있습니다.

라우팅 서비스

브로커에 클라이언트가 연결되면 메시지 경로 지정 및 전달이 수행될 수 있습니다. 이 단계에서 브로커는 여러 종류의 물리적 대상을 작성 및 관리하여 메시지의 원활한 흐름을 보장하고 자원을 효율적으로 관리합니다. 라우팅 등록 정보에 설명된 브로커 구성 등록 정보를 사용하여 응용 프로그램 요구에 맞는 방식으로 이러한 작업을 관리할 수 있습니다.

브로커의 성능과 안정성은 사용 가능한 시스템 자원(메모리 등)과 이러한 자원이 얼마나 효율적으로 활용되는가에 따라 달라집니다. 브로커에서 받는 메시지가 너무 많거나 메모리 부족이 발생하지 않도록 구성 정보를 설정할 수 있습니다. 이러한 등록 정보는 세 가지 서로 다른 수준에서 작동하여 자원이 부족해질 때에도 메시지 서비스의 작동 상태를 유지합니다.

이러한 시스템 메모리 임계값이 트리거되면 시스템 수준과 대상 메시지 제한이 너무 높게 설정되어 있다는 뜻입니다. 메모리 임계값이 항상 잠재적 메모리 과부하를 제때에 잡을 수 있는 것은 아니므로, 메모리 임계값만으로 메모리 사용을 제어하기보다는 메모리 자원을 최적화하도록 시스템 수준과 대상 제한을 다시 구성해야 합니다.

지속성 서비스

오류 발생 시 브로커를 복구하려면 메시지 전달 작업 상태를 다시 작성해야 합니다. 그러기 위해서는 브로커가 상태 정보를 영구 데이터 저장소에 저장해야 합니다. 브로커는 다시 시작할 때 저장된 데이터를 사용하여 대상 및 영구 가입을 다시 작성하고 지속성 메시지를 복구하며 열린 트랜잭션을 롤백하고 전달되지 못한 메시지의 라우팅 테이블을 다시 작성합니다. 그런 다음 메시지 전달을 다시 시작할 수 있습니다.

Message Queue는 파일 기반 및 JDBC 기반 지속성 모듈을 모두 지원합니다(그림 4–1 참조). 파일 기반 지속성에서는 개별 파일을 사용하여 영구 데이터를 저장합니다. JDBC 기반 지속성에서는 JDBC™(Java Database Connectivity) 인터페이스를 사용하여 브로커를 JDBC 호환 데이터 저장소에 연결합니다. 일반적으로 파일 기반 지속성은 JDBC 기반보다 빠르지만, JDBC 호환 저장소가 제공하는 중복 및 관리 제어 기능을 선호하는 사용자도 있습니다. 브로커 구성 등록 정보 imq.persist.store(표 14–4 참조)는 사용할 두 가지 형태의 지속성 중 하나를 지정합니다.

그림 4–1 영구 데이터 저장소

지속성 서비스에서 플랫 파일 기반 데이터 저장소나 JDBC 호환 데이터 저장소를 사용함을 보여주는 다이어그램

파일 기반 지속성

기본적으로 Message Queue에서는 파일 기반 영구 데이터 저장소를 사용하는데, 이 저장소에서는 개별 파일이 메시지, 대상, 영구 가입 및 트랜잭션과 같은 영구 데이터를 저장합니다. 파일 기반 지속성과 관련된 브로커 구성 등록 정보는 파일 기반 지속성에 나와 있습니다.

파일 기반 저장소는 데이터 저장소가 속한 브로커 인스턴스의 이름(instanceName)으로 식별되는 디렉토리에 있습니다.

/instances/instanceName
/fs350/

stances 디렉토리의 위치는 부록 A, 플랫폼별 Message QueueTM 데이터 위치를 참조하십시오. 브로커의 각 대상마다 해당 대상으로 전달된 메시지가 들어 있는 고유의 하위 디렉토리가 있습니다.


주 –

영구 데이터 저장소에는 중요 정보나 소유 정보를 포함하는 메시지가 있을 수 있기 때문에 /instances/ instanceName/fs350/ 디렉토리를 인증되지 않은 액세스로부터 보호해야 합니다. 영구 데이터 보안를 참조하십시오.


메시지 이외의 모든 영구 데이터는 개별 파일(대상용 파일, 영구 가입용 파일 및 트랜잭션 상태 정보용 파일)에 저장됩니다. 대부분의 메시지는 가변 크기 레코드로 구성되는 단일 파일에 저장됩니다. 메시지를 추가 및 제거할 때 단편화를 줄이려면 이 파일을 압축할 수 있습니다( 물리적 대상 압축 참조). 또한, 특정 임계값 크기를 초과하는 메시지는 가변 크기 레코드 파일보다는 고유의 개별 파일에 저장됩니다. 브로커 등록 정보 imq.persist.file.message.max_record_size를 사용하여 이 임계값 크기를 구성할 수 있습니다.

브로커는 더 이상 필요하지 않은 파일을 삭제하는 대신 나중에 다른 메시지에 다시 사용할 수 있도록 대상 디렉토리의 사용 가능 파일 풀로 반환하는 방식으로 개별 메시지 파일의 파일 풀을 관리합니다. 브로커 등록 정보 imq.persist.file.destination.message.filepool.limit는 풀의 최대 파일 수를 지정합니다. 대상의 개별 메시지 파일 수가 이 제한을 초과하면 파일이 더 이상 필요하지 않을 때 풀로 반환되지 않고 삭제됩니다.

파일을 파일 풀로 반환하는 경우 이전 내용을 삭제하지 않고 단순히 파일에 재사용 태그를 표시하여 저장소 공간을 절약할 수 있습니다. imq.persist.file.message.filepool.cleanratio 브로커 등록 정보를 사용하면 단순히 재사용 태그를 표시하지 않고 “깨끗한(빈)” 상태로 유지해야 하는 각 대상의 파일 풀에서 파일 비율을 지정할 수 있습니다. 이 값을 높게 설정할수록 파일 풀에 필요한 공간은 줄어들지만, 파일을 풀로 반환 시 파일 내용을 비우는 데 필요한 오버헤드는 더 커집니다. 브로커의 imq.persist.file.message.cleanup 등록 정보가 true이면 풀의 모든 파일이 브로커 종료 시 비워지므로 clean 상태로 유지됩니다. 이렇게 하면 저장소 공간은 절약되지만 종료 프로세스 속도는 느려집니다.

데이터를 영구 저장소에 기록할 때 운영 체제는 데이터를 동기식으로 쓰거나 “느리게(비동기식으로)” 씁니다. 저속 저장소는 데이터가 영구 저장소에 기록되지 않았는데도 브로커에서 기록되었다고 믿는 경우 시스템이 충돌하면 데이터가 손실될 수 있습니다. 성능을 조금 낮추더라도 절대 안정성을 유지하려는 경우에는 브로커 등록 정보 imq.persist.file.sync.enabledtrue로 설정하여 모든 데이터를 동기식으로 기록해야 합니다. 이 경우, 충돌 후 시스템이 다시 백업되면 데이터를 사용할 수 있으므로 브로커는 작업을 안정적으로 다시 시작할 수 있습니다. 그러나, 데이터가 손실되지 않았어도 클러스터화된 브로커에 현재 공유 데이터가 없으므로 클러스터의 다른 브로커는 사용할 수 없습니다.

JDBC 기반 지속성

파일 기반 지속성을 사용하는 대신 JDBC 호환 드라이버를 통해 액세스할 수 있는 데이터 저장소에 액세스하도록 브로커를 설정할 수 있습니다. 이 경우 해당 JDBC 관련 브로커 구성 등록 정보를 설정하고 데이터베이스 관리자 유틸리티(imqdbmgr)를 사용하여 적절한 스키마를 갖는 데이터베이스를 만들어야 합니다. 자세한 내용은 JDBC 기반 저장소 구성을 참조하십시오.

JDBC 기반 지속성에는 JDBC 데이터베이스를 사용하도록 브로커를 구성하기 위한 등록 정보가 나와 있습니다. 이러한 등록 정보는 각 브로커 인스턴스의 인스턴스 구성 파일(config.properties)이나 브로커 유틸리티(imqbrokerd) 또는 데이터베이스 관리자 유틸리티(imqdbmgr)의 -D 명령줄 옵션을 사용하여 지정할 수 있습니다.

imq.persist.jdbc.driver 등록 정보는 데이터베이스에 연결하는 데 사용할 JDBC 드라이버의 Java 클래스 이름을 제공합니다. 또한 기존 데이터베이스 연결(imq.persist.jdbc.opendburl), 새 데이터베이스 작성(imq.persist.jdbc.createdburl) 및 데이터베이스 연결 닫기(imq.persist.jdbc.closedburl) URL을 지정하는 등록 정보도 있습니다.

imq.persist.jdbc.userimq.persist.jdbc.password 등록 정보는 데이터베이스에 액세스하는 데 사용되는 사용자 이름 및 비밀번호를 제공합니다. imq.persist.jdbc.needpassword는 비밀번호가 필요한지 여부를 지정하는 부울 플래그입니다. 보안상의 이유로 비밀번호는 -passfile 명령줄 옵션을 통해 지정된 비밀번호 파일에만 지정해야 합니다. imqbrokerdimqdbmgr 명령은 대화식으로 비밀번호를 묻습니다. 이와 마찬가지로, 명령줄에서 imqbrokerd 명령의 -dbuser 옵션 또는 imqdbmgr 명령의 -u 옵션을 사용하여 사용자 이름을 입력할 수도 있습니다.

여러 브로커 인스턴스에서 공유하는 JDBC 데이터베이스에서 구성 등록 정보 imq.persist.jdbc.brokerid는 각각의 인스턴스에 대해 데이터베이스 테이블 이름에 추가할 고유한 인스턴스 식별자를 지정합니다. 보통 한 브로커 인스턴스에 대해서만 데이터를 저장하는 내장 데이터베이스에는 이 식별자가 필요하지 않습니다. 나머지 JDBC 관련 구성 등록 정보는 각 데이터베이스 테이블마다 한 개의 등록 정보로 구성된 데이터베이스 스키마를 생성하는 SQL 코드를 사용자 정의하는 데 사용됩니다. 예를 들어, imq.persist.jdbc.table.IMQSV35 등록 정보는 버전 테이블, imq.persist.jdbc.table.IMQCCREC35는 구성 변경 레코드 테이블, 그리고 imq.persist.jdbc.table.IMQDEST35는 대상 테이블을 생성하기 위한 SQL 명령을 제공합니다. 전체 목록은 표 14–6을 참조하십시오.


주 –

데이터베이스 시스템마다 필요한 정확한 SQL 구문이 다르기 때문에 자세한 내용은 데이터베이스 공급업체에서 제공하는 설명서를 참조하십시오.


보안 서비스

Message Queue는 사용자 액세스 제어(인증 및 권한 부여)와 암호화를 위한 보안 서비스를 제공합니다.

Message Queue 관리자는 브로커가 사용자를 인증하고 작업 권한을 부여하는 데 필요한 정보를 설정해야 합니다. 보안 서비스와 관련된 브로커 등록 정보는 보안 등록 정보에 나와 있습니다. 부울 등록 정보 imq.accesscontrol.enabled는 액세스 제어가 브로커 수준에 적용되는지 여부를 제어하는 마스터 스위치 역할을 합니다. 보다 자세한 제어를 위해 imq.serviceName .accesscontrol.enabled 등록 정보를 설정하여 연결 서비스에 대해 이 설정을 대체할 수 있습니다. 여기서 serviceName표 4–1에 표시된 대로 연결 서비스의 이름입니다. 예를 들면 imq.httpjms.accesscontrol.enabled와 같습니다.

그림 4–2는 브로커에서 인증 및 권한 부여 서비스를 제공하는 데 필요한 구성 요소를 보여줍니다. 이러한 서비스는 메시징 시스템 사용자에 대한 정보(이름, 비밀번호 및 그룹 멤버쉽)가 들어 있는 사용자 저장소에 따라 다릅니다. 또한, 사용자나 그룹에 특정 작업에 대한 권한을 부여하기 위해 브로커는 사용자나 그룹이 수행할 수 있는 작업을 지정하는 액세스 제어 등록 정보 파일을 참조합니다. 구성 등록 정보 imq.accesscontrol.file.filename을 사용하여 브로커 전체에 대해 단일 액세스 제어 등록 정보 파일을 지정하거나, imq.serviceName. accesscontrol.file.filename을 사용하여 단일 연결 서비스에 대해 지정할 수 있습니다.

그림 4–2 보안 지원

브로커의 보안 서비스에서 사용자 저장소 및 액세스 제어 등록 정보 파일을 모두 사용함을 보여주는 다이어그램

그림 4–2에 표시된 대로, Message Queue 서비스와 함께 제공되는 플랫 파일 사용자 저장소에 사용자 데이터를 저장하거나 기존 LDAP(Lightweight Directory Access Protocol) 저장소에 플러그 인할 수 있습니다.

브로커의 imq.authentication.basic.user_repository 등록 정보는 어떤 저장소 유형을 사용할지를 지정합니다. 일반적으로 LDAP 저장소는 확장성이 중요한 경우나 여러 브로커에서 저장소를 공유해야 하는 경우(예: 브로커 클러스터를 사용 중인 경우)에 권장됩니다. 플랫 파일 또는 LDAP 사용자 저장소 설정에 대한 자세한 내용은 사용자 인증을 참조하십시오.

인증

브로커에 연결을 요청하는 클라이언트는 브로커가 사용자 저장소에 저장된 항목과 비교할 사용자 이름 및 비밀번호를 제공해야 합니다. 클라이언트에서 브로커로 전송된 비밀번호는 기본 64 인코딩(플랫 파일 저장소용) 또는 메시지 다이제스트(MD5) 해싱(LDAP 저장소용)을 사용하여 인코딩됩니다. 이 옵션은 브로커 전체의 경우 imq.authentication.type 등록 정보를 통해 제어되거나 특정 연결 서비스의 경우 imq.serviceName. authentication.type 등록 정보를 통해 제어됩니다. imq.authentication.client.response.timeout 등록 정보는 인증 요청 시간 초과 간격을 설정합니다.

비밀번호 파일에 설명한 대로 비밀번호를 대화식으로 묻지 않고 비밀번호 파일에 비밀번호를 입력하도록 선택할 수도 있습니다. 부울 브로커 등록 정보 imq.passfile.enabled는 이 옵션을 제어합니다. 이 등록 정보가 true이면 imq.passfile.dirpathimq.passfile.name 등록 정보에서 비밀번호 파일의 디렉토리 경로와 파일 이름을 제공합니다. imq.imqcmd.password 등록 정보(비밀번호 파일에 내장될 수 있음)는 관리자가 명령 유틸리티(imqcmd)를 사용하여 브로커, 연결 서비스, 연결, 물리적 대상, 영구 가입 및 트랜잭션을 관리하는 데 필요한 인증용 비밀번호를 지정합니다.

LDAP 기반 사용자 저장소를 사용하는 경우에는 LDAP 조회의 다양한 측면을 구성하는 데 사용할 수 있는 다양한 브로커 등록 정보가 있습니다. LDAP 서버 자체의 주소(호스트 이름 및 포트 번호)는 imq.user_repository.ldap.server를 통해 지정됩니다. imq.user_repository.ldap.principal 등록 정보는 LDAP 저장소에 바인드하는 데 필요한 고유 이름을 제공하며, imq.user_repository.ldap.password는 관련 비밀번호를 제공합니다. 기타 등록 정보는 개별 사용자 및 그룹 검색을 위한 디렉토리 기반 및 선택적 JNDI 필터, 사용자 및 그룹 이름의 공급자별 속성 식별자 등을 지정합니다. 자세한 내용은 보안 등록 정보를 참조하십시오.

권한 부여

인증된 사용자는 다양한 Message Queue 관련 작업을 수행할 수 있는 권한을 부여받게 됩니다. Message Queue 관리자는 사용자 그룹을 정의하고 그룹 내 개별 사용자 멤버쉽을 할당할 수 있습니다. 기본 액세스 제어 등록 정보 파일은 admin이라는 단일 그룹만 명시적으로 참조합니다( 그룹 참조). 이 그룹의 사용자는 admin 연결 서비스용 연결 권한이 있으므로 대상 생성, 브로커 모니터링 및 제어와 같은 관리 작업을 수행할 수 있습니다. 다른 그룹으로 정의된 사용자는 기본적으로 admin 서비스에 연결할 수 없습니다.

사용자가 어떤 작업을 수행하려 하면 브로커는 사용자 저장소에 있는 사용자 이름 및 그룹 멤버쉽을 액세스 제어 등록 정보 파일에 있는 해당 작업에 액세스하도록 지정된 사용자 이름 및 그룹 멤버쉽과 대조 확인합니다. 액세스 제어 등록 정보 파일은 다음 작업에 대한 사용자 또는 그룹의 권한을 지정합니다.

암호화

클라이언트와 브로커 사이에 전송되는 메시지를 암호화하려면 SSL(Secure Socket Layer) 표준 기반의 연결 서비스를 사용해야 합니다. SSL은 SSL 사용 가능 브로커와 SSL 사용 가능 클라이언트 사이에 암호화된 연결을 설정하여 연결 수준에서 보안을 제공합니다.

SSL 기반 Message Queue 연결 서비스를 사용하려면 키 도구 유틸리티(imqkeytool)를 사용하여 공용 키/개인 키 쌍을 생성합니다. 이 유틸리티는 자체 서명된 인증서에 공용 키를 내장하고 이를 Message Queue 키 저장소에 저장합니다. 키 저장소 자체에 비밀번호가 설정되어 있으므로 잠금을 해제하려면 시작 시 imq.keystore.password 등록 정보에 지정된 키 저장소 비밀번호를 입력해야 합니다. 키 저장소 잠금이 해제되면 브로커는 연결을 요청하는 모든 클라이언트에게 인증서를 전달할 수 있습니다. 그리고 나서 클라이언트는 인증서를 사용하여 브로커에게 보낼 암호화된 연결을 설정합니다.

imq.audit.enabled 브로커 등록 정보는 Message Queue 브로커 로그 파일에 대한 감사 레코드 로깅을 제어합니다. 자세한 내용은 감사 기록을 참조하십시오.

모니터링 서비스

브로커는 응용 프로그램 및 브로커 성능을 모니터하고 진단할 구성 요소를 포함합니다. 여기에는 다음 항목이 포함됩니다.

그림 4–3은 일반 체계를 보여줍니다. 모니터링 서비스 구성을 위한 브로커 등록 정보는 모니터링 등록 정보에 나와 있습니다.

그림 4–3 모니터링 지원

로거 입력, 오류 수준 및 출력 채널을 보여주는 다이어그램. 그림은 텍스트에 설명되어 있습니다.

메트릭 생성자

메트릭 생성자는 브로커 내부 및 외부로의 메시지 흐름, 브로커 메모리의 메시지 수 및 이 메시지가 사용하는 메모리, 열려 있는 연결 수, 사용 중인 스레드 수 등과 같은 브로커 활동 정보를 제공합니다. 부울 브로커 등록 정보 imq.metrics.enabled는 이러한 정보를 기록할지 여부를 제어합니다. imq.metrics.interval는 빈도를 지정합니다.

로거

로거는 브로커 코드 및 메트릭 생성자가 생성한 정보를 가져와서 오류 발생 시 표준 출력(콘솔), 로그 파일, syslog 데몬 프로세스(Solaris 플랫폼용)에 해당 정보를 기록합니다.사용할 로그 파일은 imq.log.file.dirpathimq.log.file.filename 브로커 등록 정보를 통해 식별됩니다. imq.log.console.stream는 콘솔 출력을 stdout로 전달할지 stderr로 전달할지 여부를 지정합니다.

imq.log.level 등록 정보는 로거에서 수집하는 메트릭 정보 범주 ERROR, WARNING 또는 INFO를 제어합니다. 각 수준에는 상위 수준이 포함됩니다. 예를 들어, WARNING을 로깅 수준으로 지정한 경우 오류 메시지도 기록됩니다. imq.log.console.outputimq.log.file.output 등록 정보는 지정된 범주 중에서 콘솔과 로그 파일에 각각 기록할 범주를 제어합니다. 그러나, 이 경우 범주에는 상위 수준이 포함되지 않습니다. 예를 들어, 오류와 경고를 로그 파일에 모두 기록하고 정보 메시지를 콘솔에 기록하려는 경우에는 imq.log.file.outputERROR|WARNING으로, imq.log.console.outputINFO로 명시적으로 설정해야 합니다. Solaris 플랫폼의 경우 또 하나의 등록 정보인 imq.log.syslog.outputsyslog 데몬에 기록할 메트릭 정보 범주를 지정합니다. 사용 불능 메시지를 삭제하거나 사용 불능 메시지 대기열로 옮길 때 기록할지 여부를 지정하는 imq.destination.logDeadMsgs 등록 정보도 있습니다.

로그 파일의 경우 파일을 닫고 출력을 새 파일로 롤오버하는 지점을 지정할 수 있습니다. 로그 파일이 지정된 크기(imq.log.file.rolloverbytes)에 이르거나 지정된 기간(imq.log.file.rolloversecs)에 이르면 해당 로그 파일이 저장되고 새 로그 파일이 만들어집니다.

로깅 관련 추가 브로커 등록 정보는 모니터링 등록 정보을 참조하십시오. 로거 구성 방법과 로거를 사용하여 성능 정보를 얻는 방법에 대한 자세한 내용은 브로커 로깅 구성 및 사용을 참조하십시오.

메트릭 메시지 생성자(엔터프라이즈판)

메트릭 메시지 생성자는 주기적으로 메트릭 생성자로부터 정보를 받아서 해당 정보를 메트릭 메시지에 기록합니다. 그런 다음, 이 메트릭 메시지를 메시지에 포함된 메트릭 정보 유형에 따라 다양한 메트릭 주제 대상 중 하나로 전송합니다(표 4–2 참조). Message Queue 클라이언트는 메시지를 사용하거나 포함되어 있는 메트릭 데이터를 처리할 수 있습니다. 이렇게 하면 개발자는 사용자 정의 모니터링 도구를 작성하여 메시징 응용 프로그램을 지원할 수 있습니다. 각 메트릭 메시지 유형에서 보고하는 메트릭 수량에 대한 자세한 내용은 Java 클라이언트용 Message Queue 개발 안내서를 참조하십시오.

표 4–2 메트릭 주제 대상

주제 이름 

메트릭 정보 유형

mq.metrics.broker

브로커 메트릭 

mq.metrics.jvm

Java 가상 머신 메트릭 

mq.metrics.destination_list

대상 및 해당 유형 목록 

mq.metrics.destination.queue.queueName

지정된 대기열의 대상 메트릭 

mq.metrics.destination.topic.topicName

지정된 주제의 대상 메트릭 

브로커 등록 정보 imq.metrics.topic.enabledimq.metrics.topic.interval은 메시지를 메트릭 주제 대상으로 전송할지 여부와 전송 빈도를 각각 제어합니다. imq.metrics.topic.timetoliveimq.metrics.topic.persist 등록 정보는 이러한 메시지의 수명과 지속 여부를 지정합니다.

메트릭 메시지 본문에 포함된 정보 이외에 각 메시지의 헤더에는 다음과 같은 추가 정보를 제공하는 등록 정보가 있습니다.

이 등록 정보는 유형이 다르거나 서로 다른 브로커에서 가져온 메트릭 메시지를 처리하는 클라이언트 응용 프로그램에 유용합니다.