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

WSO2: Add IBM MQ Correllation ID to message header

如何将 IBM MQ 关联 ID header 添加到 WSO2 Integrator 中的消息?

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

IBM 告诉我 属性 是这个:

The CorrelationId to be included in the MQMD of a message when put on a queue.

Defined in: MQMessage class

Data Type: String of 24 characters

Syntax: To get: correlid$ = MQMessage.CorrelationId To set: MQMessage.CorrelationId = correlid$

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

事实证明这是一个简单的解决方案。 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 文档很糟糕,并且没有提到其他范围不起作用。希望这可以在将来节省一些时间。