Jas*_*ris 6 .net sql t-sql msdtc transactions
我正在为我的应用程序使用.NET 2.0/3.5框架.我需要在多个连接上运行多个SQL命令,每个连接都在不同的服务器上(Oracle,SQL Server).我需要确保这些命令是事务性的.
例如:我需要在Oracle和SQL Server数据库的表中执行INSERT,然后在没有抛出异常的情况下提交它们.如果有异常,我想在需要时在两台服务器上回滚.
我怀疑我需要使用System.Transactions和TransactionScope.这将要求我在数据库服务器和应用程序服务器上设置Microsoft分布式事务处理协调器(MSDTC).
我看起来高低,找不到任何文章描述逐步设置MSDTC与相互身份验证(包括配置防火墙设置和MSDTC设置.)我查看了有关设置MSDTC的Microsoft文档,但它似乎完全没有价值,而不是完整记录(除非你能找到一篇关于如何设置它的非常好的MSDN文章.)
使用MSDTC是完成工作的唯一方法吗?
如果是这样,我该怎么配置呢?
编辑:
可悲的是,两家供应商的官方文档似乎都很乐意提及互操作提供商或其他供应商,但他们似乎都不愿意承认对方数据库产品的存在.
您可能更喜欢需要有关Microsoft Transaction Server的Oracle Services的文档.
从ODP.NET 10.2.0.3开始,您应该(如果您已经适当地配置了MS DTC并且OraMTS dll存在)能够简单地使用System.Transactions TransactionScope,就像在两个sql server数据库之间协调但是使用它一样一个sql server和oracle连接.可能需要Oracle 10以上才能完全开箱即用.
以下是从.net 2.0和Sql Server 2005开始使用DTC的指南.特别是它注意到操作系统的要求(这应该在很大程度上不再是一个问题,但值得注意).此外,除非两个数据库和客户端都在同一台计算机上,否则必须启用网络DTC.
| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |