【发布时间】:2013-08-08 21:22:42
【问题描述】:
我的消费者,例如当异常发生或 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 服务器关闭,我也希望接收器重新启动。
【问题讨论】:
标签: spring asynchronous activemq messaging spring-integration