На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

автоматизация обновления карты после изменения геоданных

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 След.
RSS
автоматизация обновления карты после изменения геоданных
 
Добрый день!

Цитата
mihalych72 написал:
не нашел флаг "удалять копии отредактированных объектов"
вот его нужно выставить, остальные сбросить.
это флаг 2 - сохранять файлы отката ?

"удалять копии отредактированных объектов" - это как раз отсутствие среди флагов признака "2 - сохранять файлы отката".

Флаги можно сочетать между собой путем логического сложения (кроме флагов, указывающих конкретную точность, - такой флаг должен быть только один в наборе флагов).

Иными словами,
если flags = 0, будут отсортированы все листы с удалением копий отредактированных объектов,
если flags = 1, будут отсортированы только несортированные листы с удалением копий отредактированных объектов,
если flags = 2 (0+2), будут отсортированы все листы с сохранением файлов отката,
если flags = 3 (1+2), будут отсортированы только несортированные листы с сохранением файлов отката
и так далее...

Цитата
mihalych72 написал:
как ее потом размещают на геосервере - не знаю.

Здесь я Вам ничем помочь не могу.
Как не должно быть, я написал выше.
Подмена карт, публикуемых ГИС Сервером выполняется:
1. либо в вирутальной папке ГИС Сервера средствами ГИС Сервера
2. либо вручную но строго в следующем порядке: остановить службу ГИС Сервера, подменить карту, запустить службу ГИС Сервера
В обоих случаях при подмене карты обязательно следует удалить журналы транзакций (папка LOG), иначе клиенты будут работать с новой (подмененной) картой, но со старыми транзакциями, - будет рассинхронизация (как раз то, с чем Вы и столкнулись).
Третьего варианта не дано.

А вообще подобный подход следует исключить.
Все операции с картами, размещенными на ГИС Сервере должны выполняться строго через ГИС Сервер!
 
Цитата
Денис Вицко написал:
"удалять копии отредактированных объектов" - это как раз отсутствие среди флагов признака "2 - сохранять файлы отката".
Денис, Спасибо.

нужно было только описание - номер бита.
сочетания битов - увы, я еще в сознании и функции OR и ADD еще не отменили. когда дойду до состояния овоща, буду штудировать ваши подробные доки до дыр на накопителях.
тогда флаги указываю =0. это должно соответствовать диалогу: только "удалять копии отредактированных объектов", остальные сброшены.

в принципе не понятно причем тут файлы отката - это транзакции, и конкретно rollback ?
копии отредактированных данных еще понимаю - это типа сохранения объектов до изменения, хотя бы последнего (не всей истории).
ну и ладно - не очень то и интересно.

главное: указать флаг =0 - это удаление всего + на всех листах.
Изменено: mihalych72 - 23.01.2023 15:22:41
 
Цитата
Денис Вицко написал:
либо вручную но строго в следующем порядке: остановить службу ГИС Сервера, подменить карту, запустить службу ГИС Сервера
наверно так и поступают.
первичный вопрос был чуть иной. но ответ получен.
в, принципе, параллельная работа с одной и той же удаленной картой допустима (если одно ПО меняет, второе только читает). обновление - это этап подготовки карт.
Спасибо. этот вопрос закрыт.

за папку log - спасибо. я этот каталог передавал вместе с обновленной картой. теперь не буду. это лишняя инфа.


но есть такой вопрос:
можно ли узнать, используя только gisapi, есть ли подключение к гис серверу и конкретной карте ?
для такого вопроса, подключится к геосерверу без указания карты.
задача такая:
проверить, работает ли кто с картой: если никто не работает - тогда обновить карту в каталоге геосервере, причем с отключением геосервера. если работает - не обновлять.
сейчас это делается вручную.
Изменено: mihalych72 - 23.01.2023 15:26:58
 
Цитата
mihalych72 написал:
но есть такой вопрос:можно ли узнать, используя только gisapi, есть ли подключение к гис серверу и конкретной карте ?

Запросить состояние ГИС Сервера можно функцией mapGetServerState

Пример разбора полученной информации можно посмотреть в SDK14 в модуле svmonit.cpp (поиск по указанной выше функции).

