使用ackMode Mule_AUTO在Mule ESB AMQP连接器中拒绝和重新获取消息

使用ackMode Mule_AUTO在Mule ESB AMQP连接器中拒绝和重新获取消息,mule,amqp,mule-component,Mule,Amqp,Mule Component,我的用例是通过SMTP出站端点发送邮件 当一切正常时,消息被确认 当验证错误(例如格式错误的电子邮件)时,我想拒绝该邮件 当SMTP服务器出现ConnectionException时,我想等待1分钟,拒绝并重新查询邮件以再试一次 我将Mule AMQP连接器与ackMode=“Mule\U AUTO”一起使用 正确处理流后,Mule自动确认消息 当捕获异常策略中发生错误时,消息将被拒绝并发送到死信交换(无重新请求) 我尝试使用回滚异常策略,但似乎不起作用 是否有人知道是否可以拒绝和重新获

我的用例是通过SMTP出站端点发送邮件

  • 当一切正常时,消息被确认
  • 当验证错误(例如格式错误的电子邮件)时,我想拒绝该邮件
  • 当SMTP服务器出现ConnectionException时,我想等待1分钟,拒绝并重新查询邮件以再试一次
我将Mule AMQP连接器与
ackMode=“Mule\U AUTO”
一起使用

  • 正确处理流后,Mule自动确认消息
  • 当捕获异常策略中发生错误时,消息将被拒绝并发送到死信交换(无重新请求)
我尝试使用回滚异常策略,但似乎不起作用

是否有人知道是否可以拒绝和重新获取该消息

(Mule ESB CE 3.7.0-Mule AMQP传输3.6.2.20150520)

是的,这是可能的

您需要使用
ackMode=Manual

1) 对于成功场景:您需要使用

第二个和第三个场景都需要在异常策略中处理。因此,请使用
ChoiceException策略
where in use 2
catch exception策略
定义一个为“验证错误”,另一个为“连接异常”。参考:


注意:当使用
手动确认时
,无论成功/失败情况如何,都需要从外部手动确认或拒绝消息。缺少任何消息,请将消息保留在队列中。

感谢您的回复和评论。我找到了与“ackMode=“MULE\u AUTO”似乎不可能的相同解决方案。