【发布时间】:2010-08-27 15:46:02
【问题描述】:
我有一个多线程 C# 应用程序,其中每个线程都有自己的一组数据库连接。每个线程都使用 TransactionScope / DTC。有时,我会收到“事务已中止”异常。这不是超时,因为它在开始事务后不到 2 秒内发生。
这是堆栈跟踪:
在 System.Transactions.TransactionStateAborted.BeginCommit(InternalTransaction tx,布尔 asyncCommit,AsyncCallback asyncCallback,对象 asyncState) 在 System.Transactions.CommittableTransaction.Commit() 在 System.Transactions.TransactionScope.InternalDispose() 在 System.Transactions.TransactionScope.Dispose() 在 MyNamespace.CallingMethod()
这种情况很少发生,比如在 100,000 笔交易中发生一次。
环境: 视窗服务器 2003 .Net 2.0 连接到 SqlServer 2005
关于为什么会发生这种情况的任何想法? 谢谢!
【问题讨论】:
-
SQL、DTC 或操作系统错误日志是否有任何其他详细信息?
-
事件日志中带有该时间戳的任何条目?
-
生产盒,因此很难在没有繁文缛节的情况下获得任何信息。我会看看我是否可以从事件日志中得到任何东西,这更容易。谢谢!
-
操作系统事件日志中没有任何内容。到 sql 日志。
-
sql 日志中没有任何内容。看看性能指标是否有任何线索。
标签: c# .net sql-server sql-server-2005