什么导致System.Data.SqlClient.SqlConnection.BeginTransaction方法超时?

时间:2016-06-27 14:49:17

标签: .net sql-server sql-server-2008 timeout .net-4.5

有时我会在System.Data.SqlClient.SqlConnection.BeginTransaction方法中看到超时。我没有更改默认连接超时值,很遗憾,我没有在事件日志或分析器中看到与此超时相关的任何条目。

所以我有点迷失,为什么在BeginTransaction期间发生超时。

有人知道为什么BeginTransaction会超时吗?我想它必须阻止某些东西,但我不确定可能是什么资源(如果它确实是一个阻塞问题)。

(如果重要的话,有问题的数据库不会被群集/镜像。)SQL Server 2008标准版。超时发生在我们编写的Windows服务中。

详细的错误消息(英文翻译:Timeout expired。在操作完成之前经过的超时时间或服务器没有响应。)

System.Data.SqlClient.SqlException (0x80131904): Timeout abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht. ---> System.ComponentModel.Win32Exception (0x80004005): Der Wartevorgang wurde abgebrochen
   bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   bei System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   bei System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
   bei System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
   bei System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
   bei System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value)
   bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   bei System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   bei System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest)
   bei System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
   bei System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest)
   bei System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel iso, String transactionName, Boolean shouldReconnect)
   bei System.Data.SqlClient.SqlConnection.BeginTransaction(IsolationLevel iso, String transactionName)
   bei System.Data.SqlClient.SqlConnection.BeginTransaction(IsolationLevel iso)
   bei Mmv.Shared.DatabaseLayer.SqlServer.RLSVerarbeitungObjectFactory.BeginTransaction(IsolationLevel iso)

0 个答案:

没有答案