WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 オペレーティング・システム: Linux, Windows

XMS メッセージの本文

メッセージの本文にはアプリケーション・データが含まれています。ただしメッセージは、本文が含まれずに、ヘッダー・フィールドとプロパティーのみで構成されることもあります。

XMS は、5 つのタイプのメッセージ本文をサポートします。
バイト
本文にはバイト・ストリームが含まれています。この本文タイプのメッセージは、バイト・メッセージ と呼ばれます。C または C++ の BytesMessage クラス、および .NET の IBytesMessage インターフェースには、バイト・メッセージの本文を処理するメソッドが含まれています。
マップ
本文には、名前値のペアが 1 組含まれており、それぞれの値には関連付けられたデータ型があります。この本文タイプのメッセージは、マップ・メッセージ と呼ばれます。C または C++ の MapMessage クラス、および .NET の IMapMessage インターフェースには、マップ・メッセージの本文を処理するメソッドが含まれています。
オブジェクト
本文には、シリアライズされた Java または .NET オブジェクトが含まれています。この本文タイプのメッセージは、オブジェクト・メッセージ と呼ばれます。C または C++ の ObjectMessage クラス、および .NET の IObjectMessage インターフェースには、オブジェクト・メッセージの本文を処理するメソッドが含まれています。
ストリーム
本文には、値のストリームが含まれており、それぞれの値には関連付けられたデータ型があります。この本文タイプのメッセージは、ストリーム・メッセージ と呼ばれます。C または C++ の StreamMessage クラス、および .NET の IStreamMessage インターフェースには、ストリーム・メッセージの本文を処理するメソッドが含まれています。
テキスト
本文にはストリングが含まれています。この本文タイプのメッセージは、テキスト・メッセージ と呼ばれます。C または C++ の TextMessage クラス、および .NET の ITextMessage インターフェースには、テキスト・メッセージの本文を処理するメソッドが含まれています。

C インターフェースでは、アプリケーションがメッセージを作成すると、XMS がアプリケーションにメッセージ・ハンドルを戻します。アプリケーションは、このハンドルを使用して、Message クラスの任意のメソッド、および BytesMessage、 MapMessage、ObjectMessage、Stream Message、または TextMessage クラスの任意のメソッドの中から、いずれでもメッセージ本文のタイプに適切なメソッドを呼び出すことができます。ただし、メッセージ本文のタイプに不適切なメソッドをアプリケーションが呼び出そうとすると、呼び出しに失敗し、XMS はエラー・コード XMS_E_BAD_PARAMETER を戻します。

C アプリケーションは、xmsMsgGetTypeId() 関数を呼び出してメッセージの本文タイプを判別することができます。この関数により、次のいずれかの値が戻されます。
XMS_MESSAGE_TYPE_BASE
メッセージに本文がない場合
XMS_MESSAGE_TYPE_BYTES
メッセージがバイト・メッセージの場合
XMS_MESSAGE_TYPE_MAP
メッセージがマップ・メッセージの場合
XMS_MESSAGE_TYPE_OBJECT
メッセージがオブジェクト・メッセージの場合
XMS_MESSAGE_TYPE_STREAM
メッセージがストリーム・メッセージの場合
XMS_MESSAGE_TYPE_TEXT
メッセージがテキスト・メッセージの場合
一例として、次の C コードの断片を参照してください。
xmsMESSAGE_TYPE msgtype;
xmsMsgConsumerReceive(messageConsumer, &msg, errorBlock);
xmsMsgGetTypeId(msg, &msgtype, errorBlock);
if (msgtype == XMS_MESSAGE_TYPE_BYTES)
{
xmsBytesMsgGetBodyLength(msg, &length, errorBlock);
}

C++ インターフェースでは、BytesMessage、MapMessage、ObjectMessage、 StreamMessage、および TextMessage が Message クラスのサブクラスになります。

.NET では、IMessage インターフェースがすべてのメッセージ・オブジェクトの親になり、メッセージング関数で使用して XMS メッセージ・タイプのいずれかを表すことができます。

XMS アプリケーションが、WebSphere MQ JMS アプリケーションとの間で確実にメッセージを交換するには、XMS アプリケーションと WebSphere MQ JMS アプリケーションで、メッセージの本文のアプリケーション・データを同じ方法で解釈できるようにしておく必要があります。この理由により、XMS アプリケーションによってメッセージの本文に書き込まれるアプリケーション・データの各エレメントは、表 1 のリストにあるデータ型のいずれかを持っている必要があります。表には、XMS データ型ごとに、互換性のある Java データ・タイプが示されています。XMS には、これらのデータ型のアプリケーション・データのエレメントを書き込むメソッドが用意されています。データ型は、これらのデータ型に限定されています。

表 1. Java データ型と互換性のある XMS データ型
XMS データ型 意味 サイズ 互換性のある Java データ型
xmsBOOL ブール値 xmsTRUE または xmsFALSE 32 ビット boolean
xmsCHAR16 2 バイト文字 16 ビット char
xmsSBYTE 符号付き 8 ビット整数 8 ビット byte
xmsSHORT 符号付き 16 ビット整数 16 ビット short
xmsINT 符号付き 32 ビット整数 32 ビット int
xmsLONG 符号付き 64 ビット整数 64 ビット long
xmsFLOAT 符号付き浮動小数点数 32 ビット float
xmsDOUBLE 符号付き倍精度浮動小数点数 64 ビット double
String 文字ストリング - String

本文メッセージの 5 つのタイプについて詳しくは、次のトピックを参照してください。

関連資料
XMS メッセージのパーツ
XMS メッセージのヘッダー・フィールド
XMS メッセージのプロパティー
メッセージ・セレクター
XMS メッセージの WebSphere MQ メッセージへのマッピング

Reference topic

ご利用条件 | フィードバック (英語のみ)

Timestamp icon最終更新: 8 Jun 2006
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)