Jms 如何在ActiveMQ中保存顺序?
我已经设置了一个应用程序来收听ActiveMQ主题。以下是我配置它的方式:Jms 如何在ActiveMQ中保存顺序?,jms,activemq,publish-subscribe,Jms,Activemq,Publish Subscribe,我已经设置了一个应用程序来收听ActiveMQ主题。以下是我配置它的方式: <jms:listener-container connection-factory="jmsFactory" container-type="default" destination-type="durableTopic" client-id="CMY-LISTENER" acknowledge="transacted"> <jms:listener destination="
<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条其他消息在第一条消息等待重试时被读取?它的工作原理与预期的一样,这就是事务性消息处理的本质。根据给定的重新交付策略中的规则,在第一条消息完成或被丢弃之前,您无法处理其他消息 可能需要阅读JMS教程: