2012-04-13 73 views
2

我在想如何确保使用websphere MQ和WCF时的消息持久性。我希望能够让我的WCF进程从队列中选择消息,并且如果出现应用程序遇到的问题(停电等),我不会丢失消息。如果可能,我也不想使用交易,因为我想消除分布式交易。使用WCF时确保消息的持久性

感谢,

小号

回答

2

嗯,有交易,还有的分布式事务。 “正确的”答案是在这里使用WMQ 1阶段提交。这并不具有XA事务的复杂性,但它确实可以让您在不丢失邮件的情况下回滚邮件。事实上,在使用客户端时,您应该至少使用一阶段提交来防止丢失消息。

总之,总是存在“浏览与锁定,光标下删除消息”方法。我非常确定你在浏览,锁定和删除时需要做的一切都在.NET下公开,但也许Shashi会评论和确认。

2

WebSphere MQ WCF自定义通道具有“保证交付”功能,可确保服务请求或应答的执行而不会丢失。这是WMQ中的单阶段提交(也称为SYNC_POINT)。

“Assuered Delivery”是一个服务合同属性。 Here是关于该功能的更多细节。