IBM MQ キュー、トピック、および宛先との間での宛先のマッピング

サービス統合メッセージと IBM MQ メッセージには、いずれもヘッダー・フィールドおよびプロパティーが含まれています。これらのヘッダー・フィールドおよびプロパティーのあるものには、送信先 (send-to) および応答先 (reply-to) 宛先に関する、また転送ルーティング・パスと逆ルーティング・パスのバス中の宛先に関する情報を提供する、宛先または宛先プロパティーが含まれています。サービス統合および IBM MQ は、宛先について異なった定義を持っているので、サービス統合フォーマットと IBM MQ フォーマット間でメッセージが変換される場合に、宛先および宛先プロパティーを処理するためにマッピングが使用されます。

IBM MQ フォーマット・メッセージの宛先および宛先プロパティー

IBM MQ フォーマット・メッセージには、宛先に関連した以下の情報が含まれています。
MQXQH RemoteQName
MQXQH RemoteQMgrName

これらのフィールドは、MQXQH (IBM MQ 伝送キュー・ヘッダー) にあります。MQXQH がメッセージに付加されるのは、メッセージが IBM MQ キュー・マネージャー間を、または IBM MQ キュー・マネージャーとサービス統合バス間を WebSphere® MQ リンクを介して移動する期間中に限られます。送信側および受信側のアプリケーションは、これらのフィールドにアクセスすることはできません。

RemoteQName フィールドには、送信先 (send-to) キュー (IBM MQ) または送信先 (send-to) 宛先 (サービス統合) の名前が含まれます。RemoteQMgrName フィールドは送信先 (send-to) キューや宛先が置かれている、キュー・マネージャーやキュー共有グループ (IBM MQ) またはサービス統合バス (サービス統合) を識別します。通常、RemoteQMgrName フィールドにはリモート・キュー・マネージャー、キュー共有グループ、またはサービス統合バスの名前が含まれていますが、IBM MQ キュー・マネージャーの別名またはサービス統合仮想キュー・マネージャー名が含まれることもあります。これらのフィールドがトピックには使用されないことに注意してください。

RemoteQName および RemoteQMgrName の値は最大 48 文字までの長さで、IBM MQ の命名上の制約に従っている必要があります。

MQRFH2 jms.Dst (JMSDestination)

このフィールドは、MQRFH2 ヘッダーを含む IBM MQ フォーマットの JMS メッセージにあります。

jms.Dst フィールドには、アプリケーションがメッセージの send を発行したときに設定された送信先 (send-to) JMS 宛先の、シリアライズされた表現 (IBM MQ URI) が含まれています。JMS 宛先用の IBM MQ URI フォーマットについて詳しくは、IBM MQ ライブラリーを参照してください。

サービス統合が転送ルーティング・パスを持つメッセージを IBM MQ に送信するときには、この URI に ibmRoutingPath 属性が追加されます。ibmRoutingPath 値はサービス統合メッセージからの転送ルーティング・パスを識別します。IBM MQ は転送ルーティング・パスを使用しませんが、転送ルーティング・パスを使用できるリモート・サービス統合バス中には送信先 (send-to) 宛先がある場合があります。

MQMD ReplyToQ
MQMD ReplyToQMgr

これらのフィールドは、すべて IBM MQ フォーマット・メッセージ中にあります。

送信側アプリケーションが応答先 (reply-to) キューを指定する場合、ReplyToQ フィールドには応答先 (reply-to) キュー (IBM MQ) または応答先 (reply-to) 宛先 (サービス統合) の名前が含まれ、ReplyToQMgr フィールドはそのキューが置かれているキュー・マネージャーやキュー共有グループ (IBM MQ) またはサービス統合バス (サービス統合) を識別します。通常、ReplyToQMgr フィールドにはキュー・マネージャー、キュー共有グループ、またはサービス統合バスの名前が含まれていますが、IBM MQ キュー・マネージャーの別名またはサービス統合仮想キュー・マネージャー名が含まれることもあります。送信側アプリケーションが応答先 (reply-to) トピックを指定する場合、または応答先 (reply-to) 宛先を指定しない場合、これらのフィールドにはヌル値が含まれます。

ReplyToQ および ReplyToQMgr の値は最大 48 文字までの長さで、IBM MQ 命名上の制約に従っている必要があります。

MQRFH2 jms.Rto (JMSReplyTo)

このフィールドは、MQRFH2 ヘッダーを含み、かつ応答先 (reply-to) 宛先を指定している IBM MQ フォーマットの JMS メッセージにあります。IBM MQ JMS アプリケーションは、応答メッセージの宛先として通常このメッセージ属性を使用しますが、他の (非 JMS) IBM MQ アプリケーションは通常それを使用しないで、代わりに MQMD 応答先 (reply-to) フィールドを使用します。

jms.Rto フィールドには、送信側 JMS アプリケーションによって設定された応答先 (reply-to) JMS 宛先の、シリアライズされた表現 (IBM MQ URI) が含まれています。JMS 宛先用の IBM MQ URI フォーマットについて詳しくは、IBM MQ ライブラリーを参照してください。

