【问题标题】:WSO2: Add IBM MQ Correllation ID to message headerWSO2:将 IBM MQ 相关 ID 添加到消息头
【发布时间】:2018-07-10 06:45:55
【问题描述】:

如何将 IBM MQ Correlation ID 标头添加到 WSO2 Integrator 中的消息中?

我有一个场景,我从 MQ 接收消息,使用一些中介转换消息并调用后端服务,并且需要使用 WSO2 Integrator(版本 6.1.1)将转换后的消息回复到另一个 (MQ) 队列)。接收消息的客户希望在我的回复中找到与他的原始消息相同的关联 ID。

IBM 告诉我属性是这个:

放置时要包含在消息的 MQMD 中的 CorrelationId 一个队列。

定义于:MQMessage 类

数据类型:24个字符的字符串

语法:获取:correlid$ = MQMessage.CorrelationId 设置:MQMessage.CorrelationId = correlid$

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q034650_.htm

【问题讨论】:

  • 我怀疑您可以为此使用 JMS_COORELATION_ID:docs.wso2.com/display/ESB481/…
  • 谢谢,我会试试这个并恢复。
  • 嗨 Awan,我将如何在 WSO2 Integrator 中做到这一点?
  • @PetteriPertola 如上所述,您可以按照该链接上的说明进行操作。
  • 嗨,Awan,上面的链接没有提供如何转换为 MQMessage 的示例。你能举个例子吗? WSO2 文档通常缺乏明确的示例。

标签: wso2 wso2esb ibm-mq mq


【解决方案1】:

事实证明这是一个简单的解决方案。 JMS_COORELATION_ID 属性必须在 axis2 范围 中专门设置。

所以虽然这有效:

<property name="JMS_COORELATION_ID" value="MyCoorelationId" scope="axis2" xmlns:ns="http://org.apache.synapse/xsd"/>

使用任何其他范围,例如默认或传输,不会:

<property name="JMS_COORELATION_ID" value="MyCoorelationId" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/>
<property name="JMS_COORELATION_ID" value="MyCoorelationId" scope="default" xmlns:ns="http://org.apache.synapse/xsd"/>

不幸的是,WSO2 文档很糟糕,并且没有提到其他范围不起作用。希望这可以为将来节省一些时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2018-03-20
    • 2016-11-22
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多