이 절에는 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에 두어야 합니다.