バス宛先および IBM MQ キューのアドレス指定の方法

IBM MQ からサービス統合バス宛先にアクセスする方法、およびサービス統合バスから IBM MQ キューにアクセスする方法を理解するには、これら2つのリソースのアドレス指定方法を規定する異なる規約を理解することが重要です。

キュー型宛先の場合、 IBM MQ は2階層のアドレス構造を持つ:
  • キュー・マネージャー名
  • キュー名
サービス統合バスの場合は、以下の項目がこれに相当します。
  • バス名
  • 宛先名 (ID)

IBM MQ では、キューマネージャ名とキュー名はそれぞれ48文字に制限され、特定の文字の使用が制限されます。 詳細については、 IBM MQ の命名規則の制限事項を参照してください。 サービス統合バスの同等品にはこれらの制限がないため、(例えば) IBM MQ アプリケーションから送信されるメッセージが、48文字を超える名前のバス宛先に送信される場合、短い名前( IBM MQ で使用)を用いて長い名前(サービス統合バスで使用)をアドレス指定する何らかの手段が必要となる。 サービス統合バスは 別名宛先を使用して、ショート・ネームとロング・ネームとの間のマッピン グを行います。 同様に、エイリアスを使用して、長い名前(48文字以上)を指定することで WebSphere® Application Server アプリケーションからメッセージを送信し、それを IBM MQ キューにルーティングすることも可能です。 別名宛先について詳しくは、 外部宛先および別名宛先を参照してください。

IBM MQqueue@queueManager キューのサービス統合表記

サービス統合が IBM MQ リンクを介してメッセージを送信する場合、ゲートウェイキューマネージャまたはキュー共有グループに対応する外部バスを認識している必要があります。また、送信先キューが別のキューマネージャまたはキュー共有グループ(ゲートウェイ以外)で定義されている場合、サービス統合は送信先キューの場所を認識し、MQXQH RemoteQMgrName フィールドに正しい名前を保存できるようにする必要があります。 そのようにするための 1 つの方法は、間接接続バス (ここでキューが定義される) および直接接続バス (ゲートウェイ) という 2 つの外部バスを定義することです。

次の図は、その例を示したものです。 図の中で、メッセージのターゲット・キューはキュー・マネージャー QM2Q2 です。 ローカル・バスのサービス統合構成は、QM2 を間接接続外部バスとして、QM1 を直接接続中間バスとして定義します。 Q2 は、バス名 QM2 と宛先名 (ID) Q2 を持つ外部宛先として定義されます。 ローカル・バスのサービス統合構成には、QM1QM2 の間の接続に関する情報が何も含まれていません。

図1: 間接的に接続された外部バスにおける IBM MQ キューへのアクセス
ローカル・バスには、ゲートウェイ・メッセージング・エンジンが含まれています。 外部バス QM1 には、キュー Q1 を管理するゲートウェイ・キュー・マネージャー QM1 が含まれます。 別の外部バス QM2 には、キュー Q2 を管理するキュー・マネージャー QM2 が含まれます。 ローカル・バスのゲートウェイ・メッセージング・エンジンは、ゲートウェイ・キュー・マネージャー QM1 に接続します。 ゲートウェイ・キュー・マネージャー QM1 は、キュー・マネージャー QM2に接続します。

この方法で外部 IBM MQ キューにアクセスすることは完全に問題なく動作します。 ただし、サービス統合バスに 1 つのゲートウェイを介して接続する、多数のキュー・マネージャーまたはキュー共有グループがある場合、それらのすべてを間接接続外部バスとして定義するのが不便だと感じるかもしれません。 したがって、サービス統合では、 IBM MQ キューに対して、キュー名とキューマネージャ名をアットマーク(@)で連結した以下の特別な宛先名形式をサポートします: queue@queueManager。この特別な形式を使用すると、サービス統合の宛先名の一部となるため、サービス統合用に別途間接接続された外部バスを定義する必要がありません。

次の図は、その例を示したものです。 図の中で、メッセージのターゲット・キューはキュー・マネージャー QM2Q2 です。 ローカル・バスのサービス統合構成は、QM2 を外部バスとして定義しません。 Q2 は、バス名 QM1 と宛先名 (ID) Q2@QM2 を持つ外部宛先として定義されます。 ローカル・バスのサービス統合構成には、QM1QM2 の間の接続に関する情報が何も含まれていません。

図2: IBM MQqueue@queueManager 表記によるキューの指定
ローカル・バスには、ゲートウェイ・メッセージング・エンジンが含まれています。 外部バス QM1 には、キュー Q1 を管理するゲートウェイ・キュー・マネージャー QM1、およびキュー Q2 を管理するキュー・マネージャー QM2 が含まれます。 ゲートウェイ・メッセージング・エンジンはゲートウェイ・キュー・マネージャーに接続し、ゲートウェイ・キュー・マネージャーはキュー・マネージャー QM2に接続します。

JMS メッセージの JMSReplyTo フィールドの自動的なマッピング

JMS API には、メッセージの送信先である宛先 (JMSDestination) と、 応答の送信先である宛先 (JMSReplyTo) に関する情報を共有するために使用される 2 つのフィールドがあります。 サービス統合バスから IBM MQ へ(または IBM MQ からサービス統合バスへ)送信されるJMSメッセージの JMSReplyTo フィールドは、 IBM MQ 内の消費アプリケーションが元の WebSphere Application Server アプリケーションへ返信できるよう自動的にマッピングされる。