MQMD 的格式 (MQCHAR8)
- 大写 A 到 Z
- 数字数字 0 到 9
将带有空格的名称填充到字段的长度上,或使用空字符在字段结束之前终止名称; 将空字符和任何后续字符视为空格。 不要指定带有前导空格或嵌入空格的名称。 对于 MQGET 调用,队列管理器会将用空格填充的名称返回到字段的长度。
队列管理器不检查该名称是否符合上述建议。
- MQFMT_NONE
- 未定义数据的性质: 使用 MQGMO_CONVERT 选项从队列中检索消息时,无法转换数据。如果在 MQGET 调用上指定 MQGMO_CONVERT ,并且消息中数据的字符集或编码与 MsgDesc 参数中指定的字符集或编码不同,那么将返回具有以下完成代码和原因码的消息 (假定没有其他错误):
- 完成代码 MQCC_WARNING 和原因码 MQRC_FORMAT_ERROR (如果 MQFMT_NONE 数据位于消息的开头)。
- 如果 MQFMT_NONE 数据位于消息末尾 (即,前面有一个或多个 MQ 头结构) ,那么完成代码 MQCC_OK 和原因码 MQRC_NONE。 在这种情况下,会将 MQ 头结构转换为请求的字符集和编码。
对于 C 编程语言,还定义了常量 MQFMT_NONE_ARRAY; 此值与 MQFMT_NONE 相同,但是字符数组而不是字符串。
- MQFMT_ADMIN
- 该消息是可编程命令格式 (PCF) 的命令-服务器请求或应答消息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。 有关使用可编程命令格式消息的更多信息,请参阅 使用可编程命令格式 。
对于 C 编程语言,还定义了常量 MQFMT_ADMIN_ARRAY; 此值与 MQFMT_ADMIN 相同,但是字符数组而不是字符串。
- MQFMT_CICS
- 消息数据以 CICS® 信息头 MQCIH 开头,后跟应用程序数据。 应用程序数据的格式名称由 MQCIH 结构中的
Format字段提供。
在 z/OS®上,在 MQGET 调用上指定 MQGMO_CONVERT 选项以转换格式为 MQFMT_CICS 的消息。对于 C 编程语言,还定义了常量 MQFMT_CICS_ARRAY; 此值与 MQFMT_CICS 相同,但是字符数组而不是字符串。
- MQFMT_COMMAND_1
- 此消息是包含对象计数,完成代码和原因码的 MQSC 命令服务器应答消息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。
对于 C 编程语言,还定义了常量 MQFMT_COMMAND_1_ARRAY ; 此值与 MQFMT_COMMAND_1相同,但是字符数组而不是字符串。
- MQFMT_COMMAND_2
- 此消息是 MQSC 命令服务器应答消息,其中包含有关所请求对象的信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。
对于 C 编程语言,还定义了常量 MQFMT_COMMAND_2_ARRAY ; 此值与 MQFMT_COMMAND_2相同,但是字符数组而不是字符串。
- MQFMT_DEAD_LETTER_HEADER
- 消息数据以死信头 MQDLH 开头。 原始消息中的数据紧跟 MQDLH 结构。 原始消息数据的格式名称由 MQDLH 结构中的
Format字段提供; 请参阅 MQDLH-死信头 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。对于
Format为 MQFMT_DEAD_LETTER_HEADER 的消息,不会生成 COA 和 COD 报告。对于 C 编程语言,还定义了常量 MQFMT_DEAD_LETTER_HEADER_ARRAY; 此值与 MQFMT_DEAD_LETTER_HEADER 相同,但是字符数组而不是字符串。
- MQFMT_DIST_HEADER
- 消息数据以 distribution-list 头 MQDH 开头; 这包括 MQOR 和 MQPMR 记录的数组。 可以在 distribution-list 头后面添加其他数据。 附加数据 (如果有) 的格式由 MQDH 结构中的
Format字段提供; 请参阅 MQDH-Distribution 头 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换格式为 MQFMT_DIST_HEADER 的消息。此格式在以下环境中受支持:
AIX®
IBM® i
Linux®
Windows
对于 C 编程语言,还定义了常量 MQFMT_DIST_HEADER_ARRAY; 此值与 MQFMT_DIST_HEADER 相同,但是字符数组而不是字符串。
- MQFMT_嵌入式PCF
- 跟踪路由消息的格式,前提是 PCF 命令值设置为 MQCMD_TRACE_ROUTE。 使用此格式允许随跟踪路由消息一起发送用户数据,前提是他们的应用程序可以处理先前的 PCF 参数。
PCF 头必须是第一个头,否则消息将不会被视为跟踪路由消息。 这意味着消息不能在组中,并且跟踪路由消息不能分段。 如果在组中发送跟踪路由消息,那么将拒绝此消息,原因码为 MQRC_MSG_NOT_ALLOWED_IN_GROUP。
请注意, MQFMT_ADMIN 也可以用于跟踪路由消息的格式,但在这种情况下,不能将任何用户数据与跟踪路由消息一起发送。
- MQFMT_EVENT
- 该消息是报告发生的事件的 MQ 事件消息。 事件消息具有与可编程命令相同的结构; 请参阅 PCF 命令消息 以获取有关此结构的更多信息,并参阅 事件监视 以获取有关事件的信息。
如果在 MQGET 调用上指定了 Mqgmo_convert 选项,那么可以在所有环境中转换 Version-1 事件消息。 Version-2 事件消息只能在 z/OS上转换。
对于 C 编程语言,还定义了常量 MQFMT_EVENT_ARRAY; 此值与 MQFMT_EVENT 相同,但是字符数组而不是字符串。
- MQFMT_IMS
- 消息数据以 IMS 信息头 MQIIH 开头,后跟应用程序数据。 应用程序数据的格式名称由 MQIIH 结构中的
Format字段提供。关于在使用 MQGET 和 MQGMO_CONVERT 时如何处理 MQIIH 结构的详细信息,请参阅 MQIIH 的 Format MQCHAR8 )和 MQIIH 的 ReplyToFormatMQCHAR8 )。
对于 C 编程语言,还定义了常量 MQFMT_IMS_ARRAY; 此值与 MQFMT_IMS 相同,但是字符数组而不是字符串。
- MQFMT_IMS_VAR_STRING
- 消息是 IMS 变量字符串,它是格式为
llzzccc的字符串,其中:ll- 是一个 2 字节长度字段,用于指定 IMS 变量字符串项的总长度。 此长度等于
ll(2 字节) 的长度加上zz(2 字节) 的长度加上字符串本身的长度。ll是由Encoding字段指定的编码中的 2 字节二进制整数。 zz- 是包含对 IMS重要的标志的 2 字节字段。
zz是由两个 MQBYTE 字段组成的字节字符串,传输时不会从发送方更改为接收方 (即,zz不受任何转换限制)。 ccc- 是包含
ll-4个字符的变长字符串。ccc位于CodedCharSetId字段指定的字符集中。
在 z/OS上,消息数据可以由一系列 IMS 变量字符串组成,这些变量字符串相互对接,每个字符串的格式为
llzzccc。 在连续的 IMS 变量字符串之间不得跳过任何字节。 这意味着,如果第一个字符串的长度为奇数,那么第二个字符串将不对齐,即,它不会在两个的倍数的边界上开始。 在需要基本数据类型对齐的机器上构造此类字符串时请小心。在 MQGET 调用上使用 MQGMO_CONVERT 选项来转换格式为 MQFMT_IMS_VAR_STRING 的消息。
对于 C 编程语言,还定义了常量 MQFMT_IMS_VAR_STRING_ARRAY; 此值与 MQFMT_IMS_VAR_STRING 相同,但是字符数组而不是字符串。
- MQFMT_MD_EXTENSION
- 消息数据以消息描述符扩展 MQMDE 开头,并可选择后跟其他数据 (通常是应用程序消息数据)。 MQMDE 之后的数据的格式名称,字符集和编码由 MQMDE 中的
Format,CodedCharSetId和Encoding字段提供。 请参阅 MQMDE-消息描述符扩展 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。对于 C 编程语言,还定义了常量 MQFMT_MD_EXTENSION_ARRAY; 此值与 MQFMT_MD_EXTENSION 相同,但是字符数组而不是字符串。
- MQFMT_PCF
- 该消息是符合可编程命令格式 (PCF) 消息的结构的用户定义的消息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。 有关使用可编程命令格式消息的更多信息,请参阅 使用可编程命令格式 。
对于 C 编程语言,还定义了常量 MQFMT_PCF_ARRAY; 此值与 MQFMT_PCF 相同,但是字符数组而不是字符串。
- MQFMT_REF_MSG_HEADER
- 消息数据以参考消息头 MQRMH 开头,并且可以选择后跟其他数据。 数据的格式名称,字符集和编码由 MQRMH 中的
Format,CodedCharSetId和Encoding字段提供。 请参阅 MQRMH-参考消息头 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。此格式在以下环境中受支持:
AIX
IBM i
Linux
Windows
对于 C 编程语言,还定义了常量 MQFMT_REF_MSG_HEADER_ARRAY; 此值与 MQFMT_REF_MSG_HEADER 相同,但它是字符数组而不是字符串。
- MQFMT_RF_HEADER
- 消息数据以规则和格式化头 MQRFH 开头,并且可以选择后跟其他数据。 数据的格式名称,字符集和编码 (如果有) 由 MQRFH 中的
Format,CodedCharSetId和Encoding字段提供。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。对于 C 编程语言,还定义了常量 MQFMT_RF_HEADER_ARRAY; 此值与 MQFMT_RF_HEADER 相同,但是字符数组而不是字符串。
- MQFMT_RF_HEADER_2
- 消息数据以 version-2 规则和格式化头 MQRFH2开头,并可选择后跟其他数据。 可选数据 (如果有) 的格式名称,字符集和编码由 MQRFH2中的
Format,CodedCharSetId和Encoding字段提供。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。对于 C 编程语言,还定义了常量 MQFMT_RF_HEADER_2_ARRAY ; 此值与 MQFMT_RF_HEADER_2相同,但是字符数组而不是字符串。
- MQFMT_STRING
- 应用程序消息数据可以是 SBCS 字符串 (单字节字符集) 或 DBCS 字符串 (双字节字符集)。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。
对于 C 编程语言,还定义了常量 MQFMT_STRING_ARRAY; 此值与 MQFMT_STRING 相同,但是字符数组而不是字符串。
- MQFMT_TRIGGER
- 该消息是 MQTM 结构所描述的触发器消息; 请参阅 MQTM-Trigger 消息 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。
对于 C 编程语言,还定义了常量 MQFMT_TRIGGER_ARRAY; 此值与 MQFMT_TRIGGER 相同,但是字符数组而不是字符串。
- MQFMT_WORK_INFO_HEADER
- 消息数据以工作信息头 MQWIH 开头,后跟应用程序数据。 应用程序数据的格式名称由 MQWIH 结构中的
Format字段提供。
在 z/OS上,在 MQGET 调用上指定 MQGMO_CONVERT 选项,以转换格式为 MQFMT_WORK_INFO_HEADER 的消息中的用户数据。 但是, MQWIH 结构本身始终以队列管理器的字符集和编码返回 (即,无论是否指定了 MQGMO_CONVERT 选项,都会转换 MQWIH 结构)。对于 C 编程语言,还定义了常量 MQFMT_WORK_INFO_HEADER_ARRAY; 此值与 MQFMT_WORK_INFO_HEADER 相同,但是字符数组而不是字符串。
- MQFMT_XMIT_Q_HEADER
- 消息数据以传输队列头 MQXQH 开头。 原始消息中的数据紧跟 MQXQH 结构。 原始消息数据的格式名称由 MQMD 结构中的
Format字段提供,该字段是传输队列头 MQXQH 的一部分。 请参阅 MQXQH-Transmission-queue header 以获取此结构的详细信息。对于
Format为 MQFMT_XMIT_Q_HEADER 的消息,不会生成 COA 和 COD 报告。对于 C 编程语言,还定义了常量 MQFMT_XMIT_Q_HEADER_ARRAY; 此值与 MQFMT_XMIT_Q_HEADER 相同,但是字符数组而不是字符串。
这是 MQGET 调用的输出字段,也是 MQPUT 和 MQPUT1 调用的输入字段。 此字段的长度由 MQ_FORMAT_LENGTH 指定。 此字段的初始值为 MQFMT_NONE。