2014-08-27 149 views
0

我正在使用Websphere MQ並使用Mule連接器來使用來自Queue.WE的消息已經實現了Mule中的回滾異常策略塊,以在發生任何JMSException時重新傳遞消息。Websphere MQ和mule避免消息丟失

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

因此,在消費消息之前,策略會嘗試重新進行3次重新刷新。這會導致信息丟失。我希望消息被回滾到Websphere MQ並在延遲一段時間後重新緩存。我們是否有這樣的配置可用於Websphere MQ連接器(Active MQ有它)?基本上我希望避免消息丟失。我應該檢查其他方法嗎?

請建議最好的設計,以避免消息丟失?

回答

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 =「ALWAYS_JOIN」。

更多信息on the Mule User Guide