Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
Доброго времени суток.
Возможно ли реализовать перезапуск Cache из ZEN/CSP с последующим восстановлением сессии?
29 мар 19, 14:20    [21847083]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2675
vcoshak
Доброго времени суток.
Возможно ли реализовать перезапуск Cache из ZEN/CSP с последующим восстановлением сессии?
Caché программно может себя остановить. Для того чтобы перезапустить нужно это делать на уровне Операционной системы, например там скрипт и его вызывать асинхронно.
А вот восстановить сессию конечно уже не получится. Cache не сохраняет сессии при остановке сервера, можно наверно это обойти, но зачем. Если так нужно, то что-то делаеется не правильно. Перезапускать сервер пока с ним работают пользователи, зачем это надо?
29 мар 19, 15:11    [21847188]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
DAiMor,
Это нужно для актуализации системы.
При актуализации заменяется и заново компилируется весь проект, модифицируются глобали.
До актуализации нужно остановить все пользовательские процессы и запретить пользователям вход.
Поскольку в нашем приложении есть процессы, которые запускаются "псевдо-случайно" (при определённых условиях) и без привязки к конкретному пользователю, их трудно вычленить и остановить. Проще перезапустить систему.
В данный момент это делает .NET-приложение, которое управляет всем процессом актуализации.
Стоит задача всё сделать через WEB приложение.
29 мар 19, 15:38    [21847245]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
П.С.М.
Member

Откуда: Из СССР
Сообщений: 466
vcoshak,

очень похоже на рытьё подземного хода на чердак
30 мар 19, 01:18    [21847659]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
alatalo
Member

Откуда: Хельсинки
Сообщений: 123
vcoshak,

Повесить внешний сервис чтобы коцал базу по какому-либо выставленому web ui флагу?
Звать внешний exe из каше?
30 мар 19, 16:10    [21847862]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
Ptn
Member

Откуда:
Сообщений: 8
vcoshak
Поскольку в нашем приложении есть процессы, которые запускаются "псевдо-случайно"


То имеет смысл добавить во все эти процессы проверку не находится ли система "состоянии актуализации", по моему это проще чем рестартовать БД
1 апр 19, 09:38    [21848670]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
Коллеги, вопрос не состоит в том, чтобы вообще избежать перезапуска Cache - этот вопрос вообще не обсуждается, плохо это или хорошо.
Вопрос в том, возможно ли это реализовать из ZEN/CSP.

Я задал вопрос на этом форуме т.к. сам не пользуюсь и не имею опыта работы с WEB/JS. Но думаю, что в принципе это реализовать можно. Например, такой подход реализован в Веб-интерфейсе бытового рутера "FritzBox" (если кто знает) с простейшим (по сравнению с Cache) Веб-сервером.

Как я понимаю, решение могло бы быть в том, чтобы JS из веб-страницы послал команду перезапуска и потом периодически проверял, доступен ли веб-сервер снова. Если да, то веб-страница перезагружается. При этом восстанавливать в точности ту же сессию не обязательно. Её состояние можно сохранить перед рестартом, а потом загрузить сохранённые параметры в новую сессию.
1 апр 19, 11:29    [21848772]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2675
vcoshak,

WEB/JS здесь эту задачу вообще не решают, это просто интерфейс. Так как же как в вам упомянутом роутере, и в любом другом подобном оборудовании, такое есть. Но делается это просто вызовом определенных функций на стороне сервера.

И ващем случае, если вы точно решили что вам так надо и вы готовы пойти на все риски, такие как безопасность, и то что сервер не вернется после остановки.

Вам нужна программа или простой скрипт внешние по отношению к Caché, которые смогут сделать все по команде, и проверить что все прошло верно.

как я уже писал из Caché вы сможете только его остановить. Все остальные варианты только из вне, управление сервисом. И варианты реализации могут отличаться от операционной системы.
1 апр 19, 11:52    [21848801]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2675
Насчет восстановления сессии, пока не совсем понятно, зачем это нужно. Попытаться реализовать конечно можно, но проще и правильней реализовать так чтобы в этом отпала необходимость.
Если нужно, чтобы не нужно было авторизовываться сразу же после перезапуска, я пока не вижу в этом необходимости по описанному процессу.

