我正在使用帶有活動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