首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveMQ Artemis / RedHat AMQ没有正确设置RedHat消息ID吗?

ActiveMQ Artemis / RedHat AMQ没有正确设置RedHat消息ID吗?
EN

Stack Overflow用户
提问于 2019-06-17 10:34:24
回答 1查看 1.1K关注 0票数 1

根据JMS规范,发送时不必指定消息ID。

当我通过JMSProducer#send()发送消息或通过hawt.io控制台创建消息时,我可以看到消息ID被设置为由Artemis生成的内部序列号。

但是,当我使用MessageConsumer#receive()MessageListener#onMessage()接收Message时,Message#getJMSMessageID()总是返回null

使用非空JMS消息ID接收消息的唯一方法是从不同(IBM)消息队列中读取消息,并在发送之前将其所有属性复制到Artemis消息中。

我已经在AMQ7.3.0.GA和Apache ActiveMQ Artemis 2.6.2中测试了这一点,并使用了本机(org.apache.activemq.artemis-jms-client)和AMQP (org.apache.qpid.qpid-jms)客户机。

为了使代理正确填充JMS消息ID,必须在代理上设置一些配置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-17 12:35:40

  1. 通常存储在名为userID的本地Artemis报头中。
  2. 通过管理控制台发送的消息不填充userID。
  3. 通过Core客户机发送的消息确实填充了消息ID
  4. 通过Qpid客户端发送的消息使用NATIVE_MESSAGE_ID填充自定义属性NATIVE_MESSAGE_ID
  5. 无法通过JMS获得内部消息ID
  6. 如果您通过Qpid发送消息并通过Core客户端读取它,或者相反,您将收到一个空JMS消息ID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56629528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档