【发布时间】:2013-10-05 09:07:14
【问题描述】:
我知道事务协调器用于协调不同类型资源之间的事务,例如 1)SQL Server 2)Oracle 3)MSMQ 4)文件系统等,他们有责任跟踪事务以及是否存在事务这些资源中的任何一个都失败了,它应该回滚 WCF 中所有其他资源的事务。
我想知道 a) 选择哪个事务协调器以及为什么 b)我们可以自己选择事务协调器还是由wcf自己自动完成 对于以下条件:-
1)如果 wcf 使用相同的 Microsoft 技术(Microsoft SQL Server & Microsoft Message Queue)的事务
2)如果 wcf 针对不同的数据库技术(Microsoft SQL Server、Oracle 和 MySQL)使用事务
3)如果 wcf 使用不同技术(Microsoft SQL Server、Oracle、文件系统等)对所有不同类型的资源使用事务
【问题讨论】:
-
分布式事务会导致无数问题(性能和可扩展性差、死锁),这也是它们在近十年前失宠的原因。最好使用更适合分布式处理的架构,例如服务总线架构和 sagas
标签: c# wcf transactions distributed-transactions