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