Пользователь, от имени которого выполняется подключение к ГИС Серверу и запрос его состояния, должен обладать полномочием "Удаленный мониторинг".

PS
Но еще раз хочу Вас предупредить, Вы идете по неверному пути!
Подмена карт - не выход, а обход (обман ГИС Сервера).
После подмены карт все пользователи вынуждены будут перезакачивать карту заново к себе целиком вместо получения обновлений.
Никакие операции восстановления данных будут невозможны.
Еще раз:
Цитата
Денис Вицко написал:
Все операции с картами, размещенными на ГИС Сервере должны выполняться строго через ГИС Сервер!
 
Цитата
Денис Вицко написал:
После подмены карт все пользователи вынуждены будут перезакачивать карту заново к себе целиком вместо получения обновлений.Никакие операции восстановления данных будут невозможны.
Денис, спасибо за ответ.
это и нужно после обновления карты. обновление выполняется для установки некоторых свойств объектов карты сразу после создания карты.
картографы делали многие операции вручную, сейчас это частично автоматизируется.фактически, обновление - это подготовка карт под целевое ПО после создания карт до начала работы с ними в этом ПО.


функцию mapGetServerState буду изучать.
 
Цитата
Денис Вицко написал:
Пример разбора полученной информации можно посмотреть в SDK14 в модуле svmonit.cpp (поиск по указанной выше функции).
не нашел ни такого модуля, ни примера с функцией mapGetServerState
описание структуры нашел
буду пробовать эту функцию.
 
Цитата
mihalych72 написал:
не нашел ни такого модуля, ни примера с функцией  mapGetServerState

как было сказано выше, этот модуль находится в SDK, надо скачать SDK14 - ссылка
внутри проект \ready\mapscena\ - в нем модуль svmonit.сpp
(это штатный диалог ГИС Панорама для просмотра состояния ГИС Сервера)
 
В последний раз (больше не буду) говорю, что этот путь неправильный!

Вместо того, чтобы решать программно целый ряд нетривиальных задач:
- отслеживать состояние ГС Сервера, анализировать его загруженность;
- отключать службу ГИС Сервера;
- подменять карты;
- запускать заново службу ГИС Сервера
достаточно просто запретить файловый доступ к ПК, где установлен ГИС Сервер, и обязать таким образом всех пользователей работать с картами строго с ГИС Сервера.

То, что Вы пытаетесь сделать, - это обман ГИС Сервера и нарушение технологии его использования.
При таком подходе мы не можем гарантировать целостность данных.

Цитата
mihalych72 написал:
это и нужно после обновления карты. обновление выполняется для установки некоторых свойств объектов карты сразу после создания карты.

Карта на клиентский ПК скачивается однократно, далее кэш на клиенте обновляется за счет синхронизации данных по журналам транзакций.
Карта включает в себя массив данных, состоящий из метрики, семантики и служебной информации (индексы, заголовки объектов, топология и прочее).
Вы меняете значение отдельных семантик и ради этого хотите нарушить логику работы ГИС Сервера - подменить карты, уничтожить журналы транзакций, заставить пользователей полностью перегрузить кэш карт.
Например, карта "весит" 2,5 Гб из которых 1Гб - метрика, 1Гб - семантика, остальное - служебная информация.
Вы изменили часть семантик, затронув, к примеру, 300Мб.
Вместо того, чтобы клиенты докачали к себе эти изменения в 300Мб, после подмены карты они будут перекачивать все 2,5Гб. И это каждый клиент. Представьте нагрузку на сервер, если множество таких клиентов будут работать +/- одновременно.
Кроме того не понятно, как Вы будете перезагружать ГИС Сервер, подменяя карты, если появится еще несколько проектов, требующих размещения карты на ГИС Сервере.
 
Цитата
Денис Вицко написал:
В последний раз (больше не буду) говорю, что этот путь неправильный!

я еще раз повторяю - я Вас понял. к Вам вопросов нет. За подробные ответы очень благодарю.

