MSysCompactError

システム開発関連

他のユーザーが同じデータに対して同時に変更を・・プロセスが停止しました。

更新日:

-1611 他のユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました。 table MSysAccessStorage

-1206 データベース '|' を開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。 table MSysAccessStorage

-1206 データベースの形式 '\\のバックアップ (合計 のバックアップ (合計 NET 個) 個).accdb' を認識できません。 table T_xxx999tbl

 

【同じデータに対して変更を試みている?】

 

なんで??そんなことしてないよ。

https://msdn.microsoft.com/ja-jp/library/cc376533.aspx

上記サイトによると

次の表は、レコード レベル ロックまたはページ レベル ロックを使用する際に発生する最も一般的な 3 つのエラーについて説明したものです。これらは、Jet データベース エンジンにより返されます。

エラー番号とテキスト 原因と対処方法
3218 "現在ロックされているので、更新できませんでした。" 別のユーザーがロックしているレコードを保存しようとすると発生します。しばらくの間待ってから再度レコードを保存するようにソリューションをプログラミングするか、問題を説明するメッセージを表示してユーザーがその操作を再度実行できるようにします。
3197 "ほかのユーザーが同じデータに対して同時に変更を試みているので、プロセスが停止しました。" 現在のユーザーによるレコード更新の試行開始後に別のユーザーがデータを更新すると発生します。このエラーがいつ発生するかは、使用しているロックによって異なります。

  • ペシミスティック ロックを使用している場合、ほかのユーザーがレコードへの変更を保存し、その後現在のユーザーが編集を始めると発生します。
  • オプティミスティック ロックを使用している場合、ほかのユーザーがレコードへの変更を既に保存した後、Update  メソッドで変更を保存すると発生します。

どちらの場合も、メッセージを表示して別のユーザーがデータを変更したことを通知するようにソリューションをプログラミングしてください。現在のデータを表示して、ほかのユーザーが加えた変更への上書き、または編集のキャンセルを選択できるようにすることも可能です。

3260 "マシン <マシン名> のユーザー <ユーザー名> によってロックされているので、更新できませんでした。" ユーザーがロックされているレコード、またはページ レベル ロックを使用している場合はそのページを編集しようとすると発生します。ページ レベル ロックを使用している場合は、AddNew メソッドまたは Update メソッドを使用してロックされたページのレコードを保存する際にも発生します。新規レコードを保存する場合、またはオプティミスティック ロックが使用されている場合に別のユーザーがそのページをロックすると、このような状況が発生します。

しばらくの間待ってから再度レコードを保存するようにソリューションをプログラミングするか、問題を説明するメッセージを表示してユーザーがその操作を再度実行できるようにします。

エラー番号 3197 が -1611 に該当するのかな。

規定設定はレコードレベルでロックだよね。

 

オプション 説明
[レコード レベルでロックして開く]

現在開いているデータベースが既定でレコード レベルでロックされるようにします。このチェック ボックスをオフにすると、現在開いているデータベースは既定でページ レベルでロックされます。このオプションの設定は、レコードのループ処理にレコードセット オブジェクトを使用するフォーム、データシート、およびコードのデータに適用されます。SQL ステートメントを使用して一括操作を実行するアクション クエリまたはコードには適用されません。

MSysCompactErrorの内容から怪しげな処理を特定できそうだけれど。

納得いかないな。再現するのが難しいので継続検証としましょう。

 

あれ?今回はエラーテーブルが出力されてないなんでだ。
エラー発生の日付や曜日・時間に、何らかの共通項がないかどうか確認する。
その曜日や時間で定期的に稼働しているアプリはないか?

 

エラー発生直前に何かアプリをインストールしていないか確認する。
メモリーリークはないか?

 

【ネットワーク ハードウェアの障害?】

 

https://support.microsoft.com/ja-jp/help/283849/how-to-troubleshoot-and-to-repair-a-damaged-access-2002-or-later-datab

上記サイトに ネットワーク ハードウェアの障害について記述がある

Jet データベース エンジンとは無関係に破損が生じる場合があります。たとえば、ネットワーク ハードウェアの障害によって、ファイルが破損する可能性があります。データベースが配置されているコンピュータとデータベースを開いているコンピュータ間のハードウェア チェーン上にある 1 つ以上のリンクが原因となっている場合があります。これにはネットワーク インターフェイス カード、ネットワーク ケーブル、ルーター、およびハブが含まれており、この他のデバイスが使用されていることもあります。ハードウェアが破損の原因になっている場合は、通常、最適化、修復、または Jetcomp を使用しても、.mdb ファイルを復元できません。ハードウェアによる破損は、通常、原因となっているハードウェアを修理するか交換するまで繰り返し発生します。

 

ハードウェアによる破損は「ファイルを復元できません。」ってか。

 

でもどのハードウェアが原因か特定するのって大変だよね。参考になる事例はないのかな、そんなのがあれば助かるだろうな。

-システム開発関連

Copyright© ymb , 2020 All Rights Reserved Powered by STINGER.