Java IBM WebSphere MQ覆盖文本消息属性
我正在对TextMessageJava IBM WebSphere MQ覆盖文本消息属性,java,properties,ibm-mq,Java,Properties,Ibm Mq,我正在对TextMessagemsg.setLongProperty(“publishSequence”,pubSeq)设置一个Long属性,并将其发送到本地IBM WebSphere MQ队列管理器以发送到远程队列。消息发送正常,但MQ将MQ属性放入消息头时正在删除Long属性 以前有没有其他人遇到过这个问题?如果是这样,您是如何解决的?您正在设置的属性不会映射到消息头。在WMQ的旧版本中,它映射到RFH2头,但在WMQ的新版本(V7.1及更高版本)中,可以使用消息属性setter/gette
msg.setLongProperty(“publishSequence”,pubSeq)设置一个Long属性代码>,并将其发送到本地IBM WebSphere MQ队列管理器以发送到远程队列。消息发送正常,但MQ将MQ属性放入消息头时正在删除Long属性
以前有没有其他人遇到过这个问题?如果是这样,您是如何解决的?您正在设置的属性不会映射到消息头。在WMQ的旧版本中,它映射到RFH2头,但在WMQ的新版本(V7.1及更高版本)中,可以使用消息属性setter/getter方法访问该属性,因此通常不会看到RFH2头
上存在一个属性PROPCTL
,用于控制是否看到RFH2头。根据设置方式,这些属性在有效负载中不可见,因为不会生成RFH2头。如果您设置了PROPCTL,那么您可以让WMQ传递带有RFH2头的消息,并且您可以在那里看到属性。否则,您将需要使用属性getter方法,但在任何情况下都不会在消息头中看到该属性,因为它不是映射在那里的属性
有关更多信息,请参见信息中心主题。以下链接能够回答我的问题。我已经测试过了,它可以工作了
我使用了queue.setMessageBodyStyle(WMQConstants.WMQ_MESSAGE_BODY_JMS)将主体样式设置为JMS,以便保留属性。FYI。。我正在使用JMS TextMessage对象。当接收消息时,我试图通过getLongProperty获取该属性,但该属性不存在。我试着阅读了你的解释,但我仍然不知道该怎么做。当你设置属性时,你是否捕获了MessageNotWriteableException和JMSexException?未经处理的异常可能允许属性集失败,但仍会写入消息。您是否尝试检索本地QMgr上的属性?这些属性可能在通道或远程队列中转换为RFH2。在本地检索它们将从等式中消除这些失败点。我发现一个链接可能适用于我需要的内容:。今晚我将在测试窗口中测试它,并返回结果。