이 절에는 Message Queue 4.1의 알려진 문제점이 나열되어 있습니다. 적용되는 제품 영역은 다음과 같습니다.
현재 버그와 상태, 해결 방법에 대한 목록을 보려면 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.1 설치와 관련된 문제에 대해 설명합니다.
Message Queue 버전 4.1은 Message Queue에 필요한 공유 구성 요소(예: JDK, NSS 라이브러리, JavaHelp 등)를 설치 및 업그레이드할 때에도 사용할 수 있는 새 설치 프로그램으로 설치합니다. 이 설치 프로그램은 Java Enterprise System(JES) 설치 프로그램과 제품 레지스트리를 공유하지 않습니다. JES에 설치된 Message Queue 버전이 제거되고 Message Queue 설치 프로그램을 통해 Message Queue 4.1로 업그레이드된 경우에는 JES 제품 레지스트리가 불일치 상태가 될 수 있습니다. 따라서, JES 제거 프로그램이 실행되면 Message Queue 4.1 및 여기에서 사용하는 공유 구성 요소(JES가 설치하지 않은 구성 요소)가 부주의로 제거될 수 있습니다.
JES 설치 프로그램에서 설치한 소프트웨어를 업그레이드하는 가장 좋은 방법은 다음과 같습니다.
JES 제거 프로그램을 사용하여 Message Queue와 해당 공유 구성 요소를 제거합니다.
Message Queue 설치 프로그램을 사용하여 Message Queue 4.1을 설치합니다.
Message Queue 4.1 설치 프로그램 JDK 선택 화면을 사용하여 Message Queue에서 사용할 용도로 시스템에 있는 기존 JDK/JRE를 선택할 수 있습니다. 하지만, 표시되는 목록에는 설치 응용 프로그램을 실행할 때 사용되는 JRE도 포함되어 있습니다. 이 JRE는 설치 프로그램 번들의 일부이며 실제로 시스템에 설치되지는 않습니다. (버그 6585911)
설치 프로그램에서 사용하는 JRE는 경로로 인식되며, 이 경로는 압축 해제된 설치 프로그램 디렉토리 안에 있어야 하며 하위 디렉토리 mq4_1–installer가 포함되어 있어야 합니다. 예를 들면 다음과 같습니다.
some_directory/mq4_1–installer/usr/jdk/instances/jdk1.5.0/jre
Message Queue에서 사용할 용도로 이 JRE를 선택하지 마십시오. 대신 시스템상의 다른 JDK를 선택하십시오. 시스템상에 JDK가 존재하지 않으면 다음과 같이 해당 플랫폼에서 적절한 조치를 취하십시오.
Solaris 또는 Linux: "기본 JDK 설치 및 사용"을 선택합니다.
Windows: Message Queue 4.1 설치 프로그램을 실행하기 전에 JDK를 다운로드하여 설치합니다.
Message Queue를 Windows에 설치할 경우에는 다음 제한 사항에 유의하십시오.
설치 프로그램을 실행해도 Message Queue에 대한 항목이 시작 > 프로그램 메뉴에 추가되지 않습니다(버그 6567258). 관리 콘솔을 시작하려면 Sun Java System Message Queue 4.1 Administration Guide의 Starting the Administration Console에 보이는 명령줄을 사용하십시오.
설치 프로그램을 실행해도 PATH 환경 변수에 IMQ_HOME\mq\bin 디렉토리가 추가되지 않습니다(버그 6567197). PATH 환경 변수에 이 항목을 직접 추가하거나 Message Queue 유틸리티를 호출할 때 전체 경로 이름(IMQ_HOME\mq\bin\command)을 입력해야 합니다.
설치 프로그램을 실행해도 Message Queue가 설치되었음을 나타내는 항목이 Windows 레지스트리에 추가되지 않습니다.
설치 프로그램을 자동 모드로 실행하면 프로그램이 즉시 반환됩니다. 설치가 수행되지만 사용자는 자동 설치가 실제로 완료된 시점을 알 수 없습니다.(버그 6586560)
텍스트 모드(installer –t)가 Windows에서 지원되지 않습니다. Windows에서 설치 프로그램을 텍스트 모드로 실행하면 오류 메시지가 표시됩니다. 설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 이 메시지는 영어로 표시됩니다. (버그 6594142)
설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 설치 프로그램 설치 홈 화면에 표시되어야 할 “설치 홈” 문자열이 영어로 표시됩니다. (버그 6592491)
사용자가 installer-n 명령을 사용하여 설치를 시도하면 오류 메시지와 "불완전" 요약 상태가 잘못 표시됩니다. 실제로는 명령에 성공합니다. (버그 6594351)
Linux 플랫폼에서는 다음 문제가 설치 작업에 영향을 줍니다.
JDK 선택 패널에서 스크롤 목록에 한 가지 항목만 표시됩니다. 이로 인해 목록에서 다른 JDK를 선택하기 어렵습니다. (버그 6584735)
JDK가 이미 설치되어 있는 경우 사용자가 JDK 선택 화면에서 "기본 JDK 설치"를 선택하면 설치 프로그램이 JDK 설치를 계속 시도하며 패키지를 설치할 수 없다고 보고합니다. 이 문제에도 불구하고 설치는 성공적으로 완료됩니다. (버그 6581310)
설치 프로그램이 드라이 런 모드에서 실행되는 경우(installer –n ), 요약 화면에 오류 메시지가 표시되고 설치 상태가 "불완전"으로 표시됩니다. 이는 잘못된 정보입니다. 드라이 런에서는 시스템에 어떠한 것도 설치되지 않습니다. 다음 설치에 사용할 수 있는 응답 파일만 만들어집니다.(버그 6594351)
시스템에 이전 버전의 Message Queue 현지화 RPM이 있으면 Message Queue 4.1 현지화 RPM 설치(다국어 패키지 화면에서 "Message Queue 다국어 패키지 설치" 확인란 선택)에 실패합니다. 이전 3.7 UR1 설치의 Il8 패키지와의 충돌로 인해 설치에 실패합니다. (버그 6594381)
해결 방법 4.1 설치 프로그램을 실행하기 전에 rpm –e 명령을 사용하여 현지화 RPM을 제거하십시오. 관련된 RPM이 무엇인지 확인하려면 Sun Java System Message Queue 4.1 Installation Guide의 Message Queue Packages (RPMs)를 참조하십시오.
여기서 설명하는 문제는 모든 플랫폼 설치에 적용됩니다.
설치 프로그램이 Message Queue 4.1을 설치하는 도중 진행률 화면이 표시될 때 취소 버튼이 활성화됩니다. 이때 취소 버튼을 선택하면 설치가 완료되지 않거나 손상됩니다. (버그 6595578)
설치 프로그램 요약 화면에 클릭 시 로그 또는 요약 페이지 뷰어를 실행하는 많은 링크가 포함됩니다. "닫기" 레이블로 표시된 버튼 대신 창 닫기 버튼 "X"를 사용하여 이 뷰어 창을 닫으면 이 뷰어 창의 백업을 가져올 수 없게 됩니다. (버그 6587138)
해결 방법: 닫기 레이블로 표시된 버튼을 사용하여 창을 닫습니다.
시스템에 이전 버전의 Message Queue와 NSS/NSPR이 있는 경우 설치 프로그램의 업그레이드에 업그레이드가 필요한 대상으로 Message Queue만 표시되며 NSS/NSPR의 업그레이드 필요성은 언급되지 않습니다. 올바른 정보를 제공하는 설치 준비 완료 화면에 나타나는 바대로 관련 소프트웨어가 설치 프로세스의 일부로 모두 업그레이드되므로 이 문제는 업데이트 화면에만 국한되는 문제입니다. (버그 6580696)
해결 방법: NSS/NSPR 파일이 설치되어 있지 않다면 이 파일이 설치될 것이고 이전 버전은 제거될 것이므로 해결 방법이 필요 없습니다.
설치 프로그램 또는 제거 프로그램이 텍스트 모드에서 실행될 때(installer –t ), 요약 화면에 로그/요약 파일이 포함된 디렉토리가 표시되지만 이 파일의 이름은 나열되지 않습니다. (버그 6581592)
존재하지 않는 파일 이름을 지정하면 일관성 없고 모호한 오류 메시지가 생성됩니다.(버그 6587127)
설치 프로그램에서 불분명한 형식으로 Message Queue 버전 정보를 표시합니다. (버그 6586507)
Solaris 플랫폼에서 설치된 버전을 확인하려면 아래 표를 참조하십시오.
표 1–11 버전 형식
설치 프로그램에 표시되는 버전 |
Message Queue 릴리스 |
---|---|
4.1.0.0 |
4.1 |
3.7.0.1 |
3.7 UR1 |
3.7.0.2 |
3.7 UR2 |
3.7.0.3 |
3.7 UR3 |
3.6.0.0 |
3.6 |
3.6.0.1 |
3.6 SP1 |
3.6.0.2 |
3.6 SP2 |
3.6.0.3 |
3.6 SP3 |
3.6.0.4 |
3.6 SP4 |
3.6 SP4에 대한 패치 릴리스(예: 3.6 SP4 패치 1)의 경우 설치 프로그램에 표시되는 릴리스 문자열이 동일합니다. 정확한 버전을 확인하려면 imqbrokerd –version을 실행해야 합니다.
Linux 플랫폼에서는 단순 형식 변환을 제공할 수 없습니다. Linux에서 설치 프로그램에 표시되는 버전 번호의 형식은 다음과 같습니다.
<majorReleaseNumber>.<minorReleaseNumber>-<someNumber>
예: 3.7–22. 이는 3.7 릴리스 중 하나를 나타내지만 특정 릴리스를 가리키지는 않습니다. 이를 확인하려면 imqbrokerd —version 명령을 실행하십시오.
다음 문제는 현지화 문제와 관련된 내용입니다.
설치 프로그램이 텍스트 모드(installer –t ), 비영어 로켈에서 실행될 때 다중 바이트 문자가 알아볼 수 없게 표시됩니다.(버그 6586923)
설치 프로그램 요약 화면을 통해 요약 보고서를 볼 수 있습니다. 하지만, 설치 프로그램을 멀티바이트 로켈로 실행하면 이 보고서(HTML 페이지)에 알 수 없는 문자가 표시됩니다. (버그 6587112)
해결 방법: HTML 파일을 편집하여 이 파일에 지정된 문자 집합을 수정합니다. HTML 파일에는 다음과 같은 내용이 포함되어야 합니다.
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8
“UTF-8”을 locale_name.UTF-8로 바꿉니다. 예를 들어, Solaris의 경우 ja_JA.UTF-8 또는 ko.UTF-8로, Linux의 경우 ja_JA.utf8 또는 ko_KO.utf8로 바꿉니다.
설치 프로그램 진행률 화면에서 진행률 표시줄에 알 수 없는 문자가 표시됩니다. 도구 설명이 영어 이외의 로켈로 하드 코드되어 있습니다. (버그 6591632)
텍스트 모드(installer –t)가 Windows에서 지원되지 않습니다. Windows에서 설치 프로그램을 텍스트 모드로 실행하면 오류 메시지가 표시됩니다. 설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 이 메시지는 영어로 표시됩니다. (버그 6594142)
설치 프로그램이 실행되는 로켈에 관계 없이 설치 프로그램의 사용권 화면에 영문 사용권 텍스트가 표시됩니다.(버그 6592399)
해결 방법: 현지화된 사용권 파일에 액세스하려면 LICENSE_MULTILANGUAGE.pdf 파일을 사용하십시오.
설치 프로그램 사용 도움말 텍스트가 현지화되지 않았습니다. (버그 6592493)
설치 프로그램 요약 HTML 페이지에 표시되는 문자열 "None"이 영어로 하드 코드되어 있습니다. (버그 6593089)
프랑스어를 제외한 나머지 로켈에서 저작권 페이지가 현지화되지 않았습니다. (버그 6590992)
설치 프로그램을 독일어 로켈로 실행하면 시작 화면에 다른 로켈에서는 표시되는 전체 텍스트가 표시되지 않습니다. (버그 6592666)
설치 프로그램 설치 홈 화면에 표시되어야 할 "설치 홈" 문자열이 현지화되지 않았습니다. 설치 프로그램을 영어 이외의 로켈로 실행한 경우에도 이 문자열은 영어로 표시됩니다. (버그 6592491)
설치 프로그램이 텍스트 모드에서 실행될 때는(installer –t ), 설치 프로그램이 실행되는 로켈에 관계 없이 영어 응답 선택 항목 "Yes"와 "No"가 사용됩니다. (버그 6593230)
설치 프로그램 JDK 선택 화면의 찾아보기 버튼에 대한 도구 설명이 영문으로 하드 코드되어 있습니다. (버그 6593085)
이전 버전의 Message Queue에서는 —p 또는 —password 옵션을 사용하여 다음 명령에 대한 비밀번호를 대화식으로 지정할 수 있었습니다. 비밀번호를 대화식으로 지정할 수 있었습니다. 버전 4.0부터는 이러한 옵션이 더 이상 사용되지 않았습니다. 비밀번호는 다음과 같이 지정해야 합니다.
비밀번호만을 저장하는 데 사용되는 파일에서 비밀번호 등록 정보를 원하는 값으로 설정합니다.
다음 구문을 사용하여 비밀번호 파일에 비밀번호를 지정합니다.
PasswordPropertyName= MyPassword
—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=MyFileDirectory |
imq.passfile.name=MyPassfileName |
imqbrokerd 명령의 —passfile 옵션을 사용합니다.
imqbrokerd —passfile MyPassfileName
이 절에서는 Message Queue 4.1의 일반적인 문제를 설명합니다. 이중 일부는 이전 Message Queue 버전에서 소개되었습니다.
HTTP 전송을 사용하는 JMS 클라이언트가 갑자기 종료되면(예: Ctrl-C 사용) 브로커는 약 1분이 경과한 후 클라이언트 연결 및 연결된 모든 자원을 해제합니다.
클라이언트의 다른 인스턴스가 1분 이내에 시작되어 동일한 클라이언트 아이디, 영구 가입 또는 대기열을 사용하려고 하면 "클라이언트 아이디가 이미 사용 중"이라는 예외가 발생할 수 있습니다. 이것은 실제 문제가 아니라 위에서 설명한 종료 프로세스의 부작용일 뿐입니다. 약 1분 간의 지연 후에 클라이언트가 시작되면 모든 문제가 해결됩니다.
SOAP 클라이언트 문제. 이전에는 mail.jar 및 mail.jar을 참조하는 데 사용되는 SAAJ 1.2 구현 jar이 CLASSPATH에 있을 필요가 없었습니다. SAAJ 1.3에서는 이 참조가 제거되었으므로 Message Queue 클라이언트에서 mail.jar을 명시적으로 CLASSPATH에 두어야 합니다.
다음 문제는 Message Queue 관리 및 구성에 관련된 내용입니다.
Windows 시스템에서 CLASSPATH에 큰따옴표가 포함되어 있으면 imqadmin 및 imqobjmgr 유틸리티에서 오류가 발생합니다(버그 아이디 5060769).
해결 방법: 이 오류 메시지는 무시해도 됩니다. 브로커가 모든 오류를 사용자에게 알리는 작업을 올바로 수행합니다. 이 오류는 시스템의 안정성에 영향을 주지 않습니다.
Solaris 및 Windows 스크립트의 -javahome 옵션에 입력한 값에 공백이 있는 경우 해당 옵션이 작동되지 않습니다(버그 아이디 4683029).
javahome 옵션은 Message Queue 명령 및 유틸리티에서 사용할 대체 Java 2 호환 런타임을 지정하는 데 사용됩니다. 그러나 대체 Java 런타임의 경로 이름에는 공백이 포함되지 않아야 합니다. 다음은 공백을 포함하는 경로의 예입니다.
Windows: C:/jdk 1.4
Solaris: /work/java 1.4
해결 방법: 공백이 없는 위치 또는 경로에 Java 런타임을 설치합니다.
imqQueueBrowserMaxMessagesPerRetrieve 속성은 클라이언트 런타임에서 대기열의 내용을 찾아볼 때 한 번에 검색하는 메시지의 최대 수를 지정합니다. 클라이언트 응용 프로그램에는 항상 대기열의 모든 메시지가 표시됩니다. 따라서 imqQueueBrowserMaxMessagesPerRetrieve 속성은 클라이언트 런타임에 전달될 대기 메시지가 청크되는 방식(큰 메모리 청크 또는 작은 메모리 청크)에 영향을 미치지만 검색되는 전체 메시지에 영향을 미치지는 않습니다. 이 속성 값을 변경하면 성능에 영향을 미칠 수 있지만 클라이언트 응용 프로그램에서 더 많은 데이터 또는 더 적은 데이터를 얻도록 하지는 않습니다(버그 아이디 6387631).
다음 문제는 Message Queue 브로커에 영향을 줍니다.
라운드 로빈 전달에 대한 브로커 구성 방법에 약간의 혼동이 있었습니다. 해결책을 간단하게 구성할 수 있습니다.
대상 속성 maxNumActiveConsumers를 -1로 설정하여 라운드 로빈 전달을 활성화합니다.
대상 속성 consumerFlowLimit를 1로 설정하여 다음 사용자에 전달하기 전에 단일 사용자에 전달할 메시지의 수를 지정합니다. 다른 청크에서는 이 속성을 원하는 값으로 설정합니다. 기본적으로 100개 메시지가 각 사용자에 전달됩니다.
영구 저장소가 너무 많은 대상을 열면 브로커에 액세스할 수 없게 됩니다(버그 아이디 4953354).
해결 방법: 이 상황은 브로커가 시스템 파일 열기 설명자 제한에 도달하면 발생합니다. Solaris와 Linux에서 ulimit 명령을 사용하여 파일 설명자 제한을 늘립니다.
대상이 삭제되면 사용자와의 연결이 끊어집니다(버그 아이디 5060787).
대상이 삭제되면 활성 사용자와의 연결이 끊어집니다. 사용자와의 연결이 끊어진 후에는 대상이 다시 생성된 후에도 더 이상 메시지를 받을 수 없습니다.
해결 방법: 이 문제는 해결 방법이 없습니다.
다음 문제는 클러스터된 브로커에 영향을 줍니다.
이 릴리스에서는 완전히 연결된 브로커 클러스터만 지원됩니다. 즉, 클러스터에 있는 모든 브로커가 해당 클러스터 내의 다른 모든 브로커와 직접 통신해야 합니다. imqbrokerd -cluster 명령줄 인수를 사용하여 브로커를 연결하는 경우 해당 클러스터의 모든 브로커가 포함되어 있는지 확인해야 합니다.
HADB를 사용하는 브로커는 10MB를 초과하는 메시지를 처리할 수 없습니다. (버그 6531734)
클라이언트가 고가용성 브로커에 연결되면 클라이언트 런타임이 imqAddressListIterations 설정 값에 관계 없이 성공할 때까지 재연결을 받습니다.)
클러스터의 일부인 브로커에 연결된 클라이언트는 현재 해당 클러스터에서 원격 브로커에 있는 대기열을 찾아보기 위해 QueueBrowser를 사용할 수 없습니다. 클라이언트는 직접 연결된 브로커에 있는 대기열의 내용만 찾아볼 수 있습니다. 그렇지만 클라이언트는 여전히 모든 대기열로 메시지를 보내거나 클러스터에 있는 모든 브로커의 대기열에서 메시지를 사용할 수 있습니다. 찾아보기만 제한을 받습니다.
기존 클러스터에서 3.x 브로커와 4.1 브로커를 클러스터링하려면 4.1 브로커에 대해 등록 정보 imq.autocreate.queue.maxNumActiveConsumers=1을 설정해야 합니다. 그렇지 않으면 브로커는 클러스터 연결을 설정할 수 없습니다.
고가용성 클러스터로 변환한 경우 Message Queue 관리자 유틸리티(imqdbmgr)를 사용하여 기존의 독립 실행형 HADB 영구 데이터 저장소를 공유 HADB 저장소로 변환할 수 있습니다. 명령은 다음과 같습니다.
imqdbmgr upgrade hastore
이 유틸리티는 다음과 같은 경우에 사용할 수 있습니다.
4.0 독립 실행형 HADB 저장소를 4.1 공유 HADB 저장소로 바꿀 경우. 이 경우 브로커는 저장소를 자동으로 업그레이드합니다. 이때 imqdbmgr 명령을 실행하여 업그레이드된 데이터 저장소가 공유될 수 있도록 변환할 수 있습니다.
4.1 독립 실행형 HADB 저장소를 공유 HADB 저장소로 바꿀 경우. 이 경우에는 위에 표시된 imqdbmgr 명령을 실행하여 데이터 저장소가 공유될 수 있도록 변환하기만 하면 됩니다.
이 명령은 HADB 저장소 변환만을 지원하므로 이를 사용하여 파일 기반의 저장소 또는 다른 JDBC 저장소를 공유 HADB 저장소로 변환할 수 없습니다. 이전에 Message Queue 3.x 버전을 실행 중인 경우 고가용성 기능을 사용하기 위해서는 HADB 저장소를 만든 다음 데이터를 해당 저장소로 수동으로 마이그레이션해야 합니다.
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를 실행 중인 경우에만 사용자가 이 파일을 사용할 수 있습니다.