IBM MQ サーバー接続および IBM MQ for z/OS 共有キューを使用した相互運用のネットワーク・トポロジー
WebSphere® Application Server が IBM MQ サーバー接続を使用して IBM MQ との相互運用を行えるようにするための単純なトポロジーと複雑なトポロジー、および IBM MQ サーバー接続を IBM MQ for z/OS 共有キューと共に使用して可用性の高いメッセージング・システムを作成できるようにするためのトポロジーを以下の例に示します。
完全を期すために、トピックで説明するトポロジーにはクラスター化されたトポロジーや可用性の高いトポロジーが含まれます。クラスター化や高可用性に対応するには、製品の Network Deployment バージョンか z/OS バージョンを使用する必要があります。
IBM MQ サーバー接続でのキュー・タイプ宛先
サービス統合バスの通常のキュー・タイプ宛先では、キューそのものが WebSphere Application Server 内のバス・メンバーにあります。このバス・メンバーは、アプリケーション・サーバーとアプリケーション・サーバーのクラスターのいずれかにすることができます。 バス・メンバー内の 1 つ以上のメッセージング・エンジンがキューを管理します。 メッセージング・エンジンは、キューへのメッセージの投入や、キューからのメッセージの取得を行うことができます。また、必要であればメッセージのディスク・コピーを保持することもできます。 アプリケーションは、サービス統合バスに接続する際、キューが配置されていないメッセージング・エンジンに接続する場合があります。 その場合には、アプリケーションの接続先のメッセージング・エンジンがキューの配置場所であるメッセージング・エンジンと通信を行い、そのメッセージング・エンジンを使用します。
IBM MQ サーバー接続を使用すると、サービス統合バスのキュー・タイプ宛先を構成してキューそのものが IBM MQ キュー・マネージャーまたはキュー共有グループに存在するようにすることができます。 この場合、キュー・マネージャーまたはキュー共有グループはバス・メンバーとしてサービス統合バスに組み込まれます。 バス内のサービス統合メッセージング・エンジンは、IBM MQ キュー・マネージャーと通信を行い、これを使用してキューにアクセスします。
アプリケーションが PUT 操作のみを実行できるようにする IBM MQ リンク接続とは 異なり、IBM MQ サーバー接続では、アプリケーションは PUT 操作と取得操作の両方を実行することができます。
IBM MQ サーバー接続は、「バインディング」接続 (呼び出し接続) または「クライアント」接続 (TCP/IP 接続) のいずれかを使用できます。 「バインディング」接続は、アプリケーション・サーバーとキュー・マネージャー (またはキュー共有グループ) が同じホストまたは同じ論理区画 (LPAR) で稼働している場合に限り使用可能です。 アプリケーション・サーバーとキュー・マネージャー (またはキュー共有グループ) が異なるホストで稼働している場合は、「クライアント」接続を使用する必要があります。
単一の IBM MQ キュー・マネージャーまたはキュー共有グループに接続された単一のWebSphere Application Server アプリケーション・サーバー
この基本的なシナリオでは、サービス統合バスを単一のメッセージング・エンジンと共に使用します。 このバスには、IBM MQ 共有キューを使用するように構成されたキュー・タイプ宛先が組み込まれています。 単一のアプリケーションは、サービス統合バスに接続し、キュー・タイプ宛先にアクセスします。
アプリケーションがこの宛先にメッセージを送信すると、メッセージング・エンジンは IBM MQ キュー・マネージャーと通信を行い、これを使用してメッセージを共有キューに追加します。 アプリケーションがこの宛先からメッセージを受信すると、メッセージング・エンジンは IBM MQ キュー・マネージャーと通信を行い、これを使用して共有キューからメッセージを取得します。
アプリケーションが IBM MQ サーバー接続を介して IBM MQ と通信を行っている時には、ローカルのサービス統合メッセージング・エンジンと通信を行っている認識しかありません。 メッセージング・エンジンがアプリケーションの代わりに IBM MQ と通信を行います。 IBM MQ キュー・マネージャーは、サービス統合メッセージング・エンジンを IBM MQ クライアントと見なします。
以下の図で、A とラベル付けされている接続線は、サービス統合メッセージング・エンジンにローカル・バスのメンバーとして認識される、キュー・マネージャーを示します。 B とラベル付けされている接続線は、キュー・マネージャーに別のキュー・マネージャーとして認識される、サービス統合メッセージング・エンジンを示します。

