버전 3.7 UR1
부품 번호 820-0487
이 릴리스 노트에는 Sun Java™ System Message Queue 3.7 UR1이 출시될 당시 사용 가능한 중요한 정보가 포함되어 있습니다. 이 문서에서는 새로 추가된 기능과 향상된 기능, 알려진 제한 사항과 문제점 및 기타 정보를 제공합니다. Message Queue를 사용하기 전에 먼저 이 문서를 읽어 보십시오.
이 릴리스 노트의 최신 버전은 Sun Java System Message Queue 설명서 웹 사이트에서 찾아볼 수 있습니다. 소프트웨어를 설치 및 설정하기 전과 후에도 웹 사이트를 검토하여 최신 릴리스 노트와 제품 설명서를 정기적으로 확인하시기 바랍니다.
이 릴리스 노트는 다음 내용으로 구성되어 있습니다.
이 문서에는 관련된 정보를 추가로 얻을 수 있는 타사 URL도 나와 있습니다.
Sun은 이 문서에 언급된 타사 웹 사이트의 이용 가능성에 대해 책임을 지지 않습니다. Sun은 그러한 사이트 또는 자원에 있거나 사용 가능한 내용, 광고, 제품 또는 기타 자료에 대하여 보증하지 않으며 책임 또는 의무를 지지 않습니다. Sun은 해당 사이트나 자원을 통해 사용 가능한 내용, 상품 또는 서비스의 사용과 관련하여 발생했거나 발생했다고 간주되는 손해나 손실에 대해 책임 또는 의무를 지지 않습니다.
날짜 |
변경 사항 설명 |
---|---|
2006년 8월 |
이 문서의 초기 릴리스입니다. |
2007년 2월 |
이 문서의 최종 릴리스입니다. |
Sun Java System Message Queue는 완벽한 기능의 메시지 서비스로 Java Messaging Specification(JMS) 1.1을 따르는 안정적인 비동기 메시징을 제공합니다. 또한 Message Queue는 JMS 사양을 능가하는 다양한 기능을 제공하여 대규모 엔터프라이즈 배포 요구를 충족시킵니다.
Message Queue 3.7 UR1은 Message Queue 3.6의 유지 보수 릴리스로 버그 수정과 몇몇 향상된 기능을 포함합니다. 이 절은 다음 내용으로 구성되어 있습니다.
Message Queue 3.7 UR1에는 다음과 같은 새로운 기능이 추가되었습니다.
이러한 기능에 대해서는 이어지는 절에서 설명합니다.
제품의 제공을 능률화하기 위한 노력의 일환으로 Sun Java Message Queue의 플랫폼판 및 엔터프라이즈판을 결합하고 있습니다. Message Queue 3.7 UR1부터는 단일판만 사용할 수 있으며 이는 독립 실행형 배포에서의 기능 제한 사항을 사실상 없애 줍니다. 이로 인해 사용자가 이 제품을 손쉽게 사용할 수 있을 것으로 기대합니다.
결합된 판은 또한 Message Queue와 Solaris Enterprise System을 효과적으로 제휴하며, 지원, 유지 보수 또는 보상 없이 엔터프라이즈판 기능을 사용할 수 있는 영구적이며 기반이 넓은 권한을 제공합니다. 이전 릴리스에서와 마찬가지로 지원 및 유지 보수 서비스를 위한 여러 사용권 옵션을 계속 제공할 것입니다. Message Queue는 Java Enterprise System 및 Application Platform Suite와 함께 패키지로 계속 제공됩니다. 사용자의 필요에 가장 적합한 옵션을 찾으려면 http://www.sun.com의 온라인 매장을 방문하거나 판매처에 문의하십시오. 다음 표에서는 Message Queue 새 단일판의 업그레이드 경로를 설명합니다.
표 1–2 Message Queue 3.7 UR1의 업그레이드 경로
이전 판 |
업그레이드 경로 |
설명 |
---|---|---|
플랫폼판 |
Sun Java System Message Queue 3.7 UR1 |
모든 기능(플랫폼 및 엔터프라이즈)을 이제 3.7 UR1 고객이 사용할 수 있습니다. 사용권을 구매할 경우 지원 옵션을 사용할 수 있습니다. |
엔터프라이즈판 |
Sun Java System Message Queue 3.7 UR1 |
기능 변경 사항이 없습니다. 다양한 사용권 및 지원 옵션이 제공됩니다. |
플랫폼판 지원 계약 |
엔터프라이즈판 지원 계약으로 업그레이드 |
플랫폼판의 이전 릴리스에 대한 기존 지원 계약이 계속 갱신됩니다. 이전 플랫폼판 릴리스에 대해서는 새로운 플랫폼판 계약이 발행되지 않습니다. |
엔터프라이즈판 지원 계약 |
변경 사항 없음 |
기존 계약이 계속 갱신됩니다. 새로운 계약이 발급됩니다. |
다음 표에서는 다양한 Message Queue 제품의 공급원 변경 사항을 설명합니다.
표 1–3 Message Queue 제품의 공급원 변경 사항
제품 |
이전 공급원 |
새 공급원 |
설명 |
Open Message Queue |
적용할 수 없음 |
Sun 다운로드 센터 제품 페이지 |
독립 실행형 다운로드. 커뮤니티 지원만 제공됩니다. 지원 계약은 제공되지 않습니다. |
Message Queue 플랫폼판 |
Message Queue 제품 페이지를 통해 액세스 가능한 Sun 다운로드 센터 |
더 이상 사용할 수 없음 |
이제 플랫폼 및 엔터프라이즈 기능을 결합하는 단일 버전의 Message Queue만 사용할 수 있습니다. |
Message Queue 엔터프라이즈판 시험판(플랫폼판을 통해 제공) |
Message Queue 제품 페이지를 통해 액세스 가능한 Sun 다운로드 센터 |
시험용 사용권이 더 이상 필요하지 않음 |
더 이상 필요하지 않음 |
Message Queue 엔터프라이즈판 90일 시험판(Java Enterprise System 다운로드 또는 CD를 통해 제공) |
Java Enterprise System 다운로드 센터(3 GA 이전 버전(2006년 3월)) |
Solaris Enterprise System 다운로드 센터 |
Solaris Enterprise System 사용권. 제품 사용권이 있을 경우 지원 옵션을 사용할 수 있습니다. (90일 시험 사용권은 더 이상 필요하지 않습니다.) |
Message Queue 엔터프라이즈판(SunStore, CD, 개인 사용권, Java Enterprise System 사용권, Java Enterprise System을 통해 제공되는 제품군 사용권을 통해 제공) |
Java Enterprise System 또는 제품군 다운로드 센터, 미디어 |
Solaris Enterprise System 또는 제품군 다운로드 센터, 미디어 특별 서비스 |
변경 사항 없음 |
새 함수: MQGetDestinationName()
MQGetDestinationName (const MQDestinationHandle destinationHandle, MQString * destinationName); |
이 함수를 사용하여 대상의 이름을 가져올 수 있습니다. 반환된 destinationName은 호출자가 MQFreeString() 함수를 호출하여 비울 수 있는 복사본입니다.
매개 변수
이름을 알려고 하는 대상에 대한 핸들입니다.
이름에 대한 출력 매개 변수입니다.
이 함수는 회신 패턴을 사용할 때 유용합니다. MQGetMessageReplyTo 함수를 사용하여 메시지를 전송할 대상에 대한 핸들을 가져올 수 있습니다. 그런 다음 MQGetDestinationName을 사용하여 해당 대상의 이름을 얻을 수 있습니다. 대상 이름을 얻은 후 해당 이름을 기반으로 메시지 처리를 수행할 수 있습니다.
새로 열거된 값: MQ_MESSAGE
새 MQMessageType, MQ_MESSAGE는 C 클라이언트가 Message 유형의 JMS 메시지를 다른 Message Queue 클라이언트(C 및 Java 모두 해당)와 교환할 수 있도록 해 줍니다.
typedef enum _MQMessageType {MQ_TEXT_MESSAGE = 0, MQ_BYTES_MESSAGE = 1, MQ_MESSAGE = 3, MQ_UNSUPPORTED_MESSAGE = 2} MQMessageType; |
MQ_MESSAGE 유형은 헤더와 등록 정보는 있지만 메시지 본문이 없는 메시지를 식별합니다. 이러한 유형의 메시지를 만들려면 MQCreateMessage() 함수를 사용합니다.
새 연결 등록 정보 MQ_UPDATE_RELEASE_PROPERTY는 설치된 Message Queue 버전에 대한 업데이트 릴리스 버전을 지정합니다. 버전 정보를 확인하려면 MQGetMetaData() 함수를 사용합니다.
Message Queue의 영구 저장소 형식에 두 가지 사항이 변경되어 성능이 향상되었습니다. 하나는 파일 저장소에 대한 변경 사항이며 다른 하나는 JDBC 저장소에 대한 변경 사항입니다.
파일 저장소의 트랜잭션 정보
Message Queue 파일 기반의 영구 저장소에 저장되는 트랜잭션 상태 정보 형식이 변경되어 디스크 입출력을 줄이고 JMS 트랜잭션의 성능이 향상되었습니다.
Oracle JDBC 저장소
Message Queue의 이전 버전에서 Oracle에 사용된 저장소 스키마는 LONG RAW 데이터 유형을 사용하여 메시지 데이터를 저장했습니다. Oracle 8에서는 BLOB 데이터 유형을 도입했으며 LONG RAW 유형은 더 이상 사용하지 않습니다. Message Queue 3.7 UR1에서는 성능 및 지원 가능성 향상을 위해 BLOB 데이터 유형으로 전환합니다.
이러한 변경 사항은 저장소 호환성에 영향을 미치기 때문에 저장소 버전이 350에서 370으로 변경되었습니다. Message Queue 3.7 UR1은 JDBC 및 파일 기반 저장소 모두에 대해 영구 저장소의 이전 200 버전 및 350 버전에서 370 버전으로의 자동 변환을 지원합니다. 처음 imqbrokerd가 시작될 때 유틸리티에서 이전 저장소를 감지하면 이전 저장소를 그대로 두고 새 형식의 저장소로 마이그레이션합니다.
이 업그레이드를 롤백해야 하는 경우 Message Queue 3.7 UR1 설치를 제거한 다음 이전에 실행 중이던 버전을 다시 설치할 수 있습니다. 이전 저장소의 복사본이 그대로 유지되므로 브로커는 이전 저장소 복사본을 실행할 수 있습니다.
Message Queue의 하드웨어 및 소프트웨어 요구 사항은 Sun Java Enterprise System 설치 설명서에 제공됩니다.
영역은 시스템에 개별 환경을 제공하고 논리적으로 응용 프로그램을 서로 분리시키는 Solaris 컨테이너 기술입니다. 영역을 사용하면 Solaris 운영 체제의 인스턴스 내에 가상 운영 체제 환경을 만들 수 있습니다. 여러 영역에서 응용 프로그램을 실행하면 동일한 시스템에서 동일한 응용 프로그램의 다른 버전이나 다른 인스턴스를 실행하면서 동시에 중앙 집중식 관리가 가능하며 자원을 효과적으로 공유할 수 있습니다.
이 절에서는 영역에 대해 간단히 설명하고 Message Queue 3.7 UR1에서 영역을 사용하는 방법을 설명합니다.
영역 환경에는 전역 영역과 하나 이상의 비전역 영역이 포함되어 있습니다. 시스템에 Solaris 10을 처음 설치하면 하나의 전역 영역만 있습니다. 관리자는 다른 비전역 영역을 전역 영역의 하위 영역으로 만들 수 있습니다. 각 영역은 Solaris를 실행하는 독립 시스템으로 표시됩니다. 각 영역은 파일 시스템에 자체 IP 주소, 시스템 구성, 실행 중인 응용 프로그램의 인스턴스 및 자체 영역을 가집니다.
전역 영역에는 비전역 영역 간에 공유 가능한 자원이 포함되어 있으며 이를 통해 일부 관리 기능의 중앙 집중화가 가능합니다. 예를 들어 전역 영역에 설치된 패키지는 기존의 모든 비전역 영역에서 사용 가능합니다(전파됩니다). 이를 통해 설치, 업그레이드 및 설치 제거와 같은 라이프사이클 관리를 중앙 집중식으로 수행할 수 있습니다. 동시에 비전역 영역에서 제공되는 격리 기능은 보안을 강화해 주며 이를 통해 동일한 시스템에서 실행되는 동일한 응용 프로그램의 여러 버전 또는 다르게 구성된 인스턴스를 실행할 수 있습니다.
비전역 영역은 전체 루트 영역이거나 스파스 루트 영역입니다. 이 중에서 관리 제어 기능과 자원 최적화 간의 균형을 어떻게 조정할 것인가에 따라 응용 프로그램의 환경으로 영역을 선택합니다.
전체 루트 영역에는 전역 영역의 파일 시스템의 읽기/쓰기 복사본이 포함됩니다. 전역 영역에 설치된 패키지는 전체 루트 영역에 해당 레지스트리 정보와 함께 자동으로 복사됩니다. 결과적으로 자원은 소모되지만 관리 제어 기능이 최대화됩니다.
스파스 루트 영역에는 전역 영역의 파일 시스템 일부에 대한 읽기/쓰기 복사본이 포함되며 다른 파일 시스템은 읽기 전용 파일 시스템으로 마운트됩니다. 전역 영역에 설치된 패키지는 읽기 전용 파일 시스템 및 레지스트리 정보의 자동 동기화를 통해 스파스 루트 영역에서 사용할 수 있습니다. 스파스 루트 영역은 중앙 집중식 관리 기능은 저하되지만 자원 공유 기능이 최적화됩니다.
Java Enterprise System을 구성하는 구성 요소는 일부 공유 구성 요소에 따라 다르며 그로 인해 영역 작업에 몇 가지 제한 사항이 발생됩니다. 영역 환경에서는 다음 규칙에 의해 공유 구성 요소가 관리됩니다.
영역 내의 모든 공유 구성 요소는 같은 JES 버전이어야 합니다. 이 요구 사항은 세 가지 결과를 가져옵니다.
다른 버전의 공유 구성 요소를 설치하려면 각 버전이 개별 영역에 있어야 합니다.
영역 내에서 공유 구성 요소를 업그레이드하거나 이후 버전을 설치하는 경우 모든 공유 구성 요소를 업그레이드해야 합니다.
전역 영역에 공유 구성 요소를 설치하는 경우 필요 시 비전역 영역의 공유 구성 요소가 업그레이드되도록 해야 합니다.
공유 구성 요소는 스파스 루트 영역의 읽기 전용 파일 시스템 때문에 스파스 루트 영역에 설치할 수 없습니다. 대신 전역 영역에 설치해야 합니다. 공유 구성 요소에 의존하는 제품 구성 요소는 전역 영역에 먼저 설치한 다음 비전역 영역으로 전파해야 합니다.
이러한 요구 사항은 Message Queue가 Java Enterprise System의 구성 요소 제품이므로 설치에 영향을 미치고 영역 사용에 제한을 줍니다.
Message Queue 제품은 /usr 디렉토리에 설치되므로 먼저 전역 영역에서 설치하거나 업그레이드해야 합니다.
Message Queue가 전역 영역에 설치되면 모든 비전역 영역에 전파되도록 설정됩니다. 전역 영역에 Message Queue를 설치하고 나면 모든 영역에 같은 버전의 Message Queue가 설치됩니다. 영역에 로그인하여 pkginfo -l SUNWiqu 명령을 실행하면 설치가 이루어지고 이는 전역 영역에 있는 버전과 동일한 버전입니다. 그런 다음 Message Queue 브로커의 독립 인스턴스가 /var 및 /etc 디렉토리에 보관된 구성 데이터와 인스턴스를 공유하지 않으므로 각 영역에서 해당 인스턴스를 실행할 수 있습니다. (대부분의 다른 Java Enterprise System 구성 요소는 전역 영역에 설치된 경우 전파되지 않습니다.)
Message Queue가 비전역 영역에 전파되므로 전역 인스턴스는 비전역 영역의 설치에 영구적으로 연결됩니다. 따라서 전역 영역의 Message Queue를 설치 제거하거나 업그레이드하면 언제든지 비전역 영역에서 실행 중인 인스턴스에 영향을 미치게 됩니다. 다음 예는 이로 인해 발생할 수 있는 결과를 보여줍니다.
전역 영역에 Message Queue 3.7 UR1을 설치합니다. 그러면 모든 비전역 영역에 Message Queue 3.7 UR1 패키지도 설치됩니다.
전체 루트 영역에서 Message Queue 3.7 UR1 설치를 제거합니다. 그런 다음 전체 루트 영역에 Message Queue 3.6을 설치합니다.
이제 유용할 것으로 판단되는 설정으로 다른 영역에서 다른 버전의 Message Queue가 실행되도록 합니다.
전역 영역에서 Message Queue 3.7 UR1 설치를 제거합니다. 그러면 전체 루트 영역의 Message Queue 3.6 인스턴스를 포함하여 모든 다른 영역에서 Message Queue의 설치가 제거됩니다.
전역 영역에서의 Message Queue 설치 또는 설치 제거로 인해 발생되는 영향에 항상 주의하십시오.
다음은 다른 영역에 다른 버전의 Message Queue와 다른 인스턴스를 설치하는 방법을 설명해 주는 두 가지 사용 사례입니다.
Solaris 10, Solaris 10U1 또는 Solaris 10U2에서 Message Queue를 전체 루트 영역에 설치하려면 먼저 전역 영역에서 Lockhart를 업그레이드해야 합니다. 자세한 내용은 버그 645030에 대한 해결 방법을 참조하십시오.
전역 영역에 원하는 버전의 Message Queue를 설치합니다.
이러한 버전은 기존의 모든 비전역 영역에 전파됩니다. 추가 비전역 영역을 만들 경우 Message Queue는 또한 이러한 영역에 채워집니다. (스파스 루트 영역뿐만 아니라 전체 루트 영역에도 다른 인스턴스를 설치할 수 있지만 스파스 루트 영역을 사용하면 디스크 공간 및 다른 자원을 더 효과적으로 사용할 수 있습니다.)
Message Queue를 다른 모든 비전역 영역에 전파하려면 지금 이러한 영역을 만듭니다.
각 비전역 영역에서 Message Queue의 인스턴스를 실행합니다.
전역 영역에서 Message Queue 설치를 제거합니다.
전체 루트 영역을 만들고, 각 영역을 만들 때 다음 지시문을 사용하여 각 영역이 /usr 디렉토리를 공유하지 않도록 구성합니다.
remove inherit-pkg-dir dir=/usr
각 전체 루트 영역에 다른 버전의 Message Queue를 설치합니다.
전역 영역에서 Message Queue를 설치하거나 설치 제거하면 전체 루트 영역에서 실행 중인 Message Queue의 모든 인스턴스 및 버전에 영향을 미친다는 점에 주의하십시오.
이 릴리스에서 해결된 버그에서는 Message Queue 3.7 UR1에서 해결된 버그에 대해 설명합니다.
표 1–4 Message Queue 3.7 UR1에서 해결된 버그
버그 번호 |
설명 |
---|---|
6193884 |
메시지를 표시하는 데 ASCII가 아닌 문자가 필요한 로켈의 경우 Message Queue는 알아 볼 수 없는 메시지를 syslog로 출력함 |
6251450 |
클러스터 종료 도중 connectList의 ConcurrentModificationException |
6252763 |
java.nio.HeapByteBuffer.putLong/Int의 java.nio.BufferOverflowException |
6260076 |
Oracle 저장소에서 시작 후 첫 번째로 게시되는 메시지가 느림 |
6260814 |
JMSXUserID에서의 선택기 처리가 항상 false로 처리됨 |
6264003 |
대기열 브라우저는 완결되지 않는 트랜잭션의 일부인 메시지를 표시함 |
6271876 |
사용되지 않은 메시지를 가진 사용자를 종료할 때 연결 흐름 제어가 제대로 작동하지 않음 |
6284769 |
각 열거에 대해 새 브라우저를 작성하고 닫아도 QueueBrowser에서 메모리 누출이 발생함 |
6294767 |
Message Queue 브로커가 여는 네트워크 소켓에 SO_REUSEADDR을 설정해야 함 |
6304043 |
브로커가 공유 비영구 가입에 대해 clientID가 null이 아님을 확인하지 않음 |
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 |
Derby 데이터베이스 지원 추가 |
6381693 |
사용자의 브로커가 다시 시작된 후 원격 사용자에게 다시 전달되는 메시지에 대해 JMSRedelivered 플래그가 false로 설정됨 |
6388049 |
불완전한 XA 트랜잭션을 삭제하지 못함 |
6403968 |
사용자 기반 흐름 제어 프로토콜을 추가하여 여러 수신자에 대한 로드 균형 조정 허용 |
6403958 |
사용 불능 메시지 대기열에서 가장 오래된 비지속성 메시지를 제거하려고 하면 브로커 예외가 발생됨 |
6406862 |
브로커 오류 Monitor destination errormq.metrics.destination.queue.Name 이후에 어떠한 대상도 모니터링할 수 없음 |
6415068 |
JMS Message Queue의 일반 자원 어댑터인 AS 8.1 UR2에서 트랜잭션 복구 실패 |
6421781 |
다음 구문을 사용하는 브로커에 대한 연결 지원 —b mqtcp://hostName:portNumber/serviceName |
6423696 |
COMMIT REPLY 오류 발생 후 Session.rollback이 사용된 메시지를 실제로 롤백하지 않음 |
핵심 제품 설명서에 들어 있지 않은 최신 정보에 대한 내용은다음 절을 참조하십시오.
Solaris, Linux 및 HPUX 플랫폼에서의 Message Queue 제품(Java Enterprise System에 번들된 제품) 설치와 관련된 사전 설치 지침 및 기타 모든 정보에 대한 자세한 내용은 Sun Java Enterprise System 설치 설명서를 참조하십시오.
Solaris, Linux, HPUX 및 Windows 플랫폼에서의 Message Queue(Java Enterprise System의 일부인 제품) 업그레이드와 관련된 업그레이드 및 마이그레이션 지침에 대한 자세한 내용은 Sun Java Enterprise System Upgrade and Migration Guide를 참조하십시오.
이 절에서는 Message Queue 3.7 UR1의 호환성 문제를 설명합니다.
Message Queue는 시간이 흐름에 따라 변경될 수 있는 많은 인터페이스를 사용합니다. Sun Java System Message Queue 3.7 UR1 관리 설명서의 부록 B, Message Queue 인터페이스의 안정성에서는 인터페이스의 안정성에 따라 인터페이스를 분류합니다. 인터페이스가 안정적일수록 제품의 향후 버전에서 변경될 가능성이 적어집니다.
Message Queue의 다음 주요 릴리스에서는 클라이언트가 해당 릴리스와 호환되지 않을 수 있습니다. 이러한 변경 사항에 대비할 수 있도록 이 정보를 미리 제공합니다.
Sun Java System Message Queue의 일부로 설치된 개별 파일의 위치가 변경될 수 있습니다. 따라서 특정 Message Queue 파일의 현재 위치에 의존하는 기존 응용 프로그램이 작동하지 않을 수 있습니다.
최신 브로커가 있는 클러스터에서 3.5 이전 브로커가 더 이상 작동하지 않을 수 있습니다.
Message Queue의 향후 릴리스에서 클라이언트가 1.3 이전 버전의 JDK를 사용하지 못할 수 있습니다.
다음 절에서는 사소한 수정 사항 및 추가 사항을 제외한 Message Queue 설명서의 업데이트 및 변경 사항에 대해 설명합니다.
Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients가 MQ_Message 메시지 유형 및 연결 등록 정보 MQ_UPDATE_RELEASE_PROPERTY의 MQGetDestinationName 함수 추가를 반영하기 위해 업데이트되었습니다.
Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients가 안전한 클라이언트 설정 방법 및 클라이언트가 자동 재연결 동안 발생하는 예외를 처리하는 방법에 대한 정보를 포함하기 위해 업데이트되었습니다.
Sun Java System Message Queue 3.7 UR1 Administration Guide는 브로커의 데이터베이스 테이블 정보 및 브로커가 고정 포트를 사용하도록 구성하는 방법에 대한 정보를 제공하기 위해 업데이트되었습니다.
이 절에는 Message Queue 3.7 UR1의 알려진 문제점이 나열되어 있습니다. 적용되는 제품 영역은 다음과 같습니다.
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으로 메일을 보내십시오.
SSL을 사용하는 연결 서비스는 자체 서명된 서버 인증서 즉, 신뢰할 수 있는 호스트 모드만 지원하도록 제한됩니다.
HTTP 전송을 사용하는 JMS 클라이언트가 갑자기 종료되면(예: Ctrl-C 사용) 브로커는 약 1분이 경과한 후 클라이언트 연결 및 연결된 모든 자원을 릴리스합니다.
클라이언트의 다른 인스턴스가 1분 이내에 시작되어 동일한 클라이언트 아이디, 영구 가입 또는 대기열을 사용하려고 하면 "클라이언트 아이디가 이미 사용 중"이라는 예외가 발생할 수 있습니다. 이것은 실제 문제가 아니라 위에서 설명한 종료 프로세스의 부작용일 뿐입니다. 약 1분 간의 지연 후에 클라이언트가 시작되면 모든 문제가 해결됩니다.
Message Queue 3.7 UR1에서 LDAP 서버를 사용자 저장소로 사용하는 브로커 구성 예는 config.properties 파일의 주석 영역에 있으며 default.properties 파일의 LDAP 사용자 저장소 예는 주석으로 처리되었습니다.
default.properties 파일에 설정된 LDAP 사용자 저장소 속성 예의 모든 속성 값을 신뢰하는 경우 JMS 응용 프로그램 클라이언트가 JMS 연결 생성을 시도하는 동안 보안 예외가 발생합니다. 이 문제는 Message Queue 3.7 UR1로 업그레이드한 후 발생합니다.
JMS 클라이언트가 Message Queue 3.7 UR1 브로커에 연결하려고 시도하면 브로커 로그에 오류가 기록되며 JMS 클라이언트는 다음 예외를 수신합니다.
SecurityException. 20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic:com.sun.messaging.jmq.auth.LoginException: [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic
해결 방법 Sun Java System Message Queue 3.7 UR1 관리 설명서의 7장, 보안 관리의 지침에 따라 브로커 등록 정보 imq.user_repository.ldap.uidattr을 설정합니다.
다음 항목은 브로커 클러스터와 관련됩니다.
이 릴리스에서는 완전히 연결된 브로커 클러스터만 지원됩니다. 즉, 클러스터에 있는 모든 브로커가 해당 클러스터 내의 다른 모든 브로커와 직접 통신해야 합니다. imqbrokerd -cluster 명령줄 인수를 사용하여 브로커를 연결하는 경우 해당 클러스터의 모든 브로커가 포함되어 있는지 확인해야 합니다.
클러스터의 일부인 브로커에 연결된 클라이언트는 현재 해당 클러스터에서 원격 브로커에 있는 대기열을 찾아보기 위해 QueueBrowser를 사용할 수 없습니다. 클라이언트는 직접 연결된 브로커에 있는 대기열의 내용만 찾아볼 수 있습니다. 그렇지만 클라이언트는 여전히 모든 대기열로 메시지를 보내거나 클러스터에 있는 모든 브로커의 대기열에서 메시지를 사용할 수 있습니다. 찾아보기만 제한을 받습니다.
브로커 클러스터에서 마스터 브로커를 사용하지 않는 경우 브로커가 저장하여 클러스터에 추가한 지속성 정보가 클러스터 내의 다른 브로커에 전파되지 않습니다.
클러스터에서 브로커에 대한 연결이 해제됨(버그 아이디 6377527)
이 버그가 발생하는 이유는 연결이 해제된 브로커 주소가 역순환 IP 주소(127.0.0.1)로 결정되기 때문입니다.
해결 방법 브로커 주소가 역순환 IP 주소로 결정되지 않도록 확인합니다.
브로커 클러스터에서 브로커는 시작되지 않은 원격 연결에 메시지 대기열을 만듦(버그 ID 4951010)
해결 방법 일단 연결이 시작되면 사용자가 메시지를 수신합니다. 사용자의 연결이 종료된 경우 메시지는 다른 사용자에게 전달됩니다.
다음 문제는 Message Queue의 관리 및 구성에 관련됩니다.
Windows 시스템의 CLASSPATH에 큰따옴표가 포함되어 있으면 imqadmin 및 imqobjmgr 유틸리티에서 오류가 발생함(버그 ID 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 브로커에 영향을 미칩니다.
imqbrokerd —license 명령은 만료되었거나 중복된 정보를 표시합니다. 이 명령은 시험 사용권이 더 이상 지원되지 않더라도 이 사용권에 대한 정보를 표시하고(버그 ID 6489711) unl 사용권에 대한 중복된 정보를 표시합니다(버그 ID 6441015).
해결 방법 이러한 문제는 해결 방법이 필요하지 않은 표면적인 문제입니다.
브로커는 사용 불능 메시지 대기열에 대한 기본 제한인 1000개 메시지를 따르지 않으므로 메모리가 부족해질 때까지 사용 불능 메시지 대기열에 메시지를 계속 추가함(버그 ID 6502744)
해결 방법 사용 불능 메시지 대기열 제한을 1001이나 1000이 아닌 값으로 재설정합니다.
HTTPS createQueueConnection이 Windows 2000에서 가끔 예외를 발생시킴(버그 ID 4953348)
해결 방법 연결을 재시도합니다.
Ctrl-C를 사용하여 브로커를 종료하면 저장소를 닫은 후 트랜잭션이 정리될 수 있음(버그 ID 4934446)
메시지 또는 트랜잭션이 처리되는 동안 브로커가 종료되면 브로커에서 "저장소가 닫힌 후에 저장소 메소드가 액세스되었습니다." 오류가 표시될 수 있습니다.
해결 방법 이 오류 메시지는 무시해도 됩니다. 브로커가 사용자에게 모든 오류를 알리는 작업을 올바로 수행합니다. 이 오류는 시스템의 안정성에 영향을 주지 않습니다.
영구 저장소가 너무 많은 대상을 열면 브로커에 액세스할 수 없게 됨(버그 ID 4953354)
해결 방법 이 상황은 브로커가 시스템 파일 열기 설명자 제한에 도달하면 발생합니다. Solaris와 Linux에서 ulimit 명령을 사용하여 파일 설명자 제한을 늘립니다.
대상이 삭제되면 사용자와의 연결이 끊어짐(버그 ID 5060787)
대상이 삭제되면 활성 사용자와의 연결이 끊어집니다. 사용자와의 연결이 끊어진 후에는 대상이 다시 생성된 후에도 더 이상 메시지를 받을 수 없습니다.
해결 방법 이 문제는 해결 방법이 없습니다.
JMSMessageID를 사용하는 메시지 선택이 작동하지 않음(버그 ID 6196233)
해결 방법 다음 표현식에서 선택기를 변경합니다.
JMSMessageID = "ID:message-id-string"
다음 표현식으로 변경
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue 대기열 브라우저에 완결되지 않은 메시지가 표시됨(버그 아이디 6264003)
대기열의 내용을 찾을 때 트랜잭션에서 생성되었지만 아직 완결되지 않은 메시지가 대기열 브라우저 열거에 나타날 수 있습니다.
해결 방법 이 문제는 해결 방법이 없습니다.
완결 도중에 브로커가 중단된 후 메시지를 사용하지 못할 수 있음(버그 ID 6467874)
매우 드문 경우이기는 하지만 브로커 중단 도중 트랜잭션의 메시지를 사용자가 사용하지 못할 수 있습니다. 특히 완결 처리 도중 작은 창이 있는데 이 창으로 인해 메시지가 영구 저장소에 묶여버릴 수 있습니다. 이 경우 중단 후에 브로커 시작 시에 다음 메시지가 표시됩니다.
[06/Sep/2006:10:11:11 PDT] ERROR [B2085]: 대상 q0 [Queue] 로드가 실패했습니다. 해당 대상에 저장된 메시지는 사용할 수 없습니다.: > com.sun.messaging.jmq.jmsserver.util.BrokerException: 메시지 8-129.145.180.87(b8:8b:26:15:41:26)-38998-1157562551217에 관련된 확인 목록이 이미 있습니다.
해결 방법 이 문제는 해결 방법이 없습니다.
Message Queue 3.7 UR1의 베타 릴리스에는 독립 실행형 제품이 없습니다. 따라서 이 릴리스의 경우 Java Enterprise System 설치 프로그램을 사용하여 Message Queue를 설치해야 합니다. 지침은 Sun Java System 설치 설명서를 참조하십시오.
Sun Java System Message Queue 3.7 UR1에는 이진 형식으로 사용 및 배포할 수 있는 다음 파일 집합이 있습니다.
jms.jar |
libmqcrt.so (UNIX) |
imq.jar |
libmqcrt.so (HPUX) |
imqxm.jar |
mqcrt1.dll (Windows) |
fscontext.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에서 의견 보내기를 누릅니다. 온라인 양식에 설명서 제목과 부품 번호를 입력합니다. 부품 번호는 해당 설명서의 제목 페이지나 문서 맨 위에 있는 7자리 또는 9자리 숫자입니다. 예를 들어, 이 설명서의 제목은 Sun Java System Message Queue 3.7 UR1 릴리스 노트이며 부품 번호는 820-0487입니다.
다음 인터넷 사이트에서 유용한 Sun Java System 관련 정보를 찾을 수 있습니다.
설명서
전문가 서비스
소프트웨어 제품 및 서비스
소프트웨어 지원 서비스
지원 및 기술 자료
Sun 지원 및 교육 서비스
컨설팅 및 전문가 서비스
개발자 정보
Sun 개발자 지원 서비스
소프트웨어 교육