эту технологию, в начале, нужно понять МНЕ. а я (или другой, по моему описанию) буду дорабатывать обновление карт в организации.
по Вашему замечанию, у нас, обновление делается неправильно. я это понимаю и хочу понять, как нам поправить эту технологию.
я пытаюсь объяснить то что Вы советуете и картографам и админу гис  сервера.
админ гис сервера работает с гисами больше чем я и сам знает  эту кухню. именно он меняет карты. как он это делает и когда - я не знаю.
я с  гисами очень давно не работал. поэтому здесь я хочу все разобрать для  себя.я сам карту на гис сервере не обновляю!


у нас удаленно много клиентов, работающих с картой. как они синхронизируются по картам (когда чистят кеши) - хз.
сейчас карты небольшие (региональные), не более 200М (вся целиком), но их много. каждый клиент удаленно работает со своей картой, но не факт что с одного и того же компа.
крайне редко работают параллельно с одной и той же картой на изменение. в основном один меняет, а другие работают только на просмотр (просмотр,поиск,отчеты). локальные изменения карты делают пользователи удаленно. большие - делают наши картографы, иногда удаленно, иногда локально. и только тогда меняются карты через файлы.

мое обновления карты делается на этапе подготовки карты до начала работы с ней на рабочем гис сервере!
мне автоматизация обновления нужна для того, чтобы автоматизировать шаги подготовки сырой карты:
1) картографы кладут карту на ФТП
2) я ее обновляю у себя на компе

3)  выкладываю на ФТП

4) ее заливают на тестовый геосервер
5) проверяют на целевом ПО, но на тестовом геосервере и тестовой БД. здесь выполняется чтение карты. крайне редко - ручные тексты с созданием новых объектов на карте, но эти объекты не фиксируются на проверяемой карте!

если есть проблемы - все повторяется.
только потом результат заливают на рабочий геосервер.
я хочу автоматизировать ТОЛЬКО процесс подготовки карт.!!!
пока карту готовят с ней работает только один сотрудник (ОДНОМОМЕНТНО) и такая карта гоняется по этапам, и нужно руками повторять кучу одинаковых операций.




на рабочем геосервере делают так
по словам того, кто меняет карты, сейчас каталог лога перезаписывают вместе с новыми картами (т.е. логи перезаписываются под новые карты).
журналы транзакций никому не нужны, при замене карт на гис сервере можно удалять каталог LOG ?


обновление уже работающих карт :
1) проверяется, чтобы небыло подключенных клиентов

2) делается копия файлов текущей рабочей карты. останавливают геосервер или нет при этом копировании - я не знаю. скорее всего нет.

3) обновляют карту  (копии файлов). это может занимать долгое время.

4) останавливают геосервер
5) перезаписывают карту (файлы)

6) запускают геосервер
как при этом работают с клиентами (чистка кешей) - я не знаю.



если я Вас правильно понял, чтобы все работало нормально, клиенты,   после обновления карт на гис сервере, должны вычистить свои кеши карт ?
вряд  ли будут претензии загрузки карт после чистки кеша. карты: небольшие, канал  скоростной. и карты так меняются крайне редко (файлами на гис сервер). когда ПО разворачивается впервые вообще никаких кешей нет и тормозов не замечено.

поэтому добавляются этапы:
2) при копировании карты (пп2) нужно останавливать геосервер ВСЕГДА!
в промежутке обновления карты, все изменения карты, сделанные клиентами, теряются - это известно и понятно - с этим все согласны.
5) перезаписывать карту (файлы) и удалять каталог LOG.
7) у клиентов принудительно чистить кеши обновленных карт до подключения к геосерверу - это возможно


обновлять карту на рабочем геосервере, на ходу, нельзя, поскольку обновляется не только карта, но и связанные объекты в БД.
если что-то грохнется, еще и в работе с другими клиентами - это будет писец!
 
Цитата
Денис Вицко написал:
надо скачать SDK14 -  ссылка
Денис, спасибо за ссылку.
как будет время - буду разбираться.
сейчас нужно доделать срочную работу.
странно то, что у меня развернут sdk 14 (ставил в начале ноября) и есть предпоследний free. ни в одном ничего не нашлось. буду ставить новый.
Изменено: mihalych72 - 26.01.2023 16:16:08
Страницы: Пред. 1 2 3 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности