【问题标题】:How does broker knows there is a MQRFH2 header代理如何知道有 MQRFH2 标头
【发布时间】:2017-05-12 02:08:54
【问题描述】:

我们有一个计算节点,它从具有 MQRFH2 标头的 InputRoot 复制 OutputRoot,然后将 MQMD 格式设置为“MQSTR”,然后将其发送到 MQOutput 节点。

在我的本地系统(MQ 和 WMB 7.0)上,当我尝试从 RFHUTILC 测试流和浏览输出队列时,消息仍然具有 MQMD 格式,如 MQHRF2 和正确的 MQRFH2 标头详细信息。

虽然在其他测试区域中进行测试时,相同的流程给出了一个空白 MQMD 格式的输出消息,并且 RFH2 详细信息出现在消息负载中。

造成这种差异的原因是什么?

【问题讨论】:

    标签: ibm-mq ibm-integration-bus


    【解决方案1】:

    输入消息将在 InputRoot.MQRFH2 处具有 RFH2 标头,如果您使用 RFH2 的紧凑解析器,则在 InputRoot.MQRFH2C 处具有 RFH2 标头,该标头将被复制到 OutputRoot,并且 Broker 在看到时将 MQMD 格式设置为 MQHRF2 OutputRoot 中的标头。

    要删除 RFH2 标头,您应该执行以下操作:

    SET OutputRoot.MQMD.Format = OutputRoot.MQRFH2.Format;
    SET OutputRoot.MQRFH2 = NULL;
    

    对于您看到的不同行为,我想不出任何解释,而且我没有要测试的 V7 代理。顺便说一句,您也不应该拥有一个,因为它已不受支持。

    【讨论】:

    • RFH2 报头未到来的实际情况是在过期报告消息上(消息存储时带有报告选项以在过期时发回完整数据),但消息有效负载以 RFH ... 开头[更正原始消息中的 usr 数据]。我尝试在本地系统上模拟相同的内容,但在本地系统上没有消息有效负载/数据,但消息具有正确的 RFH2 标头作为原始消息。知道可能是什么问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2020-12-03
    • 2018-12-28
    • 1970-01-01
    相关资源
    最近更新 更多