ファイル ジオデータベースとロック
ファイル ジオデータベースのデータセットを操作するユーザが自分 1 人だけであり、接続も 1 プロセスのみの場合、データセットのプロパティを自由に編集または変更することができます。データセットの削除、圧縮、解凍も可能です。
しかし、別のプロセスがすでにデータにアクセスしている場合は、それが自分のコンピュータ上のプロセスであっても他のユーザのプロセスであっても、他のプロセスが終了するまでデータセットに対する操作を実行することはできません。たとえば、ArcMap に表示されているフィーチャクラスをカタログ ツリーで削除しようとすると、次のようなメッセージが表示されます。
Failed to delete selected object(s) Cannot acquire a schema lock because of an existing lock.
ArcMap を閉じてから再試行した場合、他のプロセスがデータにアクセスしていなければ、このフィーチャクラスを削除できるようになります。
プロセスはデータセットにアクセスする際に、データセットをロックして他のプロセスによる変更を防ぎます。データセットにアクセスすると、次のように関連するデータセットもロックされます。
- フィーチャ データセット内の 1 つのフィーチャクラスにアクセスするプロセスは、そのフィーチャ データセット内のすべてのフィーチャクラスをロックします。
- ロックはリレーションシップ クラスの両方の側に適用されます。つまり、2 つのスタンドアロン フィーチャクラスがリレーションシップ クラスで関連付けられている場合、プロセスがその一方にアクセスすると両方のフィーチャクラスがロックされます。
ロックされたデータベースを追跡するために、ArcGIS はファイル ジオデータベース フォルダに *.lock ファイルを作成します。プロセスが終了すると、プロセスに関連付けられたロック ファイルは自動的に削除されますが、プロセスが異常終了した場合などには、ロック ファイルがジオデータベース フォルダに残ることがあります。残ったロック ファイルは最終的に、後続のセッションで新しいロックが発生するときに ArcGIS によって削除されます。ジオプロセシング最適化ツールを実行、またはカタログ ツリーでデータをコピー/貼り付けしたときも削除されます。削除までの間、これらのロック ファイルがデータをロックし続けることはありません。
ロックはファイルとプロセスの管理に不可欠ですが、ときにはロックが障害になることもありえます。データセットやそのプロパティの編集ができない、または削除、圧縮、解凍ができない場合には、以下のいずれかが発生していることが原因です。
- ArcMap と ArcCatalog、または ArcCatalog と Python などのように、複数のプロセスが同時にデータにアクセスしています。いずれかのアプリケーションを終了すれば、必要な操作を実行できるようになります。
- コンピュータ上の他のプロセスが正常に終了しなかったため、そのプロセスがデータにアクセスしている状態が続いています。たとえば、ArcCatalog が実行されていないように見えても、適切に終了されなかったためにデータのロックをまだ保持している可能性があります。タスク マネージャで、このようなプロセスの有無を確認して終了してください。
- 他のコンピュータ上の 1 つ以上のプロセスによってデータがアクセスされています。プロセスの終了を待つか、ユーザ(1 人または複数)に依頼してデータにアクセスしているプロセスを終了してください。
どのコンピュータがデータにアクセスしているかわからない場合は、Windows エクスプローラを使用してファイル ジオデータベース フォルダにある *.lock ファイルを削除します。*.lock ファイルの削除には十分注意してください。ロック ファイル以外のファイルを誤って削除すると、データが破損する可能性があります。ロック ファイルの削除操作後に、削除できないロック ファイルの名前を確認します。残ったロック ファイルの名前には、この時点でデータにアクセスしているコンピュータの名前が含まれています。たとえば、.lock ファイルの名前が xxx.PLUTO.15332.sr.lock であれば、PLUTO というコンピュータがデータにアクセスしていることがわかります。最後の手段として、ファイル ジオデータベースを含むコンピュータを再起動すれば動作中のロックをすべて解除できますが、再起動の前に誰もデータにアクセスしていないことを確認してください。アクセスしている場合は、その作業が保存されずに終了します。
他の種類のファイルを操作するときと同様に、何らかの問題が発生した場合に備えて、ファイル ジオデータベースを定期的にバックアップすることを推奨します。