Sun Java System Message Queue 3.7 UR1 技術の概要

第 5 章 Message Queue と J2EE

Java 2 Platform、Enterprise Edition (J2EE プラットフォーム) は、多層アプリケーションとシンクライアントエンタープライズアプリケーションをホストする、標準サーバープラットフォームの仕様です。J2EE プラットフォームの要件の 1 つは、分散コンポーネントが、信頼性の高い非同期メッセージングにより対話できるようにすることです。この対話動作は、JMS プロバイダを使用することによって可能になります。事実上、Message Queue は J2EE プラットフォームの基準 JMS 実装製品です。

この章では、J2EE プラットフォーム環境で実装される派生 JMS について説明します。章には次のトピックが含まれます。

Message Queue を J2EE 準拠アプリケーションサーバー用の JMS プロバイダとして使用する方法については、『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 17 章「JMS Resource Adapter Property Reference」を参照してください。

JMS/J2EE プログラミング: メッセージ駆動型 Beans

第 2 章「クライアントプログラミングモデル」で説明した一般的な JMS クライアントプログラミングモデルのほかに、さらに JMS クライアントに特化したプログラミングモデルがあり、J2EE プラットフォームアプリケーションのコンテキストで使用されます。この特殊なクライアントは、メッセージ駆動型 Beans と呼ばれ、EJB 2.0 以降の仕様 (http://java.sun.com/products/ejb/docs.html) で指定されている Enterprise JavaBeans (EJB) コンポーネント のシリーズの 1 つです。

メッセージ駆動型 Beans は非同期メッセージングを行います。その他の EJB コンポーネント (セッション Beans とエンティティー Beans) は、標準的な EJB インタフェースを通じて同時に呼び出す必要があります。ただし、多くのエンタープライズアプリケーションは、サーバーサイドコンポーネントがサーバーリソースを結びつけずに相互に通信するために、非同期メッセージングを必要とします。サーバーサイドコンポーネントがアプリケーションイベントに応答する必要のあるアプリケーションでは、メッセージのプロデューサにしっかり結合していなくても、メッセージを受信してコンシュームできる EJB コンポーネントが必要になります。エンタープライズアプリケーションでは、負荷が増加する場合、この機能を拡張する必要があります。

メッセージ駆動型 Beans (MDB) は、サポートするコンポーネントに分散サービスを提供する特殊な EJB コンテナによってサポートされる EJB コンポーネントです。

図 5–1 MDB を使用したメッセージング

図は、J2EE 環境内でコンシューミング MDB インスタンスへメッセージを送信する JMS メッセージプロデューサを示す。

J2EE アプリケーションサーバーのサポート

J2EE アーキテクチャーでは、EJB コンテナが J2EE アプリケーションサーバーにホストされます。アプリケーションサーバーは、さまざまなコンテナで必要とされるリソースを提供します。たとえば、トランザクションマネージャー、持続マネージャー、ネームサービス、およびメッセージングや MDB の場合には JMS プロバイダなどです。

Sun Java System Application Server では、Sun Java System Message Queue によって JMS メッセージングのリソースが提供されます。

アプリケーションサーバーの将来リリースでは、Message Queue はリソースアダプタの標準的な配備方法と設定方法を使用してアプリケーションサーバーにプラグインされる予定です。

J2EE アーキテクチャーの詳細は、http://java.sun.com/j2ee/download.html#platformspec にある「J2EE Platform Specification」を参照してください。

JMS リソースアダプタ

リソースアダプタは、J2EE 1.4 に準拠するアプリケーションサーバーに追加機能をプラグインする際の標準的な方法です。J2EE Connector Architecture (J2EECA) 1.5 仕様によって定義されている標準を使用して、アプリケーションサーバーは標準的な手法で外部システムとやり取りできます。これらの外部システムには、企業情報システム (EIS)、および JMS プロバイダなどのメッセージングシステムが含まれます。Message Queue には、アプリケーションサーバーで Message Queue を JMS プロバイダとして使用できるようにする JMS リソースアダプタが組み込まれています。

JMS リソースアダプタをアプリケーションサーバーへ接続することにより、アプリケーションサーバーに配備されて稼働している J2EE コンポーネントで、JMS メッセージを交換することができます。これらのコンポーネントに必要となる JMS コネクションファクトリと送信先管理対象オブジェクトは、J2EE アプリケーションサーバー管理ツールを使用して作成し設定されます。

ただし、ブローカと物理的な送信先の管理など、そのほかの管理操作は J2EECA 仕様には含まれていません。プロバイダ固有のツールを使用しなければ実行できません。

Message Queue リソースアダプタは、Sun J2EE 1.4 アプリケーションサーバーに組み込まれています。ただし、ほかの J2EE 1.4 アプリケーションサーバーではまだ承認されていません。

Message Queue リソースアダプタは、オペレーティングシステムに依存するディレクトリに格納された単一ファイル (imqjmsra.rar) です (『Sun Java System Message Queue 3.7 UR1 管理ガイド』の第 17 章「JMS Resource Adapter Property Reference」を参照)。imqjmsra.rar ファイルには、リソースアダプタの配備記述子 (ra.xml) とともに、アダプタを使用するためにアプリケーションサーバーで必要とされる JAR ファイルが記述されています。

アプリケーションサーバーに添付の説明書に従って Message Queue リソースアダプタを配置し設定すれば、J2EE 1.4 準拠のアプリケーションサーバーで リソースアダプタを使用できます。商用の J2EE 1.4 アプリケーションサーバーが市販されるようになり、Message Queue リソースアダプタもそれらのアプリケーションサーバー用として承認されるようになれば、Message Queue のマニュアルには関連する配備手順と設定手順についての情報が掲載されるようになります。