【问题标题】:ASP.NET 1.1 Transaction Spanning Two Databases跨越两个数据库的 ASP.NET 1.1 事务
【发布时间】:2012-03-17 08:17:25
【问题描述】:

如何使用 ADO.NET 手动事务跨两个数据库(在同一服务器上)删除记录?

我遇到了这个:

TransactionScope in .NET 1.1

但如果可能,仍希望使用 .NET 1.1 手动事务。

【问题讨论】:

  • 您是否复制了所有代码?该类中显然有一个 Dispose() 实现。
  • 很好看的 Joe (+1),我会继续编写其余部分的代码。同时,这里肯定不能像第一个sn-p那样管理事务吗? msdn.microsoft.com/en-us/library/ms973865.aspx
  • ASP.NET 1.1 -> 哇,不知道为什么,但在 2012 年对我来说这听起来比 COM 还要糟糕 :-) 我真的不明白。谁是公司中负责做出架构设计决策的人?他们是什么样的人?他们有基本的编程文化吗?他们是如何在这样的位置上缠绕的?
  • 我不会说他们是否正在阅读这篇文章! ;-)
  • @DarinDimitrov:它发生了。我以前的工作有 1.1 代码;想象一个由约 10 名开发人员和大约 45 个系统组成的团队。将它们全部升级到最新的 .NET、对它们进行回归测试等是不切实际的。

标签: asp.net ado.net sql-server-2000 asp.net-1.1


【解决方案1】:

哇,我已经有一段时间没有看过 1.1 了。 ado.net 事务与连接相关联,因此在 1 个手动事务中没有真正的好方法。我记得编写了我自己的跨数据库 txn 管理类,其中执行命令基本上会向它注册,我会自己跟踪 txns。我自己的 TransactionScope 或工作单元。如果出现错误,我会回滚所有这些,或者如果调用了“完整”方法,我会在最后提交所有这些。

文章中的方法似乎比它会调用 DTC 更好(只要您愿意,就可以)。我认为没有更好的方法来做到这一点。

【讨论】:

  • 调用 DTC 有什么影响(如果有)?
  • 好吧,只要您在机器上设置并正确配置了 DTC,这并不是什么大不了的事,但众所周知,它可以让一些人适应大型安装,而且它是一个更多配置等...坦率地说,我不知道 MSDTC 分配了多少性能开销,但它是一个外部服务,正在协调您的事务,旨在协调企业分布式事务,所以如果您只有两个需要协调的同一台服务器上的数据库,它可能是用打桩机钉钉子。
猜你喜欢
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-11
  • 2014-06-07
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多