|
分類:[.NET 全般]
お世話になっております。 C#でVS2008を使って、開発をしていますが行き詰ってしまったので お知恵をお借りしたいと思い、質問しました。
現在、ある登録システムを旧システムから新システムの開発・移行をするために テストをしていて、 テスト用サーバー(以後サーバー)が1台と開発用クライアント(以後、新システム)、 旧システムが入っているテスト用クライアント(以後、旧システム)があります。
開発中の新システムが旧システムとリンクしているか確認するために 新システムで登録して、旧システムでおかしな点がないかチェックしようとした 所、新システムでDispose()をしてないかったせいか ロックをしてしまったようで旧システムでデータの追加・更新で エラーになっているようです。新システムでは問題なく動いています。
string path = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source="Z:〜.mdb; Jet OLEDB:Engine Type=5"; // DBコネクション作成 OleDbConnection dbc = new OleDbConnection(path); // DBコネクションを開く dbc.Open();
string sql = "INSERT INTO 〜";
OleDbCommand dc = new OleDbCommand(sql, _dbc); ddr = dc.ExecuteReader();
dbc.Close(); dbc.Dispose();// ←最初はしていませんでした。
どうすれば解除できるか試していたら、何もしてないのに エラーが解決(エラー発生から24時間後ぐらい?)して なんともなかったのですがまた再発してしまいました。 dbc.Dispose()は2回目のエラーになってから追加しました。 今回も24時間ぐらいで解決するかもと思っていましたが 30時間以上経ってもダメでした。
ldbファイルも念のため、全PCで検索したのですが見つかりませんでした。 旧システムのソースはないので憶測でしか出来ませんが Selectは出来てもINSERT・UPDATEが出来ないようなのでロックを予想をしています。 新システムで正常処理を行って、旧システムで動かしてもエラーになりました。 また、全PCを再起動をしてもダメでした。
要点をまとめると ○エラーが突然解消され、時間が関係していると思ったが本当に時間か関係しているのかは不明 ○PCは全部でサーバーと旧システムと新システムの3台 ○新システムは問題なく動く ○旧システムではSELECTは出来るがINSERT・UPDATEが出来ない ○ldbファイルは残ってない。 ○新システムで正常処理をしても旧システムでは動かない ○再起動してもエラーになる。
ここが原因ではないのか。こうしたらこのエラーは解決するのではないか等の アドバイスがありましたらお教え下さい。
|