버전 4.2
부품 번호 820-5642
이 릴리스 노트에는 Sun Java™ System Message Queue 4.2의 릴리스 시점에 알려진 중요한 정보가 들어 있습니다. 이 문서에서는 새로 추가된 기능과 향상된 기능, 알려진 제한 사항과 문제점 및 기타 정보를 제공합니다. Message Queue 4.2를 사용하기 전에 먼저 이 문서를 읽어 보십시오.
이 릴리스 노트에는 Message Queue 4.0 및 4.1 릴리스에 대한 정보도 포함되어 있습니다. 이러한 릴리스에서 소개된 기능에 대한 자세한 내용은 Message Queue 4.0의 새로운 기능 및 Message Queue 4.1의 새로운 기능을 각각 참조하십시오.
이 릴리스 노트의 최신 버전은 Sun Java System Message Queue 설명서 웹 사이트 http://docs.sun.com/coll/1307.3 및 http://docs.sun.com/coll/1406.3에서 찾아볼 수 있습니다. 소프트웨어를 설치 및 설정하기 전과 후에도 웹 사이트를 검토하여 최신 릴리스 노트와 제품 설명서를 정기적으로 확인하시기 바랍니다.
이 릴리스 노트는 다음 내용으로 구성되어 있습니다.
이 문서에는 관련된 정보를 추가로 얻을 수 있는 타사 URL도 나와 있습니다.
Sun은 이 문서에 언급된 타사 웹 사이트의 이용 가능성에 대해 책임을 지지 않습니다. Sun은 그러한 사이트 또는 자원에 있거나 사용 가능한 내용, 광고, 제품 또는 기타 자료에 대하여 보증하지 않으며 책임 또는 의무를 지지 않습니다. Sun은 해당 사이트나 자원을 통해 사용 가능한 내용, 상품 또는 서비스의 사용과 관련하여 발생했거나 발생했다고 간주되는 손해나 손실에 대해 책임 또는 의무를 지지 않습니다.
다음 표에서는 Message Queue 제품의 모든 4.x 릴리스 날짜를 나열하고 이 문서에서 각 릴리스와 관련된 변경 사항에 대해 설명합니다.
표 1–1 개정 내역
날짜 |
변경 사항 설명 |
---|---|
2006년 5월 |
Message Queue 4.0에 대한 이 문서의 초기 릴리스입니다. |
2007년 1월 |
Message Queue 4.1 Beta에 대한 이 문서의 초기 릴리스입니다. JAAS 지원에 대한 설명이 추가되었습니다. |
2007년 4월 |
Message Queue 4.1 Beta에 대한 이 문서의 두 번째 릴리스입니다. 고가용성 기능이 추가되었습니다. |
2007년 9월 |
Message Queue 4.1에 대한 이 문서의 세 번째 릴리스입니다. Java Enterprise System Monitoring Framework 지원, 수정된 C 포트, 버그 수정 및 기타 기능에 대한 설명이 추가되었습니다. |
2008년 4월 |
Message Queue 4.2에 대한 이 문서의 첫 번째 초안 릴리스입니다. 이 릴리스에 대한 새로운 기능이 추가되었습니다. |
Message Queue 4.2 설치 프로그램을 사용하여 Message Queue 4.2를 처음으로 설치하거나 Message Queue 3.6 이상에서 업그레이드할 수 있습니다. Solaris, Linux 및 Windows 플랫폼에서의 설치 또는 업그레이드와 관련한 절차 및 기타 모든 정보는 Sun Java System Message Queue 4.2 Installation Guide를 참조하십시오. 이 설명서는 Message Queue 4.2용으로 업데이트되지 않았습니다.
3.6 이전 버전의 Message Queue에서 업그레이드하는 경우에는 Sun Java Enterprise System 5 Upgrade Guide for UNIX, Sun Java Enterprise System 5 Update 1 Upgrade Guide for UNIX를 참조하십시오.
또한 설치 문제에서 알려진 설치 및 업그레이드 문제점과 제한 사항을 확인하십시오.
이 절에서는 Message Queue 4.2 시스템 요구 사항에 대한 다음 항목을 설명합니다.
Message Queue 4.2는 Solaris, Linux 및 Windows 운영 체제 플랫폼에서 지원됩니다. 표 1–2에서는 이들 각각의 지원되는 플랫폼 버전에 대해 설명합니다. 각 플랫폼의 하드웨어 요구 사항은 Sun Java System Message Queue 4.2 Installation Guide를 참조하십시오.
표 1–2 지원되는 플랫폼 버전
시스템 가상화는 여러 운영 체제(OS) 인스턴스를 공유 하드웨어에서 독립적으로 실행할 수 있도록 해주는 기술입니다. 기능적으로, 가상화된 환경에서 호스트된 OS에 배포된 소프트웨어는 일반적으로 기반 플랫폼이 가상화되었는지를 인식하지 못합니다. Sun에서는 선별된 시스템 가상화와 OS 조합에서 Sun Java System 제품을 테스트하여 Sun Java System 제품이 적절한 규모로 적절하게 구성된 가상화된 환경에서 가상화되지 않은 시스템에서처럼 계속해서 작동하는지를 검증합니다. 가상화된 환경에서의 Sun Java System 제품 지원에 대한 자세한 내용은 http://download.oracle.com/820-4651을 참조하십시오.
Message Queue 4.2는 플랫폼별 요구 사항 외에도 Message Queue 클라이언트를 개발 및 실행하기 위해 설치해야 하는 기본 구성 요소에도 종속됩니다. 표 1–3에서는 이러한 구성 요소에 대해 설명합니다. 다른 버전이나 공급업체 구현도 사용할 수 있지만 Sun Microsystems에서 테스트되지 않았으므로 공식적으로 지원되지는 않습니다.
Message Queue 설치 프로그램을 사용하면 기존 JDK/JRE를 선택하거나 JDK 버전(1.5.0_15)을 설치할 수 있습니다.
구성 요소 |
지원 |
지원되는 버전 |
---|---|---|
Java Runtime Environment(JRE) |
Message Queue 브로커 및 관리 도구 |
J2SETM Runtime Environment 1.5.0_15 이상 JavaTM SE Runtime Environment 1.6.0 (Sun Microsystems 버전만 해당) |
Java Software Development Kit(JDK), Standard Edition |
Java 클라이언트 개발 및 배포 |
J2SETM Development Kit 1.5.0_15 이상 Java SE Development Kit 1.6.0 (Sun Microsystems 제품 버전만 해당) |
표 1–4에서는 Message Queue 클라이언트 지원을 강화하기 위해 설치할 수 있는 추가 구성 요소에 대해 설명합니다. 나열된 구성 요소가 모두 필요한 것은 아닙니다. 예를 들어, C 클라이언트를 작성하지 않는 경우에는 C 컴파일러, C++ 런타임 라이브러리, NSPR 또는 NSS가 필요하지 않습니다.
표 1–4 선택적 지원 구성 요소
Message Queue 4.2, 4.1 및 4.0의 새로운 기능은 다음 절에 설명되어 있습니다.
Sun Java System Message Queue는 완벽한 기능의 메시지 서비스로 JMS(Java Messaging Specification) 1.1을 따르는 안정적인 비동기식 메시징을 제공합니다. 또한 Message Queue는 JMS 사양을 능가하는 다양한 기능을 제공하여 대규모 엔터프라이즈 배포 요구를 충족시킵니다.
Message Queue 4.2는 다양한 기능 향상 및 버그 수정이 포함된 부 릴리스입니다. 이 절에서는 Message Queue 4.2 설치 또는 업그레이드 방법과 이 릴리스에 포함된 새로운 기능에 대해 설명합니다.
Message Queue 4.0 및 4.1에 도입된 기능에 대한 자세한 내용은 Message Queue 4.0의 새로운 기능 및 Message Queue 4.1의 새로운 기능을 각각 참조하십시오.
Message Queue 4.2에서 이제 게시자는 여러 주제 대상에 메시지를 게시할 수 있고 가입자는 여러 주제 대상에서 메시지를 사용할 수 있습니다. 여러 대상을 나타내는 와일드카드 문자가 포함된 주제 대상 이름을 사용하여 이 기능을 수행할 수 있습니다. 이러한 심볼릭 이름을 사용하면 관리자는 필요에 따라 와일드카드 이름 지정 체계에 맞게 추가 주제 대상을 만들 수 있습니다. 게시자와 가입자는 추가된 대상에서 자동으로 메시지를 게시하거나 사용합니다. (와일드카드 주제 가입자가 게시자보다 더 일반적입니다.)
대기열 대상에는 이 기능이 적용되지 않습니다.
심볼릭 주제 대상의 이름 형식은 여러 세그먼트로 구성되며 와일드카드 문자(*, **, >)는 하나 이상의 이름 세그먼트를 나타낼 수 있습니다. 예를 들어, 다음과 같은 주제 대상 이름 지정 체계가 있다고 가정합니다.
size.color.shape
여기서 주제 이름 세그먼트에는 다음과 같은 값이 있을 수 있습니다.
size: large, medium, small, ...
color: red, green, blue, ...
shape: circle, triangle, square, ...
메시지 대기열에서는 다음과 같은 와일드카드 문자가 지원됩니다.
*는 한 세그먼트와 일치합니다.
**는 하나 이상의 세그먼트와 일치합니다.
>는 연속된 세그먼트의 임의 개수와 일치합니다.
따라서 다중 주제 대상을 다음과 같이 나타낼 수 있습니다.
large.*.circle은 다음을 나타냅니다.
large.red.circle large.green.circle ...
**.square는 .square로 끝나는 모든 이름을 나타냅니다. 예를 들면 다음과 같습니다.
small.green.square medium.blue.square ... |
small.>는 small.로 시작하는 모든 대상 이름을 나타냅니다. 예를 들면 다음과 같습니다.
small.blue.circle small.red.square ... |
이 다중 대상 기능을 사용하려면 위에 설명한 것과 비슷한 이름 지정 체계를 사용하여 주제 대상을 만들어야 합니다. 그러면 클라이언트 응용 프로그램에서 심볼릭 대상 이름을 사용하여 게시자 또는 사용자를 만들 수 있습니다. 예를 들면 다음과 같습니다.
... String DEST_LOOKUP_NAME = "large.*.circle"; Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME); TopicPublisher myPublisher = mySession.createPublisher(t) myPublisher.send(myMessage);
... String DEST_LOOKUP_NAME = "**.square"; Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME); TopicSubscriber mySubscriber = mySession.createSubscriber(t); Message m = mySubscriber.receive();
첫 번째 예에서 브로커는 심볼릭 이름 large.*.circle과 일치하는 모든 대상에 메시지 사본을 넣습니다. 두 번째 예에서는 심볼릭 이름 **.square와 일치하는 대상이 하나 이상 있을 경우 가입자가 만들어지고 해당 심볼릭 이름과 일치하는 모든 대상으로부터 메시지를 받습니다. 심볼릭 이름과 일치하는 대상이 없을 경우 해당 대상이 있을 때까지 가입자가 만들어지지 않습니다.
관리자가 심볼릭 이름과 일치하는 추가 대상을 만들면 해당 심볼릭 이름을 사용하여 작성된 와일드카드 게시자가 이 대상에 게시하고, 해당 심볼릭 이름을 사용하여 작성된 와일드카드 가입자는 해당 대상으로부터 메시지를 받게 됩니다.
또한 주제 대상에 대한 게시자(생성자) 및 가입자(사용자)의 전체 수를 보고하는 것 외에도, Message Queue 관리 도구에서는 와일드카드 게시자인 게시자 수(해당되는 심볼릭 대상 이름 포함)와 와일드카드 가입자인 가입자 수(심볼릭 대상 이름 포함)도 보고합니다(있는 경우).
Message Queue 4.2의 이러한 새 기능을 통해 브로커로 메시지를 보낼 때 XML 스키마를 기준으로 텍스트(객체 아님) XML 메시지의 내용을 검증할 수 있습니다. XML 스키마(XSD)의 위치는 Message Queue 대상의 등록 정보로 지정됩니다. XSD 위치가 지정되지 않은 경우에는 XML 문서에 있는 DTD 선언을 사용하여 DTD 검증이 수행됩니다. (데이터 유형 및 값 범위 검증이 포함되는 XSD 검증은 DTD 검증보다 더 엄격합니다.)
이러한 새 기능을 사용하는 클라이언트 응용 프로그램의 경우 Java SE 버전을 JRE 1.5 이상으로 업그레이드해야 합니다.
XML 스키마 검증을 사용하려면 다음의 물리적 대상 등록 정보를 설정합니다.
표 1–5 XML 스키마 검증을 위한 물리적 대상 등록 정보
등록 정보 |
유형 |
기본값 |
설명 |
---|---|---|---|
validateXMLSchemaEnabled |
부울 |
false |
XML 스키마 검증 사용 여부 false로 설정되거나 설정되지 않은 경우 대상에 대해 XML 스키마 검증이 사용되지 않습니다. |
XMLSchemaURIList |
문자열 |
null |
XML 스키마 문서(XSD) URI 문자열의 공백으로 구분된 목록 사용하도록 설정된 경우 URI는 XML 스키마 검증에 사용할 하나 이상의 XSD 위치를 가리킵니다. 여러 URI를 지정할 경우에는 이 값 주위에 큰 따옴표를 사용합니다. 예: "http://foo/flap.xsd http://test.com/test.xsd" 이 등록 정보가 설정되지 않았거나 null이고 XML 검증이 설정된 경우에는 XML 문서에 지정된 DTD를 사용하여 XML 검증이 수행됩니다. |
reloadXMLSchemaOnFailure |
부울 |
false |
실패 시 XML 스키마 다시 로드 사용 여부 false로 설정되거나 설정되지 않은 경우 검증에 실패해도 스키마가 다시 로드되지 않습니다. |
XML 검증이 설정된 경우에는 Message Queue 클라이언트 런타임에서 XML 메시지를 브로커로 보내기 전에 지정된 XSD(또는 XSD가 지정되지 않은 경우 DTD)를 기준으로 해당 메시지의 검증을 시도합니다. 지정된 스키마를 찾을 수 없거나 메시지를 검증할 수 없는 경우에는 메시지가 전송되지 않고 예외가 발생합니다.
imqcmd create dst 또는 imqcmd update dst 명령을 각각 사용하여 대상을 만들거나 업데이트할 때 XML 검증 등록 정보를 설정할 수 있습니다. XML 검증 등록 정보는 대상이 비활성 상태인 동안, 즉 사용자나 생성자가 없고 대상에 메시지가 없는 경우에 설정해야 합니다.
런타임 시 XSD에 액세스할 수 없는 경우에는 대상이 활성 상태인 동안 XMLSchemaURIList를 수정해야 합니다.
대상이 활성 상태인 동안 XML 검증 등록 정보를 설정한 경우(예: 대상에 생성자가 연결된 경우)에는 생성자가 브로커에 다시 연결할 때까지 변경 사항이 적용되지 않습니다. 마찬가지로, 응용 프로그램 요구 사항을 변경한 결과로 XSD가 변경된 경우에는 변경된 XSD를 기반으로 XML 메시지를 생성하는 모든 클라이언트 응용 프로그램이 브로커에 다시 연결되어야 합니다.
reloadXMLSchemaOnFailure 등록 정보가 true로 설정된 상태에서 XML 검증이 실패한 경우에는 Message Queue 클라이언트 런타임에서 XSD를 다시 로드하여 메시지 검증을 다시 시도합니다. 다시 로드된 XSD를 사용해도 검증에 계속 실패할 경우 클라이언트 런타임에서 예외가 발생합니다.
X/Open 분산 트랜잭션 모델에 따르면 분산 트랜잭션에 대한 지원은 하나 이상의 자원 관리자에서 수행되는 작업을 추적 및 관리하는 분산 트랜잭션 관리자에 의해 결정됩니다. Message Queue 4.2에서 Message Queue C-API는 이제 XA 호환 자원 관리자로 분산 트랜잭션 관리자와 Message Queue 간에 XA 인터페이스를 지원하므로 분산 트랜잭션 처리 환경(예: BEA Tuxedo)에서 실행되는 Message Queue C-API 클라이언트는 분산 트랜잭션에 참가할 수 있습니다.
이 분산 트랜잭션 지원은 XA 인터페이스 사양을 구현하는 데 사용되는 다음과 같은 새로운 C-API 함수, 매개 변수 및 오류 코드로 구성됩니다.
MQGetXAConnection() MQCreateXASession()
분산 트랜잭션 컨텍스트에서 C 클라이언트 응용 프로그램을 사용할 경우 MQGetXAConnection()을 사용하여 연결을 설정하고 MQCreateXASession()을 사용하여 메시지를 생성 및 사용하기 위한 세션을 작성해야 합니다. . 모든 분산 트랜잭션의 시작, 완결 및 롤백은 분산 트랜잭션 관리자에서 제공되는 API를 통해 관리됩니다.
X/Open XA 인터페이스 사양에는 Message Queue XA 호환 자원 관리자에 대한 다음과 같은 공용 정보가 필요합니다.
xa_switch_t 구조의 이름: sun_my_xa_switch
자원 관리자의 이름: SUN_RM
연결할 MQ C-API 라이브러리: mqcrt
xa_close 문자열 및 형식: 없음
xa_open 문자열 및 형식: ";"으로 구분된 이름=값 쌍
다음과 같은 이름/값 쌍이 지원됩니다.
표 1–6 Message Queue 자원 관리자 이름/값 쌍
이름 |
값 |
설명 |
기본값 |
---|---|---|---|
address |
host:port |
브로커 포트 매퍼 서비스의 호스트:포트 |
localhost:7676 |
username |
문자열 |
브로커 연결에 필요한 사용자 이름 |
guest |
password |
문자열 |
사용자 이름의 비밀번호 |
guest |
conntype |
TCP 또는 SSL |
브로커 연결 시의 프로토콜 유형 |
TCP |
trustedhost |
true/false |
브로커 호스트가 신뢰되는 지의 여부(conntype=SSL에만 적용) |
true |
certdbpath |
문자열 |
NSS 인증서 및 키 데이터베이스 파일이 포함된 디렉토리의 전체 경로 |
설정되지 않음 |
clientid |
문자열 |
JMS 영구 가입 시에만 필요 |
설정되지 않음 |
reconnects |
정수 |
브로커에 대한 다시 연결 시도 횟수(0은 다시 연결 없음) |
0 |
분산 트랜잭션을 사용하는 응용 프로그램을 프로그래밍하려면 트랜잭션 관리자 환경에서 실행되는 서버측 서비스와 트랜잭션 관리자 API를 호출하는 클라이언트측 코드를 작성합니다. Message Queue 4.2는 Tuxedo 트랜잭션 관리자에 기반한 프로그래밍 예를 제공합니다. 이러한 예는 각 플랫폼의 ./C/tuxedo 디렉토리에 있는 샘플 프로그램 디렉토리에 있습니다.
이 디렉토리에는 Message Queue 자원 관리자를 사용할 수 있도록 Tuxedo를 설정하고 Tuxedo 환경에 다음 샘플 프로그램을 구축하는 방법을 설명하는 README 파일이 포함되어 있습니다.
샘플 프로그램 |
설명 |
---|---|
jmsserver.c |
Message Queue를 사용하여 메시지를 보내고 받는 Tuxedo 서비스를 구현합니다. |
jmsclient_sender.c |
jmsserver.c 프로그램에서 메시지 생성 서비스를 사용하는 Tuxedo 클라이언트입니다. |
jmsclient_receiver.c |
jmsserver.c 프로그램에서 메시지 수신 서비스를 사용하는 Tuxedo 클라이언트입니다. |
async_jmsserver.c |
Message Queue를 사용하여 비동기식으로 메시지를 사용하는 Tuxedo 서비스를 구현합니다. |
jmsclient_async_receiver.c |
async_jmsserver.c 프로그램의 비동기식 메시지 사용 서비스를 사용하는 Tuxedo 클라이언트입니다. |
Sun 하드웨어 및 소프트웨어를 추적, 구성 및 유지 관리할 수 있게 해주는 Sun에서 호스트되는 서비스인 Sun Connection에 Message Queue를 등록할 수 있도록 Message Queue 설치 프로그램이 향상되었습니다.
Message Queue 설치 과정 중에 Message Queue를 Sun Connection에 등록하도록 선택할 수 있습니다. 릴리스 버전, 호스트 이름, 운영 체제, 설치 날짜 및 기타 기본 정보 등의 설치된 Message Queue에 대한 정보는 Sun Connection 데이터베이스로 안전하게 전송됩니다. Sun Connection 인벤토리 서비스를 통해 Sun 하드웨어 및 소프트웨어를 구성할 수 있으며 업데이트 서비스는 사용 가능한 최신 보안 수정 사항, 권장 업데이트 및 기능 향상에 대해 알려줍니다.
Message Queue 4.2에 Sun Connection 등록을 위해 다음 설치 프로그램 화면이 추가되었습니다.
등록하려면 Sun Online 계정이 있거나, 없는 경우 새로 만들어야 합니다. 계정이 없는 경우 설치 프로그램에서 Sun Online 계정을 만들기 위한 다음 화면이 표시됩니다.
설치 중에 위 화면을 사용하여 Message Queue를 등록하거나 설치가 완료된 후까지 기다렸다가 다음과 같이 등록 전용 모드로 설치 프로그램을 실행할 수 있습니다.
# installer -r
등록 전용 모드는 Message Queue 4.2가 이미 설치되어 있어야 실행할 수 있으며 등록과 관련된 설치 프로그램 화면만 표시합니다.
Message Queue 4.2는 JDBC 기반 데이터 저장소로 MySQL 데이터베이스를 지원합니다. MySQL Cluster Edition은 독립 실행형 브로커의 JDBC 데이터베이스로 사용할 수 있으며, 고가용성 브로커 클러스터에 필요한 고가용성 공유 데이터 저장소로도 사용할 수 있습니다. MySQL을 사용하도록 Message Queue를 구성하는 방법에 대한 자세한 내용은 Sun Java System Message Queue 4.2 Administration Guide의 Configuring a JDBC-Based Data Store 및 Sun Java System Message Queue 4.2 Administration Guide의 High-Availability Cluster Properties를 참조하십시오.
Message Queue 4.1은 몇 가지 새로운 기능과 향상된 기능 및 버그 수정이 포함된 부 릴리스였습니다. 이 절에서는 4.1 릴리스의 새로운 기능과 추가 참조 정보에 대해 설명합니다.
Message Queue 4.0에 소개된 기능에 대한 자세한 내용은 Message Queue 4.0의 새로운 기능을 참조하십시오.
Message Queue 4.1에서는 고가용성 브로커 클러스터가 소개되었습니다. 기존 브로커 클러스터는 메시징 서비스 가용성만을 제공(한 브로커가 실패하면 다른 브로커를 사용하여 메시징 서비스 제공)하는 반면, 고가용성 브로커 클러스터는 데이터 가용성도 제공(한 브로커가 실패하면 지속성 메시지 및 상태 데이터를 다른 브로커에서 사용하여 메시지 전달 인계)합니다.
Message Queue 4.1에서 소개된 고가용성 구현에는 공유 JDBC 기반 데이터 저장소가 사용됩니다. 브로커 클러스터의 각 브로커에 자체 영구 데이터 저장소를 사용하는 대신, 클러스터에 있는 모든 브로커가 동일한 JDBC 호환 데이터베이스를 공유합니다. 특정 브로커가 실패하면 메시지 라우팅과 실패한 브로커의 메시지 전달이 클러스터에 있는 다른 브로커로 인계됩니다. 그 과정에서 페일오버 브로커는 공유 데이터 저장소에 있는 데이터와 상태 정보를 사용합니다. 실패한 브로커의 메시징 클라이언트는 페일오버 브로커에 다시 연결하여 중단 없이 메시징 서비스를 제공합니다.
Message Queue 4.1 고가용성 구현에 사용되는 공유 JDBC 기반 저장소 자체도 고가용성이어야 합니다. 고가용성 데이터베이스가 없거나 중단 없는 메시지 전달이 그다지 중요하지 않은 경우에는 데이터 가용성 없이 서비스 가용성만을 제공하는 기존 클러스터를 계속 사용할 수 있습니다.
Message Queue 4.1 고가용성 브로커 클러스터를 구성하려면 클러스터에 있는 각 브로커에 다음 브로커 등록 정보를 지정합니다.
클러스터 구성원 등록 정보 - 브로커가 고가용성 브로커 클러스터의 일부인지 여부, 클러스터 아이디 및 클러스터 내의 브로커 아이디를 지정합니다.
고가용성 데이터베이스 등록 정보 - 지속성 데이터 모델(JDBC), 데이터베이스 공급업체 이름, 공급업체별 구성 등록 정보를 지정합니다.
오류 감지 및 페일오버 등록 정보 - 브로커 실패를 감지하고 페일오버 브로커를 사용하여 처리하는 방법을 지정합니다.
고가용성 브로커 클러스터 구현을 사용하려면 다음을 수행해야 합니다.
고가용성 데이터베이스를 설치합니다.
JDBC 드라이버 .jar 파일을 설치합니다.
고가용성 영구 데이터 저장소에 데이터베이스 스키마를 만듭니다.
클러스터에 있는 각 브로커에 고가용성 등록 정보를 설정합니다.
클러스터의 각 브로커를 시작합니다.
고가용성 브로커 클러스터에 대한 개념 설명과 기존 클러스터와의 비교에 대해서는 Sun Java System Message Queue 4.2 Technical Overview의 4 장, Broker Clusters를 참조하십시오. 고가용성 브로커 클러스터에 대한 절차 및 참조 정보에 대해서는 Sun Java System Message Queue 4.2 Administration Guide의 8 장, Managing Broker Clusters 및 Sun Java System Message Queue 4.2 Administration Guide의 Cluster Configuration Properties를 참조하십시오.
Message Queue 4.0으로 고가용성 데이터베이스를 사용하고 있다가 고가용성 브로커 클러스터로 전환하려는 경우에는 데이터베이스 관리자 유틸리티(imqdbmgr)를 사용하여 공유 영구 데이터 저장소로 변환할 수 있습니다. 알려진 문제점과 제한 사항에 대해서는 브로커 클러스터를 참조하십시오.
Message Queue 4.1은 내장되어 있는 파일 기반 및 LDAP 기반 인증 메커니즘 외에도 브로커에 외부 인증 메커니즘을 접속하여 Message Queue 클라이언트를 인증할 수 있도록 해주는 JAAS(Java Authentication and Authorization Service)를 지원합니다.
브로커를 통해 JAAS 호환 인증 서비스에서 사용할 수 있는 정보에 대한 설명과 이런 서비스를 사용하도록 브로커를 구성하는 방법에 대한 자세한 내용은 Sun Java System Message Queue 4.2 Administration Guide의 Using JAAS-Based Authentication을 참조하십시오.
Message Queue 4.1에서 JDBC 기반 데이터 저장소가 고가용성 브로커 클러스터를 지원하도록 변경되었습니다. 이로 인해 JDBC 기반 데이터 저장소의 형식도 버전 410으로 높아졌습니다. 형식 버전 350, 370 및 400은 410 버전으로 자동 마이그레이션됩니다.
파일 기반 영구 데이터 저장소 형식은 변경된 사항이 없으므로 버전 370으로 유지됩니다.
등록 정보 IMQ_DEFAULT_EXT_JARS가 Message Queue 4.1 환경 구성 파일 imqenv.conf에 추가되었습니다. 이 등록 정보를 설정하여 브로커가 시작될 때 CLASSPATH에 포함될 수 있도록 외부 .jar 파일의 경로 이름을 지정할 수 있습니다. 이 등록 정보를 사용하여 외부 .jar 파일의 위치를 지정하면 더 이상 이 파일을 lib/ext 디렉토리에 복사할 필요가 없습니다. 외부 .jar 파일은 JDBC 드라이버 또는 JAAS 로그인 모듈과 관련된 것일 수 있습니다. 다음 샘플 등록 정보에서는 JDBC 드라이버의 위치를 지정합니다.
IMQ_DEFAULT_EXT_JARS=/opt/SUNWhadb4/lib/hadbjdbc4.jar:/opt/SUNWjavadb/derby.jar
Message Queue 4.1에서는 공용 그래픽 인터페이스를 사용하여 Java ES 구성 요소를 모니터링할 수 있는 Sun Java ES(Java Enterprise System) Monitoring Framework에 대한 지원이 출시되었습니다. 이 인터페이스는 Sun Java System Monitoring Console이라고 하는 웹 기반의 콘솔로 구현됩니다. 관리자는 콘솔을 사용하여 성능 통계를 보고, 자동으로 모니터링할 수 있는 규칙을 만들고, 경보를 확인할 수 있습니다. Message Queue를 다른 Java ES 구성 요소와 함께 실행 중인 경우에는 단일 인터페이스를 사용하여 이러한 모든 구성 요소를 관리하는 것이 편리할 수 있습니다.
Java ES Monitoring Framework를 사용하여 Message Queue를 모니터링하는 방법에 대한 자세한 내용은 XREF를 참조하십시오.
이전에는 PREPARED 상태의 트랜잭션만 관리 목적으로 롤백할 수 있었습니다. 즉, 분산 트랜잭션의 일부인 세션이 정상적으로 종료되지 않은 경우 트랜잭션이 관리자에 의해 정리되지 않은 상태로 유지되었습니다. Message Queue 4.1에서는 명령 유틸리티(imqcmd)를 사용하여STARTED, FAILED, INCOMPLETE, COMPLETE 및 PREPARED와 같은 상태의 트랜잭션을 정리(롤백)할 수 있습니다.
특정 트랜잭션을 롤백할 수 있는지 여부(특히 트랜잭션이 PREPARED 상태가 아닐 경우)를 결정할 수 있도록 명령 유틸리티에서 imqcmd query txn 출력의 일부로 추가 데이터를 제공합니다. 이 유틸리티는 트랜잭션을 시작한 연결의 연결 아이디를 제공하며 트랜잭션이 만들어진 시간을 지정합니다. 관리자는 이 정보를 사용하여 트랜잭션을 롤백해야 하는지 여부를 결정할 수 있습니다. 일반적으로 관리자는 트랜잭션을 조기에 롤백해서는 안 됩니다.
Message Queue 4.1, C 클라이언트는 Java 클라이언트와 마찬가지로 이제 브로커의 포트 매퍼 서비스에서 동적으로 할당된 포트 대신 고정된 브로커 포트에 연결할 수 있습니다. 고정 포트 연결은 방화벽을 통과하려고 하거나 다른 이유로 포트 매퍼 서비스를 우회해야 하는 경우에 유용합니다.
고정 포트 연결을 구성하려면 브로커와 C 클라이언트 런타임 모두(연결의 양 끝 모두)를 구성해야 합니다. 예를 들어, ssljms를 통해 클라이언트를 포트 1756에 연결할 경우 다음을 수행합니다.
클라이언트측에서 다음 등록 정보를 설정합니다.
MQ_SERVICE_PORT_PROPERTY=1756
MQ_CONNECTION_TYPE_PROPERTY=SSL
브로커측에서 imq.serviceName.protocolType .port 등록 정보를 다음과 같이 설정합니다.
imq.ssljms.tls.port=1756
MQ_SERVICE_PORT_PROPERTY 연결 등록 정보가 Message Queue 3.7 Update 2로 백포트되었습니다.
Message Queue 4.0은 Application Server 9 PE 지원으로 제한된 부 릴리스였으며, 몇몇 새롭고 향상된 기능 및 버그 수정을 포함하고 있었습니다이 절에서는 이 릴리스의 새로운 기능에 대해 설명합니다.
버전 4.0에 도입되었던, 사소하지만 잠재적으로 위험할 수 있는 변경 사항 중의 하나는 비밀번호를 지정하는 명령줄 옵션이 폐지되었다는 점입니다. 따라서 더 이상 사용되지 않는 비밀번호 옵션에 설명된 대로 모든 비밀번호를 파일에 저장하거나 프롬프트 창에 입력해야 합니다.
Message Queue 4.0에는 JMX(Java Management Extensions) 사양에 따라 Message Queue 브로커의 구성 및 모니터링을 위해 새로운 API가 추가되었습니다. 이 API를 사용하여 프로그래밍 방식으로 Java 응용 프로그램 내에서 브로커 기능을 구성 및 모니터링할 수 있습니다. 이전 버전의 Message Queue에서는 명령줄 관리 유틸리티 또는 관리 콘솔을 통해서만 이 기능에 액세스할 수 있었습니다.
자세한 내용은 Sun Java System Message Queue 4.2 Developer’s Guide for JMX Clients를 참조하십시오.
Message Queue 4.0에서는 연결 및 세션 관련 이벤트의 클라이언트 런타임 로깅 지원이 도입되었습니다.
클라이언트 런타임 로깅 및 구성 방법에 대한 자세한 내용은 Java Dev Guide의 137페이지를 참조하십시오.
Message Queue 4.0에서는 클라이언트 런타임에서 응용 프로그램에 연결 상태 변경 사항에 대해 알릴 수 있는 이벤트 알림 API가 도입되었습니다. Message Queue 클라이언트는 연결 이벤트 알림을 통해 닫힘 및 다시 연결 이벤트를 수신하고 알림 유형 및 연결 상태를 기반으로 적절한 작업을 수행할 수 있습니다. 예를 들어, 페일오버가 발생하고 클라이언트가 다른 브로커에 다시 연결된 경우 응용 프로그램은 해당 트랜잭션 상태를 정리하고 새 트랜잭션으로 작업을 계속하려 할 수 있습니다.
연결 이벤트와 이벤트 수신기를 작성하는 방법에 대한 자세한 내용은 Java Dev Guide의 96페이지를 참조하십시오.
Message Queue 4.0에서는 관리자가 브로커 정지, 지정된 간격 후에 브로커 종료, 연결 영구 삭제 또는 Java 시스템 등록 정보 설정(예: 연결 관련 등록 정보)을 수행할 수 있도록 명령 유틸리티(imqcmd)에 몇 가지 새로운 하위 명령과 명령 옵션이 추가되었습니다.
브로커를 정지하면 브로커가 자동 상태가 되며 브로커가 종료되거나 다시 시작되기 전에 메시지가 드레인됩니다. 정지되는 브로커에는 새 연결을 만들 수 없습니다. 브로커를 정지하려면 다음 명령을 입력하십시오.
imqcmd quiesce bkr -b Wolfgang:1756
지정된 간격 후 브로커를 종료하려면 다음 명령을 입력하십시오. (시간 간격은 브로커가 종료되기 전에 대기하는 시간(초)을 지정합니다.)
imqcmd shutdown bkr -b Hastings:1066 -time 90
시간 간격을 지정하면 브로커에서 종료 시간을 나타내는 메시지를 기록합니다. 예를 들면 다음과 같습니다.
Shutting down the broker in 29 seconds (29996 milliseconds)
브로커 종료 대기 중 해당 동작은 다음과 같은 방식으로 영향을 받습니다.
관리 jms 연결은 계속 허용됩니다.
새 jms 연결은 허용되지 않습니다.
기존 jms 연결은 계속 작동합니다.
브로커는 고가용성 브로커 클러스터 내의 다른 브로커로부터 인계 받을 수 없습니다.
imqcmd 유틸리티는 차단되지 않고 종료 요청을 브로커에 전송하며 즉시 반환됩니다.
연결을 삭제하려면 다음 명령을 입력하십시오.
imqcmd destroy cxn -n 2691475382197166336
연결 아이디를 가져오려면 imqcmd list cxn 또는 imqcmd query cxn 명령을 사용합니다.
imqcmd를 사용하여 시스템 등록 정보를 설정하려면 새로운 –D 옵션을 사용하십시오. 이 명령은 JMS 연결 팩토리 등록 정보 또는 연결 관련 java 시스템 등록 정보를 설정하거나 대체할 때 유용합니다. 예를 들면 다음과 같습니다.
imqcmd list svc -secure -DimqSSLIsHostTrusted=true imqcmd list svc -secure -Djavax.net.ssl.trustStore=/tmp/mytruststore -Djavax.net.ssl.trustStorePassword=mytrustword
imqcmd 명령 구문에 대한 자세한 내용은 Sun Java System Message Queue 4.2 Administration Guide의 13 장, Command Line Reference를 참조하십시오.
Message Queue 4.0에는 데이터베이스 관리자 유틸리티 imqdbmgr에 새로운 query 하위 명령이 추가되었습니다. 이 하위 명령을 사용하여 데이터베이스 버전, 데이터베이스 사용자 및 데이터베이스 테이블이 만들어졌는지의 여부를 비롯한 JDBC 기반 데이터 저장소에 대한 정보를 표시합니다.
다음은 이 명령을 사용하여 표시한 정보의 예를 나타냅니다.
imqdbmgr query |
[04/Oct/2005:15:30:20 PDT] Using plugged-in persistent store: version=400 brokerid=Mozart1756 database connection url=jdbc:oracle:thin:@Xhome:1521:mqdb database user=scott Running in standalone mode. Database tables have already been created. |
Message Queue 4.0에서는 이제 Apache Derby 버전 10.1.1이 JDBC 기반 데이터 저장소 공급업체로 지원됩니다.
Message Queue 4.0에서는 최적화 및 향후 향상된 기능 지원을 위해 JDBC 기반 데이터 저장소가 새로 변경되었습니다. 이로 인해 JDBC 기반 데이터 저장소의 형식이 버전 400으로 높아졌습니다. Message Queue 4.0에서 파일 기반 데이터 저장소 버전은 변경되지 않았으므로 버전 370으로 유지됩니다.
Message Queue 4.0에서는 사용 불능 메시지 대기열에 있는 모든 메시지에 설정되는 새로운 등록 정보 두 개가 추가되었습니다.
JMS_SUN_DMQ_PRODUCING_BROKER는 메시지를 생성한 브로커를 나타냅니다.
JMS_SUN_DMQ_DEAD_BROKER는 메시지를 사용 불능으로 표시한 브로커를 나타냅니다.
Message Queue 4.0 시작 시 클라이언트 연결 팩토리 등록 정보 imqSSLIsHostTrusted의 기본값은 false입니다. 응용 프로그램이 이전의 기본값인 true를 따르는 경우에는 등록 정보를 다시 구성하여 명시적으로 true로 설정해야 합니다.
자체 서명된 인증서를 사용하도록 브로커를 구성한 경우 호스트를 신뢰하도록 선택할 수 있습니다. 이 경우 imqConnectionType 등록 정보를 사용하여 연결이 SSL 기반 연결 서비스를 사용하도록 지정해야 할 뿐 아니라 imqSSLIsHostTrusted 등록 정보를 true로 설정해야 합니다.
예를 들어, 브로커가 자체 서명된 인증서를 사용할 때 클라이언트 응용 프로그램을 안전하게 실행하려면 다음 명령을 사용합니다.
java -DimqConnectionType=TLS -DimqSSLIsHostTrusted=true ClientAppName
브로커에서 자체 서명된 인증서를 사용할 경우 명령 유틸리티(imqcmd)를 안전하게 사용하려면 커넥터 서비스 나열 시 다음과 같은 명령을 사용합니다.
imqcmd list svc -secure -DimqSSLIsHostTrusted=true
메트릭 주제 대상에 기록된 메트릭 정보를 사용하여 브로커와 해당 대상을 모니터링할 수 있게 해 주는 메시지 기반 모니터링은 향후 릴리스에서 더 이상 사용되지 않습니다.
메시지 기반 모니터링에서는 구성 가능한 브로커 메트릭 메시지 생성자를 사용하여 JMS 메시지에 메트릭 데이터를 기록한 다음 메시지에 포함된 메트릭 정보의 유형에 따라 메트릭 주제 대상으로 전송합니다. 그런 다음 적절한 메트릭 주제 대상에 가입하고 해당 메시지를 사용하며 필요에 맞게 데이터를 처리하는 클라이언트 응용 프로그램을 작성하여 이 메트릭 정보를 액세스할 수 있습니다.
메시지 기반 모니터링 기능은 MQ 4.0에 구현된 JMX 관리 API로 대체되었습니다( JMX 관리 API 지원 참조). JMX API는 보다 종합적이며(주제 대상에 기록되는 것보다 더 많은 메트릭 데이터 포함) JMX 업계 표준을 기반으로 합니다.
이제 Message Queue에서 JMX API를 지원하므로 메시지 기반 모니터링을 사용할 별다른 이유는 없습니다. 메시지 기반 모니터링에 대한 정보는 기능이 공식적으로 더 이상 사용되지 않을 때까지 Message Queue 설명서에 남아 있습니다.
Message Queue 4.2에는 새로운 버그 수정 사항이 포함되어 있으며 Message Queue 4.1 및 Message Queue 4.0 릴리스에서 해결된 버그도 포함되어 있습니다.
다음 절에서는 각 릴리스에서 해결된 버그를 소개합니다
다음 표는 Message Queue 4.2에서 해결된 버그를 설명합니다.
다음 표에는 4.1 패치 1과 4.1 패치 2에서 해결된 버그 중 언급할 가치가 있는 버그가 포함되어 있습니다. 둘 중 어느 것에 해당되는지 파악할 수 있는 도움 정보가 필요합니다. 또, 방금 언급된 것 외에 추가로 해결된 버그가 있습니까?
버그 |
설명 |
---|---|
6581592 |
설치 프로그램 또는 제거 프로그램이 텍스트 모드(installer –t)로 실행되는 경우 요약 화면에 로그/요약 파일이 포함된 디렉토리가 표시되지만 이 파일의 이름은 나열되지 않음 |
6585911 |
설치 프로그램의 JDK 선택 화면에 설치 프로그램에 번들로 제공되며 설치 프로그램 실행에 사용되는 JRE가 잘못 포함되어 있음 |
6587112 |
다중 바이트 로켈에서 설치 프로그램 요약 화면에 알 수 없는 문자가 표시됨 |
6587127 |
응답 파일을 참조하여 설치 프로그램을 실행하는 경우(installer -a filename -s) 응답 파일이 없으면 일관성 없고 모호한 오류 메시지가 표시됨 |
6590969 |
클라이언트 연결 인증에 DN 사용자 이름 형식이 허용됨 |
6594381 |
시스템에 이전 버전의 Message Queue 현지화 RPM이 있을 경우 Message Queue 4.1 현지화 RPM 설치(다국어 패키지 화면에서 "Message Queue 다국어 패키지 설치"를 선택하여 실행)에 실패함 |
6599144 |
Message Queue 4.2를 제거할 때 Java SE 6에서는 스플래시 화면과 제거 프로그램이 중지되고 회색의 빈 화면이 표시되지만 Java SE 5에서는 제대로 작동함 |
6615741 |
원래 사용자가 롤백 전에 닫힌 경우 롤백된 트랜잭션 사용자 세션에 전달된 메시지가 재전송되지 않음 |
6629922 |
분산 트랜잭션 처리기에서 비활성 사용자에게 메시지를 올바른 순서로 재전송하지 않음 |
6635130 |
대상이 메모리 또는 메시지 제한에 도달했기 때문에 브로커에서 일시 중지되었던 비지속성 메시지의 생성을 다시 시작하는 것을 생성자에 알리지 못함 |
6641117 |
원래 사용자가 롤백 후에 닫힌 경우 롤백된 트랜잭션 사용자 세션에 전달된 메시지가 재전송되지 않음 |
6683897 |
구성이 성공적으로 완료된 것처럼 보이지만 Message Queue 설치 프로그램의 요약 화면에 구성 오류가 보고됨. 일부 컴퓨터에서는 설치 프로그램이 /dev/sterr에 쓸 수 없음 |
6684069 |
사용자 트랜잭션을 통해 대량의 메시지가 원격 클라이언트로 전달되는 브로커 클러스터에서 트랜잭션 완결이 실패함 |
6688935 |
포트 매퍼 읽기 시간 초과의 기본값이 너무 작음 |
6695238 |
경로에 공백이 있는 위치에 설치된 브로커에 C 클라이언트 응용 프로그램으로 연결할 수 없음 |
6710168 |
중간에 다시 시작하지 않고 대상을 두 번 일시 중지한 경우 사용자가 더 이상 메시지를 사용하지 않음 |
6710169 |
JMX 작업 ConsumerManagerMonitor.getConsumerInfo에서 확인 모드에 대해 항상 SESSION_TRANSACTED를 반환함 |
다음 표는 Message Queue 4.1에서 해결된 버그를 설명합니다.
표 1–8 Message Queue 4.1에서 해결된 버그
버그 |
설명 |
---|---|
6381703 |
메시지를 만든 브로커가 다시 시작되면 트랜잭션된 원격 메시지가 두 번 완결될 수 있음 |
6388049 |
완료되지 않은 분산 트랜잭션을 정리할 수 없음 |
6401169 |
imqcmd에 대한 완결 및 롤백 옵션이 확인을 요청하는 메시지를 표시하지 않음 |
6473052 |
자동 생성된 대기열의 기본값은 라운드 로빈되어야 함(MaxNumberConsumers = -1) |
6474990 |
imqcmd list dst 명령에 대해 브로커 로그가 ConcurrentModificationException을 표시함 |
6487413 |
제한 동작이 REMOVE_OLDEST 또는 REMOVE_LOWER_PRIORITY일 경우 메모리 누출이 발생함 |
6488340 |
브로커가 회전하고 클라이언트가 응답 확인을 기다림 |
6502744 |
브로커가 사용 불능 메시지 대기열의 기본 제한인 1000개 메시지를 따르지 않음 |
6517341 |
imqReconnectEnabled 등록 정보 값에 관계 없이 클라이언트가 다시 연결될 수 있도록 하여 클라이언트를 고가용성 브로커 클러스터에 연결할 경우 클라이언트 런타임의 다시 연결 논리가 향상되어야 함 |
6528736 |
시작 도중 Windows 자동 시작 서비스(imqbrokersvc)에 충돌이 발생함 |
6561494 |
메시지와 사용자가 한 세션을 공유한 경우 메시지가 잘못된 사용자에게 전송됨 |
6567439 |
PREPARED 트랜잭션에서 생성된 메시지가 브로커 다시 시작 후에 완결되면 메시지가 잘못된 순서로 전송됨 |
다음 표는 Message Queue 4.0에서 해결된 버그를 설명합니다.
표 1–9 Message Queue 4.0에서 해결된 버그
버그 번호 |
설명 |
---|---|
4986481 |
Message Queue 3.5의 경우 자동 다시 연결 모드에서 Session.recover 호출이 정지될 수 있었음 |
4987325 |
Session.recover 호출 후 재전송된 플래그가 재전송된 메시지에 대해 false로 설정되었음 |
6157073 |
연결 총 수뿐 아니라 서비스의 연결 수를 포함시키기 위해 새 연결 메시지를 변경함 |
6193884 |
메시지에 ASCII가 아닌 문자를 사용하는 로켈의 경우 Message Queue는 알아 볼 수 없는 메시지를 syslog로 출력함 |
6196233 |
JMSMessageID를 사용하여 메시지를 선택할 수 없음 |
6251450 |
클러스터 종료 도중 connectList의 ConcurrentModificationException |
6252763 |
java.nio.HeapByteBuffer.putLong/Int의 java.nio.BufferOverflowException |
6260076 |
Oracle 저장소에서 시작 후 첫 번째로 게시되는 메시지가 느림 |
6260814 |
JMSXUserID에서의 선택기 처리가 항상 false로 처리됨 |
6264003 |
대기열 브라우저가 완결되지 않은 트랜잭션의 일부인 메시지를 표시함 |
6271876 |
사용되지 않은 메시지를 가진 사용자를 종료할 때 연결 흐름 제어가 제대로 작동하지 않음 |
6279833 |
Message Queue에서 두 개의 브로커가 동일한 jdbc 테이블을 사용해서는 안 됨 |
6293053 |
마스터 브로커는 시스템의 IOP 주소가 변경된 경우 저장소를 지우기 전에는(—reset store를 사용하여) 올바르게 시작되지 않습니다.받습니다.) |
6294767 |
Message Queue 브로커가 여는 네트워크 소켓에 SO_REUSEADDR을 설정해야 함 |
6304949 |
ClientID 등록 정보를 TopicConnectionFactory에 설정할 수 없음 |
6307056 |
txn 로그에 성능 병목 현상 발생 |
6320138 |
Message Queue C API에 회신 헤더로부터 대기열의 이름을 확인하는 기능이 없음 |
6320325 |
JDK 1.4와 JDK 1.5가 모두 설치된 경우 브로커가 JDK 1.5보다 JDK 1.4를 먼저 선택하는 경우가 있음 |
6321117 |
멀티 브로커 클러스터 초기화 시 java.lang.NullPointerException 발생 |
6330053 |
가입자의 트랜잭션을 완결할 때 jms 클라이언트에서 java.lang.NoClassDefFoundError가 발생함 |
6340250 |
C-API에서 MESSAGE 유형 지원 |
6351293 |
Apache Derby 데이터베이스 지원 추가 |
이 절에서는 Message Queue 4.2 설명서 업데이트에 대해 설명합니다.
이 절에서는 Message Queue 4.2에 대한 호환성 문제에 대해 설명합니다.
Sun Java System Message Queue는 시간이 흐름에 따라 변경될 수 있는 많은 인터페이스를 사용합니다. Sun Java System Message Queue 4.2 Administration Guide의 부록 B, Stability of Message Queue Interfaces에서는 인터페이스를 안정성에 따라 분류합니다. 인터페이스가 안정적일수록 제품의 향후 버전에서 변경될 가능성이 적어집니다.
Message Queue의 다음 주요 릴리스에 도입되는 변경 사항으로 인해 현재 Message Queue 클라이언트 응용 프로그램이 새 릴리스와 호환되지 않을 수 있습니다. 이 정보는 완전 공개라는 취지 하에 제공됩니다.
Sun Java System Message Queue의 일부로 설치된 개별 파일의 위치가 변경될 수 있습니다. 따라서 특정 Message Queue 파일의 현재 위치에 의존하는 기존 응용 프로그램이 작동하지 않을 수 있습니다.
최신 브로커가 있는 클러스터에서 Message Queue 3.5 이전 브로커가 더 이상 작동하지 않을 수 있습니다.
Message Queue의 향후 릴리스에서 클라이언트가 1.5 이전 버전의 JDK를 사용하지 못할 수 있습니다.
Message Queue의 향후 릴리스에서 클라이언트가 1.6 이전 버전의 JDK를 사용하지 못할 수 있습니다.
Message Queue 4.2 설명서 세트에는 아래에 설명된 것과 같은 Message Queue 4.1 설명서 업데이트가 포함되어 있습니다.
Sun Java System Message Queue 4.2 Installation Guide가 Message Queue 4.2의 새로운 기능과 고가용성 브로커 클러스터의 업데이트된 프레임워크를 반영하도록 업데이트되었습니다.
관리 설명서가 Message Queue 4.2의 새로운 기능을 반영하도록 업데이트되었습니다.
Sun Java System Message Queue 4.2 Installation Guide는 Message Queue 4.2의 새로운 기능, 특히 설치 프로그램의 새로운 Sun Connection 등록 기능을 반영하도록 업데이트되지 않았습니다. 이 정보는 Message Queue 릴리스 노트를 통해 제공됩니다.
Java 클라이언트용 개발 안내서는 Message Queue 4.2의 새로운 기능을 반영하도록 업데이트되지 않았습니다. 이 정보는 Message Queue 릴리스 노트를 통해 제공됩니다.
C 클라이언트용 개발 안내서는 Message Queue 4.2의 새로운 기능을 반영하도록 업데이트되지 않았습니다. 이 정보는 Message Queue 릴리스 노트를 통해 제공됩니다.
Message Queue 4.2의 새로운 기능을 반영하도록 업데이트되지 않았습니다. 이 정보는 Message Queue 릴리스 노트를 통해 제공됩니다.
Message Queue 4.2에는 브로커 클러스터에서 대상을 모니터링하는 데 유용한 새로운 대상 메트릭이 포함되어 있습니다. 브로커 클러스터에서 대상은 클러스터의 모든 브로커에 전파됩니다. 하지만 생성된 메시지는 메시지 생성자 홈 브로커의 지정 대상에 저장되며 이 대상에 대한 활성 소비자가 있는 경우에만 클러스터의 다른 브로커에 있는 해당 대상으로 전송됩니다. 따라서 지정된 대상에 저장되는 메시지는 클러스터에서 대상이 있는 브로커에 따라 결정됩니다.
즉, 브로커 클러스터에서 클러스터에 있는 지정 브로커의 지정 대상에 저장되는 메시지는 대상에 직접 생성되는 메시지와 클러스터에 있는 원격 브로커에서 대상으로 전달되는 메시지로 구성됩니다. 브로커 클러스터에서 메시지 라우팅 및 전달을 분석할 때 대상에 있는 메시지 중 로컬 메시지의 수(로컬에서 생성됨)와 원격 메시지의 수(원격으로 생성됨)를 알면 유용할 때가 있습니다.
다음 표는 Message Queue 4.2에 포함된 두 가지 새로운 물리적 대상 메트릭 개수을 설명합니다. 새로운 메트릭은 imqcmd list dst 및 imqcmd query dst 명령과 새 JMX 속성을 통해 사용할 수 있습니다( 대상 모니터 MBean 참조).
표 1–10 물리적 대상 메트릭
메트릭 개수 |
설명 |
로그 파일 여부 |
metrics dst 메트릭 유형 |
메트릭 주제 |
---|---|---|---|---|
Num messages remote |
클러스터 내의 원격 브로커에 생성된 영구 저장소 및 메모리에 저장되어 있는 메시지의 수. 이 값에는 트랜잭션에 포함된 메시지가 포함되어 있지 않습니다. |
아니요 |
해당 없음 |
|
Total message bytes remote |
클러스터 내의 원격 브로커에 생성된 영구 저장소 및 메모리에 저장되어 있는 메시지의 전체 크기(바이트). 이 값에는 트랜잭션에 포함된 메시지가 포함되어 있지 않습니다. |
아니요 |
해당 없음 |
해당 없음 |
이 절에서는 Solaris 10 운영 체제에서 자동 브로커 시작을 구성하는 방법에 대해 설명합니다. 다음 절차에서는 컴퓨터가 다시 부팅될 때 자동 브로커 시작을 구현하는 rc 파일을 사용하지 않고 Solaris 10 SMF(Service Management Facility)를 사용합니다.
Service Management Facility 사용에 대한 자세한 내용은 Solaris 10 설명서를 참조하십시오.
mqbroker 서비스를 SMF 저장소로 가져옵니다.
# svccfg import /var/svc/manifest/application/sun/mq/mqbroker.xml
mqbroker 서비스의 상태를 확인하여 가져오기에 성공했는지 확인합니다.
# svcs mqbroker
다음과 비슷한 내용이 출력됩니다.
STATE STIME FMRI disabled 16:22:50 svc:/application/sun/mq/mqbroker:default |
서비스는 처음에 비활성 상태로 표시됩니다.
mqbroker 서비스를 활성화합니다.
# svcadm enable svc:/application/sun/mq/mqbroker:default
mqbroker 서비스를 활성화하면 imqbrokerd 프로세스가 시작됩니다. 다시 부팅하면 브로커가 다시 시작됩니다.
imqbrokerd 명령으로 원하는 인수를 전달하도록 mqbroker 서비스를 구성합니다.
options/server_args 등록 정보는 imqbrokerd로 인수를 전달하는 데 사용됩니다. 예를 들어 -loglevel DEBUGHIGH를 추가하려면 다음을 수행합니다.
# svccfg svc:> select svc:/application/sun/mq/mqbroker svc:/application/sun/mq/mqbroker> setprop options/server_args=\"-loglevel DEBUGHIGH\" svc:/application/sun/mq/mqbroker> exit |
Message Queue에서는 프로그래밍 방식으로 Message Queue 클라이언트 응용 프로그램 내에서 브로커 기능을 구성 및 모니터링하기 위해 JMX(Java Management Extensions)를 지원합니다. Message Queue 4.2에는 이 릴리스의 새로운 기능을 지원하기 위한 JMX API에 대한 확장이 포함되어 있습니다. 다음 MBean에 새로운 JMX 속성, 작업 및/또는 조회 키가 정의됩니다.
다음 표에 있는 속성, 작업 및 조회 키는 게시자 또는 가입자를 위한 여러 대상에 설명되어 있는 기능을 지원합니다.
다음 속성의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.ConsumerAttributes에서 정적 상수로 정의됩니다.
표 1–11 사용자 관리자 모니터 속성
이름 |
유형 |
설정 가능 여부 |
설명 |
---|---|---|---|
NumWildcardConsumers |
정수 |
아니요 |
브로커에 연결된 와일드카드 메시지 사용자의 수 |
다음 작업의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.ConsumerOperations에서 정적 상수로 정의됩니다.
표 1–12 사용자 관리자 모니터 작업
이름 |
매개 변수 |
결과 유형 |
설명 |
---|---|---|---|
getConsumerWildcards |
없음 |
String[] |
브로커와 연결된 현재 사용자가 사용하는 와일드카드 문자열 |
getNumWildcardConsumers |
wildcard-String |
정수 |
지정된 와일드카드 문자열을 사용하는 브로커와 연결된 현재 사용자 수 |
다음 조회 키는 유틸리티 클래스 com.sun.messaging.jms.management.server.ConsumerInfo에서 정적 상수로 정의됩니다.
표 1–13 메시지 사용자 정보에 대한 조회 키
이름 |
값 유형 |
설명 |
---|---|---|
DestinationNames |
String[] |
와일드카드 사용자가 사용하는 와일드카드와 일치하는 대상 이름 주제 대상에만 해당 |
Wildcard |
부울 |
와일드카드 사용자 여부 주제 대상에만 해당 |
다음 표에 있는 속성은 XML 페이로드 메시지의 스키마 검증에 설명되어 있는 기능을 지원합니다.
다음 속성의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.DestinationAttributes에서 정적 상수로 정의됩니다.
표 1–14 대상 구성 속성
이름 |
유형 |
설정 가능 여부 |
설명 |
---|---|---|---|
ValidateXMLSchemaEnabled |
부울 |
예 |
XML 스키마 검증 사용 여부 false로 설정되거나 설정되지 않은 경우 대상에 대해 XML 스키마 검증이 사용되지 않습니다. |
XMLSchemaURIList |
문자열 |
예 |
XML 스키마 문서(XSD) URI 문자열의 공백으로 구분된 목록 사용하도록 설정된 경우 URI는 XML 스키마 검증에 사용할 하나 이상의 XSD 위치를 가리킵니다. 여러 URI를 지정할 경우에는 이 값 주위에 큰 따옴표를 사용합니다. 예: "http://foo/flap.xsd http://test.com/test.xsd" 이 등록 정보가 설정되지 않았거나 null이고 XML 검증이 설정된 경우에는 XML 문서에 지정된 DTD를 사용하여 XML 검증이 수행됩니다. |
ReloadXMLSchemaOnFailure |
부울 |
예 |
실패 시 XML 스키마 다시 로드 사용 여부 false로 설정되거나 설정되지 않은 경우 검증에 실패해도 스키마가 다시 로드되지 않습니다. |
새로운 기능인 XML 페이로드 메시지의 스키마 검증을 지원하는 위의 새 대상 구성 MBean 속성을 사용하여 대상 관리자 구성 MBean의 create 작업을 통해 대상을 만들 수 있습니다.
다음 표에서 첫 번째 속성 집합은 게시자 또는 가입자를 위한 여러 대상에 설명되어 있는 기능을 지원하고 두 번째 속성 집합은 새로운 대상 메트릭에 설명되어 있는 향상된 기능을 지원합니다.
다음 속성의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.DestinationAttributes에서 정적 상수로 정의됩니다.
표 1–15 대상 모니터 속성
이름 |
유형 |
설정 가능 여부 |
설명 |
---|---|---|---|
NumWildcards |
정수 |
아니요 |
대상과 연결된 와일드카드 메시지의 현재 생성자와 사용자 수 주제 대상에만 해당 |
NumWildcardProducers |
정수 |
아니요 |
대상과 연결된 와일드카드 메시지의 현재 생성자 수 주제 대상에만 해당 |
NumWildcardConsumers |
정수 |
아니요 |
대상과 연결된 와일드카드 메시지의 현재 사용자 수 주제 대상에만 해당 |
NumMsgsRemote |
Long |
아니요 |
클러스터 내의 원격 브로커에 생성된 영구 저장소 및 메모리에 저장되어 있는 메시지의 수. 이 값에는 트랜잭션에 포함된 메시지가 포함되어 있지 않습니다. |
TotalMsgBytesRemote |
Long |
아니요 |
클러스터 내의 원격 브로커에 생성된 영구 저장소 및 메모리에 저장되어 있는 메시지의 전체 크기(바이트). 이 값에는 트랜잭션에 포함된 메시지가 포함되어 있지 않습니다. |
다음 표에 있는 작업은 게시자 또는 가입자를 위한 여러 대상에 설명되어 있는 기능을 지원합니다.
다음 작업의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.DestinationOperations에서 정적 상수로 정의됩니다.
표 1–16 대상 모니터 작업
이름 |
매개 변수 |
결과 유형 |
설명 |
---|---|---|---|
getWildcards |
없음 |
String[] |
대상과 연결된 현재 사용자 및 생성자가 사용하는 와일드카드 문자열 주제 대상에만 해당 |
getConsumerWildcards |
없음 |
String[] |
대상과 연결된 현재 사용자가 사용하는 와일드카드 문자열 주제 대상에만 해당 |
getProducerWildcards |
없음 |
String[] |
대상과 연결된 현재 생성자가 사용하는 와일드카드 문자열 주제 대상에만 해당 |
getNumWildcardConsumers |
wildcard-String |
정수 |
지정된 와일드카드 문자열을 사용하는 대상과 연결된 현재 사용자 수 주제 대상에만 해당 |
getNumWildcardProducers |
wildcard-String |
정수 |
지정된 와일드카드 문자열을 사용하는 대상과 연결된 현재 생성자 수 주제 대상에만 해당 |
다음 표에 있는 속성, 작업 및 조회 키는 게시자 또는 가입자를 위한 여러 대상에 설명되어 있는 기능을 지원합니다.
다음 속성의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.ProducerAttributes 에서 정적 상수로 정의됩니다.
표 1–17 생성자 관리자 모니터 속성
이름 |
유형 |
설정 가능 여부 |
설명 |
---|---|---|---|
NumWildcardProducers |
정수 |
아니요 |
브로커에 연결된 와일드카드 메시지 생성자의 수 |
다음 작업의 이름은 유틸리티 클래스 com.sun.messaging.jms.management.server.ProducerOperations에서 정적 상수로 정의됩니다.
표 1–18 생성자 관리자 모니터 작업
이름 |
매개 변수 |
결과 유형 |
설명 |
---|---|---|---|
getProducerWildcards |
없음 |
String[] |
브로커에 연결된 현재 생성자가 사용하는 와일드카드 문자열 |
getNumWildcardProducers |
wildcard-String |
정수 |
지정된 와일드카드 문자열을 사용하는 브로커와 연결된 현재 생성자 수 |
다음 조회 키는 유틸리티 클래스 com.sun.messaging.jms.management.server.ProducerInfo에서 정적 상수로 정의됩니다.
표 1–19 메시지 생성자 정보에 대한 조회 키
이름 |
값 유형 |
설명 |
---|---|---|
DestinationNames |
String[] |
와일드카드 생성자가 사용하는 와일드카드와 일치하는 대상 이름 주제 대상에만 해당 |
Wildcard |
부울 |
와일드카드 생성자 여부 주제 대상에만 해당 |
Message Queue 4.2에서는 LDAP 사용자 저장소를 기준으로 클라이언트 연결 인증에 DN 사용자 이름 형식을 지원합니다. 지원에는 다음과 같은 새 브로커 등록 정보 및 값이 포함됩니다.
imq.user_repository.ldap.usrformat=dn
브로커는 이 등록 정보를 사용하여 DN 사용자 이름 형식으로부터 다음 등록 정보로 지정된 속성 값을 추출하여 LDAP 사용자 저장소에 있는 항목을 기준으로 클라이언트 사용자를 인증합니다.
imq.user_repository.ldap.uidattr
브로커에서는 위의 속성 값을 액세스 제어 작업의 사용자 이름으로 사용합니다.
예를 들어 imq.user_repository.ldap.uidattr=udi와 클라이언트 인증 사용자 이름의 형식이 udi=mquser,ou=People,dc=red,dc=sun,dc=com인 경우 액세스 제어를 수행하기 위해 "mquser"가 추출됩니다.
Message Queue 4.2 JAAS 인증에서는 사용자 이름 외에도 IP 주소를 사용한 인증을 지원합니다.
이 절에는 Message Queue 4.2의 알려진 문제점이 나열되어 있습니다. 적용되는 제품 영역은 다음과 같습니다.
현재 버그와 상태, 해결 방법에 대한 목록을 보려면 Java Developer Connection™ 회원은 Java Developer Connection 웹 사이트의 Bug Parade 페이지를 확인해야 합니다. 새로운 버그를 보고하기 전에 이 페이지를 확인하십시오. 여기에 모든 Message Queue 버그가 나열되어 있지는 않지만 문제가 보고된 적이 있는지 여부를 확인할 수 있습니다.
http://bugs.sun.com/bugdatabase/index.jsp
Java Developer Connection 구성원의 경우 무료이지만 등록해야 합니다. Java Developer Connection 구성원이 되는 방법에 대한 자세한 내용은 Sun의 "For Developers" 웹 페이지를 참조하십시오.
새 버그를 보고하거나 기능 요청서를 제출하려면 imq-feedback@sun.com으로 메일을 보내십시오.
이 절에서는 Message Queue 버전 4.2 설치와 관련된 문제에 대해 설명합니다.
Message Queue 4.2는 Message Queue 4.1과 마찬가지로 Message Queue에 필요한 JDK, NSS, JavaHelp 등의 Java ES(Java Enterprise System) 공유 구성 요소까지도 설치 및 업그레이드하는 비교적 새로운 설치 프로그램으로 설치됩니다.
새로운 Message Queue 설치 프로그램과 이전 버전의 Message Queue를 설치하는 데 사용된 기존 Java ES 설치 프로그램은 같은 제품 레지스트리를 공유하지 않습니다. Java ES 설치 프로그램으로 설치한 버전의 Message Queue를 제거한 다음 Message Queue 설치 프로그램을 사용하여 Message Queue 4.2로 업그레이드할 경우 Java ES 제품 레지스트리가 불일치 상태가 될 수 있습니다. 따라서, Java ES 제거 프로그램이 실행되면 Message Queue 4.2와 여기에서 사용되는 공유 구성 요소(Java ES로 설치하지 않은 구성 요소)가 실수로 제거될 수 있습니다.
Java ES 설치 프로그램으로 설치한 Message Queue 소프트웨어를 업그레이드하는 가장 좋은 방법은 다음과 같습니다.
Java ES 제거 프로그램을 사용하여 Message Queue와 해당 공유 구성 요소를 제거합니다.
Message Queue 설치 프로그램을 사용하여 Message Queue 4.2를 설치합니다.
Message Queue를 Windows에 설치할 경우에는 다음 제한 사항에 유의하십시오.
설치 프로그램을 실행해도 Message Queue에 대한 항목이 시작>프로그램 메뉴에 추가되지 않습니다. (버그 6567258)
해결 방법: 관리 콘솔을 시작하려면 Sun Java System Message Queue 4.2 Administration Guide의 Starting the Administration Console에 설명된 대로 명령줄을 사용합니다.
설치 프로그램을 실행해도 PATH 환경 변수에 IMQ_HOME\mq\bin 디렉토리가 추가되지 않습니다.(버그 6567197)
해결 방법: PATH 환경 변수에 이 항목을 직접 추가하거나 Message Queue 유틸리티를 호출할 때 전체 경로 이름(IMQ_HOME\mq\bin\ command)을 입력해야 합니다.
설치 프로그램을 실행해도 Message Queue가 설치되었음을 나타내는 항목이 Windows 레지스트리에 추가되지 않습니다. (버그 6586389)
응답 파일을 사용하여 자동 모드로 실행하는 경우 설치 프로그램이 즉시 원래대로 돌아갑니다. 설치가 수행되지만 사용자는 자동 설치가 실제로 완료된 시점을 알 수 없습니다.(버그 6586560)
Windows에서 텍스트 모드(installer –t)로 설치 프로그램을 실행하려고 하면 설치 프로그램이 영어가 아닌 다른 언어로 실행되는 경우에도 오류 메시지가 영어로 표시됩니다. Windows에서는 텍스트 모드가 지원되지 않습니다. (버그 6594142)
설치 프로그램에서는 기본적으로 운영 체제가 설치된 곳과 같은 드라이브에 Message Queue를 설치하지 않습니다. (버그 6673511)
Windows에서 설치 및 제거하는 경우 사용자가 실행할 수 있는 .bat 파일도 없고, Windows 제어판의 프로그램 추가/제거를 사용하여 프로그램을 제거할 수도 없습니다. (버그 6673417)
관리자로 명령 프롬프트를 사용하여 설치하지 않는 경우 Windows Vista에서 Message Queue를 C:\Program Files에 설치할 수 없습니다. (버그 6701661)
해결 방법: 관리자로 명령 프롬프트를 사용하여 설치하려면 다음을 수행합니다.
1. 시작->프로그램->보조 프로그램->명령 프롬프트를 선택합니다.
2. 명령 프롬프트를 마우스 오른쪽 버튼으로 누릅니다.
3. 관리자 권한으로 실행을 선택합니다.
4. 디렉토리를 Message Queue 4.2 설치 이미지로 변경합니다.
5. installer.vbs를 실행합니다.
제거 프로그램이 드라이 런 모드로 실행되는 경우(uninstaller -n) 제거가 올바르게 수행되지 않습니다. (버그 6719051)
해결 방법: 다음 명령을 사용하여 자동 설치를 수행합니다.
uninstaller -s
설치 프로그램 홈 페이지의 "Install Home" 문자열이 현지화되지 않았습니다. (버그 6592491)
설치 프로그램이 드라이 런 모드로 실행되는 경우(installer –n ) 요약 화면에 오류 메시지가 표시되고 설치 상태가 "불완전"으로 표시됩니다. 이는 잘못된 정보입니다. 드라이 런에서는 시스템에 어떠한 것도 설치되지 않습니다. 다음 자동 설치를 수행할 때 사용할 수 있는 응답 파일만 만들어집니다. (버그 6594351)
응답 파일을 사용하여 자동 모드로 실행할 경우(installer -a filename -s) 설치 프로그램에서 Sun Connection 등록을 수행하지 않습니다. (버그 6710268)
설치 프로그램을 텍스트 모드로 실행하는 경우 Sun Connect 등록을 위해 사용자 이름 또는 비밀번호를 입력하거나 온라인 계정을 만들 때 백스페이스 키를 사용하여 사용자 이름이나 비밀번호를 수정할 수 없습니다. (버그 6673460)
해결 방법: 백스페이스 키 대신 Control-H 키를 사용하거나 dtterm 또는 xterm 등의 다른 터미널 에뮬레이터를 사용합니다.
설치 프로그램의 업그레이드 화면에서 설치되어 있는 기존 Message Queue 또는 설치 프로그램 엔진의 버전이 정확하게 보고되지 않는 경우가 있습니다. (버그 6679765)
설치 프로그램을 텍스트 모드로 사용하는 동안 잘못된 사용자 이름과 비밀번호로 Sun Connection 등록을 시도할 경우 설치 프로그램에서 "unable to register" 대화 상자가 표시되고 Null 포인터 예외가 발생된 후 종료됩니다. (버그 6666365)
Linux 플랫폼에서는 다음 문제가 설치 작업에 영향을 줍니다.
JDK 선택 패널에서 스크롤 목록에 한 가지 항목만 표시됩니다. 이로 인해 목록에서 다른 JDK를 선택하기 어렵습니다. (버그 6584735)
JDK가 이미 설치되어 있는 경우 사용자가 JDK 선택 화면에서 "기본 JDK 설치"를 선택하면 설치 프로그램이 JDK 설치를 계속 시도하며 패키지를 설치할 수 없다고 보고합니다. 이 문제에도 불구하고 설치는 성공적으로 완료됩니다. (버그 6581310)
현재 설치된 JDK의 버전이 JDK 1.5.0_15(Message Queue 설치 프로그램에서 일반적으로 설치되는 버전)보다 이후 버전인 경우 Message Queue 제거 프로그램에서 기본 IMQ_JAVAHOME 디렉토리를 찾을 수 없어 오류를 반환합니다. (버그 6673415)
해결 방법: Message Queue 제거 프로그램을 실행하기 전에 다음과 같이 JDK 1.5를 수동으로 설치합니다.
# cd installImage/Product/UNIX/LINUX/X86/2.4/Packages
# rpm -i --force jdk-1.5.0_15–linux- arch.rpm
여기서 arch는 i586 또는 amd64입니다.
설치 프로그램이 드라이 런 모드로 실행되는 경우(installer –n) 요약 화면에 오류 메시지가 표시되고 설치 상태가 "불완전"으로 표시됩니다. 이는 잘못된 정보입니다. 드라이 런에서는 시스템에 어떠한 것도 설치되지 않습니다. 다음 자동 설치를 수행할 때 사용할 수 있는 응답 파일만 만들어집니다. (버그 6594351)
여기서 설명하는 문제는 모든 플랫폼 설치에 적용됩니다.
설치 준비 완료 화면에서 제품 이름이 Sun Java System Message Queuye 4.2가 아닌 "mq"로 표시됩니다. (버그 6650841)
설치 프로그램이 Message Queue 4.2를 설치하는 도중 진행률 화면이 표시될 때 취소 버튼이 활성화됩니다. 이때 취소 버튼을 선택하면 설치가 완료되지 않거나 손상됩니다. (버그 6595578)
설치 프로그램 요약 화면에 클릭 시 로그 또는 요약 페이지 뷰어를 실행하는 많은 링크가 포함됩니다. "닫기" 레이블로 표시된 버튼 대신 창 닫기 버튼 "X"를 사용하여 이 뷰어 창을 닫으면 이 뷰어 창의 백업을 가져올 수 없게 됩니다. (버그 6587138)
해결 방법: 닫기 레이블이 표시된 버튼을 사용하여 창을 닫습니다.
컴퓨터 시스템에 이전 버전의 Message Queue 및 NSS/NSPR이 있는 경우 설치 프로그램의 업그레이드 화면에 업그레이드가 필요한 대상으로 Message Queue만 표시되며 NSS 및 NSPR의 업그레이드 필요성은 언급되지 않습니다. 그럼에도 불구하고 정확한 정보를 표시하는 설치 준비 완료 화면에 나타난 대로 관련 소프트웨어가 모두 업그레이드됩니다. (버그 6580696)
"JDK 선택" 옵션이 선택되지 않은 경우에도 JDK 선택 화면의 JDK 목록이 활성화됩니다. (버그 6650874)
설치 프로그램에서 Message Queue 버전 정보를 불분명한 형식으로 표시합니다. (버그 6586507)
Solaris 플랫폼의 경우 다음 표를 참조하여 설치 프로그램에 표시되는 Message Queue 버전을 확인합니다.
표 1–20 버전 문자열 변환
Solaris OS에서 설치 프로그램에 표시되는 버전 |
해당되는 Message Queue 릴리스 |
---|---|
4.2.0.0 |
4.2 |
4.1.0.2 |
4.1 패치 2 |
4.1.0.1 |
4.1 패치 1 |
4.1.0.0 |
4.1 |
3.7.2.1 |
3.7 UR2 패치 1 |
3.7.0.2 |
3.7 UR2 |
3.7.0.1 |
3.7 UR1 |
3.6.0.0 |
3.6 |
3.6.0.4 |
3.6 SP4 |
3.6.0.3 |
3.6 SP3 |
3.6.0.2 |
3.6 SP2 |
3.6.0.1 |
3.6 SP1 |
3.6 SP4에 대한 패치 릴리스(예: 3.6 SP4 패치 1)의 경우 설치 프로그램에 표시되는 릴리스 문자열이 동일합니다. imqbrokerd -version 명령을 실행하여 정확한 버전을 확인해야 합니다.
Linux 플랫폼의 경우 설치 프로그램에서 표시되는 버전 번호의 형식은 다음과 같습니다.
majorReleaseNumber.minorReleaseNumber-someNumber
예: 3.7–22. 이는 3.7 릴리스 중 하나를 나타낼 뿐이며 특정 릴리스를 가리키지는 않습니다. 설치된 Message Queue 버전을 확인하려면 다음 명령을 실행합니다.
imqbrokerd -version.
다음 문제는 현지화 문제와 관련된 내용입니다.
설치 프로그램이 텍스트 모드(installer –t), 비영어 로켈에서 실행되는 경우 다중 바이트 문자가 알아볼 수 없게 표시됩니다. (버그 6586923)
설치 프로그램 진행률 화면에서 진행률 표시줄에 알 수 없는 문자가 표시됩니다. 도구 설명이 영어 이외의 로켈로 하드 코드되어 있습니다. (버그 6591632)
텍스트 모드(installer –t)가 Windows에서 지원되지 않습니다. Windows에서 설치 프로그램을 텍스트 모드로 실행하면 오류 메시지가 표시됩니다. 설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 이 메시지는 영어로 표시됩니다. (버그 6594142)
설치 프로그램이 실행되는 로켈에 관계 없이 설치 프로그램의 사용권 화면에 영문 사용권 텍스트가 표시됩니다. (버그 6592399)
해결 방법: 현지화된 사용권 파일에 액세스하려면 LICENSE_MULTILANGUAGE.pdf 파일을 찾아 보십시오.
설치 프로그램 사용 도움말 텍스트가 현지화되지 않았습니다. (버그 6592493)
설치 프로그램 요약 HTML 페이지에 표시되는 문자열 "None"이 영어로 하드 코드되어 있습니다. (버그 6593089)
설치 프로그램을 독일어 로켈로 실행하면 시작 화면에 다른 로켈에서는 표시되는 전체 텍스트가 표시되지 않습니다. (버그 6592666)
설치 프로그램 설치 홈 화면에 표시되어야 할 "설치 홈" 문자열이 현지화되지 않았습니다. 설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 이 문자열은 영어로 표시됩니다. (버그 6592491)
설치 프로그램이 텍스트 모드(installer –t)로 실행되는 경우 설치 프로그램이 실행되는 로켈에 관계 없이 영어 응답 선택 항목 "Yes"와 "No"가 사용됩니다. (버그 6593230)
설치 프로그램 JDK 선택 화면의 찾아보기 버튼에 대한 도구 설명이 영문으로 하드 코드되어 있습니다. (버그 6593085)
이전 버전의 Message Queue에서는 —p 또는 —password 옵션을 사용하여 다음 명령에 대한 비밀번호를 대화식으로 지정할 수 있었습니다. 비밀번호를 대화식으로 지정할 수 있었습니다. 버전 4.0부터는 이러한 옵션이 더 이상 사용되지 않았습니다.
대신 관련 비밀번호를 지정하는 비밀번호 파일을 생성하고 -passfile 명령 옵션을 사용하여 비밀번호 파일을 참조하거나 명령에서 프롬프트가 표시되었을 때 간단히 비밀번호를 입력할 수 있습니다.
비밀번호 파일에는 아래 나열된 비밀번호가 하나 이상 포함될 수 있습니다.
SSL 키 저장소를 여는 데 사용되는 키 저장소 비밀번호. 이 비밀번호를 지정하려면 imq.keystore.password 등록 정보를 사용합니다.
익명 연결이 아닌 경우 LDAP 디렉토리에 안전하게 연결하는 데 사용되는 LDAP 저장소 비밀번호. 이 비밀번호를 지정하려면 imq.user_repository.ldap.password 등록 정보를 사용합니다.
JDBC 호환 데이터베이스에 연결하는 데 사용되는 JDBC 데이터베이스 비밀번호. 이 비밀번호를 지정하려면 imq.persist.jdbc.vendorName.password 등록 정보를 사용합니다. 등록 정보 이름의 vendorName 구성 요소는 데이터베이스 공급업체를 지정하는 변수입니다. 이 항목은 hadb, derby, pointbase, oracle 또는 mysql일 수 있습니다.
브로커 관리 작업을 수행하는 데 사용되는 imqcmd 명령에 대한 비밀번호. 이 비밀번호를 지정하려면 imq.imqcmd.password 등록 정보를 사용합니다.
다음 예에서는 JDBC 데이터베이스에 대한 비밀번호가 비밀번호 파일에서 abracadabra로 설정되어 있습니다.
imq.persist.jdbc.mysql.password=abracadabra
다음 중 한 가지 방법으로 비밀번호 파일을 사용할 수 있습니다.
브로커의 config.properties 파일에 다음 등록 정보를 설정하여 비밀번호 파일을 사용하도록 브로커를 구성합니다.
imq.passfile.enabled=true |
imq.passfile.dirpath=passwordFileDirectory |
imq.passfile.name=passwordFileName |
관련 명령의 -passfile 옵션을 사용합니다. 예를 들면 다음과 같습니다.
imqbrokerd -passfile passwordFileName
다음 문제는 Message Queue 관리 및 구성에 관련된 내용입니다.
Windows 플랫폼의 경우 기본적으로 설정되어 있는 기본 제공 Windows 방화벽에서 브로커가 클라이언트에서 들어오는 연결을 허용할 수 있도록 방화벽 규칙을 수동으로 구성해야 합니다. (버그 6675595)
제어판에서 Windows 방화벽을 두 번 누릅니다.
Windows 방화벽 설정 대화 상자를 열려면 사용자 계정 제어 대화 상자에서 계속을 눌러야 합니다.
Windows 방화벽 설정 대화 상자에서 예외 탭을 누릅니다.
프로그램 추가를 누릅니다.
프로그램 추가 대화 상자에서 java.exe를 선택하고 찾아보기를 누릅니다.
Windows에서 브로커 프로세스는 Java Platform SE 이진 형식으로 확인됩니다. 그러므로 브로커에서 사용되는 java.exe를 찾습니다(일반적으로 jdk1.5.0_15\jre\bin\java.exe에 있음).
범위 변경을 누릅니다.
범위 변경 대화 상자에서 "모든 컴퓨터(인터넷에 있는 컴퓨터 포함)"을 선택합니다.”
확인을 누릅니다.
프로그램 추가 대화 상자에서 확인을 누릅니다.
Windows 방화벽 설정 대화 상자에서 확인을 누릅니다.
Windows 플랫폼에서 CLASSPATH에 큰 따옴표가 포함되어 있는 경우 imqadmin 및 imqobjmgr 명령에서 오류가 발생합니다. (버그 5060769)
해결 방법: 명령 프롬프트 창을 열고 CLASSPATH를 설정 해제합니다.
set classpath=
그리고 같은 명령 프롬프트 창에서 원하는 명령을 실행합니다. 예를 들면 다음과 같습니다.
mqInstallHome\mq\bin\imqadmin
모든 Solaris 및 Windows 스크립트에서 -javahome 옵션의 입력 값에 공백이 포함된 경우 이 옵션이 작동하지 않습니다. (버그 4683029)
javahome 옵션은 Message Queue 명령 및 유틸리티에서 사용할 대체 Java 2 호환 런타임을 지정하는 데 사용됩니다. 그러나 대체 Java 런타임의 경로 이름에는 공백이 포함되지 않아야 합니다. 다음은 공백을 포함하는 경로의 예입니다.
Windows: C:\jdk 1.4
Solaris: /work/java 1.4
해결 방법: 공백이 없는 위치 또는 경로에 Java 런타임을 설치합니다.
imqQueueBrowserMaxMessagesPerRetrieve 속성은 클라이언트 런타임에서 대기열의 내용을 찾아볼 때 한 번에 검색하는 메시지의 최대 수를 지정합니다. 이 속성은 대기열에 지정된 메시지의 일괄 처리 방법과 클라이언트 런타임에 전달되는 방법에 영향을 주지만 찾는 총 메시지 수에는 영향을 주지 않습니다. 이 속성은 찾기 메커니즘에만 영향을 주며 대기열 메시지 전달에는 영향을 주지 않습니다. (버그 6387631)
다음 문제는 Message Queue 브로커에 영향을 줍니다.
영구 데이터 저장소에서 너무 많은 대상이 열리면 브로커에 액세스할 수 없게 됩니다. (버그 4953354)
해결 방법: 이 상황은 브로커가 시스템 파일 열기 설명자 제한에 도달하면 발생합니다. Solaris와 Linux에서 ulimit 명령을 사용하여 파일 설명자 제한을 늘립니다.
대상이 삭제되면 사용자와의 연결이 끊어집니다. (버그 5060787)
대상이 삭제되면 활성 사용자와의 연결이 끊어집니다. 사용자와의 연결이 끊어진 후에는 대상이 다시 생성된 후에도 더 이상 메시지를 받을 수 없습니다.
HTTP 연결 서비스를 사용하는 JMS 클라이언트가 갑자기 종료되면(예: Ctrl-C 사용) 브로커는 약 1분이 경과한 후 클라이언트 연결 및 연결된 모든 자원을 해제합니다.
클라이언트의 다른 인스턴스가 1분 이내에 시작되어 동일한 클라이언트 아이디, 영구 가입 또는 대기열을 사용하려고 하면 "클라이언트 아이디가 이미 사용 중"이라는 예외가 발생할 수 있습니다. 이것은 실제 문제가 아니라 위에서 설명한 종료 프로세스의 부작용일 뿐입니다. 약 1분 간의 지연 후에 클라이언트가 시작되면 모든 문제가 해결됩니다.
MySQL 데이터베이스를 데이터 저장소로 사용하는 경우 1MB보다 큰 메시지를 저장하면 "Packet for query is too large..."라는 SQLException이 발생합니다. (버그 6682815)
해결 방법: --max_allowed_packet 옵션을 기본값인 1MB보다 큰 값으로 설정하고 MySQL 서버를 시작합니다. 예를 들면, 다음 값을 사용합니다.
--max_allowed_packet=60M
Java DB 데이터베이스를 데이터 저장소로 사용하는 경우 메시지를 저장하면 "lock could not be obtained within the time requested"라는 SQLException이 발생합니다. (버그 6691394)
해결 방법: 브로커의 config.properties 파일에 다음 등록 정보 값을 추가합니다.:
imq.persist.jdbc.derby.table.MYCONSTATE41.index.IDX2=CREATE INDEX &(index) ON $(name) (MESSAAGE_ID)
MySQL 데이터베이스를 고가용성 공유 데이터 저장소로 사용하는 경우 MySQL 저장소 엔진을 NDBCLUSTER로 구성하는 메커니즘이 필요합니다. (버그 6691394)
해결 방법: 브로커의 config.properties 파일에 다음 등록 정보 값을 추가합니다.:
imq.persist.jdbc.mysql.tableoption=EMGINE=NDBCLUSTER
다음 문제는 브로커 클러스터에 영향을 줍니다.
이 릴리스에서는 완전히 연결된 브로커 클러스터만 지원됩니다. 즉, 클러스터에 있는 모든 브로커가 해당 클러스터 내의 다른 모든 브로커와 직접 통신해야 합니다. imqbrokerd -cluster 명령줄 인수를 사용하여 기존 클러스터에 브로커를 연결하는 경우에는 클러스터에 있는 모든 브로커가 포함되어 있는지 확인해야 합니다.
클라이언트가 고가용성 브로커 클러스터에 있는 브로커에 연결된 경우에는 클라이언트 런타임에서 성공할 때까지 다시 연결을 시도합니다(imqAddressListIterations 연결 팩토리 속성 값 무시).
클라이언트에서는 홈 브로커에 있는 대기열의 내용만 찾아볼 수 있습니다. 그렇지만 클라이언트는 여전히 클러스터의 모든 대기열로 메시지를 보내거나 모든 대기열에서 메시지를 사용할 수 있습니다. 제한은 대기열 찾아보기에만 영향을 줍니다.
버전 4.2 브로커가 포함되어 있는 기존 클러스터의 경우 모든 브로커가 버전 3.5 이상이어야 합니다.
Message Queue 4.2 및 4.1 브로커는 기본적으로 Message Queue 3.7 또는 3.6 브로커를 사용하는 클러스터에서 상호 운용되지 않습니다. 이 두 버전 사이에서 imq.autocreate.queue.maxNumActiveConsumers의 기본값이 변경되었기 때문입니다. (버그 6716400)
해결 방법: Message Queue 4.2 및 4.1 브로커의 imq.autocreate.queue.maxNumActiveConsumers 값을 기본값인 -1에서 이전 버전의 기본값인 1로 변경하십시오.
기존 클러스터에서 고가용성 클러스터로 변환하는 경우 Sun Java System Message Queue 4.2 Administration Guide의 Converting a Standalone Data Store to a Shared Data Store에 설명된 대로 Message Queue Database Manager 유틸리티(imqdbmgr)를 사용하여 기존의 독립 실행형 JDBC 기반 데이터 저장소를 고가용성 데이터 저장소로 변환할 수 있습니다.
HADB를 사용하는 브로커는 10MB를 초과하는 메시지를 처리할 수 없습니다. (버그 6531734)
imqdbmgr upgrade hastore 명령을 사용하여 HADB 저장소로 변환한 경우 저장소에 메시지가 10,000개 이상 저장되면 "too many locks are set" 메시지가 발생하면서 작업에 실패할 수 있습니다. (버그 6588856)
해결 방법: 다음 명령을 사용하여 잠금 수를 늘립니다.
hadbm set NumberOfLocks=<desiredNumber>
추가 정보에 대해서는 Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide의 "HADB Problems"를 참조하십시오.
한 트랜잭션에서 원격 메시지가 500개 이상 완결되면 브로커에서 "HADB-E-12815: Table memory space exhausted" 오류가 발생할 수 있습니다.(버그 6550483)
추가 정보에 대해서는 Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide의 "HADB Problems"를 참조하십시오.
브로커 클러스터에서 브로커가 시작되지 않은 원격 연결에 메시지 대기열을 만듭니다. (버그 4951010)
해결 방법: 일단 연결이 시작되면 사용자가 메시지를 수신합니다. 사용자의 연결이 종료된 경우 메시지는 다른 사용자에게 전달됩니다.
한 트랜잭션 내에서 원격 브로커의 메시지를 두 개 이상 사용할 경우 브로커에 다음 오류 메시지가 기록될 수 있습니다. 이 메시지는 문제를 일으키지 않으며 무시할 수 있습니다.
[26/Jul/2007:13:18:27 PDT] WARNING [B2117]: Message acknowledgement failed from mq://129.145.130.95:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Reason = Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed. AckType = MSG_CONSUMED MessageBrokerSession = 3209681167602264320 TransactionID = 3534784765719091968 SysMessageID = 8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690 ConsumerUID = 3534784765719133952\par [26/Jul/2007:13:18:27 PDT] WARNING Notify commit transaction [8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 got response: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.r
이 메시지는 imq.txn.reapLimit 등록 정보가 한 트랜잭션 내의 원격 메시지 수에 비해 낮을 경우 트랜잭션 내의 최근 메시지에 대한 완결을 메시지 홈 브로커에 알릴 때 기록됩니다. (버그 6585449)
해결 방법: 이 메시지를 방지하려면 imq.txn.reapLimit 등록 정보의 값을 늘립니다.
Windows 플랫폼에서 트랜잭션 관리자 모니터 MBean의 getTransactionInfo 메소드가 잘못된 트랜잭션 작성 시간이 포함된 트랜잭션 정보를 반환합니다. (버그 6393359)
해결 방법: 트랜잭션 관리자 모니터 MBean의 getTransactionInfoByID 메소드를 대신 사용합니다.
SOAP 지원과 관련된 다음의 두 가지 문제에 대해 잘 알고 있어야 합니다.
Message Queue 버전 4.0 릴리스부터는 SOAP 관리 대상 객체가 더 이상 지원되지 않습니다.
SOAP 개발은 SUNWjaf, SUNWjmail, SUNWxsrt 및 SUNWjaxp의 몇 가지 파일에 따라 달라집니다. Message Queue 버전 4.1에서는 JDK 버전 1.6.0 이상에서 Message Queue를 실행 중인 경우에만 사용자가 이 파일을 사용할 수 있습니다.
전에는 SAAJ 1.2 구현 .jar에서 mail.jar을 직접적으로 참조했습니다. SAAJ 1.3에서는 이 참조가 제거되었으므로 Message Queue 클라이언트에서 mail.jar을 명시적으로 CLASSPATH에 두어야 합니다.
Sun Java System Message Queue 4.2에는 이진 형식으로 사용하고 자유롭게 배포할 수 있는 다음과 같은 파일 집합이 포함되어 있습니다.
fscontext.jar |
jms.jar |
imq.jar |
libmqcrt.so(HPUX) |
imqjmx.jar |
libmqcrt.so(UNIX) |
imqxm.jar |
mqcrt1.dll(Windows) |
jaas.jar |
|
LICENSE 및 COPYRIGHT 파일도 재배포할 수 있습니다.
이 매체를 발행한 이후 릴리스된 내게 필요한 옵션 기능을 사용하려면 Sun에 요청하여 구할 수 있는 섹션 508 제품 평가를 참조하여 관련 솔루션을 배포하는 데 가장 적합한 버전을 확인하십시오. 업데이트된 응용 프로그램 버전은 http://sun.com/software/javaenterprisesystem/get.html에서 볼 수 있습니다.
내게 필요한 옵션 기능 구현을 위한 Sun의 방침에 대해 자세히 알아보려면 http://sun.com/access를 방문하십시오.
Sun Java System Message Queue에 문제가 있으면 다음 방법 중 하나를 사용하여 Sun 고객 지원부에 문의하십시오.
Sun 소프트웨어 지원 온라인 서비스(http://www.sun.com/service/sunone/software)
이 사이트에는 유지 보수 프로그램과 지원 담당자 연락처뿐만 아니라 기술 자료, 온라인 지원 센터 및 ProductTracker에 대한 링크가 있습니다.
유지 보수 계약과 관련된 직통 전화 번호
고객 지원부에 문의할 때에는 문제를 해결하는 데 최선의 도움을 제공할 수 있도록 다음 정보를 미리 준비해 두십시오.
문제가 발생한 상황과 해당 문제가 작업에 미친 영향 등을 포함한 문제에 대한 자세한 설명
문제에 영향을 줄 수 있는 모든 패치 및 기타 소프트웨어를 포함한 컴퓨터 유형, 운영 체제 버전 및 제품 버전 등의 정보
문제를 재현하기 위해 사용한 방법에 대한 자세한 단계
오류 로그 또는 코어 덤프
다음 웹 사이트에서는 Sun Java System Message Queue 포럼을 제공합니다.
http://swforum.sun.com/jive/forum.jspa?forumID=24
여러분의 참여를 환영합니다.
Java 기술 포럼에는 관련 JMS 포럼이 있습니다.
Sun은 설명서의 내용 개선에 노력을 기울이고 있으며, 여러분의 의견과 제안을 환영합니다.
사용자 의견을 보내시려면 http://docs.sun.com에서 Feedback(피드백)을 누르십시오. 온라인 양식에 설명서 제목과 부품 번호를 입력합니다. 부품 번호는 해당 설명서의 제목 페이지나 문서 맨 위에 있는 7자리 또는 9자리 숫자입니다. 예를 들어, 이 설명서의 제목은 Sun Java System Message Queue 4.2 릴리스 노트이며 부품 번호는 820-5642입니다.
다음 인터넷 사이트에서 유용한 Sun Java System 관련 정보를 찾을 수 있습니다.
설명서
전문가 서비스
소프트웨어 제품 및 서비스
소프트웨어 지원 서비스
지원 및 기술 자료
Sun 지원 및 교육 서비스
컨설팅 및 전문가 서비스
개발자 정보
Sun 개발자 지원 서비스
소프트웨어 교육