OdbcDataReader クラスと ExecuteReader() メソッドを使用して、メインフレーム DB2 データベースに対して SQL クエリを実行しています。このコードは本番環境にあり、何ヶ月も正常に動作しています。
通常、クエリの実行には 1 ~ 2 分かかります。先週の金曜日、クエリで ThreadAbortException が発生しました。以下は、フォーマットされたスタック トレースです。トレースの ApplicationException は、私の catch ブロックで作成されます。
重要な場合は、クライアントが Web サービス メソッドを呼び出したときにクエリが実行されます。Web サービスは、Windows サービスでホストされます。Web サービスは、soap.tcp プロトコルを使用して Windows サービスでホストされます。
TreadAbortException が発生している理由はありますか?
2 つの例外のスタック トレース。一番上の根本原因。
例外 2: スレッドが中止されました。
C:\WINDOWS\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll 内の System.Data.Common.UnsafeNativeMethods.SQLExecDirectW(OdbcStatementHandle StatementHandle, String StatementText, Int32 TextLength) の System.Threading.ThreadAbortException System.Data.Odbc.OdbcStatementHandle.ExecuteDirect(String commandText) (System.Data.Odbc.OdbcCommand.ExecuteReaderObject) (CommandBehavior 動作、String メソッド、Boolean needReader、Object[] methodArguments、SQL_API odbcApiMethod) (System.Data.Odbc.OdbcCommand)。 MyCompany.MyDatabase.GetFolioList(String sqlWhereClause) の System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior 動作) の ExecuteReaderObject(CommandBehavior 動作、文字列メソッド、Boolean needReader)例外 1: STAT_CD='V' の Folio 要約リストを取得できません。
MyCompany.MyDatabase.GetFolioList(String sqlWhereClause) の D:\Production\DBGateway\bin\MyDatabase.dll 内の System.ApplicationException。<>c__DisplayClass18.b__17()、MyCompany.WebUtilities.WebServiceBase.WebMethodTemplate[T]( String methodName、String exceptionFormat、WebMethodWorker1 Worker, StringFormatter
1 FormatterMethod)