【发布时间】:2015-11-27 23:59:33
【问题描述】:
我们有一个使用 Apache Camel 2.15.2 和 Apache Qpid 0.4.0 的应用程序,它通过 Amqp 向 Microsoft 服务总线 1.1 发送和接收消息。
我们最近从旧的 Qpid 0.32 升级了 Qpid,现在我们遇到了一个问题,我们无法将 AMQP 消息的 messageId 设置为接收方要求的 UUID。设置的 messageId 是在 Qpid 的 JmsSession 类中创建的字符串。例如它看起来像:“CLIENT115-61957-114498109876-0:15:1-1”
在这个文件中: https://github.com/apache/qpid-jms/blob/master/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java我们可以看到如下:
- 在第 709 行,messageId 是通过调用 getNextMessageId(producer) 方法创建的
- 在第 923 行,我们看到这个 messageId 是使用生产者 ID 和消息序列生成的。
这永远不会产生格式化为 UUID 的消息 id。我是否遗漏了什么,或者根本无法使用 Apache QPID 将 messageId 设置为 UUID?
【问题讨论】:
标签: java apache-camel amqp qpid