Я настроил приложение для прослушивания темы ActiveMQ. Вот как я его настроил:
<jms:listener-container connection-factory="jmsFactory"
container-type="default" destination-type="durableTopic" client-id="CMY-LISTENER"
acknowledge="transacted">
<jms:listener destination="CMY.UPDATES"
ref="continuingStudiesCourseUpdateListener" subscription="CMY-LISTENER" />
</jms:listener-container>
<bean id="jmsFactoryDelegate" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jmsFactory.brokerURL}" />
<property name="redeliveryPolicy">
<bean class="org.apache.activemq.RedeliveryPolicy">
<property name="maximumRedeliveries" value="10" />
<property name="initialRedeliveryDelay" value="60000" />
<property name="redeliveryDelay" value="60000" />
<property name="useExponentialBackOff" value="true" />
<property name="backOffMultiplier" value="2" />
</bean>
</property>
</bean>
У меня проблема в следующем:
Я положил 10 сообщений в тему.
Если первое сообщение прочитано и приложение не может обработать задачу, оно откатывает сообщение.
1 минута спустя, он пытается прочитать первое сообщение и обработать его. Отказ и откат.
2 минуты спустя, он повторяет попытку и откатывается.
4 минуты спустя ... и т. Д.
Оно застревает в первом сообщении, а следующие 9 сообщений не читаются, пока не обработано первое.
Так должна работать тема? Можно ли как-то прочитать мои 9 других сообщений, пока первое ожидает повторной попытки?