【问题标题】:mule until-successful router: is objectStore mandatory?骡子直到成功的路由器:objectStore是强制性的吗?
【发布时间】:2013-03-28 23:57:04
【问题描述】:

我正在使用来自 JMS 队列的消息并将其提交到基于 SOAP 的 Web 服务。我想确保向我提交消息的 Web 服务提供有保证的消息传递。

我正在考虑两个选项 1. 使用直到成功的路由器(首选),如果无法传输消息,则将其放入死信队列。 2. 使用 JMS 事务,如果向 Web 服务的消息传输失败,则回滚事务并且 JMS 消息留在队列中。

<jms:inbound-endpoint queue="ws.message"/>
<until-successful objectStore-ref="objectStore"
              dlqEndpoint-ref="dlqChannel"
              maxRetries="3"
              secondsBetweenRetries="10">
...
</until-successful>

我更倾向于使用 until-successful 路由器,但我担心它需要一个强制性的 ObjectStore。我不想将消息存储在数据库/对象存储中,而是将其推送到某个 JMS 队列/死信队列并从那里使用它。

对处理这种情况的任何有用的提示或建议表示赞赏。

【问题讨论】:

    标签: mule


    【解决方案1】:

    如果您使用 until-successful,则必须引用 objectStore。 Mule 使用此对象在重试之间存储消息。此外,您应该使用持久对象存储来避免 Mule 服务器或应用程序崩溃时的消息丢失。 直到成功的路由器应该是这个用例 IMO 的首选方法。与仅使用 jms 队列相比,它将使配置更易于阅读和维护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 2019-12-06
      • 2020-07-05
      • 2012-04-09
      • 1970-01-01
      相关资源
      最近更新 更多