Когда я пытаюсь удалить класс пространственных объектов, после или во время использования приложения движка Arcgis, которое использует тот же класс пространственных объектов, у меня появляется ошибка, связанная с блокировкой, поэтому я не могу использовать эту блокировку, пока не перезапущу компьютер.
я хотел бы знать способ удаления блокировок с использованием arcpy или arcobjects 10.1, было бы идеально, если бы я мог использовать блокировку внутри приложения arcengine, которое также блокирует базу геоданных, я видел разные сообщения в SE о блокировках, но никто из них дает решение освободить блокировки с помощью ArcObjects.
arcobjects
arcpy
arcgis-10.1
arcgis-engine
.net
geogeek
источник
источник
Ответы:
Если вы используете скрипты Arcpy, проблемы с блокировкой данных стали еще более проблематичными с 10.1.
Ну, это так, как это должно работать, но это редко работает. Обычно код будет работать время от времени, но часто неожиданно падает в разных местах.
Похоже, проблема заключается в том, что блокировки просто остаются на некоторое время «ненадолго», но код работает намного быстрее, чем скорость, с которой снимаются блокировки. Тем не менее, некоторые из встроенных инструментов Arc, по-видимому, требуют очистки блокировок по требованию (поскольку блокировки применяются ко всем GDB одновременно, блокировка не позволит вам работать с любым из содержащихся классов объектов). Эти инструменты являются arcpy.Compact_management () и arcpy.Exists ().
Вот небольшая функция, которую я использую в своем коде, что значительно повысило надежность (для скрипта, который создает и редактирует несколько GDB и классов объектов внутри них):
Он используется путем простой передачи пути к рабочему пространству (GDB) в функцию, и его следует выполнять после каждой операции с рабочим пространством (т. Е. Созданием GDB) или классами объектов в рабочем пространстве (т. Е. Курсорами, добавлением полей, вычислениями и т. Д.). , Например (показан здесь как автономный скрипт с функцией вверху; чтобы использовать функцию, скопируйте ее и вставьте между импортом и реальной программой, как показано здесь):
источник
Файловая база геоданных имеет 3 типа блокировок.
Предлагаемое решение по @StacyR будет работать во всех ситуациях , кроме исключительных редактирования замков (ED) в соответствии с ARCGIS справочной документации.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//003n0000007t000000
источник
Если блокировки создаются вашим кодом, то вы не убираете за собой. Отпустите все ссылки на классы пространственных объектов, рабочие области, курсоры и т. Д. Блокировки удаляются, когда у вас больше нет ссылок на блокируемые объекты.
источник