Имя: Пароль:
1C
1С v8
Закрытие неактивных сеансов (2 сервера)
,
0 Radion
 
20.02.20
15:03
Всем привет, прошу поделиться опытом, по закрытию зависших сессий пользователей с условием, что на сервере установлено 2 агента сервера 1С. Установили 2 агента сервера 1С (с различными версиями платформ). На первом продакшн база торговля, на 2-м БП, ЗУП и тп, что нужно оперативно обновлять. Если бы был установлен сервер 1С был один, проблем нет. Но их 2 и сессии зависают на обоих. Кто реализовывал такой вариант? Спасибо.
1 belav1982
 
20.02.20
15:23
Настройки в самих базах не помогают? Конфигуратор: Администрирование - Параметры информационной базы?
Может, я не так что-то понял. Тогда хоть апну тему:)
2 Radion
 
20.02.20
15:26
(1) хочу запустить через регламентное задание, через подключиться к агенту сервера через Com обьект. Вот здесь то и самая загвоздка, т.к. библиотека зарегистрирована одна на один конкретный сервер.
3 Очевидно
 
20.02.20
15:39
(0) какая-то муть, тема "Закрытие неактивных сеансов", в сообщении про "Зависшие сессии", а в (2) про подключение через "COM" а агенту сервера и не зарегистрированные компоненты... вы уж определитесь что вы хотите ...
4 Очевидно
 
20.02.20
15:49
(0)
Про зависшие и неактивные сеансы - думаю нужно копать в сторону "1С RAS".
про "подключиться к агенту сервера через Com объект" - стоит ещё раз подумать откуда и куда вы собираетесь соединяться...
5 LOLYBUF
 
20.02.20
17:06
Совсем недавно реализовывал похожую вещь:


    Соединитель     = Новый COMОбъект("V83.COMConnector");
    СоединениеСАгентом     = Соединитель.ConnectAgent("b3");
    Clusters         = СоединениеСАгентом.GetClusters();
    
    для Каждого Кластер из Clusters Цикл
        СоединениеСАгентом.Authenticate(Кластер,"","");
        WorkingProcesses = СоединениеСАгентом.GetWorkingProcesses(Кластер);
        Базы = СоединениеСАгентом.GetInfoBases(Кластер);
        Для каждого База  Из Базы Цикл
            Если Врег(База.Name) = ВРЕГ("trade") Тогда
                Сеансы = СоединениеСАгентом.GetInfoBaseSessions(Кластер,База);
                Для Каждого Сеанс из Сеансы Цикл
            //Закрываешь сеанс        
        КонецЦикла;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
6 LOLYBUF
 
20.02.20
17:06
Почему такая стремная табуляция получается????
7 LOLYBUF
 
20.02.20
17:10
Например вот закрытие сеанса через определенный срок:


Если Сеанс.LastActiveAt <= КрайнийСрок Тогда
    СоединениеСАгентом.TerminateSession(Кластер, Сеанс);
КонецЕсли
8 Radion
 
20.02.20
17:19
(7) Спасибо. Да, обработка есть, не проблема. Посоветовали программно предварительно регистрировать нужную dll а затем уже подключаться к нужному агенту сервера и делать что требуется.