他のネットファイルがこのディレクトリをコントロールしています
このエラーは、アプリケーション ( CASA ) が、データの追加/編集など、テーブルをロックする必要のある作業時に、テーブルのロックを行い、何らかの障害によって、作業を正常に完了できなかった場合に発生します。
エラーメッセージに表示される、ファイルPDOXUSRS.LCKを削除する事で、問題は解決します。
ディレクトリ:C:\
ファイル:C:\Program Files\WinCASA\Db\PDOXUSRS.LCK
上記のようなエラーの場合には、まず、すべてのCASA関係のアプリケーションを終了します。
C:\Program Files\WinCasa\Db
というフォルダの中に、PDOXUSRS.LCK
というファイルがありますので、このファイルを削除します。
CASAを起動し、問題が解決したか確認します。
ロックファイルのメカニズム
- 書込み前に、別のプロセスがロック中かどうか調べる
- ロック中なら処理を抜ける
- ロック中でなければ、ロックして、処理を開始する
- 処理が完了したら、ロックを解除する
上記がロック機構の流れの、大まかなイメージです。
ロックファイルを使った、ロックの判断はロックファイルの存在の有無によって判断します。
つまり、ロック中かどうかを調べるとは、既にロックファイルが存在するかを調べるという事になります。
ロックファイルが存在すれば、ロック中。存在しなければ、非ロック中という事になります。
ロックファイルとは、別のプロセスが自プロセスの処理と衝突する事を避ける事が目的なので、既にロックファイルがある場合には、別のプロセスが処理中という事で、処理を抜けるか、タイムアウトが発生するまで待ちます。
ロックファイルが見つからない場合には、他のどのプロセスもロック中ではないという事を意味するので、ロックファイルを作成し、ロックする事ができます。
これにより、ロックファイルの作成以降は、他のプロセスからの書き込みをブロックする事ができるようになります。
書き込み処理が終了すると、ロックファイルを削除します。ロックファイルを削除しないと、別のプロセスが書き込めなくなってしまいます。
エラーが出る場合には、このように、ロックファイルを作成したプロセスが、ロックを解除せずに終了してしまっているために、書き込みができずエラーとなります。
つまり、手動でロックファイルを削除する事で、ロックは解除されるという事です。
このPDOXUSRS.LCKファイルとデータベースのロックはBDEが行っていますが、学校図書館資料管理システムCASAでは、同様のロックファイルを利用した技術をいくつか利用しています。