当异常发生或 ActiveMQ 失败时,我的消费者,例如正在消费来自 ActiveMQ fromChannel 的消息的服务激活器应该重新启动。如何为以下 spring 集成上下文执行此操作?
<!-- RECEIVER. message driven adapter -> jmsInChannel -> activator. -->
<si:channel id="fromChannel"/>
<int-jms:message-driven-channel-adapter id="messageDrivenAdapter"
channel="fromChannel" destination="forward" connection-factory="connectionFactory"
max-concurrent-consumers="2" auto-startup="true" acknowledge="auto" extract-payload="false" />
<si:service-activator id ="activator"
input-channel="fromChannel"
ref="messageService"
method="process"/>
<bean id="messageService" class="com.ucware.ucpo.forward.jms.MessageService"/>
我的第一个想法是使用Retry Advice并添加到服务中,但不确定这是否是未处理异常的正确解决方案。如果 ActiveMQ 服务器关闭,我还希望接收器重新启动。