微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据 MQRFH2 和 USR 属性将消息路由到 IBM MQ 中的不同消息队列

如何解决根据 MQRFH2 和 USR 属性将消息路由到 IBM MQ 中的不同消息队列

如果有人能够协助/提供某种使用 IBM IIB(集成工具包)和 IBM MQ 的指南/教程,利用 MQ 输入节点、计算节点和 MQ 输出节点,我们将不胜感激,这样当消息放在输入队列上,它将根据计算节点(Esql 文件)中设置/定义的 MQRFH2 标头和 USR 属性路由到输出队列

例如如果 MQRFH2/USR = 1,则将消息路由到队列 1,如果 MQRFH2/USR = 2,则将消息路由到队列 2,以此类推

提前致谢。

解决方法

请阅读Accessing the MQRFH2 headerPopulating Destination in the local environment tree

然后您可以像这样编写您的 ESQL:(假设 RFH2 路由变量名为 Ker

CREATE COMPUTE MODULE Routing_Compute
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        SET OutputLocalEnvironment.Destination.MQ.DestinationData[1].queueName =
            CASE InputRoot.MQRFH2.usr.Ker
                WHEN '1' THEN 'Q1'
                WHEN '2' THEN 'Q2'
                ELSE 'Q3'
            END;
        RETURN TRUE;
    END;
END MODULE;

记得像这样更改默认节点配置:

  • 计算:将 Compute mode 设置为 LocalEnvironment
  • MQ 输出:将 Destination mode 设置为 Destination List

示例:如果输入消息头 Ker 的值为 2,那么它将被路由到队列 Q2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。