이전 목차 색인 다음 |
Sun Java System Message Queue 3.5 SP1 관리 설명서

> ## 5장
> 브로커 시작 및 구성

> Sun Java™ System Message Queue를 설치한 후 imqbrokerd 명령을 사용하여 브로커를 시작합니다. 브로커 인스턴스의 구성은 일련의 구성 파일 및 imqbrokerd 명령과 함께 전달되는 옵션에 따라 결정되며, 옵션은 구성 파일의 해당 등록 정보를 대체합니다.

> 이 장에서는 imqbrokerd 명령의 구문, 그리고 명령줄 옵션 및 구성 파일을 사용하여 브로커 인스턴스를 구성하는 방법에 대해 설명합니다. 또한 다음을 수행하는 방법도 설명합니다.

> - 브로커 인스턴스 구성 파일 편집
> - 브로커 클러스터를 이용한 작업
> - 브로커의 로깅 제어

> 브로커를 Windows 서비스로 시작하고 사용하는 방법에 관한 설명은 "브로커를 Windows 서비스로 사용"을 참조하십시오.

> ##

> 구성 파일

> 브로커를 구성할 때 사용되는 설치한 브로커 구성 파일 템플릿은 부록 A, "Message Queue 데이터의 위치"에 나와 있는 것처럼 운영 체제에 따라 다른 디렉토리에 있습니다.

> 이 디렉토리에는 다음과 같은 파일이 저장됩니다.

> - 시작할 때 로드되는 기본 구성 파일. 이 파일은 default.properties이며 편집할 수 없습니다. 기본 설정을 지정하고 변경할 등록 정보의 정확한 이름을 찾으려면 이 파일을 읽습니다.
> - Message Queue를 설치할 때 지정한 모든 등록 정보를 포함하는 설치 구성 파일. 이 파일은 install.properties이며 설치하고 나면 편집할 수 없습니다.

> ### 인스턴스 구성 파일

> 브로커를 처음 실행하면 브로커 인스턴스의 구성 등록 정보를 지정할 때 사용할 수 있는 인스턴스 구성 파일이 만들어집니다. 인스턴스 구성 파일은 구성 파일이 연결되어 있는 브로커 인스턴스의 이름(instanceName)으로 식별되는 디렉토리에 저장됩니다(부록 A, "Message Queue 데이터의 위치" 참조).

> .../instances/instanceName/props/config.properties

> 주 | .../instances/instanceName 디렉토리 및 인스턴스 구성 파일은 해당 브로커 인스턴스를 만든 사람이 소유합니다. 이후에는 항상 해당 사용자가 브로커 인스턴스를 시작해야 합니다.

> 인스턴스 구성 파일은 브로커 인스턴스에 의해 유지 관리됩니다. 관리 도구를 사용하여 구성을 변경하면 인스턴스 구성 파일이 수정됩니다. 인스턴스 구성 파일을 직접 편집하여 구성을 변경할 수도 있습니다("인스턴스 구성 파일 편집" 참조). 그렇게 하려면 .../instances/instanceName 디렉토리의 소유자이거나 루트로 로그인하여 디렉토리에 관한 권한을 변경해야 합니다.

> 클러스터에서 브로커 인스턴스를 연결하는 경우에는("멀티 브로커 클러스터(엔터프라이즈판)" 참조) 클러스터 구성 파일을 사용하여 클러스터 구성 정보를 지정해야 할 수도 있습니다. 자세한 내용은 "클러스터 구성 등록 정보"을 참조하십시오.

> ### 등록 정보 값 병합

> 시작할 때 시스템에서는 다른 구성 파일에 있는 등록 정보 값을 병합합니다. 설치 및 인스턴스 구성 파일에 설정된 값을 사용하여 기본 구성 파일에 지정된 값을 대체합니다. imqbrokerd 명령 옵션을 사용하면 결과 값을 대체할 수 있습니다. 이 체계가 그림 5-1에 표시되어 있습니다.

> 그림 5-1 브로커 구성 파일

> ### 등록 정보 이름 지정 구문

> 구성 파일의 모든 Message Queue 등록 정보 정의에는 다음과 같은 이름 지정 구문이 사용됩니다.

> propertyName=value[[,value1]...]

> 예를 들어, 다음 항목은 브로커가 추가 메시지를 거부하기 전까지 메모리 및 영구 저장소에 최대 50,000개의 메시지를 저장하도록 지정합니다.

> imq.system.max_count=50000

> 다음 항목은 매일(86400초) 새 로그 파일을 작성하도록 지정합니다.

> imq.log.file.rolloversecs=86400

> 표 5-1에는 브로커 구성 등록 정보(및 기본값)가 알파벳순으로 나와 있습니다.

> ### 인스턴스 구성 파일 편집

> 브로커 인스턴스를 처음으로 실행하면 config.properties 파일이 자동으로 작성됩니다. 이 인스턴스 구성 파일을 편집하여 해당 브로커 인스턴스의 동작과 자원을 사용자 정의할 수 있습니다.

> 브로커 인스턴스는 시작 시에만 config.properties 파일을 읽습니다. config.properties 파일을 영구적으로 변경하려면 다음 중 하나를 수행합니다.

> - 관리 도구를 사용합니다. imqcmd를 사용해서 설정할 수 있는 등록 정보에 대한 내용은 표 6-4를 참조하십시오.
> - 브로커 인스턴스가 종료된 사이에 config.properties 파일을 편집한 후 인스턴스를 다시 시작합니다(Solaris와 Linux 플랫폼에서는 브로커 인스턴스를 처음으로 시작한 사용자만 config.properties 파일을 편집할 권한을 갖음).

> 표 5-1에는 브로커 인스턴스 구성 등록 정보(및 기본값)가 알파벳순으로 나와 있습니다. 각 등록 정보의 의미와 사용에 대한 자세한 내용은 지정된 상호 참조 부분을 보십시오.

> 표 5-1 브로커 인스턴스 구성 등록 정보

