msg.setJMSPriority(9);
В этом коде приоритет сообщения установлен на 9, указывая, что это сообщение с высоким приоритетом.Однако, когда сообщение отправлено, оно будет иметь приоритет 4 (обычный приоритет).Причина?Как и истечение срока действия сообщения, провайдер JMS просматривает свойство приоритета сообщения в сообщении и вызывает метод setJMSPriority до помещения сообщения в очередь.Поскольку приоритет сообщения по умолчанию равен 4 (обычный приоритет), приоритет сообщения не будет установлен на сообщение с высоким приоритетом, как изначально предполагал разработчик.
Как и срок действия сообщения, существует два способа настройкиприоритет сообщения: вы можете вызвать метод setPriority () в MessageProducer (QueueSender или Topic Publisher) или установить приоритет сообщения при отправке сообщения:
//set the default message priority for all messages to 9 (high)
QueueSender qSender = qSession.createSender(requestQ);
qSender.setPriority(9);
qSender.send(msg1);
//this message is low priority
qSender.send(msg2, DeliveryMode.PERSISTENT, 1, 30000);
В этом примере сообщение msg1 будет отправлено с приоритетом9 (высокий приоритет), тогда как msg2 будет отправлено с приоритетом 1 (низкий приоритет).