![[z/OS]](../images/ngzos.gif)
ASF モードでのメッセージング・プロバイダーとして IBM MQ を使用した、z/OS でのメッセージ駆動型 Bean の処理の調整
z/OS® プラットフォームで WebSphere® Application Server を実行しており、IBM MQ をメッセージング・プロバイダーとして使用し、メッセージ駆動型 Bean を Application Server Facilities (ASF) モードでデプロイしている場合、メッセージ駆動型 Bean 処理を調整することができます。
始める前に
メッセージ駆動型 Bean 処理を調整する場合には、さまざまな設定についても考慮する必要があります。 ある特定のサーバーで実行可能なワークロードはさまざまで一定していないため、 考慮すべき値および可能性は広範囲に及びます。
メッセージ駆動型 Bean が永続サブスクリプションを介してキューまたはトピックにマップされる (つま り、listen する) と、JMS メッセージはまずアプリケーション・サーバーのコントローラーに入ります。 これを、サーバーがこれらのメッセージを「コントローラー内で listen している」といいます。 「コントローラー内で listen する」という用語は、 メッセージ駆動型 Bean 処理の調整の説明全体を通して使用されます。
このタスクについて
サーバーでのメッセージ駆動型 Bean 処理を調整する際には、 サーバーのワークロード全体の調整、および 2 つの間の相互作用も考慮する必要があります。
- WLM サービス・クラス定義
- WebSphere Application Server ワークロード・プロファイルの選択
- メッセージ・リスナー・サービスのリスナー・ポート設定
- JMS 接続ファクトリー・プールの設定
- IBM MQ キュー・マネージャーの設定
- メッセージ駆動型 Bean の数。
- 管理構成の選択項目 (2 つのメッセージ駆動型 Bean を同じリスナー・ポートにマップするか、異なるリスナー・ポートにマップするかなど)。
- サーバーで実行中の他のタイプ (HTTP、IIOP) の処理と比べた、メッセージ駆動型 Bean の 処理の重要性。
以下に示す設定値は、サーバーに単一のアプリケーションのみが構成されており、 そのアプリケーションは、このサーバーにインストールされ実行されている単一のメッセージ駆動型 Bean から成る ことを前提にした場合の開始点です。
その設定値を提示する理由について詳細な説明を示し、 z/OS での 「コントローラー内で listen する」事例のリスナー・ポート機能についても詳しく説明します。 以下に示す設定値と説明は、ご使用の独自のシステムとサーバーに応じた独自の設定値を選択する際にも 役立ちます。
手順
例
- ご使用のサーバーが「最大サーバー・インスタンス」値を 3 に設定して構成されており (最小数の値には関係なく)、
ワークロード・プロファイルが LONGWAIT (各サーバントに 40 のワーカー・スレッド
があることを意味します) である場合は、リスナー・ポートの
「最大セッション数」値を少なくとも
に設定してください。240 = 2 * 3 * 40
- アプリケーションに個々の メッセージ駆動型 Bean が 2 つ含まれており、それぞれに、メッセージを別の JMS の宛先に転送する onMessage() が実装されているとします。
したがって、それぞれのメッセージ駆動型 Bean に、このタスクを完了するための専用の JMS 接続ファクトリーが必要です。
管理者が各メッセージ駆動型 Bean の JMS 接続ファクトリー・リソース参照を、管理者の定義した同じ接続ファクトリーにマップしており、その接続ファクトリーは、これらの各メッセージ駆動型 Bean がマップされているリスナー・ポートで使用されるとします。
この場合は、接続ファクトリーの接続プール最大接続数の値を 42 に設定する必要があります。 リスナー・ポートで使用される 2 つのメッセージ駆動型 Bean のそれぞれに対して 1 つの接続、並行して実行される可能性のある 40 個の onMessage() ディスパッチのそれぞれに対して 1 つの接続です。 (接続のプールはサーバントごとのプールであることに注意してください。)
- サーバント数に関係なく、接続ファクトリーの「セッション・プール最大接続数」を 40 (単一サーバント内のワーカー・スレッド数) に設定します。
デバッグのヒントについては、z/OS でのデバッグ用の MDB スロットル・サポートの最適化を参照してください。