【问题标题】:Multiple Connections With Same Connection String Under A Single Transaction, Elevated Transaction?单个事务下具有相同连接字符串的多个连接,提升事务?
【发布时间】:2008-12-27 05:44:14
【问题描述】:

当使用 ado.net 并在单个事务中创建到 MS SQL Server 数据库的多个连接时(使用 System.Transactions.TransactionScope),System.Transactions 是否将事务从轻量级事务管理器提升到分布式事务协调器( Vista 上的内核事务协调器),即使所有连接对象的连接字符串都相同?

文档在这种特定情况下有些模棱两可。它说如果在事务期间打开另一个连接到服务器,则事务将被提升,但它没有说它是否一直这样做,或者只有在连接字符串不同时才这样做。如果连接字符串相同,它会提升事务对我来说没有意义,但如果确实如此,它基本上会使轻量级事务管理器完全无用,IMO。

【问题讨论】:

    标签: .net sql-server ado.net transactions msdtc


    【解决方案1】:

    不幸的是,在当前版本中,它总是提升交易。

    正如您所说,这使得 TransactionScope 的用处远不如其他方式。我相信有计划在未来的版本中对此进行更改。

    【讨论】:

    • 呃,太糟糕了。您有规避此“功能”的策略吗?我唯一的猜测是在用户请求期间保持会话级别(不一定通过 Session 对象)连接对象打开,并通过一个数据访问层推迟所有调用以使用它。我要开始另一个问题
    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多