WSO2:将IBM MQ关联ID添加到消息头

时间:2018-07-10 06:45:56

标签: wso2 wso2esb ibm-mq mq

如何在WSO2 Integrator中向邮件添加 IBM MQ Correlation ID头

我有一个场景,我从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

1 个答案:

答案 0 :(得分:1)

原来,这是一个简单的解决方案。必须在 axis2范围中专门设置JMS_COORELATION_ID属性。

所以这可行:

<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文档令人恐惧,并且没有提及其他范围不起作用。希望这可以节省将来的时间。