【问题标题】:Trace why a transaction is escalated to DTC跟踪交易升级到 DTC 的原因
【发布时间】:2009-02-03 11:14:16
【问题描述】:

有什么方法可以准确地确定 System.Transaction TrasactionScope 升级到 DTC 的原因?我们的一个组件似乎升级了事务,而所有其他组件(看起来很相似)都没有升级。

是否提供了有关升级原因以及如何找到和观察这些原因的任何信息? SQL 探查器?日志文件?还是我在这方面不走运?

更新:我正在针对 SQL Server 2005 运行以获取信息

【问题讨论】:

  • 假设数据库是 SQL 2005 还是 SQL 2008?

标签: trace msdtc system.transactions escalation


【解决方案1】:

使用TransactionScope 时,只要应用程序在相关事务范围内打开第二个连接(甚至是同一个数据库),事务就会升级。

【讨论】:

【解决方案2】:

您可以尝试关闭分布式事务协调器服务并将其启动类型设置为禁用。这将在事务被提升时导致异常,该事务将在调用堆栈中有问题代码。

当然,如果您在需要此服务的机器上运行其他项目,这将无济于事,但在调试机器上是可能的。

【讨论】:

  • 将此标记为已接受的答案,因为它实际上帮助我找到了问题(这是由打开第二个连接引起的,正如 Anton 在 stackoverflow.com/questions/506733/… 中提到的那样)
猜你喜欢
  • 2011-08-20
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
相关资源
最近更新 更多