ナビゲーションをスキップ

WebLogic JMS プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic JMS の概要

以下の節では、BEA WebLogic Server の Java Messaging Service (JMS) について概説します。

 


WebLogic JMS の概要

WebLogic JMS は、WebLogic Server プラットフォームに緊密に統合されたエンタープライズ クラスのメッセージング システムです。JMS 仕様を完全にサポートし、標準の JMS API ではサポートされていないさまざまな WebLogic JMS 拡張機能もサポートします。

JMS (Java Message Service) とは

メッセージ指向ミドルウェア (Message-Oriented Middleware : MOM) とも呼ばれるエンタープライズ メッセージング システムを使用すると、複数のアプリケーションがメッセージの交換を通じて通信できます。メッセージとは、異なるアプリケーション間の通信を調整するために必要な情報が含まれているリクエスト、レポート、またはイベントのことです。メッセージで提供される抽象化の階層により、送り先システムについての詳細情報をアプリケーション コードから切り離すことができます。

Java Message Service (JMS) は、エンタープライズ メッセージング システムにアクセスするための標準の API です。具体的な JMS の特長は以下のとおりです。

次の図は、WebLogic JMS によるメッセージングの仕組みを示しています。

図 1-1 WebLogic JMS メッセージング

WebLogic JMS メッセージング


 

図で示されているように、WebLogic JMS はプロデューサ アプリケーションからメッセージを受信し、受け取ったメッセージをコンシューマ アプリケーションに配信します。

Java 仕様の実装

WebLogic Server は次の Java 仕様に準拠しています。

J2EE 仕様

WebLogic Server は Sun Microsystems の J2EE 1.3 仕様に準拠しています。

JMS 仕様

WebLogic Server は JMS 仕様バージョン 1.0.2b に完全に準拠しており、プロダクション環境で使用できます。

WebLogic JMS の機能

WebLogic JMS では、JMS 仕様に規定されている標準の JMS API ではサポートされていないさまざまな WebLogic JMS 拡張機能 API もサポートします。また、WebLogic Server プラットフォームに緊密に統合されているため、高度なセキュリティで保護された J2EE アプリケーションを構築し、それらを WebLogic Server コンソールで容易にモニタおよび管理できます。XA トランザクションが完全にサポートされているだけでなく、クラスタ機能とサービス移行機能による高い可用性を特長としています。加えて、他のバージョンの WebLogic Server やサードパーティのメッセージ プロバイダとのシームレスな相互運用性も提供されます。

以下の節では、WebLogic JMS のユニークかつ強力な機能について概説します。

エンタープライズ レベルの信頼性

エンタープライズ レベルの機能

WebLogic Server との緊密な統合

他のメッセージング サービスとの相互運用性

 


WebLogic JMS のアーキテクチャ

次の図は、WebLogic JMS のアーキテクチャを示しています。

図 1-2 WebLogic JMS のアーキテクチャ

WebLogic JMS のアーキテクチャ


 

主要な構成要素

図 1-2に示されているように、WebLogic JMS Server のアーキテクチャは主に以下の要素で構成されています。

クラスタ化機能

WebLogic JMS のアーキテクチャでは、クラスタ内のあらゆるサーバから JMS 送り先へのクラスタワイドで透過的なアクセスをサポートすることで、複数の JMS サーバのクラスタ化が実装されます。WebLogic Server は、クラスタ全体への JMS の送り先と接続ファクトリの配布をサポートするようになりました。ただし、JMS トピックおよびキューが、クラスタ内の WebLogic Server インスタンスによって管理される点は変わりません。

WebLogic JMS のクラスタ化のコンフィグレーションについては「WebLogic JMS のクラスタ化のコンフィグレーション」を参照してください。WebLogic Server のクラスタ化の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』を参照してください。

クラスタ化のメリットは以下のとおりです。

注意 : 自動フェイルオーバは、このリリースの WebLogic JMS ではサポートされていません。手動フェイルオーバの実行の詳細については、「WebLogic Server の障害からの回復」を参照してください。

 


WebLogic JMS パブリック API の拡張機能

Sun Microsystem の JMS 仕様に規定されている API に加え、WebLogic JMS にはパブリックな API weblogic.jms.extensions が用意されています。この API では次の表に示す拡張機能用のクラスとメソッドが提供されます。

表 1-1 WebLogic JMS パブリック API の拡張機能

クラス

機能

詳細については、以下を参照。 . .

