При совместной работе с сетевым аппаратным ключом защиты HASP в файловом режиме 1С:Предприятия системные администраторы часто сталкиваются с ситуацией, когда при закрытии программы пользователем занятая лицензия не освобождается. В условиях ограниченного пула лицензий (например, ключ на 5 рабочих мест при 4 активных пользователях) любое подобное зависание блокирует запуск программы другим сотрудникам с ошибкой «Не найдена лицензия для использования программы».
Проанализируем причины такого поведения службы HASP License Manager, разберем методы автоматизации перезапуска службы и пошагово настроим конфигурационные файлы для исключения сетевых сбоев.
Выясним причину проблемы. В файловом режиме базы данных управление лицензиями не централизовано через сервер 1С:Предприятия. Каждое клиентское приложение самостоятельно опрашивает ключ HASP по сети. Зависание лицензий чаще всего происходит из-за следующих факторов:
475. При нестабильном соединении (особенно при подключении клиентов по Wi-Fi) пакет об освобождении дескриптора сессии теряется, и служба считает сеанс активным.Рассмотрим основной способ устранения сетевых задержек и зависаний лицензий. Для этого исключим широковещательную рассылку и укажем клиентам точный IP-адрес компьютера, на котором физически установлен ключ защиты.
Разберем по шагам порядок настройки клиентских ПК:
C:\Program Files\1cv8\conf или C:\Program Files (x86)\1cv8\conf).nethasp.ini.[NH_COMMON] и [NH_TCPIP], отключив широковещательный опрос и неиспользуемые сетевые протоколы (IPX, NetBIOS), и пропишем статический IP-адрес сервера с ключом:
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100
NH_USE_BROADCAST = Disabled
NH_SERVER_NAME = HASP_SERVER
NH_SESSION = 5
NH_SEND_RCV = 5
Параметры NH_SESSION и NH_SEND_RCV задают время ожидания ответа в секундах, что позволяет снизить время подвисания при нестабильном канале связи. Данный файл конфигурации необходимо скопировать на все клиентские рабочие станции.
Если зависания происходят регулярно из-за некорректно завершенных клиентских сессий, временным и эффективным решением является регламентный перезапуск службы HASP Loader. Пользователи, которые уже работают в базе данных, при кратковременном перезапуске службы не теряют несохраненные данные, так как постоянная проверка доступности ключа имеет защитные интервалы повтора попыток соединения.
Посмотрим на пример командного файла (батника), который можно добавить в «Планировщик заданий Windows» (Task Scheduler) для выполнения в нерабочие часы или по расписанию в течение дня:
@echo off
echo ======================================= >> C:\scripts\hasp.log
echo Start restart: %DATE% %TIME% >> C:\scripts\hasp.log
sc stop "HASP Loader" >> C:\scripts\hasp.log 2>&1
timeout /t 10 /nobreak > nul
sc start "HASP Loader" >> C:\scripts\hasp.log 2>&1
echo Stop restart: %DATE% %TIME% >> C:\scripts\hasp.log
Разберем важные моменты при настройке планировщика:
SYSTEM или учетной записи администратора домена).timeout рекомендуется задавать от 5 до 15 секунд, чтобы служба успела полностью выгрузить из памяти занятые дескрипторы.Проанализируем дополнительные аппаратные и системные настройки, исключающие возникновение сетевых коллизий:
nhsew32.exe) можно разместить файл nhsrv.ini, ограничив прослушивание только протоколом TCP/IP и конкретным локальным адресом:
[NHS_IP]
NHS_USE_UDP = enabled
NHS_USE_TCP = enabled
NHS_IP_port_number = 475
[NHS_IPX]
NHS_USE_IPX = disabled
[NHS_NETBIOS]
NHS_USE_NETBIOS = disabled
Рассмотрим радикальный способ решения проблем с сетевыми ключами при наличии удаленных или Wi-Fi клиентов. Файловую базу можно опубликовать на локальном веб-сервере (Internet Information Services (IIS) или Apache).
При таком подходе пользователи подключаются к базе через тонкий клиент 1С или веб-браузер по протоколу HTTP/HTTPS. Лицензию сетевого ключа HASP расходует веб-сервер на локальном компьютере, полностью устраняя сетевой трафик HASP и проблемы с широковещательным опросом по беспроводным каналам связи.