【问题标题】:Websphere MQ and mule avoid message lossWebsphere MQ 和 mule 避免消息丢失
【发布时间】:2014-10-20 16:44:57
【问题描述】:

我正在使用 Websphere MQ 并使用 Mule 连接器来使用来自队列的消息。我们在 Mule 中实施了回滚异常策略块,以便在出现任何 JMSException 时重新传递消息。

<rollback-exception-strategy maxRedeliveryAttempts="3" when="exception.causeMatches('javax.jms.')" doc:name="Rollback Exception Strategy" />

因此,该策略会在使用消息之前尝试重新分配 3 次。这会导致消息丢失。我希望消息回滚到 Websphere MQ 并在一定延迟后重新分配。我们是否有可用于 Websphere MQ 连接器的此类配置(Active MQ 有)?基本上我希望避免消息丢失。还有其他我应该检查的方法吗?

请建议避免消息丢失的最佳设计?

【问题讨论】:

    标签: java jms mule messaging ibm-mq


    【解决方案1】:

    如果您只使用 WMQ,则可以为此使用本地事务:

    <wmq:inbound-endpoint queue="SOME.IMPORTANT.QUEUE">
        <wmq:transaction action="ALWAYS_BEGIN" />
    </wmq:inbound-endpoint>
    

    如果您正在使用其他传输,您可以查看多事务或 XA:

    <wmq:inbound-endpoint queue="SOME.IMPORTANT.QUEUE">
        <xa-transaction action="ALWAYS_BEGIN" />
    </wmq:inbound-endpoint>
    

    请务必更新应参与事务的所有出站端点,以便它们也使用 action="ALWAYS_JOIN"。

    更多信息on the Mule User Guide

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2011-02-07
      • 1970-01-01
      • 2011-03-28
      • 2010-09-21
      相关资源
      最近更新 更多