メッセージキュー 4.3 は、多数の機能拡張とバグ修正を含むマイナーリリースです。この節では、このリリースに含まれる新しい機能を説明します。
メッセージキュー 4.3 では、HTTP 対応デバイスから Message Queue にアクセスするための、新しい UMS (Universal Message Service) とメッセージング API が導入されました。これにより、ほとんどのアプリケーションがほかのアプリケーションと通信できるようになり、JMS メッセージングの信頼性と保証された配信による利益を受けられるようになりました。また、UMS は JMS メッセージングのスケーラビリティーを拡張し、メッセージングクライアントの数がインターネットクラスの規模に達する場合でも対応できます。
基本的な UMS のアーキテクチャーを次の図に示します。
UMS は Web サーバーで動作し、言語的に中立でプラットフォームに依存しません。UMS は、非 JMS クライアントアプリケーションと JMS プロバイダ間のゲートウェイとして機能します。UMS API を使用して送信されたメッセージを受信し、受信したメッセージを JMS メッセージに変換して、JMS プロバイダのネイティブプロトコルを使用してプロバイダ内の送信先に送信します。同様に、JMS プロバイダの送信先からメッセージを受信してテキストまたは SOAP メッセージに変換し、UMS API を通してクライアントから要求されたとおりに、非 JMS クライアントにメッセージを送信します。
単純で言語に依存しないプロトコルベースの UMS API は、Web ベースのアプリケーションと非 Web ベースのアプリケーションの両方をサポートし、スクリプトおよびプログラミング言語の両方で使用できます。API は、REST (Representational State Transfer) 形式のプロトコルを使用する単純なメッセージング API と、SOAP メッセージヘッダーにプロトコルを埋め込む XML メッセージング API の、2 つの形式で提供されます。どちらの場合も、API は単一の http 要求だけを使用して、メッセージの送信または受信を行います。
UMS API の単純性と柔軟性により、AJAX、.NET、Python、C、Java、およびその他の多くのアプリケーションで、JMS 送信先にテキストメッセージや SOAP (添付ファイルを含む) メッセージを送信したり、JMS 送信先からメッセージを受信することができます。たとえば、Python アプリケーションは .NET アプリケーションと通信でき、iPhone は Java アプリケーションと通信することができます。
メッセージキュー 4.3 では、UMS は JMS プロバイダとして メッセージキュー のみをサポートします。
UMS は、先に述べた単純なゲートウェイとして機能するだけではありません。ステートレスクライアントセッションだけでなくステートフルセッションもサポートします。クライアントから要求された場合、UMS はクライアントアプリケーションのセッション状態を複数のサービス要求間で維持します。UMS でコンテナ管理による認証を使用したり、Message Queue ブローカとクライアントを認証するように設定することもできます。UMS はトランザクションもサポートするため、クライアントアプリケーションは複数のサービス要求を単一の不可分な単位としてコミットまたはロールバックすることができます。
UMS は Message Queue ブローカとの単一の接続上で多数のクライアントをサポートできるため、スケーラビリティーが最大となるように、ブローカの接続サービス上の負荷を軽減します。また、UMS の能力を水平方向に拡大することで、インターネットクラスの規模のメッセージング負荷に対応することもできます。
プロトコルベースの UMS API は単純であるため、クライアント側にクライアントライブラリは必要ありません。したがって、将来的に API を拡張して、クライアントアプリケーションをアップグレードすることなく、JMS の追加機能を実装することができます。
UMS を使用するには、Servlet 2.4 以降の仕様をサポートする Web コンテナに UMS を配備し、Message Queue ブローカを起動します。次に、適切な送信先を作成し、UMS API を使用してメッセージを送受信するメッセージングアプリケーションを作成します。
メッセージキュー 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 で Web コンテナに配備した場合、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 は次の Web コンテナでサポートされます。
Sun GlassFish Enterprise Server, Version 2.1 および Version 3 Prelude
Tomcat, Versions 5.5 および 6.0
メッセージキュー 4.3 には、AIX プラットフォームのパッケージと、これらをインストールするためのインストーラが用意されています。
メッセージキュー の AIX 実装では、次のソフトウェアがサポートされます。
AIX v 6.1 以降 (これより前のバージョンは、Unix/Java のみのバンドルでサポートされます)
DB2 サポート
IBM XL C/C++ Compiler V9.0
JDK 1.5 以降
インストールの手順については、『『Sun Java System Message Queue 4.3 Installation Guide』』の「「AIX Installation」」を参照してください。
AIX プラットフォームでは、メッセージキュー のファイルは メッセージキュー のホームディレクトリ (IMQ_HOME) 以下にだけインストールされます。IMQ_HOME は、mqInstallHome/mq ディレクトリを表します。mqInstallHome は、製品のインストール時に指定したインストールのホームディレクトリです (デフォルトでは、home-directory /MessageQueue)。
結果として、メッセージキュー のディレクトリ構造は Windows プラットフォームの場合と同じになります。『Sun GlassFish Message Queue 4.4 Administration Guide』の付録 A「Distribution-Specific Locations of Message Queue Data」の Windows の節を参照してください。
メッセージキュー の AIX プラットフォームのサポートには、メッセージキュー C-API のサポートも含まれます。AIX プラットフォームで C アプリケーションをビルドおよびコンパイルする手順については、XREF を参照してください。
メッセージキュー 4.3 では、ネイティブパッケージ配布ではなく、ZIP ベースの配布用に新しいインストーラが導入されました。インストーラは、メッセージキュー の新しい ZIP 形式の配布を AIX プラットフォームにインストールするために使用します。
新しいインストーラは、メッセージキュー の .ZIP ファイルをユーザーが書き込み可能な (root 特権を必要としない) 任意のディレクトリに展開し、メッセージキュー のインストールを Sun Connection に登録できるようにします。
ダウンロードバンドルのサイズを最小化するために、ZIP ベースの配布には Java ランタイムが含まれていません (ほとんどのサイトでは、すでにインストールされているはずです)。したがって、installer コマンドでは、JAVA_HOME 環境変数を使用するか、次のようにコマンド行に -j オプションを使用して、JDK または JRE を指定する必要があります。
$ installer -j JDK/JRE-path
JDK/JRE-path は、指定する JDK または JRE のパスです。
メッセージキュー では、次の更新されたプラットフォームサポートが保証されます。
Oracle 11g
Windows Server 2008
メッセージキュー には、次の拡張機能も追加されています。
Windows プラットフォームでは、メッセージキュー のインストールディレクトリの構造が、AIX プラットフォームでのディレクトリ構造に一致するように以前のバージョンから変更されました。このディレクトリ構造は、今後 Solaris および Linux プラットフォームでも採用される予定で、単一のコンピュータへの複数のインストールや Sun Connection を利用した メッセージキュー の自動更新が容易になります。Sun Connection は、Sun のハードウェアとソフトウェアの追跡、構成、および維持を支援するために Sun が提供するサービスです。「インストーラでの Sun Connection 登録のサポート」を参照してください。
ブローカの設定に、次の新しいプロパティーを使用できます。
表 1–6 ブローカのルーティングと配信のプロパティー
プロパティー |
タイプ |
デフォルト値 |
説明 |
---|---|---|---|
imq.transaction.producer.maxNumMsgs |
整数 |
1000 |
プロデューサが単一のトランザクションで処理できるメッセージの最大数。リソースを使い果たさないように、この値は 5000 未満にすることを推奨します。 |
imq.transaction.consumer.maxNumMsgs |
整数 |
100 |
コンシューマが単一のトランザクションで処理できるメッセージの最大数。リソースを使い果たさないように、この値は 1000 未満にすることを推奨します。 |
imq.persist.jdbc.connection.limit |
整数 |
5 |
データベースに対して開くことができる接続の最大数。 |
新しい属性と複合データキーが、次のように JMX API に追加されました。
NextMessageID 属性は、送信先監視 MBean に追加され、コンシューマに配信される次のメッセージの JMS メッセージ ID を示します。
複合データの NextMessageID キーは、コンシューママネージャーの監視 MBean に追加され、コンシューマに配信される次のメッセージの JMS メッセージ ID を示します。
複合データの NumMsgsPending キーは、コンシューママネージャーの監視 MBean に追加され、コンシューマにディスパッチされているメッセージの数を示します。
詳細は、『Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients』の第 3 章「Message Queue MBean Reference」を参照してください。
永続サブスクリプションを一覧表示するコマンドは次のとおりです。
list dur [-d topicName]
このコマンドは、トピック名の指定を省略できるように拡張されています。トピックを指定しない場合、コマンドはすべてのトピック (ワイルドカード命名規則によるトピックを含む) について、すべての永続サブスクリプションを表示します。