При активной работе пользователей в клиент-серверном режиме нередко возникает ситуация, когда при достаточном общем пуле лицензий новые пользователи не могут войти в программу из-за ошибки отсутствия свободных лицензий. При этом администратор завершает неактивные сеансы в консоли администрирования или обрывает терминальные RDP-сессии, но счетчик занятых слотов не уменьшается. Проанализируем причины такого поведения платформы и разберем по шагам действенные способы решения проблемы.
Разберем фундаментальное отличие в подсчете клиентских лицензий платформой 1С:Предприятие:
Разрешить выдачу лицензий сервером 1С:Предприятия, подсчет лицензий ведет сам сервер приложений. В этом режиме лицензия захватывается на каждый отдельный сеанс. Если один специалист открыл три базы и четыре окна конфигуратора, сервер спишет из пула семь клиентских лицензий. Кроме того, отдельные лицензии могут потреблять регламентные и фоновые задания.Если реальное количество пользователей меньше общего числа купленных лицензий, в первую очередь выясним, сколько сеансов открыто каждым конкретным пользователем и фоновыми процессами.
Рассмотрим, почему после удаления сеанса из консоли кластера лицензия не освобождается мгновенно:
rphost: при закрытии сеанса рабочий процесс может удерживать соединение с менеджером лицензий до момента завершения внутренней транзакции, освобождения памяти или перезапуска рабочего процесса.Для гарантированного сброса «зависших» слотов на сетевом аппаратном ключе HASP на сервере лицензирования рекомендуется настроить периодический перезапуск службы через планировщик задач Windows во внерабочее время.
Посмотрим на пример командного файла (.bat / .cmd), выполняющего безопасный перезапуск службы с фиксацией логов:
echo start: %DATE% %TIME% >> C:\scripts\hasp.log
sc stop "HASP Loader" >> C:\scripts\hasp.log
TIMEOUT /T 120 /NOBREAK
sc start "HASP Loader" >> C:\scripts\hasp.log
echo stop: %DATE% %TIME% >> C:\scripts\hasp.log
Пауза в 120 секунд необходима для корректного освобождения сетевых портов и внутренних ресурсов драйвера HASP перед повторным стартом службы.
Для предотвращения утечек лицензий и зависших сеансов настроим параметры кластера 1С в утилите администрирования:
1200 секунд).600 секунд).rphost (параметр Интервал перезапуска процессов, например, 86400 секунд). Это обеспечивает плавное обновление пула соединений без прерывания работы пользователей.Допустимый объем памяти для рабочих процессов, чтобы предотвратить накопление неосвобожденных ресурсов.Если все сотрудники работают на терминальном сервере, проанализируем возможность отключения выдачи лицензий сервером 1С. Для этого в свойствах информационной базы установим параметр Разрешить выдачу лицензий сервером 1С:Предприятия в значение Нет.
В этом случае клиентские приложения будут запрашивать лицензии у HASP License Manager самостоятельно. В файле nethasp.ini на терминальном сервере укажем точные сетевые параметры:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100
NH_USE_BROADCAST = Disabled
Такая конфигурация исключит дублирование списания лицензий при запуске одним пользователем нескольких баз и устранит широковещательные задержки в локальной сети.