奇妙な問題があります。.NET プログラムがあり、プロセス ロジックには SQL Server 2005 データベースで実行時間の長いトランザクション (~20 分) が必要です。データベースに並行してアクセスする人はいないので、これで問題ありません。何か問題が発生した場合は、トランザクションをロールバックする必要があります。
まれに、目に見えるパターンがなくても、オブジェクトのRollback()
操作で次のDbTransaction
ものがスローされSqlException
ます。
メッセージ: 「タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」 スタックトレース: System.Data.SqlClient.SqlInternalConnection.OnError (SqlException 例外、ブール値の breakConnection) で System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) で System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj、UInt32 エラー) で System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult、TdsParserStateObject stateObj) で System.Data.SqlClient.TdsParserStateObject.ReadPacket (Int32 bytesExpected) で System.Data.SqlClient.TdsParserStateObject.ReadBuffer() で System.Data.SqlClient.TdsParserStateObject.ReadByte() で System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj) で System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest (Byte[] バッファー、TransactionManagerRequestType 要求、文字列 transactionName、TransactionManagerIsolationLevel isoLevel、Int32 タイムアウト、SqlInternalTransaction トランザクション、TdsParserStateObject stateObj、ブール値 isDelegateControlRequest) で System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon (TransactionRequest transactionRequest、文字列 transactionName、IsolationLevel iso、SqlInternalTransaction internalTransaction、ブール値 isDelegateControlRequest) で System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction (TransactionRequest transactionRequest、文字列名、IsolationLevel iso、SqlInternalTransaction internalTransaction、ブール値 isDelegateControlRequest) で System.Data.SqlClient.SqlInternalTransaction.Rollback() で System.Data.SqlClient.SqlTransaction.Rollback() で
コードが機能する場合と機能しない場合があるため、それが本当にタイムアウトの問題であるかどうかはわかりません。さらに、私が知っている唯一のタイムアウトはConnectionTimeout
とCommandTimeout
ですが、明らかにこの場合、それらは問題ではありません。
誰かがこの問題について考えを持っていますか?
どうもありがとう、 マティアス