> 등록 정보 이름 | 유형 | 기본값 | 참조
> --- | --- | --- | ---
> imq.accesscontrol.enabled | 부울 | true | 표 2-6
> imq.accesscontrol.file. filename | 문자열 | accesscontrol. properties | 표 2-6
> imq.authentication. user_repository | 문자열 | file | 표 2-6
> imq.authentication. client.response.timeout | 정수 (초) | 180 | 표 2-6
> imq.authentication.type | 문자열 | digest | 표 2-6
> imq.autocreate.destination. isLocalOnly | 부울 | false | 표 2-10
> imq.autocreate.destination. limitBehavior | 문자열 | REJECT_NEWEST | 표 2-10
> imq.autocreate.destination. maxBytesPerMsg | 바이트 문자열 1 | 10k | 표 2-10
> imq.autocreate.destination. maxNumMsgs | 정수 | 100,000 | 표 2-10
> imq.autocreate.destination. maxNumProducers | 정수 | 100 | 표 2-10
> imq.autocreate.destination. maxTotalMsgBytes | 바이트 문자열 1 | 10m | 표 2-10
> imq.autocreate.queue | 부울 | true | 표 2-10
> imq.autocreate.queue. consumerFlowLimit | 정수 | 1000 | 표 2-10
> imq.autocreate.queue. localDeliveryPreferred | 부울 | false | 표 2-10
> imq.autocreate.queue. maxNumActiveConsumers | 정수 | 1 | 표 2-10
> imq.autocreate.queue. maxNumBackupConsumers | 정수 | 0 | 표 2-10
> imq.autocreate.topic | 부울 | true | 표 2-10
> imq.autocreate.topic. consumerFlowLimit | 정수 | 1,000 | 표 2-10
> imq.cluster.property_name |  |  | 표 5-3
> imq.hostname | 문자열 | 사용 가능한 모든 IP 주소 | 표 2-3
> imq.httpjms.http.property_name |  |  | 표 C-1
> imq.httpsjms.https. property_name |  |  | 표 C-3
> imq.keystore.property_name |  |  | 표 8-8
> imq.log.console.output | 문자열 | ERROR|WARNING | 표 2-9
> imq.log.console.stream | 문자열 | ERR | 표 2-9
> imq.log.file.dirpath | 문자열 | 부록 A, "Message Queue 데이터의 위치" 참조 | 표 2-9
> imq.log.file.filename | 문자열 | log.txt | 표 2-9
> imq.log.file.output | 문자열 | ALL | 표 2-9
> imq.log.file.rolloverbytes | 정수 (바이트) | -1 (롤오버 없음) | 표 2-9
> imq.log.file.rolloversecs | 정수 (초) | 604800 | 표 2-9
> imq.log.level | 문자열 | INFO | 표 2-9
> imq.log.syslog.facility | 문자열 | LOG_DAEMON | 표 2-9
> imq.log.syslog.identity | 문자열 | imqbrokerd_${imq. instanceName} | 표 2-9
> imq.log.syslog.logconsole | 부울 | false | 표 2-9
> imq.log.syslog.logpid | 부울 | true | 표 2-9
> imq.log.syslog.output | 문자열 | ERROR | 표 2-9
> imq.log.timezone | 문자열 | 지역 표준 시간대 | 표 2-9
> imq.message.expiration. interval | 정수 (초) | 60 | 표 2-4
> imq.message.max_size | 바이트 문자열 1 | 70m | 표 2-4
> imq.metrics.enabled | 부울 | true | 표 2-9
> imq.metrics.interval | 정수 (초) | -1 (해당 없음) | 표 2-9
> imq.metrics.topic.enabled | 부울 | true | 표 2-9
> imq.metrics.topic.interval | 정수 (초) | 60 | 표 2-9
> imq.metrics.topic.persist | 부울 | false | 표 2-9
> imq.metrics.topic.timetolive | 정수 (초) | 300 | 표 2-9
> imq.passfile.dirpath | 문자열 | 부록 A, "Message Queue 데이터의 위치" 참조 | 표 2-6
> imq.passfile.enabled | 부울 | false | 표 2-6
> imq.passfile.name | 문자열 | passfile | 표 2-6
> imq.persist.file. destination.message. filepool.limit | 정수 | 100 | 표 2-5
> imq.persist.file.message. cleanup | 부울 | false | 표 2-5
> imq.persist.file.message. filepool.cleanratio | 정수 | 0 | 표 2-5
> imq.persist.file.message. max_record_size | 바이트 문자열 1 | 1m | 표 2-5
> imq.persist.file.sync. enabled | 부울 | false | 표 2-5
> imq.persist.jdbc.property_name |  |  | 표 B-1
> imq.persist.store | 문자열 | file | 표 2-5
> imq.ping.interval | 정수 | 120 | 표 2-3
> imq.portmapper.backlog | 정수 | 50 | 표 2-3
> imq.portmapper.hostname | 문자열 | imq.hostname에서 상속됨 | 표 2-3
> imq.portmapper.port | 정수 | 7676 | 표 2-3
> imq.resource_state.count | 정수 (퍼센트) | 5000 (녹색) 500 (노랑) 50 (주황) 0 (빨강) | 표 2-4
> imq.resource_state. threshold | 정수 (퍼센트) | 0 (녹색) 80 (노랑) 90 (주황) 98 (빨강) | 표 2-4
> imq.service.activelist | 목록 | jms,admin | 표 2-3
> imq.service_name. accesscontrol.enabled | 부울 | 시스템 차원 등록 정보에서 값 상속 | 표 2-6
> imq.service_name. accesscontrol.file.filename | 문자열 | 시스템 차원 등록 정보에서 값 상속 | 표 2-6
> imq.service_name. authentication.type | 문자열 | 시스템 차원 등록 정보에서 값 상속 | 표 2-6
> imq.service_name.max_threads | 정수 | 1000 (jms) 500 (ssljms) 500 (httpjms) 500 (httpsjms) 10 (admin) 10 (ssladmin) | 표 2-3
> imq.service_name.min_threads | 정수 | 10 (jms) 10 (ssljms) 10 (httpjms) 10 (httpsjms) 4 (admin) 4 (ssladmin) | 표 2-3
> imq.service_name.protocol_type. hostname | 문자열 | imq.hostname에서 상속됨 | 표 2-3
> imq.service_name.protocol_type. port | 정수 | 0 (동적으로 할당됨) | 표 2-3
> imq.service_name. threadpool_model | 문자열 | dedicated (jms) dedicated (ssljms) dedicated (httpjms) dedicated (httpsjms) dedicated (admin) dedicated (ssladmin) | 표 2-3
> imq.shared. connectionMonitor_limit | 정수 | 512 (Solaris & Linux) 64 (Windows) | 표 2-3
> imq.system.max_count | 정수, 0 (제한 없음) | -1 | 표 2-4
> imq.system.max_size | 바이트 문자열1, 0 (제한 없음) | -1 | 표 2-4
> imq.transaction.autorollback | 부울 | false | 표 2-4
> imq.user_repository.ldap. property_name |  |  | 표 8-5
> 1 바이트 문자열로 입력하는 값은 바이트, KB, MB로 나타낼 수 있습니다. 예를 들어, 1000은 1000바이트를, 7500b는 7500바이트를, 77k는 77KB (77 x 1024 = 78848바이트)를, 17m은 17MB (17 x 1024 x 1024 = 17825792바이트)를 나타냅니다.

