Файловая база геоданных и блокировка
Если вы - единственный пользователь, работающий с набором данных в файловой базе геоданных, причем запускающий только один процесс одновременно, вы можете свободно редактировать или изменять его свойства. Вы также можете удалять, сжимать и отменять сжатие набора данных.
Но если данные уже задействованы в каком-то процессе (не важно - на вашем же компьютере или у другого пользователя), ArcGIS не даст вам выполнить подобную операцию, пока этот процесс не завершится. Например, если у вас класс пространственных объектов отображается в ArcMap, а вы пытаетесь удалить его из дерева Каталога, появится сообщение:
Failed to delete selected object(s) Cannot acquire a schema lock because of an existing lock.
Если вы закроете ArcMap и повторите попытку, то теперь сможете удалить класс пространственных объектов, если никакие другие процессы не имеют доступ к этим же данным.
Получив доступ к набору данных, процесс его блокирует, не давая другим процессам его изменять. Доступ к набору данных блокирует не только этот набор данных, но и следующие дополнительные связанные наборы данных:
- Доступ к классу пространственных объектов в наборе классов блокирует все остальные классы в этом наборе.
- Блокировки применяются также для объектов обоих сторон класса отношений. То есть, если два отдельных класса пространственных объектов связаны посредством класса отношений и один из них задействован в процессе, блокируются оба класса.
Для сохранения блокировок на наборы данных, ArcGIS помещает файлы *.lock в папку файловой базы геоданных. Если процесс уже не использует данные или завершается, соответствующие файлы блокировок автоматически удаляются. Но в некоторых случаях, например при аварийном завершении процесса, фалы блокировок могут остаться в папке базы геоданных. ArcGIS со временем удалит эти файлы, когда в следующих сеансах будут возникать новые блокировки. Их можно удалить инструментом геообработки Уплотнить (Compact) и Копировать/Вставить (доступны для файловых баз геоданных в ArcCatalog). Тем временем, эти файлы блокировок не продолжают блокировать данные.
Блокировки очень важны для управления файлами и процессами. Но иногда кажется, что они только мешают. Если у вас не получается редактировать набор данных или его свойства, либо что-то удалить, сжать или отменить сжатие, и вы получаете сообщения об ошибках, причины могут быть следующие:
- Вы получаете доступ к данным двумя или более процессами одновременно, например ArcMap и ArcCatalog, или ArcCatalog и Python. Закройте одно из этих приложений, чтобы выполнить нужную операцию.
- Другой процесс на вашем компьютере всё ещё удерживает данные, так как не был закрыт правильным образом. Например, даже если ArcCatalog сейчас уже и не запущен, он мог закрыться некорректно и продолжает удерживать блокировку данных. Откройте Диспетчер задач и закройте там подвисшие процессы.
- Данные открыты для одного или нескольких процессов на другом компьютере. Подождите, пока такой процесс завершится, или попросите пользователя отпустить ваши данные.
Если вы не знаете, какие другие компьютеры обращаются к вашим данным, воспользуйтесь Проводником Windows, чтобы аккуратно удалить файлы *.lock из папки файловой базы геоданных. Но делайте это аккуратно - случайное удаление других файлов блокировок может привести к порче данных. Удалив файлы .lock, посмотрите на названия файлов .lock, которые удалить не получается. Имена оставшихся файлов .lock содержат имена компьютеров, удерживающих ваши данные. Например, файл .lock с названием xxx.PLUTO.15332.sr.lock означает, что данные открыты на компьютере PLUTO.В качастве крайней меры, вы можете очистить все активные блокировки, перезагрузив компьютер с файловой базой геоданных. Но перед тем, как это сделать, убедитесь, что никто сейчас не работает с вашими данными, иначе их работа не сохранится.
Точно так же, как и при работе с любыми другими данными, лучше регулярно делать резервные копии своих файловых баз геоданных, на всякий случай.