事务中止异常:事务已中止。--->系统超时异常:事务超时



我在 .net 应用程序中收到以下错误。

>System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.TimeoutException: Transaction Timeout
--- End of inner exception stack trace ---
at System.Transactions.TransactionStateAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
at System.Transactions.CommittableTransaction.Commit()
at System.Transactions.TransactionScope.InternalDispose()
at System.Transactions.TransactionScope.Dispose()

我在论坛中检查了类似的问题,大多数响应/答案是增加/设置大于默认超时的超时期限。 这有助于一些缓慢的事务/数据库操作。

将时间增加到并不能真正帮助找出确切的问题,对吗?

我注意到支持此应用程序的SQL服务器中没有记录任何错误。用户在此应用程序中执行大量读取操作。由于我没有看到任何查询超时的 SQL Server 日志,因此我认为它与 SQL Server 无关。

用户通过网络连接。如果是表锁错误,我想我会得到一个错误号,严重性也在SQL服务器日志中,我相信。此外,我正在运行扩展事件会话以捕获所有sql服务器错误,但我在那里没有看到此错误。令我困惑的是,这是一个SQL错误或某些应用程序代码问题。

如何找出根本原因?

不确定这是否会对您有所帮助。

这发生在我身上一次,按计划每 5 分钟运行一年左右的查询突然开始超时。问题是有很多人使用Dbeaver,teradata sql assistant和其他IDE等助手打开连接。已联系数据库管理员以删除其连接,然后它又开始工作了。

检查 SQL Server 日志中是否有断开连接的会话。 您是否通过网络连接。 当其他复杂查询锁定您尝试更新的表时,其他问题可能是锁定表。

最新更新