我想使用我的消息标识通过 IBM MQ 发送 jms 消息。我的代码
public void sendAntiFraudRq(String msg, String corr) {
LOGGER.info("Sending to AntiFraud = {} with correlationID = {}", msg, corr);
jmsTemplate.send(AntiFraudRqQueue, session -> {
TextMessage message = session.createTextMessage(msg);
message.setJMSCorrelationID(corr);
message.setJMSMessageID(corr);
return message;
});
}
但是 IBM MQ 给我的信息这样的 id
<MessageID>ID:000d51204d515f544553545f43524d5fa9f7e55903d0ed56</MessageID>
我怎样才能得到它?
首先,不要设置自己的 MessageId - 这是个坏主意,违背了 IBM MQ 最佳实践。让 MQ 为您生成唯一的消息 ID。
其次,MQ 期望 MessageId 和 CorrelationId 都是 byte[],MQ 会将字节数组转换为可显示的十六进制,然后将其保存到标头中。 所以,你所看到的是正确的。