バックエンドとして .mdb ファイルを使用するマルチスレッド (.NET Framework 3.5 SP1 WinForms) デスクトップ アプリケーションを数時間 (Win7 64 ビットで最大 6 時間、WinXP で最大 24 時間) 実行した後、次のランタイム エラーが発生します。
例外 ->不明なエラー
スタックトレース ->
System.Data.OleDb.OleDbConnectionInternal..ctor (OleDbConnectionString コンストラクター、OleDbConnection 接続)
で System.Data.OleDb.OleDbConnectionFactory.CreateConnection (DbConnectionOptions オプション、オブジェクト poolGroupProviderInfo、DbConnectionPool プール、DbConnection owningObject) でSystem.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection (DbConnection owningConnection、DbConnectionPoolGroup プール グループ) で
System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) で
System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection、DbConnectionFactory connectionFactory) で
System.Data.OleDb.OleDbConnection.Open() で
NetworkManager.SearchInputFileHandler.GetInputRows (SearchProgramTypeEnumeration programType、Int32 startRowNum、Int32 rowsQty、ブール setupInProgress、ブール filterOutUninitializedRows) で
これは OleDbProvider のバグのようです。
そのようなことを見たり経験したりしたことはありますか?
環境:
(1) 私はもっぱら使用します
using (OleDbConnection cnn = new OleDbConnection("{{mymdbConnectionStringHere}}")) {
cnn.Open();
...
}
(2) 一部の select SQL 式で IN 句を使用して、外部 MDB テーブルを指しています。
問題はケース(2)によって引き起こされると思います。これはまだ確認すべき仮説ですが (アプリケーションのコア コードでいくつかのコード修正が必要であり、修正する価値があるか、MS SQL バックエンドに切り替えたほうがよいと考えています)。
ありがとうございました。