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



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

谢谢

S

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

除此之外,总是有"锁定浏览,在光标下删除消息"方法。 我很确定浏览、锁定和删除所需的一切都暴露在 .NET 下,但也许 Shashi 会发表评论并确认。

WebSphere MQ WCF 定制通道具有"保证交付"功能,可保证服务请求或回复被执行且不会丢失。这是 1 阶段提交(也称为 SYNC_POINT in)WMQ。

"保证交付"是一个服务合同属性。以下是有关该功能的更多详细信息。

最新更新