代码之家  ›  专栏  ›  技术社区  ›  Gord

使用TransactionScope和MS DTC时的常见问题

  •  6
  • Gord  · 技术社区  · 15 年前

    我刚开始使用TransactionScope,我发现总会遇到一些意想不到的事情,需要花很长时间来调试。

    我认为对于那些“奇怪的错误”的情况,有一个完整的列表将是非常好的,并且可以扩展我们对平台中的奇怪之处的了解。

    关于如何使用事务作用域的一些上下文:

    • 多个web服务器、应用程序服务器和sql服务器
    • 事务将主要是数据库事务,但有些事务将提升为写入MSMQ。
    4 回复  |  直到 15 年前
        1
  •  3
  •   Community CDub    7 年前

    我脑子里有两件事:

    您希望事务尽可能地轻量级,dtc会带来大量开销。您还希望事务尽可能短,因此只在应用程序服务器上引入事务,而不是在web服务器上引入它们。使应用服务器和数据库之间的网络跳转越小越快,通过不同于应用服务器和数据库的连接在web和应用服务器之间发送网络流量,并使最后一个连接变得非常快速,非常短。

        2
  •  1
  •   Dodgyrabbit    12 年前

    希望有一天这会对某人有所帮助:

    1. 每个连接使用相同的连接字符串
    2. 连接没有嵌套。

    一、 打开,做点什么,关上。打开,做点什么,关上。

    如果你在你的进程中这样做(在另一个线程上)

    SqlConnection.ClearAllPools()

    而这恰好发生在你的两个操作之间-DTC将立即涉及。如果没有运行DTC,它将引发异常。

        3
  •  -2
  •   erikkallen    15 年前