【问题标题】:Spring jms and ibm mq春天 jms 和 ibm mq
【发布时间】:2018-04-06 03:37:30
【问题描述】:

我想通过 IBM MQ 使用我的消息 ID 发送 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>

我怎样才能得到它?

【问题讨论】:

    标签: java spring jms ibm-mq


    【解决方案1】:

    首先,不要设置您自己的 MessageId - 这是个坏主意,并且违反了 IBM MQ 最佳实践。让 MQ 为您生成一个唯一的 MessageId。

    其次,MQ 期望 MessageId 和 CorrelationId 都是 byte[] 并且 MQ 会将字节数组转换为可显示的十六进制,然后将其保存到标题中。所以,你看到的是正确的。

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 2020-09-29
      • 2012-01-30
      • 1970-01-01
      • 2017-01-25
      • 2011-11-28
      • 2017-01-17
      • 2023-03-05
      相关资源
      最近更新 更多