Message Queue 4.3은 다양한 향상된 기능 및 버그 수정이 포함된 부 릴리스였습니다. 이 절에서는 이 릴리스에 포함된 새로운 기능에 대해 설명합니다.
Message Queue 4.3에는 http 지원 장치에서 Message Queue에 대한 액세스를 제공하는 새로운 UMS(universal messaging service) 및 메시징 API가 도입되었습니다. 따라서 거의 모든 응용 프로그램이 다른 응용 프로그램과 통신할 수 있으며 JMS 메시징의 안정성과 확실한 전달 기능을 유용하게 사용할 수 있습니다. 또한 UMS에서는 JMS 메시징에 대한 향상된 확장성을 제공하므로 메시징 클라이언트 수가 인터넷 규모 비율에 도달할 수 있습니다.
기본 UMS 구조는 다음 그림과 같습니다.
웹 서버에서 실행되는 UMS는 언어 중립적이며 플랫폼 독립적입니다. UMS는 JMS가 아닌 클라이언트 응용 프로그램과 JMS 공급자 간 게이트웨이로 사용됩니다. UMS는 UMS API를 사용하여 보낸 메시지를 받고, 해당 메시지를 JMS 메시지로 변환하여, 공급자의 기본 프로토콜을 통해 JMS 공급자의 대상에 생성합니다. 마찬가지로 JMS 공급자의 대상에서 메시지를 검색하고, 해당 메시지를 텍스트 또는 SOAP 메시지로 변환하여, UMS API를 통해 클라이언트에서 요청된 대로 메시지를 JMS가 아닌 클라이언트에 보냅니다.
단순하고 언어 독립적인 프로토콜 기반 UMS API는 웹 기반 및 웹 기반이 아닌 응용 프로그램을 지원하며 스크립팅 및 프로그래밍 언어와 함께 사용될 수 있습니다. API는 REST(Representational State Transfer) 스타일 프로토콜을 사용하는 단순 메시징 API 및 SOAP 메시지 헤더에 프로토콜을 포함하는 XML 메시징 API의 두 가지 스타일로 제공됩니다. 그러나 두 경우 모두 메시지를 보내거나 받으려면 API에 단일 http 요청이 필요합니다.
UMS API의 단순성과 유연성으로 인해 AJAX, .NET, Python, C, Java 및 다른 여러 응용 프로그램에서 텍스트 메시지 및/또는 SOAP(첨부 파일 포함) 메시지를 JMS 대상으로 보내거나 JMS 대상에서 메시지를 받을 수 있습니다. 예를 들어, Python 응용 프로그램은 .NET 응용 프로그램과 통신할 수 있고, iPhone은 Java 응용 프로그램과 통신할 수 있습니다.
Message Queue 4.3의 경우 UMS에서는 Message Queue만 JMS 공급자로 지원합니다.
UMS는 위에서 설명된 단순 게이트웨이 이상으로 사용됩니다. UMS는 상태 있는 클라이언트 세션과 상태 없는 클라이언트 세션을 지원합니다. 클라이언트에서 요청한 경우 UMS는 여러 서비스 요청에 걸쳐 클라이언트 응용 프로그램의 세션 상태를 유지합니다. UMS는 컨테이너에서 관리되는 인증을 사용하거나 Message Queue 브로커를 통해 클라이언트를 인증하도록 구성하거나 두 방법을 모두 사용할 수 있습니다. UMS는 트랜잭션을 지원하므로 클라이언트 응용 프로그램이 여러 서비스 요청을 단일 기본 단위로 완결하거나 롤백할 수 있습니다.
UMS는 Message Queue 브로커에 대한 단일 연결에서 다수의 클라이언트를 지원할 수 있으므로 브로커의 연결 서비스에 쉽게 로드할 수 있도록 해주어 최대 확장성을 제공합니다. 또한 수평 확장으로 UMS 용량을 늘릴 수 있어 인터넷 규모의 메시징 로드가 가능합니다.
클라이언트측에서는 프로토콜 기반 UMS API의 단순성으로 인해 클라이언트 라이브러리가 필요하지 않습니다. 따라서 나중에 API를 확장하여 클라이언트 응용 프로그램을 업그레이드할 필요 없이 추가 JMS 기능을 구현할 수 있습니다.
UMS를 사용하려면 UMS를 서블릿 2.4 이상 사양을 지원하는 웹 컨테이너에 배포하고 Message Queue 브로커를 시작한 다음 해당 대상을 생성하고 UMS API를 사용하여 메시지를 보내거나 받는 메시징 응용 프로그램을 작성합니다.
Message Queue 4.3 배포에 포함된 UMS imqums.war 파일은 플랫폼에 따라 다음 위치에 설치됩니다.
.war 파일 이름을 적절하게 바꿀 수 있습니다.
표 1–5 imqums.war 파일 위치
플랫폼 |
imqums.war 위치 |
---|---|
Solaris |
/usr/share/lib/imq |
Linux |
/opt/sun/mq/share/lib |
AIX |
IMQ_HOME/lib |
Windows |
IMQ_HOME\lib |
imqums.war을 localhost:port에 있는 웹 컨테이너에 배포한 후에는 다음 위치에서 UMS 설명서를 찾을 수 있습니다.
http://localhost:port/imqums
그렇지 않으면 다음과 같이 UMS 설명서를 찾을 수 있습니다.
UMS 구성에 대한 자세한 내용은 https://mq.dev.java.net/4.3-content/ums/config.html을 참조하십시오.
UMS API 설명서에 대해서는 https://mq.dev.java.net/4.3-content/ums/protocol.html을 참조하십시오.
여러 언어의 프로그래밍 예에 대해서는 https://mq.dev.java.net/4.3-content/ums/examples/README.html을 참조하십시오.
UMS는 현재 다음 웹 컨테이너에서 지원됩니다.
Sun GlassFish Enterprise Server, 버전 2.1 및 버전 3 Prelude
Tomcat, 버전 5.5 및 6.0
Message Queue 4.3에서는 AIX 플랫폼 패키지와 패키지 설치를 위한 설치 프로그램을 제공합니다.
Message Queue AIX 구현에서는 다음 소프트웨어를 지원합니다.
AIX v 6.1 이상(AIX의 이전 버전은 Unix/Java 전용 번들을 통해 지원됨)
DB2 지원
IBM XL C/C++ Compiler V9.0
JDK 1.5 이상
설치 지침에 대해서는 Sun GlassFish Message Queue 4.4 Installation Guide의 4 장, AIX Installation를 참조하십시오.
AIX 플랫폼에서 Message Queue 파일은 하나의 Message Queue 홈 디렉토리 IMQ_HOME에 설치됩니다. IMQ_HOME은 mqInstallHome/mq 디렉토리를 나타냅니다. 여기서 mqInstallHome은 제품을 설치할 때 지정하는 설치 홈 디렉토리입니다(기본적으로 home-directory /MessageQueue).
결과 Message Queue 디렉토리 구조는 Windows 플랫폼의 구조와 동일합니다(Sun GlassFish Message Queue 4.4 Administration Guide의 부록 A, Platform-Specific Locations of Message Queue Data의 Windows 절 참조).
AIX 플랫폼에 대한 Message Queue 지원에는 Message Queue C-API에 대한 지원이 포함됩니다. AIX 플랫폼에서 C 응용 프로그램을 빌드 및 컴파일하는 방법에 대한 자세한 내용은 XREF를 참조하십시오.
Message Queue 4.3에는 기본 패키지 배포와 반대되는 새로운 Zip 기반 배포용 설치 프로그램이 도입되었습니다. 이 설치 프로그램은 AIX 플랫폼용 새 Message Queue .zip 배포를 설치하는 데 사용됩니다.
새 설치 프로그램은 Message Queue .zip 파일을 사용자에게 쓰기 액세스 권한(루트 권한이 필요하지 않음)이 있는 디렉토리에 추출하며 이를 통해 Message Queue 설치를 Sun Connection에 등록할 수도 있습니다.
다운로드 번들 크기를 최소화하기 위해 Java 런타임이 더 이상 zip 기반 배포에 포함되지 않습니다(대부분의 사이트가 이미 포함하고 있음). 따라서 installer 명령을 사용하려면 JAVA_HOME 환경 변수를 사용하거나 다음과 같이 명령줄에서 -j 옵션을 사용하여 JDK 또는 JRE를 지정해야 합니다.
$ installer -j JDK/JRE-path
여기서 JDK/JRE-path는 지정된 JDK 또는 JRE의 경로입니다.
다음과 같은 업데이트된 플랫폼 지원이 Message Queue 4.3에 대해 인증됩니다.
Oracle 11g
Windows Server 2008
다음과 같은 추가 향상된 기능이 Message Queue 4.3에 포함됩니다.
Windows 플랫폼에서 Message Queue의 설치 디렉토리 구조가 AIX 플랫폼의 구조와 일치하도록 이전 버전에서 수정되었습니다. 하나의 컴퓨터에 여러 설치를 용이하게 하고, Sun에서 호스팅하는 서비스로서 Sun 하드웨어 및 소프트웨어를 추적, 구성 및 유지 관리하는 데 도움이 되는 Sun Connection을 통해 Message Queue를 쉽게 자동 업데이트할 수 있도록 이 디렉토리 구조는 나중에 Solaris 및 Linux 플랫폼에서도 채택될 예정입니다( Sun Connection 등록을 위한 설치 프로그램 지원 참조).
브로커를 구성하는 데 다음과 같은 새 등록 정보를 사용할 수 있습니다.
표 1–6 브로커 라우팅 및 전달 등록 정보
등록 정보 |
유형 |
기본값 |
설명 |
---|---|---|---|
imq.transaction.producer.maxNumMsgs |
정수 |
1000 |
생성자가 단일 트랜잭션에서 처리할 수 있는 최대 메시지 수입니다. 자원 고갈을 방지하려면 값을 5000 미만으로 설정하는 것이 좋습니다. |
imq.transaction.consumer.maxNumMsgs |
정수 |
100 |
사용자가 단일 트랜잭션에서 처리할 수 있는 최대 메시지 수입니다. 자원 고갈을 방지하려면 값을 1000 미만으로 설정하는 것이 좋습니다. |
imq.persist.jdbc.connection.limit |
정수 |
5 |
데이터베이스에 대해 열 수 있는 최대 연결 수입니다. |
다음과 같이 새로운 속성 및 복합 데이터 키가 JMX API에 추가되었습니다.
사용자에게 전달할 다음 메시지의 JMS 메시지 ID를 제공하기 위해 NextMessageID 속성이 대상 모니터 MBean에 추가되었습니다.
사용자에게 전달할 다음 메시지의 JMS 메시지 ID를 제공하기 위해 복합 데이터의 NextMessageID 키가 사용자 관리자 모니터 MBean에 추가되었습니다.
사용자에게 디스패치된 메시지 수를 제공하기 위해 복합 데이터의 NumMsgsPending 키가 사용자 관리자 모니터 MBean에 추가되었습니다.
자세한 내용은 Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients의 3 장, Message Queue MBean Reference를 참조하십시오.
영구 가입 나열 명령
list dur [-d topicName]
주제 이름 지정을 선택 사항으로 설정하도록 향상되었습니다. 주제를 지정하지 않는 경우 명령을 실행하면 모든 주제에 대한 모든 영구 가입이 나열됩니다(와일드카드 이름 지정 규칙을 통한 항목 포함).