Priority with activemq

В настоящее время мы разрабатываем приложение с использованием JMS и activemq (5.5.1). Мы хотели бы определить более высокий приоритет для некоторых сообщений, чтобы они потреблялись в первую очередь. После установки производителя и потребителя (через spring (3.1) JMSTemplate) приоритет не работает полностью. Действительно, когда мы «выключаем» потребителя и отправляем некоторые сообщения, приоритет соблюдается, но когда мы добавляем сообщения, когда потребитель включен, сообщения принимаются в том же порядке, в котором они были отправлены.

Конфигурация довольно проста:

Приоритет был активирован в файле конфигурации activemq:

<policyEntries>
  <policyEntry queue=">" prioritizedMessages="true"/>
  ...
</policyEntries>

И QoS был включен в конфигурации шаблона производителя:

<bean id="jmsOCRTemplate" class="org.springframework.jms.core.JmsTemplate">
  <property name="connectionFactory" ref="connectionFactory" />
  <property name="defaultDestination" ref="destination_ocr" />
  <property name="explicitQosEnabled" value="true" />
</bean>

Чтобы отправить сообщение с высоким приоритетом, мы просто меняем Свойство приоритета шаблона на стороне производителя:

template.setPriority(9);

Есть идеи? Это нормальное поведение или есть какая-то конфигурация, которую мы бы забыли?

6
задан Mogsdad 2 May 2016 в 13:59
поделиться