Websphere MQ和mule避免消息丢失

时间:2014-08-27 07:35:47

标签: java jms mule messaging ibm-mq

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

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

因此该策略在消费消息之前尝试重做3次。这会导致邮件丢失。我希望将消息回滚到Websphere MQ并在一定延迟后重新进行重定向。我们是否有可用于Websphere MQ Connectors的配置(Active MQ有它)?基本上我希望避免消息丢失。还有其他方法我应该检查吗?

请建议最好的设计以避免邮件丢失?

1 个答案:

答案 0 :(得分:0)

如果您只使用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 =&#34; ALWAYS_JOIN&#34;同样。

更多信息on the Mule User Guide