是否有可能跨多个系统进行交易?
例如:
第1层 - 公开Web服务(部署到weblogic) 第2层 - .NET前端(部署到IIS)
我们可以为从.NET发起的多个Web服务调用进行事务提交或回滚吗?
如果是这样,有人能指出我的资源或文件吗?并且是否有任何特殊要求,每个层都遵守参与交易?
答案 0 :(得分:1)
是的,有可能。 WCF允许使用WS-Atomic Transaction标准的Web服务,假设您的.NET客户端中有System.Transactions.TransactionScope
(例如,Silverlight没有这个)。
有一个很好的example on CodeProject,它展示了如何使用TransactionScope
在.NET中生成和使用事务Web服务。
答案 1 :(得分:0)
casperOne's mention of TransactionScope
是一个很好的解决方案。我已经爱上了它带来的简单和力量。
但是,我注意到你有一个Java标记,并提到Weblogic作为Web服务层,因此TransactionScopeRequired
property必须通过WS-AT(Web服务原子事务)或类似的转录协议来实现。
答案 2 :(得分:0)
它绝对可能,但可能比你想象的更难受。您需要控制来修改这些Web服务的执行环境以扩充它们,以便它们可以使用WS-AT标头。此外,与任何分布式事务环境一样,由于大量的管理开销,您可能会导致性能提升。
SOA-WORLD有一些很棒的文章可以解释Web服务事务和所有相关的OASIS标准。这是WS-Coordination上的那个,如果我能找到其余的我会添加它们。