Вход | Регистрация
 

Программное удаление зависших Web сессий?

Программное удаление зависших Web сессий?
Я
   LLIaMaH
 
31.10.19 - 09:39
У нас N розниц п 2-4 машины, 2 кассы 1 склад обычно, файловая база и Апачь на одной кассе, остальные через авач ходят. Пишу прогу для обновления конфигурации удаленно, в пакетном режиме конфигуратор обновляется из хранилища, предварительно накладывается блокировка сеансов, все живые отваливаются, гасится Apache "NET stop Apache2.2", тут я надеялся что отваляться и мертвые, но после этого остаются висеть сессии и все мое обновление дальше не идет. Если начать обновляться вручную через конфигуратор, то диалогом о завершении работы пользователе, они отключаются, но мне то нада пакетно. Вопрос, как програмно или какими действиями прибить подобные сессии заранее?  

Проблема вроде есть, погуглил решения, нигде толком не нашел ничего. Из решения предлагают выставить все нужные таймауты на миниум. Вот еще думаю програмно килять процес апача "https.exe" или ребутить комп.
 
 
   LLIaMaH
 
1 - 01.11.19 - 07:46
АП.
   Сияющий в темноте
 
2 - 01.11.19 - 08:59
net stop только дает команду завершения,но нужно дождаться,чтобы она ввполнилась,и не забывать,что эта команда для администратора
пишите службу,которая будет делать то же самое.
   LLIaMaH
 
3 - 01.11.19 - 11:20
(2) Тестирование показало, что если взять файловую базу, запустить веб подключение, а потомо убить подключение через Диспетчер задач, то это подключение будет болтается в списке пользователей, остановка сервиса Апача никак не влияет на эти спящие сессии. Если зайти в конфигуратор и обновиться то он предложит отключить этих спящих или действующих Веб-пользователей и успешно отключит их и обновление успешно пройдет, но при пакетном запуске конфигуратора ничего не выходит, конфигуратор падает с сообщением:

Обновление конфигурации из хранилища успешно завершено
Обработка структуры базы данных...

Динамическое обновление конфигурации БД невозможно: обнаружены клиенты, работающие по HTTP

Вот как бы так отключить этих спящих юзеров.
   LLIaMaH
 
4 - 01.11.19 - 11:21
Перезагрузка винды вроде помогает, но не хотелось бы чето городить на уделенной машине с перезагрузкой, ХЗ поднимется или нет.
   MM
 
5 - 01.11.19 - 11:28
(2) Ну, вообще-то, есть маленькая хитрость, можно назначить службе права так, что её сможет перезапускать любой (или явно указанный пользователь). Вот только встроенными средствами, через графический интерфейс это не настроить.
   LLIaMaH
 
6 - 01.11.19 - 11:40
(2) я запускаю команду:

КомандаСистемы("Net stop Apache2.2");

Слуюжба Апапча явно останавливается, все его процессы исчезают из диспечера, так что про "taskkill /IM "https.exe" /F" можно не заморачиваться
   LLIaMaH
 
7 - 01.11.19 - 13:24
Обнаружил, что если перезапустить службу Апапч руками без запущеного файлового запуска, то веб сессии пропадают, если файловый запуск запущен и пытаться перезапускать командой "КомандаСистемы("Net stop Apache2.2"); " а потом "КомандаСистемы("Net start Apache2.2"); " то сессии остаются висеть.
   ДенисЧ
 
8 - 01.11.19 - 13:31
(7) Цэ нормально. Ибо файловая свои локи накладывает. А апач про них если и знает, то только на посмотреть.
   Garykom
 
9 - 01.11.19 - 13:40
Создай батник с командами и запусти его на выполнение, не забудь про права от кого будет запущен батник.
По дефолту от имени под которым сервер 1С работает, может в этом трабла.
   Garykom
 
10 - 01.11.19 - 13:45
Ну и проверь "httpd.exe -k restart"
   mikecool
 
11 - 01.11.19 - 13:49
а средствами сервера разве нельзя порубить сеансы?
   mikecool
 
12 - 01.11.19 - 13:49
+11 сервера 1С*
   LLIaMaH
 
13 - 01.11.19 - 14:11
(11) Так 1С не серверная, файловая с апачем сбоку, 1 пользователь на файловой под апачем 2е еще ходят.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.