約 15 年前のプラクティス管理システムがあります。私は約 12 年間この問題に取り組んできましたが、最近までこの問題に遭遇したことはありませんでした。
ADO/JET を使用してネットワーク上の Access .mdb ファイルにアクセスする VB6 で記述されています。アプリケーションは、起動時に接続を開き、開いている間は開いたままにし、終了すると閉じます。DB で多くのことを行います。システムは、患者のアカウント、料金、支払い、予定のスケジューリング、およびその他約 100 万のことを処理します。このプログラムを使用する数十のクライアントがあり、それぞれに独自の DB があり、そのほとんどが「オフサイト」であり、独自のサーバー、1 から 20 人のユーザーの間のいくつかのワークステーションがあり、1 日 24 時間システムでドキドキしています。 、週 7 日、時折の DB フィールドのバグまたは DB の圧縮/修復をしなければならないことを除けば、かなり安定しています。
約 3 週間前に、これまで見たことのない問題が発生し始めました。使用する「社内」システムのセットアップがあります。DB はサーバー上にあり、おそらく 10 個の他の DB が収容されており、このシステムに接続するのは数人だけです。誰かがシステムにログインし、Scheduler 画面に直接アクセスしてから、約 5 ~ 10 分間アイドル状態でいると、「ディスクまたはネットワーク エラー」または「入力テーブルまたはクエリ X が見つからない」というメッセージが表示されることに気付き始めました。データベース Y".
奇妙なのは、2 人以上の人が異なるコンピューターからその DB にログインしている場合にのみ発生するように見え、そのうちの 1 人が (ランダムに?) エラーを受け取りますが、他の 2 人のユーザーは問題ないということです。
システムの「メイン」MDI 親フォームには約 1 分ごとに起動するタイマーがあります (間隔をより短い間隔に変更するものもあれば、タイマーを無効にするものもありますが、私たちはそうしません)。どちらかがこの状況で起こっているとは思わない)。DB に対して非常に基本的な SQL クエリを実行します。これSELECT loggedin FROM Users WHERE UserId = 'DBUPDATER'
は、これらのエラーのいずれかを常にトリガーしているように見える SQL クエリです。
また、ユーザーがログインしている間に約 2 分ごとに実行されるタイマーもあり、この間に実行される電子メールやその他のいくつかのことを確認します。また、それらはスケジューラ画面にあるため、30秒ごとに実行されるタイマーがそこにあり、DBをチェックしてスケジューラに変更が加えられたかどうかを確認し、画面を更新する必要があるかどうかを確認します.
他にも奇妙な点がいくつかあります。DB と Users テーブルはまったく問題ないようです。エラーが発生した人がシステムにログインしたとき (通常はわずか 5 分前)、システムはユーザー テーブルを調べて、ログイン済みとしてマークする必要がありました。少なくとも 1 回は実行されました。おそらく、死ぬ前に 4 ~ 5 回実行されました。
ユーザーがこのエラーを受け取った後、(.exe を終了せずに) エラーのメッセージ ボックスを画面に残した場合、何らかの方法でその DB ファイルにアクセスしようとすると、「ディスクまたはネットワーク エラー」が表示されます。そのDBをAccessで開きます。ただし、それでも問題なくネットワークにアクセスでき、開くことができないファイルと同じフォルダー内の他の mdb ファイルを開くことさえできます。他のコンピュータの OTHER PEOPLE は、エラーなしでその mdb を開くことができます。ユーザーがエラーを確認し、exe を閉じると、その DB ファイルを再び正常に開くことができます。
これはネットワークの問題ではないと言われています。当社の IT 担当者は、ネットワーク接続が切断されていないことを確認するために、ping とトレース、およびあらゆる種類のテストを実行していると述べています。また、DB でいくつかのことを実行して、破損していないことを確認し、問題がないように見えるようにしました。他の DB でそれが発生するようにしました。
誰かがこのようなものを見て、可能な修正を知っているなら、私はそれを大いに感謝します! ありがとう!
新着情報 (2013 年 9 月 5 日 - 午前 10:30)
このエラーが発生すると同時に、エラーが発生したコンピューターのエラー ログに次のような警告イベントがあることに気付きました。
{遅延書き込みに失敗しました} Windows はファイル \MEDTECHSERVER\MEDTECH DATA\VB\SCHEDTEST2\MEDTECH.MDB のすべてのデータを保存できませんでした。データが失われました。このエラーは、ファイルが存在するサーバーから返されました。このファイルを別の場所に保存してみてください。