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]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]AIX®
  • [IBM i]IBM® i
  • [Linux]Linux®
  • [Windows]Windows
以及用于连接到这些系统的 IBM MQ MQI clients

对于 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 中的 FormatCodedCharSetIdEncoding 字段提供。 请参阅 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 中的 FormatCodedCharSetIdEncoding 字段提供。 请参阅 MQRMH-参考消息头 以获取此结构的详细信息。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。
此格式在以下环境中受支持:
  • [AIX]AIX
  • [IBM i]IBM i
  • [Linux]Linux
  • [Windows]Windows
以及用于连接到这些系统的 IBM MQ MQI clients

对于 C 编程语言,还定义了常量 MQFMT_REF_MSG_HEADER_ARRAY; 此值与 MQFMT_REF_MSG_HEADER 相同,但它是字符数组而不是字符串。

MQFMT_RF_HEADER
消息数据以规则和格式化头 MQRFH 开头,并且可以选择后跟其他数据。 数据的格式名称,字符集和编码 (如果有) 由 MQRFH 中的 FormatCodedCharSetIdEncoding 字段提供。 如果在 MQGET 调用上指定了 MQGMO_CONVERT 选项,那么可以转换此格式的消息。

对于 C 编程语言,还定义了常量 MQFMT_RF_HEADER_ARRAY; 此值与 MQFMT_RF_HEADER 相同,但是字符数组而不是字符串。

MQFMT_RF_HEADER_2
消息数据以 version-2 规则和格式化头 MQRFH2开头,并可选择后跟其他数据。 可选数据 (如果有) 的格式名称,字符集和编码由 MQRFH2中的 FormatCodedCharSetIdEncoding 字段提供。 如果在 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]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。