> ##

> 브로커 시작

> 브로커 인스턴스를 시작하려면 imqbrokerd 명령을 사용합니다.

> 주 | 관리 콘솔(imqadmin)이나 명령 유틸리티(imqcmd)를 사용해서는 브로커 인스턴스를 시작할 수 없습니다. 이 Message Queue 관리 도구를 사용하려면 브로커 인스턴스가 이미 실행 중이어야 합니다.

> 등록 정보 값을 하나 이상 대체하려면 유효한 imqbrokerd 명령줄 옵션을 지정합니다. 명령줄 옵션은 브로커 구성 파일의 값을 대체하지만 현재 브로커 세션에만 적용됩니다. 명령줄 옵션은 인스턴스 구성 파일에 기록되지 않습니다.

> ### imqbrokerd 명령 구문

> imqbrokerd 명령의 구문은 다음과 같습니다(옵션 및 인수는 공백으로 구분).

> imqbrokerd [[ -Dproperty=value]...]
> [ -backup fileName]
> [ -cluster "[broker1] [[,broker2]...]"
> [ -dbuser userName] [ -dbpassword password]
> [ -force]
> [ -h|-help]
> [ -javahome path]
> [ -ldappassword password]
> [ -license licenseName]
> [ -loglevel level]
> [ -metrics interval]
> [ -name instanceName]
> [ -password keypassword] [ -passfile fileName]
> [ -port number]
> [ -remove instance]
> [ -reset data]
> [ -restore fileName]
> [ -shared]
> [ -silent|-s] [ -tty]
> [ -upgrade-store-nobackup]
> [ -version]
> [ -vmargs arg1 [[arg2]...]

> 주 | Solaris의 경우에는 /etc/imq/imqborkerd.conf 구성 파일의 RESTART 등록 정보를 YES로 설정하여 비정상적으로 종료된 브로커를 자동으로 시작하도록 구성할 수 있습니다.

> 주 | Solaris와 Linux 플랫폼에서는 구성 정보와 지속성 데이터를 포함하는 디렉토리의 권한이 브로커 인스턴스를 처음으로 시작하는 사용자의 umask에 따라 달라집니다. 따라서 브로커 인스턴스가 제대로 작동하려면 원래 사용자가 계속 시작해야 합니다.

> ### 시작 예

> 다음에서는 imqbrokerd 명령을 사용하는 예를 보여 줍니다. imqbrokerd 명령줄 옵션에 대한 자세한 내용은 표 5-2를 참조하십시오.

> ##### 기본 브로커 이름 및 구성을 사용하는 브로커 인스턴스를 시작하는 방법

> 다음 명령을 사용합니다.

> imqbrokerd

> 그러면 포트 7676에 포트 매퍼가 있는 로컬 시스템에서 브로커의 기본 인스턴스(이름 imqbroker)를 시작합니다.

> ##### 엔터프라이즈판 시험 사용권으로 브로커 인스턴스를 시작하는 방법

> 플랫폼판 사용권은 있지만 90일 동안 엔터프라이즈판 기능을 사용해 보려는 경우 다음과 같이 -license 명령줄 옵션을 사용하고 사용할 사용권으로 "try"를 전달하여 엔터프라이즈판 시험 사용권을 활성화할 수 있습니다.

> imqbrokerd -license try

> 이 옵션은 브로커 인스턴스를 시작할 때마다 사용해야 하며, 그렇지 않으면 기본값이 기본 플랫폼판 사용권으로 돌아갑니다.

> ##### 플러그 인 지속성을 사용하여 명명된 브로커 인스턴스를 시작하는 방법

> 플러그 인 데이터 저장소(부록 B, "플러그 인 지속성 설정" 참조)를 사용하며 사용자 아이디와 비밀번호가 필요한 myBroker라는 브로커를 시작하려면 다음 명령을 사용합니다.

> imqbrokerd -name myBroker -dbuser myName -dbpassword myPassword

> ### imqbrokerd 옵션 요약

> 표 5-2에는 imqbrokerd 명령의 옵션과 각 옵션에 영향을 받는 구성 등록 정보(있는 경우)에 대한 설명이 나와 있습니다.

> 표 5-2 imqbrokerd 옵션

> 옵션 | 영향을 받는 등록 정보 | 설명
> --- | --- | ---
> -backup fileName | 없음 | 브로커 클러스터에만 적용됩니다. 마스터 브로커의 구성 변경 기록을 지정된 파일에 백업합니다. "구성 변경 기록 백업"을 참조하십시오.
> -cluster"[broker1] [[,broker2]...]" broker는 다음 중 하나입 니다. host[:port] [host]:port | imq.cluster.brokerlist를 연결할 브로커의 목록으로 설정합니다. | 브로커 클러스터에만 적용됩니다. 지정된 호스트 및 포트의 모든 브로커에 연결합니다. 이 목록은 imq.cluster.brokerlist 등록 정보의 목록과 병합됩니다. host에 값을 지정하지 않으면 localhost가 사용됩니다. port에 값을 지정하지 않으면 7676이 사용됩니다. 이 옵션을 사용해서 여러 브로커에 연결하는 방법에 대한 자세한 내용은 "클러스터를 이용한 작업(엔터프라이즈판)"을 참조하십시오.
> -dbpassword password | imq.persist.jdbc.password를 지정한 비밀번호로 설정합니다. | 플러그 인 JDBC 호환 데이터 저장소의 비밀번호를 지정합니다. 부록 B, "플러그 인 지속성 설정"을 참조하십시오.
> -dbuser userName | imq.persist.jdbc.user를 지정한 사용자 아이디로 설정합니다. | 플러그 인 JDBC 호환 데이터베이스의 사용자 아이디를 지정합니다. 부록 B, "플러그 인 지속성 설정"을 참조하십시오.
> -Dproperty=value | 시스템 등록 정보를 설정합니다. 인스턴스 구성 파일의 해당 등록 정보 값을 대체합니다. | 지정한 등록 정보를 지정한 값으로 설정합니다. 브로커 구성 등록 정보는 표 5-1을 참조하십시오. 경고: D 옵션으로 설정한 등록 정보의 맞춤법과 형식에 주의하십시오. 잘못된 값을 전달한 경우 시스템에서는 경고를 하지 않으며 Message Queue에서는 해당 값을 설정할 수 없습니다.
> -force | 없음 | 사용자의 확인 없이 작업을 수행합니다. 이 옵션은 일반적으로 확인이 필요한 -remove instance 및 -upgrade-store-nobackup 옵션에만 적용됩니다.
> -h|-help | 없음 | 도움말을 표시합니다. 명령줄에 있는 명령은 실행되지 않습니다.
> -javahome path | 없음 | 대체 Java 2 호환 JDK의 경로를 지정합니다. 기본값은 번들형 런타임을 사용하는 것입니다.
> -ldappassword password | imq.user_repository.ldap.password를 지정한 비밀번호로 설정합니다. | LDAP 사용자 저장소에 액세스할 때 필요한 비밀번호를 지정합니다. "사용자 저장소에 LDAP 서버 사용"을 참조하십시오.
> -license [licenseName] | 없음 | 로드할 사용권이 Message Queue 제품의 기본값과 다른 경우 해당 사용권을 지정합니다. 사용권 이름을 지정하지 않으면 시스템에 설치된 모든 사용권이 표시됩니다. licenseName 값은 설치된 Message Queue 버전에 따라 pe (플랫폼판-기본 기능), try (플랫폼판-90일 시험 엔터프라이즈 기능), unl (엔터프라이즈판)입니다. "제품 판"을 참조하십시오.
> -loglevel level | imq.broker.log.level을 지정한 수준으로 설정합니다. | 로깅 수준을 NONE, ERROR, WARNING 또는 INFO 중 하나로 지정합니다. 기본값은 INFO입니다. 자세한 내용은 "로거"를 참조하십시오.
> -metrics interval | imq.metrics.interval을 지정한 초 수로 설정합니다. | 지정된 간격(초)으로 브로커 메트릭이 로거에 기록되도록 지정합니다.
> -name instanceName | imq.instancename을 지정한 이름으로 설정합니다. | 이 브로커의 인스턴스 이름을 지정하고 해당 인스턴스 구성 파일을 사용합니다. 브로커 이름을 지정하지 않으면 인스턴스 이름은 imqbroker로 설정됩니다. 주: 같은 호스트에서 두 개 이상의 브로커 인스턴스를 실행하는 경우에는 각각에 고유한 이름이 있어야 합니다.
> -passfile fileName | imq.passfile.enabled를 true로 설정합니다. jmq.passfile.dirpath를 파일이 포함된 경로로 설정합니다. imq.passfile.name을 파일 이름으로 설정합니다. | SSL 키 저장소, LDAP 사용자 저장소 또는 JDBC 호환 데이터베이스의 비밀번호를 읽을 파일의 이름을 지정합니다. 자세한 내용은 "Passfile 사용"을 참조하십시오.
> -password keypassword | imq.keystore.password를 지정한 비밀번호로 설정합니다. | SSL 인증 키 저장소의 비밀번호를 지정합니다. 자세한 내용은 "보안 관리자"를 참조하십시오.
> -port number | imq.portmapper.port를 지정한 번호로 설정합니다. | 브로커의 포트 매퍼 포트 번호를 지정합니다. 이 값은 기본적으로 7676으로 설정됩니다. 같은 서버에서 두 개의 브로커 인스턴스를 실행하려면 각 브로커 포트 매퍼에 서로 다른 포트 번호가 있어야 합니다. Message Queue 클라이언트는 이 포트 번호를 사용하여 브로커 인스턴스에 연결합니다.
> -remove instance | 없음 | 브로커 인스턴스를 제거합니다. 인스턴스 구성 파일, 로그 파일, 영구 저장소, 인스턴스와 관련된 기타 파일 및 디렉토리를 삭제합니다. -force 옵션을 함께 지정한 경우가 아니면 사용자의 확인이 필요합니다.
> -reset store| messages| durables| props | 없음 | 주어진 인수에 따라 데이터 저장소(또는 데이터 저장소의 일부) 또는 브로커 인스턴스의 등록 정보를 재설정합니다. 데이터 저장소를 재설정하면 지속성 메시지, 지속성가입, 트랜잭션 정보 등의 모든 지속성 데이터가 지워집니다. 그러면 브로커 인스턴스를 초기 상태로 시작할 수 있습니다. 지속성 메시지만 지우거나 영구 가입만 지울 수도 있습니다. (이후에 다시 시작할 때 영구 저장소가 재설정되지 않게 하려면 -reset 옵션을 사용하지 않고 브로커 인스턴스를 다시 시작합니다.) 자세한 내용은 "지속성 관리자"를 참조하십시오. 브로커의 등록 정보를 재설정하면 기존 인스턴스 구성 파일(config.properties)이 빈 파일로 교체됩니다. 모든 등록 정보에 기본값이 설정됩니다.
> -restore fileName | 없음 | 브로커 클러스터에만 적용됩니다. 마스터 브로커의 구성 변경 레코드를 지정한 백업 파일로 교체합니다. 이 파일은 -backup 옵션을 사용해서 미리 작성해 두어야 합니다. "구성 변경 기록 복원"을 참조하십시오.
> -shared | imq.jms.threadpool_model을 shared로 설정합니다. | 연결 간에 스레드를 공유하여 브로커 인스턴스가 지원하는 연결의 수를 늘리기 위해 jms 연결 서비스가 공유 스레드 풀 모델을 사용해서 구현되도록 지정합니다. 자세한 내용은 "연결 서비스"를 참조하십시오.
> -silent|-s | imq.log.console.output을 NONE으로 설정합니다. | 콘솔에 대한 로깅을 끕니다.
> -tty | imq.log.console. output을 ALL로 설정합니다. | 모든 메시지가 콘솔에 표시되도록 설정합니다. 기본적으로 WARNING 및 ERROR 수준 메시지만 표시됩니다.
> -upgrade-store- nobackup | 없음 | 호환되지 않는 버전에서 Message Queue 3.5 또는 Message Queue 3.5 SPx로 업그레이드할 때 이전 데이터 저장소를 자동으로 제거하도록 지정합니다. 자세한 내용은 Message Queue 설치 설명서를 참조하십시오.
> -version | 없음 | 설치된 제품의 버전 번호를 표시합니다.
> -vmargs arg1 [[arg2]...] | 없음 | Java VM으로 전달할 인수를 지정합니다. 인수는 공백으로 구분합니다. 인수를 두 개 이상 전달하거나 인수에 공백이 포함된 경우에는 따옴표를 사용합니다. 예를 들면 다음과 같습니다. imqbrokerd -tty -vmargs "-Xmx128m -Xincgc"

> ##

> 클러스터를 이용한 작업(엔터프라이즈판)

> 이 절에서는 멀티 브로커 클러스터를 구성할 때 사용하는 등록 정보, 브로커를 연결하는 두 가지 방법, 클러스터 관리 방법 등에 대해 설명합니다. 클러스터에 대한 소개는 "멀티 브로커 클러스터(엔터프라이즈판)"를 참조하십시오.

> 클러스터를 사용하여 작업할 때에는 클러스터에 있는 모든 브로커의 호스트 사이에서 클럭이 동기화되어 있는지 확인합니다("시스템 클럭 설정" 참조).

> ### 클러스터 구성 등록 정보

> 브로커를 클러스터에 연결할 때에는 연결된 모든 브로커가 일련의 클러스터 구성 등록 정보로 지정되어야 합니다. 다음 등록 정보는 클러스터의 브로커 참가에 대해 설명합니다. 표 5-3에는 클러스터와 관련된 구성 등록 정보가 요약되어 있습니다. 별표(*)가 표시된 등록 정보는 클러스터의 모든 브로커에 대해 같은 값을 지정해야 합니다.

> 표 5-3 클러스터 구성 등록 정보

> 등록 정보 이름 | 설명
> --- | ---
> imq.cluster.brokerlist* | 클러스터의 모든 브로커를 지정합니다. host:port 항목이 쉼표로 구분된 목록으로 구성되며, 여기서 host는 각 브로커의 호스트 이름, port는 포트 매퍼의 포트 번호입니다. 예를 들면 다음과 같습니다. host1:3000, host2:8000, ctrhost
> imq.cluster. masterbroker* | 클러스터 중에서 상태 변경을 추적하는 마스터 브로커(있는 경우)를 지정합니다. 등록 정보는 host:port로 구성되며, 여기서 host는 마스터 브로커의 호스트 이름, port는 포트 매퍼의 포트 번호입니다. 작업 환경에 대해 이 등록 정보를 설정합니다. 예: ctrhost:7676
> imq.cluster.url* | 클러스터 구성 파일의 위치를 지정합니다. 브로커가 개별적으로 구성되지 않고 단일 중앙 클러스터 구성 파일을 참조하는 경우에 사용합니다. URL 문자열로 구성됩니다. Web Server에서 관리할 경우 일반 http:URL을 사용하여 액세스할 수 있습니다. 공유 드라이브에 있는 경우 file:URL을 사용하여 액세스할 수 있습니다. 예: http://webserver/imq/cluster.properties file:/net/mfsserver/imq/cluster.properties
> imq.cluster.port | 클러스터에 있는 각 브로커는 클러스터 연결 서비스를 위한 포트 번호를 지정하는 데 사용할 수 있습니다. 클러스터 연결 서비스는 클러스터 내의 브로커간 내부 통신에 사용됩니다. 기본값: 0 (포트가 동적으로 할당됨)
> imq.cluster.hostname | 클러스터에 있는 각 브로커는 사용 가능한 호스트가 두 개 이상 있는 경우(예를 들어 컴퓨터에 네트워크 인터페이스 카드가 둘 이상인 경우) 클러스터 연결 서비스를 바인드할 호스트(호스트 이름 또는 IP 주소)를 지정하는 데 사용할 수 있습니다. 클러스터 연결 서비스는 클러스터 내의 브로커간 내부 통신에 사용됩니다. 기본값: imq.hostname 값 상속(표 2-3 참조)
> imq.cluster.transport* | 클러스터 연결 서비스가 클러스터 내의 브로커간 내부 통신에 사용하는 네트워크 전송을 지정합니다. 브로커 간에 암호화된 보안 메시지를 전달하려면 클러스터 내의 모든 브로커에 대해 이 등록 정보를 ssl로 설정합니다. 기본값: tcp

> 두 방법 중 하나를 사용해서 클러스터 등록 정보를 설정할 수 있습니다.

> - 클러스터와 관련된 구성 등록 정보는 각 브로커의 인스턴스 구성 파일(또는 각 브로커를 시작하는 명령줄)에서 설정할 수 있습니다. 예를 들어, 브로커 A (host1, 포트 7676), 브로커 B (host2, 포트 5000), 브로커 C (ctrlhost, 포트 7676)를 연결하는 경우 브로커 A, B, C의 인스턴스 구성 파일에서는 다음 등록 정보를 설정해야 합니다.

> imq.cluster.brokerlist=host1, host2:5000, ctrlhost

> 클러스터 구성을 변경하기로 한 경우, 이 방법을 사용하려면 모든 브로커에서 클러스터 관련 등록 정보를 업데이트해야 합니다.

> - 클러스터 구성 등록 정보를 중앙의 한 클러스터 구성 파일에서 설정합니다. 이러한 등록 정보에는 연결할 브로커 목록(imq.cluster.brokerlist) 및 클러스터 연결 서비스에 사용할 네트워크 전송(imq.cluster.transport)이 포함되며 선택적으로 마스터 브로커의 주소(imq.cluster.masterbroker)가 포함될 수 있습니다.

> 이 방법을 사용하는 경우에는 클러스터 구성 파일의 위치를 나타내는 imq.cluster.url 등록 정보도 설정해야 합니다(클러스터의 모든 브로커에서 설정). 유지 관리가 쉽다는 점에서 볼 때 이 방법은 클러스터 구성에 사용하는 것이 좋습니다.

> 다음 코드 샘플은 클러스터 구성 파일의 내용을 나타냅니다. host1과 ctrlhost는 모두 기본 포트에서 실행됩니다. 다음 등록 정보는 host1, host2 및 ctrlhost가 클러스터에서 연결되고 ctrlhost가 마스터 브로커임을 지정합니다.

> imq.cluster.brokerlist=host1,host2:5000,ctrlhost imq.cluster.masterbroker=ctrlhost

> 이 클러스터에 연결된 각 브로커의 인스턴스 구성 파일에는 다음과 같이 클러스터 구성 파일의 url이 포함되어야 합니다.

> imq.cluster.url=file:/home/cluster.properties

> ### 브로커 연결

> 이 절에서는 브로커를 클러스터에 연결하는 방법과 클러스트에서 브로커 간에 암호화된 보안 메시지 전달을 위해 클러스터를 구성하는 방법을 설명합니다.

> #### 연결 방법

> 일반적으로 클러스터 구성 파일을 사용하거나 사용하지 않는 두 가지 방법으로 브로커를 클러스터에 연결합니다.

> 사용하는 방법에 관계 없이 시작하는 각 브로커는 5초마다 다른 브로커와의 연결을 시도합니다. 마스터 브로커가 시작되면 이 시도가 성공한 것입니다. 클러스터의 브로커가 마스터 브로커보다 먼저 시작되면 일시 중지 상태로 있으면서 클라이언트 연결을 거부합니다. 마스터 브로커가 시작되면 일시 중지된 브로커의 모든 기능을 자동으로 사용할 수 있게 됩니다.

> ##### 방법 1: 클러스터 구성 파일 없이 연결

> ##### 브로커를 클러스터에 연결하는 방법

> 1. 브로커를 시작하는 imqbrokerd 명령에 -cluster 옵션을 사용하고 연결할 브로커의 전체 목록을 -cluster 옵션의 인수로 지정합니다.
> 2. 브로커를 시작할 때 클러스터에 연결할 각 브로커에 대해 이 작업을 수행합니다.

> 예를 들어, 다음 명령은 새 브로커를 시작하고 host1의 기본 포트에서 실행 중인 브로커와 host2의 포트 7677에서 실행 중인 브로커, localhost의 포트 7678에서 실행 중인 브로커에 연결합니다.

> imqbrokerd -cluster host1,host2:7677,:7678

> ##### 방법 2: 클러스터 구성 파일을 사용하여 연결

> 연결할 브로커의 목록과 선택적인 마스터 브로커의 주소를 지정하는 클러스터 구성 파일을 만들 수도 있습니다. 이러한 클러스터 정의 방법은 작업 시스템에 보다 적합합니다. 이 방법을 사용하는 경우 클러스터의 각 브로커는 imq.cluster.url 등록 정보의 값이 클러스터 구성 파일을 가리키도록 설정해야 합니다.

> #### 브로커간 연결 보안

> 클러스터에서 브로커 간에 암호화된 보안 메시지 전달이 필요한 경우 다음과 같이 SSL 기반 전송 프로토콜을 사용하도록 클러스터 연결 서비스를 구성해야 합니다.

> ##### 클러스터 내에서 보안 연결을 구성하는 방법

> 1. 클러스터 내의 각 브로커에 대해 SSL 기반 연결 서비스를 설정합니다.

> "TCP/IP에서 SSL 기반 서비스 설정"의 지침을 참조하십시오.

> 2. imq.cluster.transport 클러스터 구성 등록 정보를 ssl로 설정합니다.

> 클러스터 구성 파일을 사용하지 않는 경우 클러스터의 각 브로커에 대해 이 등록 정보를 설정해야 합니다.

> ### 클러스터의 브로커 관리

> 브로커 클러스터를 설정하고 나면 새 브로커를 추가하거나, 이미 클러스터에 속해 있는 브로커를 다시 시작하거나, 클러스터에서 브로커를 제거해야 할 수 있습니다.

> #### 클러스터에 브로커 추가

> ##### 기존 클러스터에 새 브로커를 추가하는 방법

> - 클러스터 구성 파일을 사용하는 경우
> 1. 클러스터 구성 파일의 imq.cluster.brokerlist 등록 정보에 새 브로커를 추가합니다.
> 2. 클러스터의 모든 브로커에 대해 다음 명령을 실행합니다.

> imqcmd reload cls

> 그러면 모든 브로커에서 imq.cluster.brokerlist 등록 정보를 다시 로드하고 클러스터에 있는 브로커의 모든 지속성 정보를 최신 상태로 유지할 수 있습니다.

> 3. 새 브로커를 시작할 때 명령줄에서 -D 옵션을 사용하여 imq.cluster.url 등록 정보를 지정합니다.

> 그러면 브로커가 클러스터 구성 파일을 가리킵니다.

> - 클러스터 구성 파일을 사용하지 않는 경우 새 브로커를 시작할 때 명령줄에서 -D 옵션을 사용하여 imq.cluster.brokerlist, imq.cluster.transport (보안 클러스터 연결 서비스를 사용하는 경우) 및 imq.cluster.masterbroker (필요한 경우) 등록 정보를 지정합니다.

> #### 클러스터에서 브로커 다시 시작

> 클러스터의 브로커가 어떤 이유로 충돌하거나 종료된 경우 브로커를 해당 클러스터의 구성원으로 다시 시작해야 합니다.

> ##### 이미 기존 클러스터의 구성원인 브로커를 다시 시작하는 방법

> - 클러스터 구성 파일을 사용하여 클러스터를 정의하지 않은 경우에는 브로커를 다시 시작할 때 명령줄에서 -D 옵션을 사용하여 imq.cluster.brokerlist (그리고 필요한 경우 imq.cluster.masterbroker) 등록 정보를 지정합니다. 클러스터에 마스터 브로커가 포함되어 있지 않은 경우에는 -cluster 옵션을 사용하면 브로커를 다시 시작할 때 클러스터에 있는 브로커 목록을 지정할 수 있습니다.
> - 클러스터 구성 파일을 사용해서 클러스터를 정의하는 경우에는 명령줄에서 브로커를 시작할 때 사용되는 -D 옵션을 사용하여 imq.cluster.url 등록 정보를 지정합니다.

> #### 클러스터에서 브로커 제거

> ##### 기존 클러스터에서 브로커를 제거하는 방법

> - 다음 명령줄을 사용해서 브로커 A, B, C를 모두 시작한 경우, A를 다시 시작하는 것만으로는 클러스터에서 제거할 수 없습니다.

> imqbrokerd -cluster A,B,C

> 대신 다음 명령줄을 사용하여 다른 모든 브로커를 다시 시작해야 합니다.

> imqbrokerd -cluster B,C

> 그 후에 -cluster 옵션을 지정하지 않고 브로커 A를 시작해야 합니다.

> - 클러스터 구성 파일을 사용해서 브로커 목록을 지정한 경우에는 다음을 수행해야 합니다.
> 1. 구성 파일에서 브로커에 관한 내용을 제거합니다.
> 2. 제거할 브로커의 imq.cluster.url 등록 정보를 변경 또는 제거하여 더 이상 일반 등록 정보를 사용하지 않게 합니다.
> 3. imqcmd reload cls 명령을 사용해서 모든 브로커가 클러스터 구성을 다시 로드하고 클러스터를 재구성하게 합니다.

> ### 마스터 브로커의 구성 변경 기록 관리

> 각 클러스터는 클러스터에서 지속성 상태의 모든 변경 사항을 추적하는 마스터 브로커 하나를 가질 수 있습니다. 이러한 상태에는 영구 가입 및 관리자가 만든 물리적 대상에 대한 정보가 포함됩니다. 모든 브로커는 시작할 때 마스터 브로커를 참조(즉, 마스터 브로커의 구성 변경 기록 참조)하여 해당 지속성 객체에 대한 정보를 동기화합니다. 따라서, 마스터 브로커에 오류가 발생하면 이러한 동기화가 불가능해 집니다. 즉, 마스터 브로커에 오류가 발생하면 물리적 대상 또는 영구 가입을 만들거나 삭제할 수 없습니다.

> 마스터 구성 변경 기록은 중요한 정보를 포함하고 있기 때문에 정기적으로 백업하여 오류가 발생할 경우에 복원하는 것이 중요합니다.

> 다음 절에서는 구성 변경 기록을 백업하고 복원하는 방법을 설명합니다.

> #### 구성 변경 기록 백업

> ##### 구성 변경 기록을 백업하는 방법

> imqbrokerd 명령에 -backup 옵션을 사용합니다. 예를 들면 다음과 같습니다.

> imqbrokerd -backup mybackuplog

> 이 작업은 적절한 시기에 수행해야 합니다. 너무 오래된 백업 파일을 복원하면 백업을 마지막으로 수행한 후에 작성된 모든 물리적 대상 또는 영구 가입에 대한 변경 정보가 손실됩니다.

> #### 구성 변경 기록 복원

> ##### 문제가 발생한 경우 마스터 브로커를 복원하는 방법

> 1. 클러스터에 있는 모든 브로커를 종료합니다.
> 2. 다음 명령을 사용해서 마스터 브로커의 구성 변경 기록을 복원합니다.

> imqbrokerd -restore mybackuplog

> 3. 마스터 브로커에 새 이름 또는 포트 번호를 지정하는 경우에는 클러스터 구성 파일을 업데이트하여 마스터 브로커가 클러스터에 속하도록 하고 새 이름을 지정해야 합니다(imq.cluster.masterbroker 등록 정보 사용).
> 4. 모든 브로커를 다시 시작합니다.

> 브로커를 복원하면 브로커의 구성 변경 레코드에 오래된 데이터가 다시 로드되는 것을 피할 수 없습니다. 하지만 앞 절의 설명과 같이 정기적으로 백업을 하면 이 문제를 최소화할 수 있습니다.

> 마스터 브로커에서는 지속성 객체의 전체 변경 사항을 추적하기 때문에 시간이 지나면 데이터베이스의 크기가 상당히 커질 수 있습니다. 백업 및 복원 작업을 수행하면 이러한 데이터베이스를 압축하고 최적화할 수 있는 이점이 있습니다.

> ##

> 로깅

> 이 절에서는 브로커의 기본 로깅 정보를 설명하며 구성을 변경하여 로그 정보를 대체 출력 채널로 리디렉션하고 로그 파일 롤오버 조건을 변경하는 방법을 설명합니다. 로깅에 대한 소개는 "로거"를 참조하십시오. 로깅을 사용하여 브로커 메트릭을 보고하는 방법은 "모니터링 도구"를 참조하십시오.

> ### 기본 로깅 구성

> 브로커 시작 시 로그 파일이 연결된 브로커 인스턴스의 이름(instanceName)으로 식별되는 디렉토리에 있는 로그 파일 집합에 로그 출력을 저장하도록 자동으로 구성됩니다(부록 A, "Message Queue 데이터의 위치" 참조).

> .../instances/instanceName/log/

> 로그 파일은 단순 텍스트 파일입니다. 이름은 다음과 같으며 이 순서대로 지정됩니다.

> log.txt
> log_1.txt
> log_2.txt
> ...
> log_9.txt

> 기본적으로 로그 파일은 한 주에 한 번씩 롤오버되며, 시스템에서는 아홉 개의 백업 파일을 보존합니다.

> - 로그 파일을 보존하는 디렉토리를 변경하려면 imq.log.file.dirpath 등록 정보를 원하는 경로로 설정합니다.
> - 로그 파일의 기본 이름을 log가 아닌 다른 이름으로 변경하려면 imq.log.file.filename 등록 정보를 설정합니다.

> 브로커는 ERROR, WARNING, INFO 등 세 가지 로그 범주를 지원합니다(표 2-7 참조). 로깅 수준을 설정하면 해당 수준 이상의 메시지를 수집합니다. 기본 로그 수준은 INFO입니다. 즉, ERROR, WARNING 및 INFO 메시지가 기본적으로 기록됩니다.

> ### 로그 메시지 형식

> 기록된 메시지는 타임스탬프(타임스탬프 표준 시간대를 변경하려면 표 2-9 참조), 메시지 코드 및 메시지 자체로 구성됩니다. 정보의 양은 설정한 로그 수준에 따라 달라집니다. 다음은 INFO 메시지의 예입니다.

> [13/Sep/2000:16:13:36 PDT] B1004 Starting the broker service using tcp [ 25374,100] with min threads 50 and max threads of 500

> ### 로거 구성 변경

> 모든 로거 등록 정보에 대한 설명은 표 2-9에 나와 있습니다.

> ##### 브로커의 로거 구성을 변경하는 방법

> 1. 로그 수준을 설정합니다.
> 2. 로깅 범주 하나 이상에 해당하는 출력 채널(파일, 콘솔, 또는 둘 다)을 설정합니다.
> 3. 출력을 파일에 기록하는 경우에는 파일의 롤오버 기준을 구성합니다.

> 이 단계들은 로거 등록 정보를 설정하여 완료합니다. 이 작업은 두 방법 중 한 가지를 사용하여 수행할 수 있습니다.

> - 브로커를 시작하기 전에 브로커의 config.properties 파일에 있는 로거 등록 정보를 변경 또는 추가합니다.
> - 브로커를 시작하는 imqbrokerd 명령에서 로거 명령줄 옵션을 지정합니다. 브로커 옵션 -D를 사용해서 로거 등록 정보(또는 모든 브로커 등록 정보)를 변경할 수도 있습니다.

> 명령줄에 전달되는 옵션은 브로커 인스턴스 구성 파일에서 지정한 등록 정보를 대체합니다. 표 5-4에는 로깅에 영향을 주는 imqbrokerd 옵션이 나와 있습니다.

> 표 5-4 imqbrokerd 로거 옵션 및 해당 등록 정보

> imqbrokerd 옵션 | 설명
> --- | ---
> -metrics interval | 메트릭 정보가 로거에 기록되는 간격(초)을 지정합니다.
> -loglevel level | 로그 수준을 ERROR, WARNING, INFO 중 하나로 설정합니다.
> -silent | 콘솔에 대한 로깅을 끕니다.
> -tty | 모든 메시지를 콘솔로 보냅니다. 기본적으로 WARNING 및 ERROR 수준 메시지만 표시됩니다.

> 다음 절에서는 기본 구성을 변경하여 다음을 수행하는 방법을 설명합니다.

> - 출력 채널(로그 메시지 대상) 변경
> - 롤오버 기준 변경

> #### 출력 채널 변경

> 기본적으로 오류 및 경고 메시지는 로그 파일에 기록될 뿐 아니라 터미널에도 표시됩니다. (Solaris의 경우에는 오류 메시지가 시스템의 syslog 데몬에도 기록됩니다.)

> 로그 메시지의 출력 채널은 다음과 같은 방법으로 변경할 수 있습니다.

> - 모든 로그 범주(주어진 수준에서)의 출력이 화면에 표시되게 하려면 imqbrokerd 명령에 -tty 옵션을 사용합니다.
> - 로그 출력이 화면에 표시되지 않게 하려면 imqbrokerd 명령에 -silent 옵션을 사용합니다.
> - 로그 파일에 기록할 로깅 정보의 범주를 지정하려면 imq.log.file.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.

> imq.log.file.output=ERROR

> - 콘솔에 기록할 로깅 정보의 범주를 지정하려면 imq.log.console.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.

> imq.log.console.output=INFO

> - Solaris의 경우 Solaris syslog에 기록할 로깅 정보의 범주를 지정하려면 imq.log.syslog.output 등록 정보를 사용합니다. 예를 들면 다음과 같습니다.

> imq.log.syslog.output=NONE

> 주 | 로거 출력 채널을 변경하기 전에 출력 채널에 매핑할 정보를 지원하는 수준으로 로깅을 설정해야 합니다. 예를 들어, 로그 수준을 ERROR로 설정하고 imq.log.console.output 등록 정보를 WARNING으로 설정한 경우에는 WARNING 메시지의 로깅을 활성화하지 않았기 때문에 메시지가 기록되지 않습니다.

> #### 로그 파일 롤오버 기준 변경

> 로그 파일의 롤오버 기준에는 시간과 크기의 두 가지가 있습니다. 기본값은 시간 기준을 사용하고 7일마다 파일을 롤오버하는 것입니다.

> - 시간 간격을 변경하려면 imq.log.file.rolloversecs 등록 정보를 변경해야 합니다. 예를 들어, 다음과 같은 등록 정보 정의를 사용하면 시간 간격을 10일로 변경할 수 있습니다.

> imq.log.file.rolloversecs=864000

> - 롤오버 기준을 파일 크기로 변경하려면 imq.log.file.rolloverbytes 등록 정보를 설정해야 합니다. 예를 들어, 다음 정의는 500,000바이트 제한에 도달하면 파일을 롤오버하도록 브로커를 설정합니다.

> imq.log.file.rolloverbytes=500000

> 시간 및 크기 관련 롤오버 등록 정보를 모두 설정한 경우에는 먼저 도달한 제한에 의해 롤오버가 발생합니다. 앞에서 설명했듯이 브로커는 아홉 개까지의 롤오버 파일을 보존합니다.

> 이전 목차 색인 다음

> Copyright 2004 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.