バス宛先および IBM MQ キューのアドレス指定の方法
IBM MQ からサービス統合バス宛先にアクセスする方法、およびサービス統合バスから IBM MQ キューにアクセスする方法について理解するには、これらの 2 つのリソースのアドレス指定方法を決定するそれぞれの規則について理解することが重要です。
- キュー・マネージャー名
- キュー名
- バス名
- 宛先名 (ID)
IBM MQ では、キュー・マネージャー名とキュー名はそれぞれ 48 文字までに制限されています。また、特定の文字の使用にも制限があります。詳しくは、IBM MQ の命名上の制約を参照してください。サービス統合バスの場合には、このような制限はありません。したがって、例えば、名前の長さが 48 文字を超えるバス宛先に対して IBM MQ アプリケーションから送信されるメッセージには、ショート・ネーム (IBM MQ で使用) を用いてロング・ネーム (サービス統合バスで使用) のアドレス指定を行うための、何らかの手段が備わっている必要があります。サービス統合バスは 別名宛先を使用して、ショート・ネームとロング・ネームとの間のマッピン グを行います。同様に、別名を使用することにより、ロング・ネーム (48 文字より長い) を使用して WebSphere アプリケーションからメッセージを送信し、それを IBM MQ キューにルーティングすることもできます。別名宛先について詳しくは、 外部宛先および別名宛先を参照してください。
IBM MQ キュー用のサービス統合 queue@queueManager 表記
サービス統合が IBM MQ リンク を介してメッセージを送信する際には、ゲートウェイ・キュー・マネージャーまたはキュー共用グループに対応する外部バスを認識している必要があります。また、(ゲートウェイではなく) 異なるキュー・マネージャーまたはキュー共用グループ内で送信先 (send-to) キューが定義されている場合は、サービス統合が MQXQH RemoteQMgrName フィールドに正確な名前を保存できるように、送信先 (send-to) キューの場所を認識している必要があります。そのようにするための 1 つの方法は、間接接続バス (ここでキューが定義される) および直接接続バス (ゲートウェイ) という 2 つの外部バスを定義することです。
次の図は、その例を示したものです。図の中で、メッセージのターゲット・キューはキュー・マネージャー QM2 の Q2 です。ローカル・バスのサービス統合構成は、QM2 を間接接続外部バスとして、QM1 を直接接続中間バスとして定義します。Q2 は、バス名 QM2 と宛先名 (ID) Q2 を持つ外部宛先として定義されます。 ローカル・バスのサービス統合構成には、QM1 と QM2 の間の接続に関する情報が何も含まれていません。

このようにすれば、外部 IBM MQ キューへのアクセスは非常にうまくゆきます。ただし、サービス統合バスに 1 つのゲートウェイを介して接続する、多数のキュー・マネージャーまたはキュー共有グループがある場合、それらのすべてを間接接続外部バスとして定義するのが不便だと感じるかもしれません。そのため、サービス統合は IBM MQ キュー用に、キュー名とキュー・マネージャー名の両方をアットマーク (@) で結合して含めた、queue@queueManager という特別な宛先名フォーマットをサポートしています。 この特別なフォーマットを使用すると、サービス統合宛先名の一部が名前になっているため、サービス統合のために別個の間接接続外部バスを定義する必要がなくなります。
次の図は、その例を示したものです。図の中で、メッセージのターゲット・キューはキュー・マネージャー QM2 の Q2 です。ローカル・バスのサービス統合構成は、QM2 を外部バスとして定義しません。Q2 は、バス名 QM1 と宛先名 (ID) Q2@QM2 を持つ外部宛先として定義されます。 ローカル・バスのサービス統合構成には、QM1 と QM2 の間の接続に関する情報が何も含まれていません。

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