MQRFH2 構造体

MQRFH2 ヘッダーには、メッセージの構造体についての情報と対象消費者についての情報が入っていて、 それを使ってメッセージ・ブローカーはメッセージを処理してその消費者に配送またはパブリッシュすることができます。

値 'MQRFH2  ' を、先行するヘッダー (通常は MQMD) の「形式」フィールドに入れなければなりません。定数 MQFMT_RF_HEADER_2 は、この値で定義されます。

C プログラミング言語の場合、定数 MQFMT_RF_HEADER_2_ARRAY も定義されます。この定数は MQFMT_RF_HEADER_2 と同じ値を持ちますが、文字ストリングではなく文字の配列です。

MQRFH2 ヘッダーのフィールドの文字セットおよびエンコードは以下のとおりです。

MQRFH2 ヘッダーには、以下のフィールドが含まれています。

フィールド名 説明 詳細
StrucId 構造体 ID

この値は MQRFH_STRUC_ID でなければなりません。 これは、規則およびフォーマット・ヘッダー構造体の ID です。

C プログラミング言語の場合、定数 MQRFH_STRUC_ID_ARRAY も定義されます。 この定数は MQRFH_STRUC_ID と同じ値を持ちますが、ストリングではなく文字の配列です。

Version 構造体バージョン番号

この値は MQRFH_VERSION_2 でなければなりません。 これは、Version-2 規則およびフォーマット・ヘッダー構造体です。

Struclength MQRFH2 の全長 (NameValueData を含む)。

このフィールドの初期値は、MQRFH_STRUC_LENGTH_FIXED_2 です。 これは、MQRFH2 ヘッダー構造体の固定部分の長さです。

これは、MQRFH2 ヘッダー構造体の長さ (バイト) です (この構造体の最後の NameValueLength および NameValueData フィールドを含みます)。

このようなフィールドの複数のペアが、length1、data1、length2、data2、.......という順序で構造体の末尾に存在する可能性があります。 構造体の末尾にある最後の NameValueData フィールドの後に続くすべてのユーザー・データの長さは、StrucLength には含まれません。

注: Struclength が 4 の倍数でない場合は、オペレーティング・システム環境によってはユーザー・データのデータ変換時に問題が生じる可能性があります。
Encoding NameValueData の後に続くデータの数値エンコード

このフィールドの初期値は、 MQENC_NATIVE です。

このフィールドでは、最後の NameValueData フィールドの後に続くすべてのデータ内の数値をどのように表すかを指定します。これは、バイナリー整数データ、パック 10 進整数データ、および浮動小数点データに適用されます。

CodedCharSetId NameValueData の後に続くデータの文字セット ID

このフィールドの初期値は、 MQCCSI_INHERIT です。 これは、文字セット ID が現行構造体のものと同じであることを意味します。

このフィールドは、最後の NameValueData フィールドに続くデータ内のすべての文字ストリングのコード化文字セット ID を識別します。

Format NameValueData の後に続くデータの形式名

このフィールドの初期値は、 MQFMT_NONE です。

このフィールドでは、最後の NameValueData フィールドの後に続くすべてのデータの形式名を指定します。この名前には、フィールドの長さに合わせてブランクを埋め込む必要があります。

注: フィールドの末尾の前でヌル文字を使用して名前を終了しないでください。キュー・マネージャーは、MQRFH2 ヘッダー内のヌル文字や、ヌル文字の後に続く文字をブランク文字に変換しないからです。
注: また、先頭または埋め込まれたブランク文字を使って名前を指定しないでください。
Flags Flags

このフィールドの初期値は MQRFH_NONE です。 フラグがないことを意味します。

NameValueCCSID NameValueData の文字セット ID

このフィールドの初期値は 1208 です。これは、 utf-8コード化文字セットが使われることを意味します。

このフィールドは、 NameValueData フィールド内のデータのコード化文字セットを識別します。これは、MQRFH2 ヘッダー構造体の他のストリングの文字セットとは異なり、 最後の NameValueData フィールドに続く文字データの文字セットとも異なる場合があります。

NameValueCCSID には、以下のいずれかの値がなければなりません。

1200: UCS-2 開放型

1208: UTF-8

13488: UCS-2 2.0 サブセット

17584: UCS-2 2.1 サブセット (ユーロ記号 € を含む)

UCS-2 文字セットの場合、NameValueData のエンコード (バイト配列) は、 MQRFH2 ヘッダー構造体の他のエンコードと同じでなければなりません。

注: 代理文字 (X'D800' から X'DFFF') はサポートされません。

以下の 2 つのフィールドはオプションですが、存在する場合は、ペアとなっていなければなりません。 これらのフィールドはペアとして、必要なだけ何回でも繰り返すことができます。

これらのフィールドが複数回出現する場合、length1、data1、length2、data2、.......という順序で出現しなければなりません。

NameValueLength NameValueData の長さ

このフィールドでは、このフィールドの後に続く NameValueData フィールドの長さをバイト数で指定します。

注: NameValueLength が 4 の倍数でない場合、NameValueData フィールドの後に続くデータの変換時に問題が生じることがあります。
NameValueData これは、XML 形式の構文を使用してエンコード化されるデータの入った可変長文字ストリングです。

このストリングのバイト単位の長さは、 この NameValueData フィールドより前にある NameValueLength フィールドで指定されます。

注記の NameValueLength フィールドの説明に示されている問題を避けるためには、このフィールドをブランクで拡張して長さを 4 の倍数にするか、またはヌル文字でフィールドを終端してください。

C プログラミング言語定義

以下の構造体は、 WebSphere MQ に付属している cmqc.h ヘッダー・ファイルで定義されています。 NameValueData フィールド内で使用される定数は、WebSphere Message Broker に付属している BipRfc.h ヘッダー・ファイルで定義されています。
typedef struct tagMQRFH2 {
  MQCHAR4 StrucId; /* Structure identifier */
  MQLONG Version; /* Structure version number */
  MQLONG StrucLength; /* Total length of MQRFH2 including
                                 NameValueData */
  MQLONG Encoding; /* Numeric encoding of data that follows
                                 NameValueData */
  MQLONG CodedCharSetId; /* Character set identifier of data that
                                 follows NameValueData */
  MQCHAR8 Format; /* Format name of data that follows
                                 NameValueData */
  MQLONG Flags; /* Flags */
  MQLONG NameValueCCSID; /* Character set identifier of NameValueData */
 } MQRFH2;
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
aq06930_