Aktualnie rozwijamy aplikację za pomocą JMS i activemq (5.5.1). Chcielibyśmy zdefiniować wyższy priorytet dla niektórych wiadomości, co spowodowałoby ich zużycie w pierwszej kolejności. Po ustawieniu producenta i konsumenta (poprzez wiosnę (3.1) JMSTemplate) priorytet nie działa w pełni. Rzeczywiście, gdy "wyłączamy" konsumenta i wysyłamy wiadomości, priorytet jest respektowany, ale kiedy dodajemy wiadomości, gdy konsument jest włączony, wiadomości są odbierane w tej samej kolejności, w jakiej zostały wysłane.Priorytet z activemq
Konfiguracja jest bardzo prosta:
Priorytet został aktywowany w ActiveMQ pliku konfiguracyjnym:
<policyEntries>
<policyEntry queue=">" prioritizedMessages="true"/>
...
</policyEntries>
i QoS została włączona w konfiguracji szablonu producent:
<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>
aby wysłać wiadomość o wysokim priorytecie, po prostu zmieniamy właściwość priorytetu szablonu po stronie producenta:
template.setPriority(9);
Każdy pomysł? Czy to normalne zachowanie, czy też jest jakaś konfiguracja, o której zapomnielibyśmy?
Możesz chcieć dać Ostatni ActiveMQ 5,6-snapshot GO jako ma kilka poprawek w obszarze priorytetu, które mogłyby poprawić twoją sytuację. –