“文件到消息”传输失败

如果代理开始将文件数据写入到目标队列后文件到消息传输失败,那么代理会向队列写入一条消息以向使用这些消息的应用程序指明发生失败。

如果发生失败,表示写入到目标队列的消息:
  • 是空消息
  • 具有与代理写入目标队列的先前消息相同的 IBM® MQ 组标识
  • 已设置 IBM MQ LAST_MSG_IN_GROUP 标志
  • 包含其他 IBM MQ 消息属性 (如果启用了消息属性)。 有关更多信息,请参阅主题 MFT 对写入目标队列的消息设置的MQ 消息属性

示例

通过运行以下命令来请求传输:

fteCreateTransfer -sa AGENT_JUPITER -da AGENT_SATURN -dq RECEIVING_QUEUE 
                  -qmp true -qs 1K /tmp/source1.txt
文件 source1.txt 为 48KB。 传输会将此文件分割为 1KB 的消息,并将这些消息写入到目标队列 RECEIVING_QUEUE。

传输进行过程中,代理将 16 条消息写入 RECEIVING_QUEUE 后,在源代理处发生失败。

代理将空消息写入 RECEIVING_QUEUE。 除标准消息属性集之外,空消息设置了以下消息属性:
usr.WMQFTEResultCode = 40
usr.WMQFTESupplement = BFGTR0036I: The transfer failed to complete successfully.

IBM MQ 9.3.0开始,当来自文件的传输由于定界符大小检查错误而失败时,仅发送一条空消息。 此外,如果由于定界符超出目标代理上的设置大小而导致传输失败,那么会将用户属性添加到此消息中。