WebSphere MQ Version 7.x に接続されたアクティベーション・スペックまたは ASF リスナー・ポートを使用した厳密なメッセージ順序付け
厳密なメッセージ順序付けは、メッセージ駆動型 Bean アプリケーションを WebSphere MQ メッセージング・プロバイダーにデプロイするときに、非順次に着信したメッセージを処理するための特別な機能がアプリケーションにコーディングされていない場合に行うことができます。
WebSphere® Application Server バージョン 7 以降では、リスナー・ポートは安定化されています。詳しくは、安定化されたフィーチャーに関する項目を参照してください。リスナー・ポートを使用する WebSphere MQ メッセージ駆動型 Bean のデプロイメント構成を、アクティベーション・スペックを使用する構成に移行する準備を行う必要があります。非 ASF モードのアクティベーション・スペックの構成方法について詳しくは 『非 ASF モードのアクティベーション・スペックの構成』を参照してください。 ただし、アプリケーションを WebSphere Application Server バージョン 7 より前のアプリケーション・サーバーで実行する必要がないと確認するまでは、このマイグレーションを開始しないでください。例えば、1 つのアプリケーション・サーバー・クラスターにバージョン 6.1 のメンバーとそれより新しいバージョンのメンバーがある場合は、クラスター内のすべてのアプリケーション・サーバーをその新しいバージョンにマイグレーションするまでは、そのクラスター上のアプリケーションを、アクティベーション・スペックを使用するようにマイグレーションしないでください。
このシナリオでは、以下のことを前提としています。
- メッセージ駆動型 Bean (MDB) アプリケーションはトランザクション・タイプである。
- WebSphere MQ キューのバックアウトしきい値 (BOTHRESH) が 0 に設定されている。
- WebSphere MQ バージョン 7.0 以降を使用している。
順序付けられた配信のための WebSphere Application Server の構成
- WebSphere MQ キュー・マネージャーは、WebSphere MQ バージョン 7.0 以降で稼働している必要があります。
- キュー・マネージャーへの接続には、WebSphere MQ メッセージング・プロバイダーの通常モードを使用する必要があります。 WebSphere MQ インフォメーション・センターの『WebSphere MQ メッセージング・プロバイダー・モードの選択の規則』のトピックを参照してください。
- リスナー・ポートを使用している場合、WebSphere Application Server のリスナー・ポートの「最大セッション (Maximum sessions)」を 1 に設定する必要があります。
- アクティベーション・スペックを使用している場合、WebSphere Application Server のアクティベーション・スペックの「最大サーバー・セッション (Maximum server sessions)」を 1 に設定する必要があります。
この構成に関する重要な情報
- ASF リスナー・ポートおよび WebSphere MQ アクティベーション・スペックには、連動してメッセージ配信を実行する 2 つの異なるパーツがあります。これら 2 つのパーツは、キュー・マネージャーからは別個のアプリケーションと見なされます。
- 1 つ目のパーツは、着信したメッセージをただちに検出しますが、それらをコンシュームしません。 代わりに、それらのメッセージを 2 つ目のパーツにディスパッチします。
- 2 つ目のパーツは、サーバーのセッション・プールであり、アプリケーションのトランザクション内でメッセージを処理するためにスレッドを割り振り、それを MDB の onMessage() メソッドに配信します。
- バージョン 7.0 以降、WebSphere MQ は、メッセージ検出用のプッシュ・モデルを提供します。このモデルは、以前の WebSphere MQ のバージョンで使用されていたポーリング・モデルよりも効率が良く、通常の操作の下で、より良好なメッセージ順序付けを行うことができます。
メッセージが非順次で配信可能な状況
この構成では、以下の状況の場合、メッセージを非順次で配信可能です。
クラスター化されたデプロイメントに関する考慮事項
- アプリケーション・サーバーには、このアクティベーションを自動的に管理できる機能がないので、1 つのクラスター・メンバーについてのみ MDB をアクティブ化する必要があります。
- アプリケーションの始動状態の設定とは別個に、リスナー・ポートの始動状態を「停止 (stopped)」に設定することができます。
- アプリケーション、ASF リスナー・ポート、および MBean インターフェースとのメッセージ・エンドポイントは、wsadmin スクリプトや、Java™ コードの com.ibm.websphere.management.AdminClient インターフェースを使用して手動で開始および停止することができます。