Ошибка "Невозможно сохранить изменения. FDO error: -2147154947"

0 голосов
спросил 06 Сен, 16 от mosvodostok (440 баллов) в категории Программные продукты Esri
При сохранении правок в ГБД ArcSDE возникает ошибка "Невозможно сохранить изменения. FDO error: -2147154947". Гугл ответов, что это такое не дает. В дoкументированном списке ошибок FDO (http://resources.esri.com/help/9.3/ArcGISEngine/ArcObjects/esriGeoDatabase/fdoError.htm) данная ошибка отсутствует.
Кто знает где найти информацию и как лечить?
Версия ArcGIS - 10.2

5 Ответы

0 голосов
ответил 06 Сен, 16 от Grigoriy (127,020 баллов)
Думаю, что если Вы найдёте описание этого кода, информации Вы получите не больше, чем уже имеете.
Т.е. скорее всего это так и будет, что-то типа "Unable to save edits".
А нам для того, чтобы хоть что-то Вам подсказать, не хватает информации.
Какая версия СУБД у Вас используется?
Клиент подключается напрямую (direct connect) к СУБД, или у Вас до сих пор используется подключение через службу ArcSDE?
Если через службу, то какая версия ArcSDE установлена?
Какая версия базы геоданных используется?
Что редактируем - простые объекты (точки, линии, полигоны) или с поведением?
Данные зарегистрированы как версионные или нет?
Вы один получаете такое сообщение при сохранении или другие пользователи СУБД тоже?
Ну и так далее.
0 голосов
ответил 08 Сен, 16 от mosvodostok (440 баллов)
Григорий, обо всем по порядку:
MS SQL 2012,
direct connect (ArcMap 10.2.2 - версия 10.2.2.3574, локализованная)
10.2.2 geodatabase (release 102001)
Объекты - в наборе и участвуют в "геометрической сети", а так же в релейшншип классах,
параллельно данные редактируются через "фича-сервис",
данные зарегистрированы как версионные,
сообщение появлялось только у одного пользователя из 4-х работающих одновременно (версия ArcMap у всех одна),
До этого возникала проблема http://support.esri.com/en/technical-article/000012395
и для ее решения всем редакторам ставили патч http://support.esri.com/download/2223
0 голосов
ответил 08 Сен, 16 от Grigoriy (127,020 баллов)
Проблема скорее всего в использовании "фиче-сервиса".
У обычного пользователя при сохранении должно "выскакивать" окно о разрешении конфликтов при сохранении изменений.
Это если он отредактировал объект, который до негоуже редактировал коллега.
У сервиса нет возможности "разрешать" конфликт на автомате - окно не всплывает :)
Он блокирует состояние версии (state) и все последующие изменения нельзя будет сохранить, пока не снимется блокировка.
Вы как Администратор можете проверить и снять блокировки

Но лучше не использовать редактирование фиче-сервиса, если данные зарегистрированы как версионные.
Если это "очень-очень" необходимо, то нужно создавать отдельную версию для сервиса.
И запускать не более одного экземпляра такого сервиса.
Это гарантирует, что только один пользователь сервиса будет в данный конкретный момент вносить изменения в свою версию.
И эта версия не будет мешать работать остальным.
Разрешение конфликтов и согласование версий - придется выполнять отдельной процедурой.
0 голосов
ответил 08 Сен, 16 от mosvodostok (440 баллов)
Григорий, спасибо за совет. Попробуем
0 голосов
ответил 08 Сен, 16 от Grigoriy (127,020 баллов)
Не за что.
Я надеюсь Вы поняли о чём идет речь :)
Рекомендую для фиче-сервиса всё-таки создать простой отдельный класс объектов, не зарегистрированный как версионный.
Тогда изменения будут сразу попадать в таблицу.
Для версионного:
1. Создайте отдельную версию, отличную от default.
2. Заведите отдельного пользователя.
3. Дайте пользователю права на набор данных и на версию.
4. Создайте отдельный проект и укажите в нём правильное подключение к нужной версии от нужного пользователя.
5. Опубликуйте как фиче-сервис.
6. В настройках укажите число экземпляров:

Работать будет, но число редакторов придется регулировать - их не может быть много.
Изменения потом нужно будет дополнительно "переносить" в родительскую версию.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...