サービス統合が逆ルーティング・パスを持つメッセージを IBM MQ に送信するときには、サービス統合がこの URI に ibmRoutingPath 属性を追加します。ibmRoutingPath 値はサービス統合メッセージからの逆ルーティング・パスを識別します。受信側 JMS アプリケーションが応答を送信する際に、IBM MQ は応答先 (reply-to) URI からのルーティング・パス情報を応答メッセージの送信先 (send-to) URI に含め、サービス統合が応答メッセージをルーティングするためにその情報を使用できるようにします。

注:
  • 送信側アプリケーションがメッセージの応答先 (reply-to) キューを指定する場合、通常そのキューは、送信側アプリケーションが接続しているバス、キュー・マネージャー、またはキュー共有グループに置かれています。 これによって、送信側アプリケーションは応答先 (reply-to) キューからの応答メッセージを受信することができるようになります。メッセージを IBM MQ に、または IBM MQ を介して送信するサービス統合アプリケーションは、異なったバス、キュー・マネージャー、またはキュー共有グループに応答先 (reply-to) キューを指定してはなりません。
  • メッセージ中の応答先 (reply-to) 宛先を使用するのは、受信側アプリケーションであることを理解するのは重要です。受信側アプリケーションが接続するバス、キュー・マネージャー、またはキュー共有グループは、応答先 (reply-to) 宛先へのルーティングを可能にする情報によって構成される必要があります。

サービス統合がメッセージを IBM MQ フォーマットに変換する際の宛先変換

サービス統合がメッセージを IBM MQ フォーマットに変換する際に、次の宛先情報が IBM MQ フォーマット・メッセージの中に入れられます。
MQXQH RemoteQName
MQXQH RemoteQMgrName

これらのフィールドは、サービス統合が IBM MQ リンク を介してメッセージを送信する際にのみ、そして宛先がキューである場合にのみ適用されます。

サービス統合はこれらのフィールドを、メッセージに対する解決済みの送信先 (send-to) 宛先に基づいて設定します。すなわち、送信先 (send-to) 宛先が別名の場合、サービス統合はターゲット・バスおよびターゲット ID を使用します。それで、処理は次のようになります。
  • 送信先 (send-to) 宛先が間接接続バスの場合、宛先名 (ID) は RemoteQName として、バス名は RemoteQMgrName として保管されます。
  • 送信先 (send-to) 宛先が直接接続バスで、宛先名 (ID) が queue@queueManager という形式である場合、キュー名 (queue) は RemoteQName として、そしてキュー・マネージャー名 (queueManager) は RemoteQMgrName として保管されます。
  • 送信先 (send-to) 宛先が直接接続バスで、宛先名 (ID) が queue@queueManager という形式でない場合、宛先名は RemoteQName として、そしてバス名は RemoteQMgrName として保管されます。

送信先 (send-to) 宛先が間接接続サービス統合バス中にあって、その宛先名が IBM MQ 命名上の制約に準拠していない場合、準拠した名前を持つ別名宛先を定義する必要があります。送信側アプリケーションは準拠した (別名) 名前を使用する必要があります。この場合、ローカル・バス中ではなく、リモート (間接接続) バス中で別名宛先を定義する必要があります。

送信先 (send-to) 宛先が間接接続サービス統合バス中にあって、そのバス名が IBM MQ 命名上の制約に準拠していない場合、その間接接続バスの仮想キュー・マネージャー名が必要になります。この場合、ローカル・バスはバス名ではなく仮想キュー・マネージャー名を指定して、間接接続バスを定義することが必要となります。

IBM MQ 命名上の制約と準拠していないサービス統合バス名のマッピングについて詳しくは、バス宛先および IBM MQ キューのアドレス指定の方法を参照してください。

MQRFH2 jms.Dst (JMSDestination)

IBM MQ フォーマット・メッセージが MQRFH2 ヘッダーを含んでいる場合、サービス統合は JMSDestination ヘッダー・フィールドを IBM MQ URI にシリアライズし、それを IBM MQ メッセージの JMSDestination フィールドに保管します。メッセージが転送ルーティング・パスを持っている場合、サービス統合はそれを ibmRoutingPath 属性として URI に含めます。

MQMD ReplyToQ
MQMD ReplyToQMgr

送信側 JMS アプリケーションは、プロバイダー固有の JMS メッセージ・プロパティー JMS_IBM_MQMD_ReplyToQ および JMS_IBM_MQMD_ReplyToQMgr を使用して、これらのフィールドを直接設定できます。 送信側アプリケーションがそのようにしない場合、メッセージに応答先 (reply-to) 宛先があって、その宛先がキューであれば (その場合にのみ)、サービス統合がプロパティーを設定します。