Если это нужно чтобы было понятно, где продолжить, то тут просто нужно разбить на этапы и сохранять в глобал, какие этапы выполнены, и даже если просто открыли страницу с нуля, должно вернуть последний не выполненный этап.
1 апр 19, 11:58    [21848807]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1181
[quot DAiMor]
vcoshak
Cache не сохраняет сессии при остановке сервера

Чтобы не сохранить то что хранится в глобалах надо иметь специальный код, который что-то там удалит.
А зачем удалять сессии? Они становятся какими-то кривыми от того, что сервер перезапустился?
Тогда почему бы не удалять все файлы на компе при его перезапуске?
1 апр 19, 14:51    [21849013]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1554
DAiMor
как я уже писал из Cache вы сможете только его остановить...
Почему же, можно и перезапустить - через асинхронный запуск внешней команды $zf(-2,"cmd"). Баловался этим лет 20 назад, когда только перешли в Cache и по привычке хотелось делать всё, не выходя из интерфейса командной строки СУБД.

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

Перезапуск сервера ради установки обновления - можно ещё понять, если много фоновых процессов работает и сложно их централизованно остановить или надо CACHETEMP почистить, хотя и это решаемо.
1 апр 19, 16:58    [21849164]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
Alexey Maslov,

у нас всё происходит ровно по той схеме, которую вы описали. Только управляет всем .NET-приложение.
Однако хотелось бы уйти от установки и поддержки лишнего .NET-клиента, т.к. он делает простые вещи:
1. загружает файлы программ и глобалей из файловой системы (через стандартный диалог) в cache
2. ставит флаг запрета входа в приложение и перезапускает cache
3. передаёт управление классу cache, который выполняет всю работу по обновлению
4. принимает и показывает протокол и результат
5. снимает флаг запрета входа при успехе.
Всё это можно было бы (как мне кажется) реализовать через ZEN, если бы загруженная в браузер страница сохраняла активность после асинхронной подачи команды на перезапуск cache и отслеживала новый старт (таймер в JS?), после чего снова загружалась и активировала процесс начиная с п.3
1 апр 19, 17:50    [21849232]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1554
vcoshak
...у нас всё происходит ровно по той схеме, которую вы описали...
С точностью до перезапуска Cache. Зачем он вам?
1 апр 19, 18:21    [21849269]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow
Сообщений: 2675
Alexey Maslov
Почему же, можно и перезапустить - через асинхронный запуск внешней команды $zf(-2,"cmd").
Такой способ я и не отрицаю и его как раз предлагал, я про нативный способ без вызова в операционную. Доступна только остановка
1 апр 19, 18:49    [21849307]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
Alexey Maslov
vcoshak
...у нас всё происходит ровно по той схеме, которую вы описали...
С точностью до перезапуска Cache. Зачем он вам?
Так вот для этого же:
Alexey Maslov
Перезапуск сервера ради установки обновления - можно ещё понять, если много фоновых процессов работает и сложно их централизованно остановить...
Именно так и есть.
1 апр 19, 22:24    [21849497]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1554
vcoshak
...если много фоновых процессов работает и сложно их централизованно остановить...
Именно так и есть.
На самом деле, не ахти какая проблема обойти все процессы в цикле $order(^$Job(pid)) или другим способом и прибить "свои", распознав их по некоторому признаку, и аккуратно прибить. Признаком может быть некоторая переменная, которая должна быть определена, или блокировка Lock +^ActivityGlobal(pid), наличие которой можно определить по $data(^$Lock(...)). Второе надёжней, IMHO, и работать должно быстрее, чем лазить в каждый процесс для проверки его переменной.

В любом случае, время, которое будет потрачено на убиение процессов, наверняка окажется много меньше времени, которое требуется для установки обновления. Профит:
- избегаете перезапуска Cache, который в случае Windows обычно требует и перезагрузки ОС из-за незахвата Large Pages; другие негативные последствия перезапуска Cache, думаю, вам тоже известны;
- не надо решать нетривиальную задачу, которую вы поставили в данной теме.
2 апр 19, 11:19    [21849803]     Ответить | Цитировать Сообщить модератору
 Re: Перезапуск Cache из ZEN/CSP  [new]
vcoshak
Member

Откуда:
Сообщений: 34
Спасибо всем, кто откликнулся.
Думаю, тема исчерпана.
2 апр 19, 12:38    [21849924]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить