В процессе эксплуатации программных продуктов 1С с аппаратными ключами защиты HASP системные администраторы часто сталкиваются с непонятной ситуацией: утилита диагностики (например, Aladdin HASP Monitor) показывает, что занята лишь часть лицензий (к примеру, 16 из 20), но при попытке подключить очередного пользователя платформа выводит сообщение о том, что лицензия не обнаружена. Рассмотрим подробно причины возникновения этой ошибки и разберем практические способы настройки системы для корректного учета клиентских лицензий.
Проанализируем, как именно платформа 1С и менеджер лицензий взаимодействуют друг с другом. Важно понимать, кто именно отвечает за раздачу лицензий пользователям:
HASP License Manager по умолчанию использует сетевой протокол UDP. В случаях, когда клиентский сеанс завершается некорректно (например, при внезапном сбое сети, некорректном завершении процесса 1С или выключении ПК), менеджер лицензий не получает финишный пакет обрывa соединения. В результате сессия «зависает» на сервере ключей с нулевым таймаутом и удерживает лицензию неограниченное время. Даже если все пользователи завершили работу, лицензии остаются заблокированными.
Выясним, установлена ли раздача лицензий сервером 1С, и при необходимости скорректируем эту настройку. Если пользователям требуется запускать по несколько баз на одном компьютере без лишнего расхода лицензий, лучше отключить серверную раздачу.
Обратите внимание: для файловых информационных баз раздача всегда происходит напрямую с рабочей станции пользователя или веб-сервера.
Чтобы менеджер лицензий автоматически сбрасывал некорректно завершенные соединения и освобождал заблокированные ключи, настроим параметр таймаута в конфигурационном файле HASP License Manager.
nhsrv.ini.[NHS_SERVER] укажем время таймаута неактивных сессий в минутах (например, 2 или 3 минуты):
[NHS_SERVER]
NHS_USER_SESSION_TIMEOUT = 3
После сохранения файла nhsrv.ini перезапустим службу HASP License Manager. Теперь зависшие при обрыве связи лицензии будут автоматически возвращаться в пул доступных через указанный интервал времени.
Если в локальной сети установлено несколько сетевых ключей HASP или работает несколько менеджеров лицензий, клиентские приложения могут опрашивать их с помощью широковещательных рассылок (broadcast), из-за чего лицензии начинают удерживаться на разных серверах. Разберем по шагам, как жестко прописать адрес нужного сервера лицензий:
bin установленной платформы 1С (или в каталоге conf) найдем файл nethasp.ini.
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_USE_BROADCAST = Disabled
NH_SERVER_ADDR = 192.168.1.100
В параметре NH_SERVER_ADDR укажем точный IP-адрес компьютера, на котором установлен сетевой ключ HASP и запущен менеджер лицензий.
Если проблема с нехваткой ключей возникла прямо сейчас и требуется быстро разблокировать застрявшие лицензии без ожидания, выполним перезапуск службы лицензирования:
services.msc).hasplm).Перезапуск службы сбросит все активные UDP-сессии, после чего работающие пользователи повторно запросят свои лицензии, а зависшие соединения полностью очистятся.