第11章 相互運用性
本章では、AMQ JMS を他の AMQ コンポーネントと組み合わせて使用する方法を説明します。AMQ コンポーネントの互換性の概要は、「製品の概要」を参照してください。
11.1. 他の AMQP クライアントとの相互運用
AMQP メッセージは AMQP タイプシステムを使用して構成されます。この一般的な形式を使用するのは、異なる言語の AMQP クライアントが、相互運用できることが理由です。このセクションでは、クライアントと他の 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 ボディーは、単一の マップ 値が含まれる 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 | |
String |
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. メッセージのプロパティー
このセクションでは、受信した AMQP メッセージの application-properties セクションから JMS メッセージで使用される Java 型へのマッピングについて説明します。
AMQP アプリケーションプロパティーのタイプ | JMS プロパティータイプ |
---|---|
boolean | |
byte | |
short | |
int | |
long | |
float | |
double | |
String | |
String |