【问题标题】:Requeue JMS request with Mule使用 Mule 重新排队 JMS 请求
【发布时间】:2016-05-13 18:57:39
【问题描述】:

我将 JMS component 与 Mule 一起用于带有 ActiveMQ 的队列,我希望如果 请求排队失败,它会返回队列以 重试最后。

我应该在 Anypoint Studio 中配置什么?

【问题讨论】:

  • 嗨,你能说得更清楚点吗?您有一个消费者正在处理一条消息,如果该过程失败,您不想确认该消息并将其留给队列?
  • 对不起,那条失败的消息,再次返回队列,不过是最后一个位置。

标签: queue jms mule activemq


【解决方案1】:

仅仅重新排队你的消息听起来不是一个好主意,想象你有一个总是失败的消息,那么在某种意义上这会在尝试处理消息时导致无休止的递归。

听起来您更感兴趣的是Rollback Exception Strategy。有了这个,您可以指定最大重新投递次数,当超过该数量时,您可以将消息放在DLQ(死信队列)或类似的地方,并最好通知某人有关失败的消息。

您可以定义回滚异常策略,以确保在流中引发异常的消息被回滚以进行重新处理。当错误发生在流中时,如果您无法更正错误,请使用回滚异常策略。通常,您使用回滚异常策略来处理涉及事务的流中发生的错误。如果事务失败,即消息在处理过程中抛出异常,则回滚异常策略回滚流中的事务。如果入站连接器是事务性的,Mule 会将消息再次传递到父流的入站连接器以重新尝试处理(即消息重新传递)。

【讨论】:

  • 你推荐还是更好用:Route the Initial-State Message to the Dead Letter Queue?
  • @mikedev 如果消息处于无法传递的位置,您将需要通知某人。您还希望将消息保留在某处以便重新发送,这将是 DLQ 的目的。
  • @mikedev this 可能很有趣
猜你喜欢
  • 1970-01-01
  • 2014-08-15
  • 2014-11-08
  • 2014-06-27
  • 1970-01-01
  • 2014-02-14
  • 2016-03-15
  • 2017-10-20
  • 2011-06-16
相关资源
最近更新 更多