JCA 1.5 メッセージ駆動 Bean のインバウンド・メッセージ・フローのスロットル
このトピックでは、Java™ Platform, Enterprise Edition (Java EE) Connector Architecture (JCA) バージョン 1.5 のインバウンド・リソース・アダプターのメッセージ・エンドポイントとしてデプロイされるメッセージ駆動型 Bean (MDB) のメッセージ配信のスロットルを行う方法について説明します。
始める前に
- デフォルトのメッセージング・プロバイダー。
- IBM MQ メッセージング・プロバイダー。
デフォルトのメッセージング・プロバイダーの場合は、関連タスクで説明するように、メッセージのスロットルを構成します。IBM MQ メッセージング・プロバイダーの場合は、IBM MQ メッセージング・プロバイダーのアクティベーション・スペック・パネルで maximum server sessions プロパティーを設定するか、createWMQActivationSpec または modifyWMQActivationSpec wsadmin コマンドを使用する際に maxPoolSize プロパティーを設定して、メッセージ・スロットルを構成します。
サード・パーティーの JCA 1.5 準拠 JMS メッセージング・プロバイダーを使用する場合は、このトピックで説明するメッセージ・スロットルのメソッドが、そのメッセージング・プロバイダーに適用可能かどうか、サプライヤーに確認してください。
このタスクについて
Java EE Connector Architecture (JCA) バージョン 1.5 のメッセージ配信サポートを実装するリソース・アダプターを使用したインストールの場合、WebSphere Application Server はメッセージ・スロットル・サポートを提供して、エンドポイント・メッセージ駆動型 Bean (MDB) へのメッセージの配信を制御します。このサポートを使用すると、インバウンド・メッセージのフラッディングによってサーバーの過負荷が発生することを回避できます。
メッセージ配信は、MDB がバインドされるアダプターによって作成可能なエンドポイント・インスタンスの最大数を制限することによって、メッセージ駆動型 Bean を基準にスロットルされます。アダプターがエンドポイント・インスタンスの作成を試行すると、 MDB インスタンスのプロキシーが作成され、 JCA 1.5 アーキテクチャーによって許可されると戻されます。プロキシーと MDB インスタンスは 1 対 1 で対応し、MDB インスタンスと同様に、プロキシーは メッセージ駆動型 Bean と関連付けられる最小および最大プール・サイズ値に基づいてプールされます。 スロットルは、プロキシー・プールの管理を通じて実行されます。
アダプターがエンドポイントの作成を試行する時点で、作成されるエンドポイント・プロキシー数がプールの最大サイズと等しい場合、処理中のアダプター createEndPoint は使用不可の例外を戻します。この例外が表示されると、アダプターは、再利用のために少なくとも 1 つのエンドポイントをサーバーにリリースして戻すまでは、 追加の createEndPoint() 要求を発行しません。したがって、インストールでは、各 JCA 1.5 メッセージ駆動型 Bean に関連付けられたプールの最大サイズの設定に基づいて、JCA 1.5 MDB へのメッセージ配信のスロットルを制御することができます。
com.ibm.websphere.ejbcontainer.poolsize JVM システム・プロパティーを使用してプール・サイズを指定し、ステートレス Bean、メッセージ駆動型 Bean、およびエンティティー Bean の 最小および最大プール・サイズを定義することができます。JCA 1.5 をサポートするメッセージ駆動型 Bean の場合、指定される最大プール・サイズ値は、そのメッセージ駆動型 Bean 用に作成できるメッセージ・エンドポイント・インスタンス数を制限します。例えば、 インストールで JCA 1.5 MDB プールの最大サイズを 5 に設定した場合、 最大 5 つのメッセージをメッセージ駆動型 Bean の 5 つのインスタンスに並行して配信することができます。 このプロパティーは、wsadmin スクリプト・ツールを使用して、または環境変数として管理コンソールで指定することによって、指定することができます。
手順
- 管理コンソールを開きます。
- 「サーバー」>「サーバー・タイプ」>「WebSphere Application Server」>「server_name」と選択します。
- 「サーバー・インフラストラクチャー」の下で、「Java およびプロセス管理」>「プロセス定義」と展開します。
「サーバント」を選択します。
- 「追加プロパティー」の下の「Java 仮想マシン」を選択します。
- 「追加プロパティー」の下の「カスタム・プロパティー」を選択します。
- 「新規」を選択します。 「一般プロパティー」の 3 つのフィールドがあるパネルが表示されます。ここでプロパティーを設定します。
- 「名前」フィールドに com.ibm.websphere.ejbcontainer.poolsize と入力します。
- 「値」フィールドに入力するには、EJB コンテナーのシステム・プロパティーで値について参照してください。
- プロパティーの値を定義した後で、「OK」をクリックします。 ここで、変更を保存するようにプロンプトが出されます。
- 「保存」をクリックします。