第11章 相互運用性
本章では、AMQ JMS を他の AMQ コンポーネントと組み合わせて使用する方法を説明します。AMQ コンポーネントの互換性の概要は、「 製品の概要 」を参照してください。
11.1. 他の AMQP クライアントとの相互運用
AMQP メッセージ は AMQP タイプシステム を使用して構成されます。この共通の形式を持つことは、異なる言語の AMQP クライアントが相互運用できる理由の 1 つです。本セクションでは、クライアントと他の AMQP クライアントの使用を支援するために、使用されるさまざまな JMS メッセージタイプに関連して、クライアントによって送受信された AMQP ペイロードに関する動作を文書化します。
11.1.1. メッセージの送信
このセクションでは、さまざまな JMS メッセージタイプの使用時にクライアントが送信する各種ペイロードを文書化するため、他のクライアントを使用してそれらを受信するのを支援する方法を説明します。
11.1.1.1. メッセージタイプ
JMS メッセージタイプ | 提出された AMQP メッセージの説明 |
---|---|
TextMessage は、本文テキストの utf8 でエンコードされた 文字列 を含む amqp-value ボディーセクションを使用して送信されます。本文テキストが設定されていない場合は null になります。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは 5 の バイト 値に設定されます。 | |
BytesMessage は、BytesMessage ボディーからの raw バイトを含む data ボディーセクションを使用して送信され、properties セクションの content-type フィールドは 記号 値 "application/octet-stream" に設定されます。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは、3 の バイト 値に設定されます。 | |
MapMessage ボディーは、単一の map 値が含まれる amqp-value ボディーセクションを使用して送信されます。MapMessage ボディーの byte[] 値はマップの バイナリー エントリーとしてエンコードされます。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは、2 の バイト 値に設定されます。 | |
StreamMessage は、StreamMessage ボディーのエントリーが含まれる amqp-sequence ボディーセクションを使用して送信されます。StreamMessage ボディーの byte[] エントリーは、シーケンスの バイナリー エントリーとしてエンコードされます。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは、4 の バイト 値に設定されます。 | |
ObjectMessage は、ObjectOutputStream を使用して ObjectMessage ボディーをシリアライズするバイトを含む data ボディーセクションを使用して送信されます。properties セクションの content-type フィールドは、シンボル の値 "application/x-java-serialized-object" に設定されます。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは、1 の バイト 値に設定されます。 | |
プレーンな JMS メッセージにはボディーがなく、null を含む amqp-value ボディーセクションとして送信されます。"x-opt-jms-msg-type" の 記号 キーを持つメッセージアノテーションは、0 の バイト 値に設定されます。 |
11.1.1.2. メッセージのプロパティー
JMS メッセージでは、さまざまな Java タイプのアプリケーションプロパティーの設定がサポートされます。このセクションでは、送信されたメッセージの application-properties セクションでこれらのプロパティー型値から AMQP 型の値へのマッピングを説明します。JMS と AMQP はいずれもプロパティー名に文字列キーを使用します。
JMS プロパティータイプ | AMQP アプリケーションプロパティーのタイプ |
---|---|
boolean | |
byte | |
short | |
int | |
Long | |
float | |
double | |
文字列 |
11.1.2. メッセージの受信
このセクションでは、クライアントが受信した各種ペイロードをさまざまな JMS メッセージタイプにマッピングし、他のクライアントを使用してメッセージを受信して JMS クライアントによる受信用にメッセージを送信する方法を説明します。
11.1.2.1. メッセージタイプ
受信した AMQP メッセージに "x-opt-jms-msg-type" message-annotation が存在する場合は、その値を使用して、以下の表で説明するマッピングに従って、そのメッセージタイプを表すのに使用する JMS メッセージタイプを判断します。これは、JMS クライアントによって送信される メッセージについて説明したマッピングのリバースプロセスを反映します。
AMQP "x-opt-jms-msg-type" message-annotation 値 (タイプ) | JMS メッセージタイプ |
---|---|
0 | |
1 (バイト) | |
2 (バイト) | |
3 (バイト) | |
4 (バイト) | |
5 (バイト) |
"x-opt-jms-msg-type" message-annotation が存在しない場合、以下の表でメッセージが JMS メッセージタイプにマップされます。StreamMessage タイプおよび MapMessage タイプは、アノテーション付きメッセージのみに割り当てられることに注意してください。
"x-opt-jms-msg-type" アノテーションなしの Received AMQP メッセージの説明 | JMS メッセージタイプ |
---|---|
| |
|
11.1.2.2. メッセージのプロパティー
このセクションでは、送信されたメッセージの application-properties セクションでこれらのプロパティー型値から AMQP 型の値へのマッピングを説明します。
AMQP アプリケーションプロパティーのタイプ | JMS プロパティータイプ |
---|---|
boolean | |
byte | |
short | |
int | |
Long | |
float | |
double | |
文字列 | |
文字列 |