事务处理多层应用程序

时间:2011-08-21 18:53:44

标签: java .net distributed-transactions

是否有可能跨多个系统进行交易?

例如:

第1层 - 公开Web服务(部署到weblogic) 第2层 - .NET前端(部署到IIS)

我们可以为从.NET发起的多个Web服务调用进行事务提交或回滚吗?

如果是这样,有人能指出我的资源或文件吗?并且是否有任何特殊要求,每个层都遵守参与交易?

3 个答案:

答案 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服务原子事务)或类似的转录协议来实现。

见这里:http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/cjta_wstran.html

答案 2 :(得分:0)

它绝对可能,但可能比你想象的更难受。您需要控制来修改这些Web服务的执行环境以扩充它们,以便它们可以使用WS-AT标头。此外,与任何分布式事务环境一样,由于大量的管理开销,您可能会导致性能提升。

SOA-WORLD有一些很棒的文章可以解释Web服务事务和所有相关的OASIS标准。这是WS-Coordination上的那个,如果我能找到其余的我会添加它们。