【问题标题】:CCSID in Message broker消息代理中的 CCSID
【发布时间】:2015-01-29 19:32:47
【问题描述】:

有源应用程序和目标应用程序理解不同 CCSID 中的字符。

源应用程序连接到一些默认 CCSID 集的队列管理器。目标应用程序也连接到具有不同 CCSID 集的队列管理器。

我需要澄清一下这些消息是如何传递和检索的。 1)源应用程序将消息放在其Q中。此消息格式不可读。由于两者具有不同的CCSID,我希望MQPUT将提供由Source QM的默认CCSID覆盖的CCSID。-如果错误请更正

2)WMB接收MRM格式的消息。它根据指定的物理和逻辑结构进行解析。-请根据目标应用程序的CCSID说明在这个阶段本身是否发生数据转换?如果不是,那么从消息代理出来的可读格式的消息如何?

3)WMB解析后根据目标应用的CCSID设置CCSID和Encoding的OutputRoot.properties,错误请指正

4) 最后,当目标应用程序收到带有一些 CCSID 的消息 MQGET 时,它会覆盖目标 QM 的 CCSID。如果错误请更正

【问题讨论】:

    标签: broker


    【解决方案1】:

    如果这2条消息是MRM,则不需要创建2个Mset,都可以使用。

    在 Mapping 节点中,您可以更改 CCSID 只需分配一个值,但您需要知道 CCSID 是什么(例如 819、1208 等...)。

    您也可以使用 ESQL 来更改 CSSID。

    设置 OutputRoot.Properties.CSSID = 819;

    3) WMB 不会根据目标改变 CCSID 或 Enconding,WMB 无法知道目标在等待什么。

    4) 是的,当您收到一条消息时,WMB 将采用编码和 CCSID 并覆盖它。 (您可以在 OutputRoot.Properties 中看到它)。

    【讨论】:

      【解决方案2】:

      创建 2 个消息集。一个具有输入类型的消息集,另一个具有输出类型的消息集。

      根据定义的消息集设置输出节点消息域

      根据定义的消息集设置输入节点消息域

      在输入节点和输出节点之间使用映射节点将能够映射内容。

      谢谢 阿拉文德

      【讨论】:

        猜你喜欢
        • 2020-03-02
        • 2019-02-14
        • 1970-01-01
        • 2015-07-17
        • 2018-12-28
        • 2018-10-08
        • 1970-01-01
        • 2018-03-01
        • 2011-02-21
        相关资源
        最近更新 更多