1 つの IBM MQ キュー・マネージャーに接続された別々のアプリケーション・サーバーで稼働している複数のアプリケーション
IBM MQ サーバー接続では、サービス統合メッセージング・エンジンは、必要に応じて IBM MQ キュー・マネージャーへの個々の接続を動的に行います。 IBM MQ リンク使用時のようなゲートウェイ・メッセージング・エンジンやゲートウェイ・キュー・マネージャーは存在しません。
以下の図は、WebSphere MQ サーバー接続を介して WebSphere MQ キュー・マネージャーに接続する、個々のアプリケーション・サーバー内で稼働する 2 つのアプリケーションを示したものです。 サービス統合バスには、2 つのメッセージング・エンジンと 1 つのキュー・マネージャーが組み込まれています。

IBM MQ サーバー接続での IBM MQ for z/OS 共有キューの使用
IBM MQ サーバー接続で、WebSphere Application Server アプリケーションは取得操作を実行することができます (この操作により、IBM MQ キューからメッセージを受信します)。そのため、IBM MQ サーバーを使用して IBM MQ for z/OS® キュー共有グループに接続することでさまざまな利点を得ることができます。 IBM MQ リンクは WebSphere Application Server アプリケーションをキュー共有グループに接続できますが、IBM MQ リンクではアプリケーションは PUT 操作しか実行できないため、 共有キューからのメッセージをコンシュームできず、共有キューの利点を十分に実現することができません。
- 異なるアプリケーション (または同じアプリケーションの異なるインスタンス) が、同じキュー上のメッセージを処理しようと競合します。メッセージをより短時間で処理できるインスタンス (インスタンスがより高性能なプロセッサーで実行される、または負荷が少ないプロセッサーで実行されるため) が、キュー上にあるメッセージを自動的に処理する割合が高いため、使用可能なリソースの使用効率が向上するほか、全体の応答時間も向上します。これは、「プル型ワークロード・バランシング」と呼ばれます。
- キュー共有グループの 1 つのキュー・マネージャーに障害が発生した場合、アプリケーションは別のキュー・マネージャーに接続して、同じ共有キューを引き続き使用することができます。これによって、アプリケーションの可用性が向上します。 「ピア・レベル・リカバリー」と呼ばれるキュー共有グループの特殊機能は、アプリケーションがメッセージを共有キューから受信する場合、メッセージ処理が完了する前にキュー・マネージャーに障害が発生した状況に対応します。アプリケーションがトランザクション・タイプである場合、同じキュー共有グループの別のキュー・マネージャーがメッセージをその共有キューに戻し、障害が発生したキュー・マネージャーがリカバリーするのを待たずに処理できるようにします。ピア・レベル・リカバリーは、アプリケーションの可用性をさらに高めます。
- キュー共有グループでは、サービス統合は、キュー共有グループ内のキュー・マネージャーのコレクションに対して単一のネットワーク・アドレスを使用することでキュー共有グループに接続することもできます。 この接続は、キュー共有グループ内の適切なキュー・マネージャーに自動的にリダイレクトされます。適切なキュー・マネージャーは、使用可能であるかどうか、および最短の応答時間を実現できるかが基準になります。この機能により、アプリケーションの可用性およびパフォーマンスの両方を改善できます。
これらの利点をサービス統合アプリケーションに提供することができます。これは、キュー共有グループ内の IBM MQ サーバーによって所有される共有キュー上にサービス統合宛先を定義することで行います。 以下の図は、キュー共有グループ内の 1 つのキュー・マネージャー (QM1) に接続するサービス統合メッセージング・エンジンを示しています。 この接続により、サービス統合アプリケーションは共有キューからのメッセージをコンシュームできます。同じアプリケーション・サーバーまたは異なるアプリケーション・サーバー上の他のサービス統合アプリケーションでは、異なる接続 (同じキュー共有グループ内の、QM2 や QM3 などの同じまたは異なるキュー・マネージャーへの接続) を使用して、同じ共有キューからのメッセージをコンシュームできます。

以下の図は、キュー共有グループ内のキュー・マネージャー (QM1) が一時的に使用不可である場合に、サービス統合が別のキュー・マネージャー (QM2) に接続してアプリケーションがキューからのメッセージの処理を続行できるようにすることを示しています。
