根据JMS规范,我在发送时不必指定消息ID。
当我通过JMSProducer#send()
发送消息或通过hawt.io控制台创建消息时,我可以看到消息ID被设置为由Artemis经纪人生成的内部序列号。
但是,当我使用MessageConsumer#receive()
或MessageListener#onMessage()
来接收Message
时,Message#getJMSMessageID()
总是返回null
。
接收具有非空JMS消息ID的消息的唯一方法是从另一个(IBM)消息队列中读取消息,然后在发送消息之前将其所有属性复制到Artemis消息中。
我已经使用AMQ 7.3.0.GA和Apache ActiveMQ Artemis 2.6.2以及本机(org.apache.activemq.artemis-jms-client)和AMQP(org.apache.qpid.qpid- jms-client)客户。
我必须在代理上设置一些配置,以使其正确填充JMS消息ID吗?
答案 0 :(得分:0)