使用WCF时确保使用消息的持久性

时间:2012-04-13 20:59:15

标签: ibm-mq

我想知道在使用websphere MQ和WCF时我们如何确保消息持久性。我希望能够让我的WCF流程从队列中挑选消息,如果存在应用程序遇到的问题(断电等),我不会丢失消息。如果可能的话,我也不想使用事务,因为我想消除分布式事务。

谢谢,

取值

2 个答案:

答案 0 :(得分:2)

嗯,有交易和分布式交易。 “正确”的答案是在这里使用WMQ 1阶段提交。这不具备XA事务的复杂性,但它确实使您能够回滚消息而不会丢失它。实际上,在使用客户端时,您确实应该使用至少一阶段提交,以防止丢失消息。

除此之外,总是存在“使用lock-with-lock,delete-message-under-cursor”方法。我非常确定您在浏览,锁定和删除所需的一切都在.NET下公开,但Shashi可能会评论和确认。

答案 1 :(得分:2)

WebSphere MQ WCF自定义渠道具有“Assured Delivery”功能,可确保服务请求或回复得到处理而不会丢失。这是WMQ中的1阶段提交(也称为SYNC_POINT)。

“Assuered Delivery”是服务合同属性。 Here是有关该功能的更多详细信息。