IBM WebSphere MQ覆盖TextMessage属性

时间:2012-08-14 02:56:15

标签: java properties ibm-mq

我在TextMessage msg.setLongProperty("publishSequence", pubSeq);上设置Long属性,并将其发送到本地IBM WebSphere MQ Queue管理器以发送到远程队列。消息发送正常,但是当MQ将MQ属性放入消息头时,MQ正在删除Long属性。

之前是否有其他人遇到此问题?如果是这样,你是如何解决它的?

2 个答案:

答案 0 :(得分:2)

以下链接能够回答我的问题。我已经测试过并且有效。

我在MQQueue对象上使用了queue.setMessageBodyStyle(WMQConstants.WMQ_MESSAGE_BODY_JMS);来将体型设置为JMS,因此它将保留该属性。

答案 1 :(得分:1)

您正在设置的属性不会映射到邮件标头。在旧版本的WMQ中,它映射到RFH2标头,但在较新版本的WMQ(V7.1及更高版本)中,可以使用消息属性setter / getter方法访问该属性,因此通常不会看到RFH2标头。

queueschannels上存在属性PROPCTL,用于控制您是否看到RFH2标头。根据其设置方式,属性在有效负载中不可见,因为不会生成RFH2标头。如果您设置PROPCTL,那么您可以让WMQ传递带有RFH2标头的消息,您可以在那里看到该属性。否则你需要使用属性getter方法,但在任何情况下都不会在消息头中看到该属性,因为它不是映射到那里的那个。

有关详细信息,请参阅信息中心主题Mapping JMS fields onto WebSphere MQ fields (outgoing messages)