You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIB中向归档队列发送含MQRFH2.usr提供者名的归档消息

IIB 归档消息添加MQRFH2.usr提供者名称实现方案

实现步骤

  1. 调整消息流分支结构
    在已有的3个「发送至提供者」分支中,分别在提供者MQ输出节点之前添加一个Compute节点,用于注入带提供者名称的MQRFH2头;同时在每个Compute节点后新增一个MQ输出节点,指向你的归档队列。

  2. 配置Compute节点逻辑
    每个Compute节点对应一个特定提供者,在ESQL中完成MQRFH2头的创建/修改,并写入对应的提供者名称,同时保留映射后的消息体。

  3. 配置归档MQ输出节点
    将归档队列对应的MQ输出节点的Message Domain设置为Automatic,确保MQRFH2头能被正确识别并传递到归档队列中。

ESQL代码示例(以ProviderA分支为例)

CREATE COMPUTE MODULE Inject_ProviderName_RFH2
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
        -- 定位或创建MQRFH2头部
        DECLARE rfh2Ref REFERENCE TO OutputRoot.MQRFH2;
        IF rfh2Ref IS NULL THEN
            -- 初始化MQRFH2基础结构
            SET OutputRoot.MQRFH2 = ROW{
                Version: 2,
                Namespace: 'http://ibm.com/wmq/msg/2001/03',
                usr: ROW{}
            };
            SET rfh2Ref = OutputRoot.MQRFH2;
        END IF;

        -- 写入当前分支对应的提供者名称
        SET rfh2Ref.usr.ProviderName = 'ProviderA';

        -- 保留映射后的提供者格式消息体(根据实际消息域调整,比如XMLNSC、JSON等)
        SET OutputRoot.BLOB = InputRoot.BLOB;
        -- 如果是XML域,替换为:SET OutputRoot.XMLNSC = InputRoot.XMLNSC;

        RETURN TRUE;
    END;
END MODULE;

批量适配其他提供者

对于ProviderB和ProviderC分支,只需复制上述ESQL代码,将SET rfh2Ref.usr.ProviderName = 'ProviderA';中的ProviderA替换为ProviderB/ProviderC即可。

关键注意事项

  • 若消息使用特定业务域(如XMLNSC、JSON),需将代码中消息体复制的语句替换为对应域的路径,避免消息体丢失或格式错误。
  • 确保归档队列的MQ输出节点未启用「Strip Headers」选项,否则MQRFH2头会被剥离。

内容的提问来源于stack exchange,提问作者up's

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:15:12