spring integration amqp channel error handler auto ack

时间:2015-02-20 18:32:52

标签: java error-handling spring-integration spring-amqp

我有一个支持amqp的通道<int-amqp:channel>来暂时保留来自JDBC入站适配器的消息。当没有抛出异常时,该消息被确认并从兔子队列中删除。发生异常时,消息将返回队列并连续重新处理。在某些情况下,我希望返回队列的请求,但在大多数情况下,我只想记录错误并确认请求(从兔子队列中删除)。

我已经实现了一个errorHandler来处理抛出的异常并允许记录和&#34;成功&#34;完成,但即使在处理之后,原始请求也会重新传送到兔子队列(未确认)

在inbound-rabbit-adapter中,有一个错误通道属性,处理errorChannel上的消息可以让我实现上述所需的行为。 amqp通道上唯一的错误属性是错误处理程序。

有关配置的任何建议可以让我满足我的要求吗?

感谢

1 个答案:

答案 0 :(得分:0)

抛出AmqpRejectAndDontRequeueException。请参阅3.9 Exception Handling

default error handler为消息转换异常(可能无法恢复)执行此操作。

实际上,您可以通过注入自定义FatalExceptionStrategy来使用该错误处理程序。