MQRFH2 结构

MQRFH2 头包含消息结构和消息的目标使用者的信息,使消息代理可以处理消息并将它传递或发布到那些使用者。

MQRFH2 值应该放入前置头(通常为 MQMD)的 Format 字段中。MQFMT_RF_HEADER_2 常量由该值定义。

对于 C 编程语言,MQFMT_RF_HEADER_2_ARRAY 常量也已被定义。该常量与 MQFMT_RF_HEADER_2 具有相同的值,但它是字符数组而不是字符串。

MQRFH2 头中的字段的字符集和编码如下所示:

MQRFH2 头包含下列字段:

字段名称 描述 详细信息
StrucId 结构标识

该值必须为 MQRFH_STRUC_ID,是用于规则和格式化头结构的标识。

对于 C 编程语言,还定义了 MQRFH_STRUC_ID_ARRAY 常量,该常量与 MQRFH_STRUC_ID 具有相同的值,但它是字符数组而不是字符串。

Version 结构版本号

该值必须为 MQRFH_VERSION_2,是版本 2 规则和格式化头结构。

Struclength MQRFH2 的总长度(包含NameValueData

该字段的初始值为 MQRFH_STRUC_LENGTH_FIXED_2,是 MQRFH2 头结构固定部分的长度。

这是以字节为单位的 MQRFH2 头结构的长度,包括结构末端的任何 NameValueLengthNameValueData 字段。

在结构结束处可能有多对此类字段,其顺序为:length1, data1, length2, data2, ....... 在结构末端,跟在结尾的 NameValueData 字段之后的任何用户数据长度不包括在 StrucLength 中。

注: 如果 Struclength 不是四的倍数,在一些操作系统环境中,用户数据转换时可能发生问题。
Encoding 跟随在 NameValueData 之后的数据的数字编码

该字段的初始值为 MQENC_NATIVE

该字段指定在任何跟随在最后 NameValueData 字段之后的数据中,数值如何表示。这适用于二进制整数数据、压缩十进制整数数据和浮点数据。

CodedCharSetId 跟随在 NameValueData 之后的数据的字符集标识

该字段的初始值为 MQCCSI_INHERIT,表示字符集标识与当前结构中的相同。

该字段标识跟随在最后 NameValueData 字段之后的数据中任何字符串的编码字符集。

Format 跟随在 NameValueData 之后的数据的格式名称

该字段的初始值为 MQFMT_NONE

该字段指定跟随在最后 NameValueData 字段之后的任何数据的格式名。该名称应当以空白填充满该字段的长度。

注: 在该字段结束前,不要使用空字符来终止该名称;在 MQRFH2 头中,队列管理器不更改为空白字符、空字符或跟随空字符的任何字符。
注: 不要使用行距或嵌入空白字符来指定名称。
Flags 标志

该字段的初始值为 MQRFH_NONE,表示没有标志。

NameValueCCSID NameValueData 的字符集标识

该字段的初始值是 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')。

下列两个字段是可选的,但是如果显示,它们必须成对出现。 可以根据需要成对重复它们任意次。

如果这些字段出现多次,它们的顺序必须为:..... length1, data1, length2, data2, .......

NameValueLength NameValueData 的长度

该字段以字节为单位指定跟随在其后的 NameValueData 字段的长度。

注: 如果 NameValueLength 不是四的倍数,则跟随在 NameValueData 字段之后的数据在进行转换时可能出现问题。
NameValueData 这是一个包含使用类似 XML 结构进行编码的数据的可变长度字符串。

该字符串的长度以字节为单位,由在 NameValueData 字段之前的 NameValueLength 字段给定。

要避免发生与 NameValueLength 字段的描述一起提供的注释中的问题,可以使用空格扩展该字段以使其长度达到四的倍数,或者使用空字符来终止字段。

C 编程语言定义

WebSphere MQ 提供的 cmqc.h 头文件中定义以下结构。在 WebSphere Message Broker 提供的 BipRfc.h 头文件中定义 NameValueData 字段中使用的常量。
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 最后一次更新时间:2006/08/14
aq06930_