JMS メッセージ・タイプ

JMS は、1 つの基本メッセージ・タイプと 5 つのサブタイプの、 6 つのメッセージ・インターフェース・タイプを定義しています。 メッセージ・タイプは、ペイロードのメッセージ・タイプに応じて定義されます。 ペイロードは、内容を保持するメッセージ本体です。 JMS は、インターフェースだけを指定して、インプリメンテーションは指定しません。 これにより、共通インターフェースを使用しながら、ベンダーに特定の方法で メッセージのインプリメンテーションおよび移送を行うことが可能になります。

以下の表では、6 つのメッセージ・タイプについて説明します。
メッセージ・タイプ 説明
メッセージ 基本クラス。 このメッセージ・タイプはイベント通知に使用され、ペイロードはありません。
BytesMessage ペイロードは、バイトの配列として保管されます。 アプリケーションのネイティブ・フォーマットでデータを交換するとき、 および JMS が 2 つのシステム間でのトランスポートとして使用されるときには、 JMS クライアントはメッセージ・ペイロード・タイプを知らないので、このメッセージ・タイプが便利です。
TextMessage データはストリングとして保管されます。 このメッセージ・タイプは、簡単なテキスト・メッセージや、XML 文書などのより複雑な文字データを 交換するときに便利です。
StreamMessage ストリーム・メッセージは、プリミティブ Java タイプのシーケンスです。 メッセージ・オブジェクトは、ストリーム内のこれらのプリミティブについて、その順序およびタイプを追跡します。 公式変換規則が適用されます。 例えば、JMS アプリケーションが double 値を short 値として読み取ろうとすると、例外がスローされます。 変換規則の完全なリストについては、Java Message Service Specification、バージョン 1.1 (Java Message Service Specification, version 1.1)を参照してください。
21ABCDEFGH32.345 は、StreamMessage ペイロードの例です。 これは、以下の 3 つのフィールドから構成されています。
  • 整数、21
  • ストリング、ABCDEFGH
  • 浮動小数点、32.345

データ構造が不明の場合、一般的なメソッドの readObject() を使用して、ストリーム内の次のオブジェクトを戻すことができます。 データの構造が既知の場合、JMS クライアントはアクセスするオブジェクトのタイプに関して 具体的であることができます。

MapMessage MapMessage のペイロードは、名前と値の対のセットとして保管されます。 名前はストリングとして定義され、値は入力されます。 MapMessage は、メッセージごとに変わることのあるキー付きデータの配信に便利です。

NumberOfCopies:5 は、MapMessage ペイロードの例です。 NumberOfCopies はキーで、5 は値です。

データには、getMapNames() を使用してアクセスできます。 これは Java 列挙型オブジェクトを戻します。 hasMoreElements() を使用して、マップされた名前と値の対を MapMessage 内で繰り返し取得することが可能です。

ObjectMessage オブジェクト・メッセージは、シリアライズ可能な Java オブジェクトをペイロードとして搬送します。 これは、Java オブジェクトの交換に便利です。
関連資料
JMS メッセージ構造
JMS Transport 全体でのメッセージの表記
入力としての JMS メッセージ
出力のための JMS メッセージ
JNDI 管理対象オブジェクト
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac24862_