将 MQMessage MQMD 值复制到 JMS 消息
Copying MQMessage MQMD values to JMS message
我有一个要求,我必须将 MessageID、correlationID、持久性、到期时间和优先级的值从请求 MQ 消息复制到响应。我使用 RFHUtil 将请求消息放在 queue 中。但是当消息被 Session bean 使用时,MQMD header 的 messageID 更改为一些不同的值 -HEXADECIMAL,这与我放入 RFHUTIL 的 MessageID 不同。
然后我使用设置方法将上述值从请求复制到响应消息,- setJMSMessageID 等,但是一旦我查看响应消息,这些值就不同了。
这是由于 MQ 到 JMS 的转换吗?有什么解决办法。
之前我使用的是 MQ 消息,并且能够将所有字段从请求复制到响应。
IBM MQ 中的 MessageID 始终为十六进制,无论从哪个 API 设置,Base MQ 或 MQ JMS。
发送请求消息时不需要设置MessageID。让 MQ 为您做这件事。 MQ会为请求消息生成一个唯一的消息id。在您的会话 bean 中,您只需将请求消息的 MessageID 复制到响应消息的 CorrelationID。这样您就可以关联请求和响应消息。
有关详细信息,请参阅 IBM WebSphere MQ request/reply scenario。
更新
发送消息时,将忽略使用 setMessageID
方法设置的任何值,但该方法可用于更改接收到的消息中的值。
由于发送消息时忽略setMessageID
方法设置的消息ID,所以应用程序无法指定外发消息的消息ID。因此,应用程序无法接收消息,然后转发相同的消息,或发送具有与收到的消息相同的消息 ID 的不同消息。见 link:
我有一个要求,我必须将 MessageID、correlationID、持久性、到期时间和优先级的值从请求 MQ 消息复制到响应。我使用 RFHUtil 将请求消息放在 queue 中。但是当消息被 Session bean 使用时,MQMD header 的 messageID 更改为一些不同的值 -HEXADECIMAL,这与我放入 RFHUTIL 的 MessageID 不同。
然后我使用设置方法将上述值从请求复制到响应消息,- setJMSMessageID 等,但是一旦我查看响应消息,这些值就不同了。 这是由于 MQ 到 JMS 的转换吗?有什么解决办法。
之前我使用的是 MQ 消息,并且能够将所有字段从请求复制到响应。
IBM MQ 中的 MessageID 始终为十六进制,无论从哪个 API 设置,Base MQ 或 MQ JMS。
发送请求消息时不需要设置MessageID。让 MQ 为您做这件事。 MQ会为请求消息生成一个唯一的消息id。在您的会话 bean 中,您只需将请求消息的 MessageID 复制到响应消息的 CorrelationID。这样您就可以关联请求和响应消息。
有关详细信息,请参阅 IBM WebSphere MQ request/reply scenario。
更新
发送消息时,将忽略使用 setMessageID
方法设置的任何值,但该方法可用于更改接收到的消息中的值。
由于发送消息时忽略setMessageID
方法设置的消息ID,所以应用程序无法指定外发消息的消息ID。因此,应用程序无法接收消息,然后转发相同的消息,或发送具有与收到的消息相同的消息 ID 的不同消息。见 link: