큐 관리자를 개별적으로 작성하기로 선택하는 경우, 데드-레터 큐(DLQ)를 설정해야 합니다. DLQ는 메시지 플로우의 메시지 처리 오류가 발생할 때 WebSphere Message Broker에 의해 참조됩니다.
사용자 정의 메시지 플로우 또는 publish/subscribe 모델의 메시지를 처리할 수 없는 경우, 마지막 방법으로 메시지가 이 DLQ로 라우트됩니다. 메시지를 입력 큐로 백아웃하여 문제가 해결될 때까지 메시지 플로우를 효과적으로 정지하려면, DLQ를 사용 불가능하게 하십시오.
mqsideletebroker 명령은 이 큐를 삭제하지 않습니다(큐 관리자를 삭제하지 않는 경우).
mqsicreatebroker 명령과 독립적으로 작성된 WebSphere MQ 큐 관리자를 사용 중인 경우, 클러스터를 정의하기로 선택하면 이를 정의할 수 있습니다. 대부분의 경우, 클러스터 정의는 구성을 단순화합니다.
큐 관리자를 이 명령으로 작성하면, Windows 서비스로 시작되지 않습니다. 이러한 상황을 피하려면, 로그온 상태를 유지하거나 큐 관리자 서비스의 시작 상태를 변경하십시오. (워크스테이션을 잠그면 WebSphere MQ 큐 관리자가 정지되지 않습니다.)
z/OS에서 브로커 이름을 대문자로 작성하는 경우, Workbench에서도 브로커의 이름을 대문자로 사용해야 합니다.
사용할 수 있는 문자 세트에 대한 제한사항은 명령에서 허용되는 문자를 참조하십시오.사용자 ID는 올바른 username 구문으로 지정할 수 있습니다. Windows 플랫폼에서는 다음과 같습니다.
Linux 및 UNIX 시스템에서는 최종 형식인 username만 유효합니다.
Windows 플랫폼에서 이 사용자 ID에 대해 규정되지 않은 형식(username)을 사용하면, 운영 체제가 로컬 시스템부터 시작하여 도메인 전체에서 사용자 ID를 검색합니다. 검색을 완료하는 데 어느 정도의 시간이 걸릴 수 있습니다.
지정한 ServiceUserID는 mqbrkrs 로컬 그룹의 구성원이어야 합니다. Windows 플랫폼에서는 그룹의 간접 또는 직접 구성원이 될 수 있습니다. ServiceUserID에는 홈 디렉토리(WebSphere Message Broker가 설치된 위치) 및 작업 디렉토리(-w 플래그로 지정한 경우)에 대한 액세스 권한도 부여되어야 합니다.
Windows 플랫폼에서 브로커가 WebSphere MQ 트러스트 응용프로그램으로 실행되도록 지정하면(플래그 -t), 이 사용자 ID를 그룹 mqm에도 추가해야 합니다. Linux 및 UNIX 시스템에서, -t 플래그를 설정하는 경우 ServiceUserID를 mqm으로 지정하십시오.
ServiceUserID에 대한 보안 요구사항은 Windows 플랫폼의 보안 요구사항에서 자세히 설명됩니다.
이 사용자 ID를 사용하여 데이터베이스에 액세스하고(즉, -u 플래그로 다른 사용자 ID를 지정하지 않는 경우) 데이터베이스에 SQL Server를 사용하는 경우, 브로커를 작성하기 전에 이 사용자 ID를 SQL Server 로그인 ID로 작성하고 올바른 액세스 권한을 부여해야 합니다(자세한 내용은 브로커의 보안 고려 참조). DB2에 브로커 데이터베이스가 있고 이 사용자 ID가 DB2에 알려지지 않은 경우, DB2가 사용자 ID를 자동으로 작성합니다.
기존 시스템과의 호환성의 경우 <password>를 지정할 수 있습니다. 그러나 명령을 실행할 때 이 매개변수로 암호를 지정하지 않는 경우 호출 중 암호를 입력하고 올바르게 입력했는지 확인하기 위해 두 번째로 암호를 입력하도록 프롬프트가 표시됩니다.
Linux 및 UNIX 시스템에서 -a는 Windows 플랫폼 호환성에 필요하지만 ServiceUserID와 관련되어 사용되지는 않습니다. 이 옵션은 -p를 지정하지 않는 경우에만 디폴트 값으로 사용됩니다(자세한 내용은 -p 매개변수에 대한 설명 참조).
각 브로커에는 반드시 고유한 큐 관리자가 있어야 합니다. 브로커는 다른 브로커와 큐 관리자를
공유할 수 없습니다.
큐 관리자가 아직 없으면, 이 명령에 의해 작성됩니다. 디폴트 큐 관리자로 작성되지는 않습니다. 이 큐 관리자를 시스템의 디폴트 큐 관리자로 사용하려면, 이 명령을 발행하기 전에 큐 관리자를 작성하거나, 이 큐 관리자가 디폴트 큐 관리자가 되도록 설정을 변경해야 합니다. 사용 중인 WebSphere MQ의 버전에 따라 WebSphere MQ 탐색기나 WebSphere MQ 서비스 스냅인을 사용하십시오.
큐 관리자 속성 MAXMSGLN(큐에 넣을 수 있는 메시지의 최대 길이)이 100MB로 갱신됩니다. 이는 이 명령에 의한 큐 관리자 작성 여부에 상관없이 수행됩니다.
사용할 수 있는 문자 세트에 대한 제한사항은 명령에서 허용되는 문자를 참조하십시오.
이 데이터베이스가 이미 존재해야 합니다. 아직 작성하지 않은 경우, 이 DSN에 대해 시스템 DSN ODBC 연결을 작성해야 합니다.
Linux에 DB2 데이터베이스가 있으면 적절한 DB 데이터베이스 별명을 입력하십시오. ODBC DSN은 필요하지 않습니다.
이 사용자 ID에는 이 데이터베이스에 테이블을 작성하고 이러한 테이블을 읽고 쓸 수 있는 권한이 있어야 합니다.
Windows 플랫폼에서 브로커 데이터베이스가 DB2에 있고, 사용자 ID가 DB2에 알려지지 않은 경우, DB2 내에 사용자 ID가 작성됩니다. Linux 및 UNIX 시스템에서는 서비스 사용자가 이미 올바른 권한이 부여되어 있어야 합니다. 데이터베이스가 SQL Server인 경우, 브로커를 작성하기 전에 이 사용자 ID를 SQL Server 로그인 ID로 작성하여 올바른 액세스 권한을 부여해야 합니다(자세한 내용은 Windows 플랫폼의 보안 요구사항 참조).
DB2에 이 사용자 ID로 작성되었거나 이 사용자 ID가 읽기, 쓰기 또는 작성 권한이 있는 응용프로그램 데이터베이스가 있으면, 이 브로커에서 실행되는 메시지 플로우가 명시적 스키마 이름을 지정하지 않고도 이 데이터베이스에 보유된 응용프로그램 데이터에 액세스하고 조작할 수 있습니다.
이 사용자 ID에는 이 데이터베이스에 테이블을 작성하고 이러한 테이블을 읽고 쓸 수 있는 권한이 있어야 합니다.
DB2에 이 사용자 ID로 작성되었거나 이 사용자 ID가 읽기, 쓰기 또는 작성 권한이 있는 응용프로그램 데이터베이스가 있으면, 이 브로커에서 실행되는 메시지 플로우가 명시적 스키마 이름을 지정하지 않고도 이 데이터베이스에 보유된 응용프로그램 데이터에 액세스하고 조작할 수 있습니다.
기존 시스템과의 호환성의 경우 <password>를 지정할 수 있습니다. 그러나 명령을 실행할 때 이 매개변수로 암호를 지정하지 않는 경우 호출 중 암호를 입력하고 올바르게 입력했는지 확인하기 위해 두 번째로 암호를 입력하도록 프롬프트가 표시됩니다.
Linux 및 UNIX 시스템의 DB2 경우 -u 및 -p는 빈 문자열(두 개의 큰따옴표)로 지정할 수 있습니다. 이 경우, DB2가 "이미 확인됨"으로 데이터베이스 연결을 작성하는 ServiceUserID의 권한을 WebSphere Message Broker에 부여합니다. -u 및 -p뿐만 아니라 -a도 빈 문자열로 지정하면, WebSphere Message Broker에 의해 암호가 저장되지 않고 대부분의 보안 구성이 작성됩니다.
또한, 이 디렉토리는 추적 기능이 활성화되었을 때 작성된 추적 레코드를 저장하는 데도 사용됩니다. 추적 레코드는 log 서브디렉토리에 기록되며, 이 디렉토리는 브로커를 시작하기 전에 작성해야 합니다.
프로세스가 비정상 종료될 때 브로커에 의해 기록되는 오류 로그는 이 디렉토리에 저장됩니다. Windows 플랫폼에서, 이 옵션을 사용하여 제품이 설치된 드라이브가 아닌 다른 드라이브의 디렉토리를 지정하십시오.
오류 로그는 제한되지 않고 계속 증가됩니다. 이 디렉토리를 주기적으로 점검하여 이전 오류 정보를 지우십시오.
mqsichangebroker 명령을 사용하여 이 옵션을 변경할 수는 없습니다. 작업 경로를 지정하거나 변경하려면 브로커를 삭제하고 재작성하십시오.
Windows 플랫폼에서 이 옵션을 지정하는 경우, ServiceUserID(-i 플래그로 지정)를 mqm 그룹에 추가하십시오. HP-UX 및 Solaris에서 이 옵션을 지정하는 경우, ServiceUserID를 mqm으로 지정하십시오. WebSphere MQ 트러스트 응용프로그램 사용에 대한 자세한 내용은 WebSphere MQ상호통신을 참조하십시오.
.lil 또는 .jar 파일을 저장하기 위한 고유의 디렉토리를 작성해야 합니다. WebSphere Message Broker 설치 디렉토리에 저장하지 마십시오.
둘 이상의 추가 디렉토리를 지정하는 경우, 플랫폼 특정 디폴트 경로 분리 문자로 디렉토리를 분리해야 합니다(Windows 플랫폼의 경우 세미콜론(;), Linux 및 UNIX 시스템의 경우 콜론(:)).
이 경로에 환경 변수를 포함시킬 수 없습니다. 포함시키면 무시됩니다.
메시지 플로우가 응용프로그램 메시지를 처리 중일 때, 구성 변경에 응답할 수 없습니다. 실행 그룹에서 구성 변경의 요청을 받은 메시지 플로우 중 하나가 응용프로그램 메시지의 처리를 완료하지 못하여 이 시간 종료 내에 구성 변경을 적용하지 못하면, 실행 그룹이 전개된 구성 메시지에 부정적인 응답을 리턴합니다.
이 시간 종료에 설정하는 값은 시스템 로드(CPU 사용 포함) 및 각 실행 그룹의 로드에 따라 달라집니다. 브로커의 전체 구성을 전개하여 초기값을 예상할 수 있습니다. 이 작업을 완료하는 데 걸리는 시간으로 설정할 최소값을 알 수 있습니다.
값은 초 단위로 지정되며 범위는 10 -3600입니다. 디폴트 값은 300입니다.
ConfigurationTimeout과 ConfigurationDelayTimeout(아래 설명됨)의 합계는 브로커가 부정적인 응답을 생성하기 전에 전개된 구성 메시지를 처리하도록 허용되는 최대 시간 길이를 나타냅니다.
이 값은 브로커 및 실행 그룹이 전개된 최소 구성 메시지를 처리하는 데 걸리는 시간을 나타내며, 큐 관리자 네트워크 지연, 브로커의 큐 관리자 및 시스템 로드에 따라 다릅니다.
mqsireporttrace brokerName -e "Execution Group Name" -u
F MQP1BRK,reporttrace u=yes,e='exgrp1'
각 실행 그룹의 응답 시간은 시스템 로드 및 해당 프로세스 로드에 따라 다릅니다. 설정하는 값은 실행 그룹이 응답하는 데 걸리는 가장 긴 응답 시간을 나타내야 합니다. 값을 너무 작게 설정하면, 브로커가 부정적인 응답을 리턴하여 로컬 오류 로그에 오류 메시지가 발행될 수 있습니다.
값은 초 단위로 지정되며 범위는 10 -3600입니다. 디폴트 값은 60입니다.
브로커가 프로덕션 시스템에 있는 경우, 구성 변경이 적용되기 전에 현재 메시지 플로우가 처리 중인 응용프로그램 메시지가 완료되도록 ConfigurationTimeout 및 ConfigurationDelayTimeout의 값을 증가시키십시오.
브로커가 개발 또는 테스트 시스템에 있는 경우, 시간 종료 값을 줄여서(특히, ConfigurationTimeout) 인식되는 응답 시간을 줄이고 예상대로 작동하지 않는 브로커가 강제로 응답을 표시하도록 할 수 있습니다. 그러나, 시간 종료 값을 줄이면 구성 변경을 전개할 수 있는 가능성도 감소합니다.
이 리스너는 웹 서비스 지원을 포함하는 메시지 플로우가 시작될 때 시작되며, 디폴트 값은 7080입니다.
지정하는 포트가 다른 목적으로 지정되지 않았는지 확인하십시오.
0분 간격은 플랫폼에 외부 알림 메소드가 있으므로 WebSphere Message Broker 내의 내부 타이머를 사용하지 않음을 나타냅니다.
Windows 시스템에서 이 명령을 호출하는 데 사용되는 사용자 ID에는 로컬 시스템에서 Administrator 권한이 있어야 합니다.
UNIX 시스템에서 이 명령을 호출하는 데 사용되는 사용자 ID는 mqbrkrs 그룹의 구성원이어야 합니다.
z/OS 시스템에서 이 명령을 호출하는 데 사용되는 사용자 ID는 구성요소 디렉토리에 대한 읽기 및 쓰기 액세스가 있는 그룹의 구성원이어야 합니다.
LDAP 사용: 레지스트리가 비인가 액세스를 방지하도록 적절히 보안 설정되어 있는지 확인하십시오. mqsicreatebroker에서 LdapPrincipal 및 LdapCredentials 옵션의 설정이 브로커의 올바른 조작에 필요하지 않습니다. 암호는 파일 시스템에서 지우기 텍스트로 저장되지 않습니다.
WebSphere Message Broker 그룹 mqbrkrs에 이러한 모든 큐에 대한 액세스 권한이 부여됩니다. DLQ가 사용 가능하면, 이 큐도 같은 권한을 갖습니다.
이 명령은 다음 응답을 리턴합니다.
(51002)[IBM][CLI Driver][DB2/NT]SQL0805N Package "NULLID.SQLLF000" was not found. SQLSTATE=51002.
이 오류는 데이터베이스의 바인드에 실패할 때 발생합니다.
Windows 플랫폼에서, 브로커 데이터베이스에 대한 바인딩은 필요하지 않지만, 사용자 데이터베이스에 대해서는 필요합니다. DB2 제어 센터를 사용하여 데이터베이스를 작성했다면, 바인드가 완료된 것입니다. 명령 인터페이스를 사용하는 경우에는 완료되지 않습니다. 예를 들면, 명령 프롬프트에서 다음 명령을 입력하여 MYDB 데이터베이스에 대해 바인드를 작성하거나 재작성할 수 있습니다.
db2 connect to MYDB user db2admin using db2admin db2 bind X:\sqllib\bnd\@db2cli.lst grant public db2 connect reset
여기서, X:는 DB2가 설치된 드라이브입니다.
UNIX 플랫폼에서는 모든 데이터베이스에 대해 바인딩이 필요합니다. 예를 들면, WBRKBKDB 데이터베이스의 경우, 명령 프롬프트에서 다음 명령을 입력하여 바인드할 수 있습니다. (여기서, <user_name>은 데이터베이스 인스턴스를 작성한 사용자 ID입니다.)
db2 connect to WBRKBKDB user db2admin using db2admin
db2 bind ~<user_name>/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
db2 connect reset
디폴트 DB2 사용자 ID 및 암호(db2admin)를 사용하는 경우, db2 connect 명령에서 이러한 값을 올바른 값으로 바꾸어야 합니다.
mqsicreatebroker 명령을 처음 실행할 때 실패하여 두 번째 실행하면, 일련의 메시지가 표시됩니다. 이러한 메시지는 작성할 수 없는 항목을 표시합니다. 이 결과로 인해 손실이 발생해서는 안 됩니다. 예를 들면, 첫 번째 실패 이유가 해결되면, 첫 번째 실패한 브로커를 다시 작성할 때 브로커가 올바르게 작성되어야 합니다.
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -s WBRK_UNS_QM -n WBRKBKDB
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -t
mqsicreatebroker WBRK_BROKER -i wbrkuid -a wbrkpw -q WBRK_QM -n WBRKBKDB -x /opt/3rdparty/wmbexits
mqsicreatebroker
CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0
mqsicreatebroker
CSQ1BRK -q CSQ1 -u BRKUSER -n DBA0 -2