3

私たちのシステムにはこの問題があります。私たちは を使用し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しかし、その後 - ??である Timeout Expired とは何ですか? タイムアウトは正確にはどこですか?コミットで???

私は過去数日間ウェブをスキャンしており、あちこちでいくつかの出来事がありましたが、良い答えはありません.

誰か助けて??

4

0 に答える 0