MFT 对写入目标队列的消息设置的 MQ 消息属性

从文件传输到消息时, Managed File Transfer 可以在写入到目标队列的第一条消息上设置 IBM® MQ 消息属性。 当文件到消息传输失败时,将设置其他 IBM MQ 消息属性。

IBM MQ 消息属性允许应用程序选择要处理的消息,或者在不访问 MQ 消息描述符 (MQMD) 或 MQRFH2 头的情况下检索有关消息的信息。 请参阅 消息属性 (Message properties)

本主题描述了 fteCreateTransferfteCreateTemplate 命令中用于指示应该将消息属性添加到写入目标队列的第一条消息的参数。 您还可以指定应使用 fte:filespec 参数的 dstmsgprop 值将消息属性添加到写入目标队列的第一条消息中。

标准属性

您可以使用 fteCreateTransfer 命令或 fteCreateTemplate 命令上的 -qmp 参数来指定是否在传输写入目标队列的第一条消息上设置 IBM MQ 消息属性。 有关如何使用此参数的示例,请参阅主题 Example: Setting IBM MQ message properties on a file-to-message transfer

IBM MQ 消息属性包含传输元数据。 消息属性名使用前缀 usr.WMQFTEusr. 前缀使这些消息属性可用于 JMS 应用程序。

usr.WMQFTETransferId
唯一的十六进制传输标识。
usr.WMQFTETransferMode
文件传输类型:二进制方式或文本方式。
usr.WMQFTESourceAgent
源代理的名称。
usr.WMQFTEDestinationAgent
目标代理的名称。
usr.WMQFTEFileName
源文件的名称。
usr.WMQFTEFileSize
源文件大小(以字节为单位)。
usr.WMQFTEFileLastModified
上一次修改源文件的时间。 该值使用毫秒单位,从 1970 年 1 月 1 日 00:00:00 UTC 起度量。
usr.WMQFTEFileIndex
正在传输的文件列表中当前文件的索引。 列表中第一个文件的索引为 0。
usr.WMQFTEMqmdUser
提交传输请求的用户的 MQMD 用户标识。

失败属性

当目标代理将至少一条消息写入目标队列后,文件到消息传输失败时, Managed File Transfer 会将空白消息写入目标队列。 如果 -qmp 参数设置为 true ,那么此空白消息具有两个 IBM MQ 消息属性集。 有关文件到消息传输失败的示例,请参阅 文件到消息传输失败

当文件到消息传输完全失败时, Managed File Transfer 会将一条空白消息写入目标队列。 如果将 -qmp 参数设置为 true,并且消息数据的长度大于 maxInputOutputMessageLength 值,那么将在命令行上显示以下错误消息。
Name WMQFTEResultCode
Value 40 
Name WMQFTESupplement 
Value BFGTR0072E: The transfer failed to complete due to the exception BFGIO0205E:The message data length 1290843 being written
to the output queue "M2F@q2" is greater than the maximum allowed 1048576. 

IBM MQ 消息属性包含有关故障的信息。 如同标准消息属性,消息属性名前缀为 usr.WMQFTE,并且可供 JMS 应用程序使用。

usr.WMQFTEReturnCode
传输的返回码。 有关此返回码的可能值的列表,请参阅主题 MFT的返回码
usr.WMQFTESupplement
详细描述传输失败的原因的补充消息。

用户定义的属性

可以将使用 -md 参数与 fteCreateTransfer 命令一起指定的元数据设置为 IBM MQ 消息属性。 如果将 -qmp 参数设置为 true,那么用户指定的所有元数据都将添加至第一条消息的消息头。

元数据名称会加以前缀 usr.。 例如,如果元数据为 department=accounts,那么 IBM MQ 消息头将设置为 usr.department=accounts

不能使用元数据指定以 usr.WMQFTEusr.com.ibm.wmqfte 开始的头。 如果指定名称以 WMQFTEcom.ibm.wmqfte 开始的元数据,那么此元数据将不在消息属性中使用且将被忽略。