Ревизор сеансов
(v1.2, 12.2020)
Назначение
Данное расширение принудительно завершает неактивные сеансы, освобождая занятые рабочие лицензии для других пользователей. В качестве дополнительной функции реализована блокировка входя пользователей с пустыми паролями.
Предусмотрено два режима контроля сеансов - простой, по фиксированному таймауту, и адаптивный, когда дополнительно контролируется максимальное число работающих сеансов.
Настройки
- Блокировка пустых паролей - запрещает вход пользователей с пустыми паролями.
- Включить контроль сеансов - активирует контроль сеансов.
- Предельное число сеансов - желаемое число сеансов, котрое не следует превышать.
- Таймаут - значение таймаута сеанса в минутах.
- Применять таймаут - сеансы, к которым применяется таймаут.
- Время удержания - время простоя в течение которого сеанс не может быть завершен принудительно.
- Интервал проверки - интервал проверки времени простоя сеанса.
- Хранить историю - количество дней, в течение которого хранятся записи в журналах.
Настройки, которые неприемлемы в текущем режиме становятся недоступными на форме редактирования.
Адаптивный режим работы
Адаптивный режим работы включается при ненулевом параметре настроек Предельное число сеансов. При достижении предельного количества сеансов запускается процесс голосования, который выбирает наиболее подходящего кандидата для принудительного завершения. В текущей реализации критерием победы в голосовании является время простоя сеанса. Сеансы, у которых время простоя не превышает Время удержания, не принимают участия в голосовании.
Подсистема ведет журнал голосования, который может использоваться для диагностики.
Завершение сеансов по Таймауту в адаптивном режиме также выполняется в соответствии с настройкой Применять таймаут.
Локальные клиентские лицензии
При использовании локальных клиентских лицензий совместно с общим пулом лицензий возникают сложности с определением предельного количества сеансов. Автоматическое определение типов лицензий на клиентском приложении затруднительно, поскольку требует админитстративного доступа к кластеру сеансов.
Компьютеры, на которых установлены локальные клиентские лицензии, можно добавить в список исключений. Для этих целей рекомендуется использовать кнопу Добавить/Cнять Исключениена доработанной форме Активные пользователи подсистемы Ревизора.
Сеансы на компьютерах из списка исключений не учитываются при подсчете текущего числа сеансов и не участвуют в голосовании.
Если настройка Применять таймаут выставлена в значение Все сеансы, то сеансы на компьютерах из списка исключений тоже будут завершаться по таймауту.
Мониторинг нагрузки
Ревизор собирает данные и строит график по следующим параметрам нагрузки:
- Все сеансы - количество работающих сеансов, кроме тех, которые попадают в исключения.
- Активные сеансы - сеансы (из числа не попадающих в исключения), которые не могут быть завершены. Сюда входят сеансы с временем простоя меншье времени удержания, а также специальные сеансы, которые не контролируются Ревизором (конфигураторы, COM-соединения, WS-соединения). Приближение данного параметра к предельному числу сеансов указывает на критическую ситуацию, при которой может возникнуть нехватка свободных лицензий.
- Таймауты - количество принудительных завершений в течение часа.
Мониторинг, а также другие общие служебные операции, включая чистку журналов выполняются мастер-сеансом. Сеанс, из которого в последний раз были записаны настройки Ревизора становится мастером. В дальнейшем мастер-сеанс будет выбираться в следующем порядке убывания приоритета:
- Тот же пользователь, из под которого были записаны настройки.
- Тот же компьютер.
- Тот же номер сеанса.
В списке активных пользователей мастер-сеанс отображается синим цветом.
Учет времени работы пользователей
Пользователь считается работающим в данный момент, если время простоя не превышает 3 минуты. Исходя из этого критерия Ревизор ведет учет времени работы пользователей информационной базы.
Масштабирование
Алгоритм работы системы построен таким образом, что запись служебной информации в базу происходит только во время активности пользователя, либо в процессе голосования. Периодические запросы к регистрам являются не интервальными. Исключение составляет мастер-сеанс, который выполняет общий мониторинг нагрузки.
Сам процесс голосования не должен быть узким местом, поскольку ожидаемая оценка количества конкурентных ставок, которые пишутся в регистры, должна расти логарифмически с ростом количества участников.
Таким образом, Ревизор должен допускать масштабирование до нескольких сотен клиентских процессов без заметной нагрузки на сервер информационной базы.
Права доступа в расширении
Администратору Ревизора для работы с интерфейсом подсистемы требуются Полные права.
Остальным сеансам требуются права по чтению к регистрам сведений Ревизора. В расширении это реализовано через роль Запуск тонкого клиента. Если эта роль отсутствует в основной конфигурации или не устанавливается по умолчанию всем пользователям, необходимо добавить в расширение другую, более подходящую.
Обычным сеансам права на запись в регистры сведений Ревизора не требуются, так как эта операция выполняется в привилегированном режиме.
Предостережения и оговорки
При открытом модальном окне проверки допустимости использования конфигурации (ввод данных Интернет-поддержки пользователей) Ревизор не может закрыть приложение и клиентский процесс уходит в бесконечный цикл, забирая ресурсы процессора на локальном компьютере.
Клиентские процессы, участвующие в голосовании, конкурентно работают с общей записью статуса в регистре. Блокировка не используется, чтобы уменьшить нагрузку на систему и не создавать прецедента захвата ресурса. Это может приводить в редких случаях с срыву процесса голосования, что, впрочем, не должно существенно влиять на работу подсистемы.
Если предельное число сеансов не задано (простой режим), а настройка применять таймаут установлена в значение не применять, то Ревизор не завершает сеансов принудительно. В этом режиме Ревизор продолжает вести статистику работы пользователей, которая может быть использована для последующего анализа.
О разработке
(с) 2020 Коноплев Вениамин, ИКИ РАН
//infostart.ru/profile/256095/
Допускается любое использование материала при условии сохранения ссылки на первоисточник.
Данная разработка базируется на публикаях Infostart.ru:
Публикация № 920170, Сергей Постовалов
Публикация № 931108, Алексей Хадиятов
Данное расширение содержит модифицированную копию обработки Активные Пользователи из типовой конфигурации 1С Документооборот 2.1. Решение о копировании кода вместо механизма расширения было принято по следующим причинам:
- Минимизировать влияние расширения на базовую функциональность типовой конфигурации.
- Минимизировать конфликты при последующих обновлениях типовых конфигураций.
Протокол изменений
Версия 1.2 от 12.2020
- Добавлена блокировка пользователей с пустыми паролями.
- Увеличена до 7 дней глубина графика монитора загрузки.
- Исправлена ошибка отображения справки в WEB-клиенте.
Версия 1.1 от 04.2020
- Первый публичный релиз.