【发布时间】:2017-02-01 19:52:58
【问题描述】:
我正在使用 Spring jms 将 jms 消息发送到 websphere mq,在目标解析器中使用目标客户端作为 1。但是,这会导致删除我为 jms 消息设置的所有自定义标头。当我将目标客户端设置为 0 时,它可以正常工作,但出于其他原因,我需要将其保持为 1。有人可以解释这里发生的事情以及可能的解决方案。谢谢。
【问题讨论】:
标签: jms ibm-mq spring-jms
我正在使用 Spring jms 将 jms 消息发送到 websphere mq,在目标解析器中使用目标客户端作为 1。但是,这会导致删除我为 jms 消息设置的所有自定义标头。当我将目标客户端设置为 0 时,它可以正常工作,但出于其他原因,我需要将其保持为 1。有人可以解释这里发生的事情以及可能的解决方案。谢谢。
【问题讨论】:
标签: jms ibm-mq spring-jms
在 MQ JMS 中,标头作为消息的 MQ RFH2 标头中的属性实现。通过指定 WMQ_TARGET_DEST_MQ (1) 的目标客户端,您将指示 MQ JMS 客户端剥离 RFH2 标头。在您的情况下,这意味着您丢失了自定义标题。因此,通过设置 WMQ_TARGET_DEST_MQ,您实际上是在选择退出此功能。
您要么需要使用您知道有效的 WMQ_TARGET_DEST_JMS (0),要么找到另一种方法将自定义标头中的数据传递给接收应用程序。
如果您想继续使用 WMQ_TARGET_DEST_MQ,一个选项是将您的自定义标头作为名称/值对包含在消息正文中 - 您只需要确保接收应用程序可以理解它。
【讨论】: