TransactionInDoubt"с использованием System.Transactions, по-видимому, в TransactionScope.Complete()
У нас есть эта проблема в нашей системе. Мы используем System.Transactions
и работать с TransactionScope
(в основном и определенно в этом случае). Мы только что мигрировали из EnterpriseServices
в SystemTransactions
недавно, и мы получили эту ошибку несколько раз, во время тяжелой многопоточной работы:
System.Transactions.TransactionInDoubtException: The transaction is in doubt. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() at System.Data.SqlClient.TdsParserStateObject.ReadByte() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlDelegatedTransaction.SinglePhaseCommit(SinglePhaseEnlistment enlistment)
Это было очевидно брошено во время Scope.Complete()
,
Я прочитал немного о TransactionInDoubt
что это может произойти в продвижении DTC
и, возможно, есть небольшая проблема с соединением с SQL или MSDTC. но тогда - что с истекшим временем ожидания, которое является SqlException
?? где именно тайм-аут? в коммите???
Я сканировал сеть в течение последних нескольких дней и кое-где появлялся, но хороших ответов нет.
помочь кому нибудь??