我正在使用柑橘集成框架来执行将消息放入IBM websphere MQ的测试用例。当我发送带有jms消息头的特殊标头时。我能够设置标题中提到的相关ID,但我无法设置messageID。这是我发送的标题
<send endpoint="QueueEndPoint">
<message>
<resource="file:c:\payloads\payload.xml">
<message>
<header>
<element name="Scenario" value="some thing"/>
<element name="instanceID" value="some thing"/>
<element name="citrus_jms_correlationId" value="012345678910111213141516"/>
<element name="citrus_jms_messageId" value="012345678910111213143121"/>
</header>
here is the message id and correlation Id appearing in IBM MQ
答案 0 :(得分:1)
错误的想法,在MQ中设置MessageId非常糟糕。让MQ设置并控制MessageId。设置CorrelationId是您应该设置的。
屏幕截图显示您将CorrelationId设置为'161514131211109876543212',即Hex ='313631353134313331323131313039383736353433323132'。
答案 1 :(得分:1)
JMS标准规定MessageId不能由应用程序设置:
发送消息时,将忽略JMSMessageID。当发送方法 返回它包含提供者指定的值。
尽管可以在MQ JMS类提供的扩展中覆盖它,但它需要additional settings,您需要明确声明要覆盖标准。