Согласно спецификации JMS, мне не нужно указывать идентификатор сообщения при отправке.
Когда я отправляю сообщение через JMSProducer#send()
или когда я создаю сообщение через консоль hawt.io, я вижу, что для идентификатора сообщения установлено некоторое внутреннее последовательное число, сгенерированное брокером Artemis.
Однако, когда я использую MessageConsumer#receive()
или MessageListener#onMessage()
для получения Message
, Message#getJMSMessageID()
всегда возвращает null
.
Единственный способ получить сообщение с ненулевым идентификатором сообщения JMS - это прочитать сообщение из другой очереди сообщений (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-клиент) клиенты.
Есть ли какая-либо конфигурация, которую я должен установить на брокере, чтобы он правильно заполнял идентификаторы сообщений JMS?