我正在使用带有活动mq的spring-jms。jms错误处理程序:只有当jms放弃时才会收到回调
我有一个ErrorHandler
侦听器设置,每次jms消息传递失败时都会收到一个回调 - 即处理消息的方法抛出异常而不是正常返回。
但是我的jms被配置为重试几次,直到jms传递最终成功。我的回调被通知所有的失败。
我想要的是只有当所有重试最终失败时才接收通知的侦听器。的动机是为管理员的注意力提出问题。但我不想在管理员控制台中发送虚假通知。
<bean abstract="true" id="abstractDestinationListener"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsFactory" />
<property name="errorHandler" ref="destinationErrorHandler"/>
<property name="sessionTransacted" value="true"/>
</bean>
+1的第一个(虽然更加复杂,比我预期) 。关于第二个,错误处理程序本身不能访问jms消息,而仅仅是抛出异常。 – flybywire 2013-03-04 17:30:48
对不起,我应该更清楚一点 - 第二个例外,异常处理逻辑需要放在消息监听器中,而不是Spring错误处理程序。 – 2013-03-05 10:53:28