XMLMessage

XML メッセージを作成する。

手順 6a : メッセージ オブジェクトを作成する (メッセージ プロデューサ)

WLSession

セッション例外リスナを定義する。

セッション例外リスナの定義

WLSession

事前に取得する非同期メッセージの、マルチキャスト セッションで許可される最大数を設定または表示する。

マルチキャストのコンフィグレーション属性の動的コンフィグレーション

WLSession

メッセージが最大数に達したときに適用するマルチキャスト セッションの超過時のポリシーを設定または表示する。

マルチキャストのコンフィグレーション属性の動的コンフィグレーション

JMSHelper

永続的なキューまたはトピックを動的に作成する。

送り先の動的作成

JMSHelper

永続的なキューまたはトピックを動的に削除する。

送り先の動的削除

JMSHelper

分散送り先 (DD) を動的に作成および削除する。これらのメソッドでは、指定した各 JMS サーバ インスタンスの DD キュー メンバーまたは DD トピック メンバーも作成または削除される。また、すべてのメンバー送り先に使用する JMS テンプレートも作成または削除される。

JMS Helper の Javadoc。

WLSession

メッセージの再配信遅延を設定する。

メッセージの再配信遅延の設定

WLMessageProducer

プロデューサのメッセージ配信時間を設定する。

プロデューサに対する配信時間の設定

WLMessage

メッセージの配信時間を設定する。

メッセージに対する配信時間の設定

Class Schedule

メッセージのスケジューリング済み配信時間を設定する。

スケジューリング済み配信時間のオーバーライドを設定する

ServerSessionPoolFactory

JMS 仕様に定義されているオプションのアプリケーション サーバ機能であるサーバ セッション プールを作成する。

サーバ セッション プールの定義

この API では、NO_ACKNOWLEDGEMULTICAST_NO_ACKNOWLEDGE の確認応答モード、および以下のような例外の送出を含む拡張例外もサポートされています。

 


WebLogic Server 8.1 における JMS の拡張機能

このリリースの WebLogic Server では、JMS の以下の拡張機能が新しく導入されています。

JMS シン クライアント

400KB 程度の JMS シン アプリケーション クライアント (wljmsclient.jar) ファイルでは、クライアントサイド プログラムに必要な一連のサポート ファイルのみを含む小さいライブラリを使用し、クライアントサイドの WebLogic のサイズを大幅に削減しながら、完全な WebLogic JMS 機能を実現できます。JMS シン クライアントでは、標準の WebLogic シン アプリケーション クライアント JAR (wlclient.jar) も使用する必要があります。このクライアントは約 300KB で、クラスタ化、セキュリティ、トランザクション、およびフェイルオーバに対する基本的なクライアント サポートが用意されています。「WebLogic JMS シン クライアント」を参照してください。

リモート プロバイダまたはサードパーティ JMS プロバイダへのアクセスの簡略化

Administration Console の [外部 JMS サーバ] ノードを使用すると、外部 (WebLogic Server 以外の) JMS プロバイダをすばやくマップして、そのプロバイダの接続ファクトリと送り先を WebLogic JNDI ツリーにローカル JMS オブジェクトとして表示できます。[外部 JMS サーバ] のコンフィグレーションを使用すると、別のクラスタまたはドメインにある WebLogic Server のリモート インスタンスを WebLogic JNDI ツリーで参照することもできます。Administration Console オンライン ヘルプの「リモートまたは外部 JMS プロバイダへの単純なアクセス」を参照してください。

EJB およびサーブレットを介した JMS へのアクセスの簡略化

WebLogic Server では、JMS ラッパーを用いることで、EJB やサーブレットなどの J2EE コンポーネント内部で WebLogic JMS を簡単に使用できるようにするとともに、多数の拡張されたユーザビリティ機能とパフォーマンス機能を提供しています。これらの機能としては、JMS 接続オブジェクトとセッション オブジェクトの自動プーリング (およびメッセージ プロデューサ オブジェクトの一定のプーリング)、2 フェーズ コミット トランザクション (XA プロトコル) をサポートする WebLogic JMS 実装およびサードパーティ JMS プロバイダの自動トランザクション登録、JMS 接続のテストと接続失敗後の再接続、コンテナ管理のセキュリティ資格などがあります。「EJB とサーブレットでの JMS の使い方」を参照してください。

期限切れメッセージの処理の向上