サービス統合はこれらのフィールドを、メッセージに対する未解決の応答先 (reply-to) 宛先に基づいて設定します。すなわち、応答先 (reply-to) 宛先が別名の場合、サービス統合はターゲット・バスおよび ID ではなく、別名バスおよび ID を使用します。サービス統合アプリケーションが、外部宛先や @ 文字を含む名前を持つ応答先 (reply-to) 宛先を提供することはありません。アプリケーションがこれを行わない場合の処理は次のとおりです。
  • 応答先 (reply-to) 宛先名 (ID) は ReplyToQ フィールドに、そして応答先 (reply-to) 宛先バス名 (すなわち、ローカル・バス名) は ReplyToQMgr フィールドに保管されます。
  • 仮想キュー・マネージャー名がローカル・バス名と異なる場合、仮想キュー・マネージャー名がローカル・バス名の代わりに ReplyToQMgr フィールドに保管されます。

応答先 (reply-to) 宛先の実名が IBM MQ 命名上の制約に準拠していない場合は (名前に @ 文字が使用されている場合を含む)、準拠した名前を持つ別名宛先を定義する必要があります。送信側アプリケーションは、準拠した名前 (別名) を使用する必要があります。この場合、リモート (間接接続) バス中ではなく、ローカル・バス中で別名宛先を定義する必要があります。

MQRFH2 jms.Rto (JMSReplyTo)

メッセージが応答先 (reply-to) 宛先を持ち、IBM MQ フォーマット・メッセージが MQRFH2 ヘッダーを含んでいる場合、サービス統合はその応答先 (reply-to) 宛先を表すために IBM MQ URI を構成し、その URI を IBM MQ メッセージの JMSReplyTo プロパティーに保管します。 応答先 (reply-to) 宛先がキューの場合、その URI には応答先 (reply-to) 宛先バス名 (ローカル・バス) または仮想キュー・マネージャー名 (それが異なる場合) が含まれます。メッセージが逆ルーティング・パスを持っている場合、サービス統合はそのパスを URI の ibmRoutingPath 属性に含めます。

サービス統合がメッセージを IBM MQ フォーマットから変換する際の宛先変換

サービス統合がメッセージを IBM MQ フォーマットから変換する場合、IBM MQ フォーマット・メッセージからの次の宛先情報が使用されます。
MQXQH RemoteQName
MQXQH RemoteQMgrName

これらのフィールドは、サービス統合が IBM MQ リンクを介してメッセージを受信する際にのみ、そして宛先がキューである場合にのみ適用されます。

サービス統合は、RemoteQName フィールドをメッセージの宛先 ID (常にキュー) として解釈し、RemoteQMgrName フィールドをメッセージの宛先バスの名前として解釈します。 RemoteQMgrName フィールドにローカル・バスの仮想キュー・マネージャー名が含まれている場合、サービス統合は、そのフィールドをローカル・バスの名前として解釈します。 サービス統合は、その結果であるバスと宛先 ID の組み合わせ (それはローカル・バスの別名宛先の場合もある) を使用して通常の方法でメッセージを配信します。宛先バスが外部バスである場合は、そのメッセージを外部バスに転送することが含まれます。

MQRFH2 jms.Dst (JMSDestination)

このフィールドが使用可能な場合、サービス統合はそれを使用してメッセージの JMSDestination ヘッダー・フィールドを作成します。URI が ibmRoutingPath 属性を含む場合、サービス統合はそれを使用してメッセージの転送ルーティング・パスを作成します。

このプロパティーが利用できない場合 (例えば、IBM MQ メッセージに MQRFH2 ヘッダーがない場合)、サービス統合はメッセージが配信されるサービス統合宛先から JMSDestination ヘッダー・フィールドを作成することができます。

MQMD ReplyToQ
MQMD ReplyToQMgr
これらのフィールドにヌル以外の値が含まれている場合、サービス統合はそれらを使用して、サービス統合メッセージ用の逆ルーティング・パスの最初のエレメントを、次のように構成します。
  • ReplyToQMgr がローカル・バス名または仮想キュー・マネージャー名の場合、サービス統合はバスをローカル・バスに、宛先名 (ID) を ReplyToQ に設定します。
  • ReplyToQMgr がローカル・バス中で定義されている外部バスの場合、サービス統合はバスを ReplyToQMgr に、宛先名 (ID) を ReplyToQ に設定します。
  • ReplyToQMgr がローカル・バス中で定義されているローカル・バス名、仮想キュー・マネージャー名、または外部バスでない場合、サービス統合はバスを直接接続されている IBM MQ バスに、宛先名 (ID) を queue@queueManager (ここで、queueReplyToQ で、queueManagerReplyToQMgr) に設定します。
MQRFH2 jms.Rto (JMSReplyTo)

このフィールドが使用可能な場合、サービス統合は MQMD ReplyToQ および ReplyToQMgr フィールドと共にそれを使用して、サービス統合メッセージ用の逆ルーティング・パスおよび JMSReplyTo ヘッダー・フィールドを構成します。逆ルーティング・パスは、最初のエレメント (MQMD ReplyToQ および ReplyToQMgr フィールドから構成する) および IBM MQ メッセージの JMSReplyTo URI の ibmRoutingPath 属性から入手した残りのエレメント (もしあれば) から構成されます。JMSReplyTo ヘッダー・フィールドは、IBM MQ メッセージの JMSReplyTo URI の宛先属性と共に、逆ルーティング・パスの最初のエレメントから構成されます。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjfp0016_
ファイル名:rjfp0016_.html