IBM MQ メッセージへの JMS メッセージのマッピング
IBM® MQ メッセージは、メッセージ記述子、オプションの MQRFH2 ヘッダー、および本体で構成されます。 JMS メッセージの内容は、部分的にマップされ、部分的に IBM MQ メッセージにコピーされます。
このトピックでは、このセクションの最初の部分で説明する JMS メッセージ構造が IBM MQ メッセージにどのようにマップされるかについて説明します。 これは、 JMS アプリケーションと従来の IBM MQ アプリケーションの間でメッセージを伝送したいプログラマーにとって重要です。 また、 IBM Integration Bus 実装など、2 つの JMS アプリケーション間で伝送されるメッセージを操作したいユーザーにとっても重要です。
このセクションは、アプリケーションがブローカーとのリアルタイム接続を使用する場合には適用されません。 アプリケーションがリアルタイム接続を使用する場合、すべての通信は TCP/IP を介して直接実行されます。 IBM MQ キューまたはメッセージは関与しません。
- IBM MQ メッセージ記述子 (MQMD)
- IBM MQ MQRFH2 ヘッダー
- メッセージ本体
MQRFH2 はオプションで、出力メッセージへの組み込みは JMS Destination クラスの TARGCLIENT フラグによって制御されます。 このフラグは、 IBM MQ JMS 管理ツールを使用して設定できます。 MQRFH2 には JMS固有の情報が含まれているため、受信宛先が JMS アプリケーションであることを送信側が認識している場合は、常にその情報をメッセージに組み込んでください。 通常、JMS 以外のアプリケーションにメッセージを直接送信する場合は、 MQRFH2 を省略します。 これは、このようなアプリケーションが IBM MQ メッセージに MQRFH2 を予期していないためです。
着信メッセージに MQRFH2 ヘッダーが含まれていない場合、そのメッセージの JMSReplyTo ヘッダー・フィールドから取り出された Queue オブジェクトまたは Topic オブジェクトでは、キューまたはトピックに送信される応答メッセージにも MQRFH2 ヘッダーが含まれないようにするため、デフォルトでこのフラグが設定されます。 元のメッセージに MQRFH2 ヘッダーが含まれている場合に限り、応答メッセージに MQRFH2 ヘッダーを含める動作をオフに切り替えることができます。これを行うには、接続ファクトリーの TARGCLIENTMATCHING プロパティーを NO に設定します。

- マッピング
- MQMD に JMS フィールドと同等のフィールドが含まれている場合、 JMS フィールドは MQMD フィールドにマップされます。 追加の MQMD フィールドは JMS プロパティーとして公開されます。これは、 JMS アプリケーションがJMS 以外のアプリケーションと通信するときに、これらのフィールドを取得または設定する必要がある場合があるためです。
- コピー
- MQMD に相当するものがない場合は、 JMS ヘッダー・フィールドまたはプロパティーが MQRFH2内のフィールドとして渡され、変換される可能性があります。