アクティブなメッセージ有効期限を使用すると、期限切れメッセージが即座に消去されます。さらに、期限切れメッセージ監査によって、期限の切れたメッセージを追跡するオプションが提供されます。メッセージの有効期限が切れたときにログに記録するか、期限の切れたメッセージを特別な送り先にリダイレクトすることができます。詳細については、Administration Console オンライン ヘルプの「期限切れメッセージの処理」を参照してください。

プロデューサのブロックによるメッセージ フロー制御の改良

「送信ブロック」機能を使用すると、送り先 (キューまたはトピック) が指定の最大メッセージ割り当てを超過したときに、メッセージ プロデューサによる送り先へのメッセージ送信を一時的にブロックすることで、メッセージ割り当てエラーを回避できます。Administration Console オンライン ヘルプの「メッセージ プロデューサのブロックによる割り当て例外の回避」を参照してください。

メッセージの再配信の順序付け

JMS 仕様により、特定のプロデューサからコンシューマに最初に配信されるすべてのメッセージは、生成された順序でコンシューマに到着することが保証されています。WebLogic JMS はこの要件を満たすだけではなく、さらに再配信メッセージについても正しい順序を保証しています。詳細については、「メッセージの再配信の順序付け」を参照してください。

送り先キューまたはトピックの動的削除

新しい JMS ヘルパー拡張メソッドにより、JMS 送り先を動的に削除できます。JMS サーバは削除された送り先をリアル タイムに削除します。従って、削除を有効にするために JMS サーバを再デプロイする必要はありません。「送り先の動的削除」を参照してください。

コンフィグレーション ウィザードを使用した JMS のコンフィグレーション

コンフィグレーション ウィザードは、WebLogic Server の管理ドメインとサーバ コンフィグレーションを作成する Java アプリケーションです。コンフィグレーション ウィザードを使用して、JMS、データベース接続 (JDBC)、セキュリティ グループなどのリソースや、セキュリティ ロール、およびユーザ アカウントをコンフィグレーションできます。既存のドメインを変更することもできます。『コンフィグレーション ウィザードの使い方』を参照してください。

 


WebLogic Server 8.1 における JMS の非推奨機能

WebLogic Server のこのリリースでは、次に示す JMS の機能が非推奨になりました。

weblogic.jms パッケージの ServerSessionPoolFactory クラス

weblogic.jms パッケージの ServerSessionPoolFactory クラスは WebLogic Server 8.1 では非推奨となり、weblogic.jms.extensions パッケージの ServerSessionPoolFactory クラスに置き換えられました。ServerSessionPoolFactory を JNDI にバインドする場合は、weblogic.jms.extensions パッケージの新しいバージョンを使用することをお勧めします。ただし、リリース 8.1 では引き続きいずれのバージョンでも JNDI ルックアップを実行できます。サーバ セッション プール ファクトリの詳細については、「サーバ セッション プールの定義」または「weblogic.jms.extensions.ServerSessionPoolFactory」の Javadoc を参照してください。

JMS ファイル ストアへの同時書き込みを無効化する起動フラグ

JMS ファイル ストアへの同期書き込みを無効化する次のコマンドライン起動フラグは、WebLogic Server 8.1 では非推奨になりました。

-Dweblogic.JMSFileStore.SynchronousWritesEnabled=false 
-Dweblogic.JMSFileStore.store-name.SynchronousWritesEnabled=false 

代わりに、Administration Console の [JMS|ストア] ノードを使用するか、JMX を使用して JMS ファイル ストアの [同期書き込みポリシー] 属性をコンフィグレーションします。同期書き込みポリシーのコンフィグレーションに関する詳細については、Administration Console オンライン ヘルプの「JMS ファイル ストアのパフォーマンスの向上」を参照してください。

JMS 接続ファクトリの [ユーザ トランザクションを有効化] および [サーバサイド XA を有効化] 属性

[ユーザ トランザクションを有効化] および [サーバサイド XA を有効化] 属性は、WebLogic Server 8.1 のユーザ定義の接続ファクトリでは非推奨になっています。そのため、JTA ユーザ トランザクション用に XA 接続ファクトリを有効化する場合、必要となるのは [XA 接続ファクトリを有効化] 属性の設定のみです。XA ファクトリはトランザクション セッションには必要ありません。接続ファクトリのコンフィグレーションの詳細については、Administration Console オンライン ヘルプの「JMS 接続ファクトリのコンフィグレーション」を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次