【发布时间】:2018-07-17 13:12:21
【问题描述】:
我将 Camel 与 Fuse 一起使用,但无法设置 JMSReplyTo。以下是我路线的摘录:
<setHeader headerName="JMSReplyTo" id="_setHeader2">
<constant>QTEST</constant>
</setHeader>
<setHeader headerName="CamelJmsDestinationName" id="_setHeader1">
<constant>queue://QM_TEST/SYSTEM.DEFAULT.LOCAL.QUEUE?targetClient=1</constant>
</setHeader>
<to id="_to1" uri="websphere:queue:SYSTEM.DEFAULT.LOCAL.QUEUE?replyTo=QTEST"/>
我以这里给出的代码为例: Implementing native websphere MQ with CoD over Camel JMS component 起初,我认为这是因为我在 CamelJmsDestinationName 标头中设置了 targetClient=1 指令删除了不需要的 jms 标头,但即使没有它,它也不会为 MQMD 的 ReplyToQ 属性设置任何内容。我也试过这里给出的建议How to send message to different Queue hosted in different queue manager and hostname in IBM MQ cluster,但这对我也不起作用,就是这样:
queue://QM_TEST/QTEST?mdReadEnabled=true&messageBody=0&mdWriteEnabled=true&XMSC_WMQ_REPLYTO_STYLE=1&targetClient=1
问题是为什么它不起作用?
【问题讨论】:
-
您能否更具体地说明什么不起作用? MQMD 和 MQRFH2 标头是否正确生成?
-
MQMD 是用空白的ReplyToQ 生成的,我希望它包含用JMSReplyTo 指定的字符串(在此示例中为QTEST)。 MQRFH2 标头的生成取决于 targetClient 是否设置为 1,但它也没有该设置。而且我希望它只在 MQMD 中设置,并避免使用 MQRFH2,这对我来说是一个非常重要的用例。
-
为什么不想包含 MQRFH2?
-
当接收 MDB 设置为不期望该标头时,我必须知道如何不包含它。在发帖之前,我已经研究过这些映射。那么,通过查看它们,您建议我应该如何在 MQMD 中设置 ReplyToQ?
标签: apache-camel ibm-mq