При работе в сложной сетевой инфраструктуре с несколькими серверами часто возникает ситуация, когда лицензии 1С:Предприятия распределяются некорректно. Особенную сложность представляют программные лицензии, которые при активации были привязаны не к параметрам компьютера (железу), а к аппаратному ключу HASP. Разберем подробно, как правильно настроить такую связку, чтобы пользователи RDP-сервера не получали ошибку «Не обнаружено свободной лицензии».
Прежде чем приступать к техническим настройкам, проанализируем ситуацию. Когда программная лицензия привязывается к HASP-ключу, файл лицензии .lic становится зависимым от уникального ID этого ключа. Однако, в отличие от чисто аппаратного ключа, файл лицензии все равно должен быть доступен программным компонентам 1С. Рассмотрим основные правила поиска таких лицензий:
.lic должен находиться на локальном диске того сервера, где выполняется поиск (на сервере 1С или на клиентской машине).Выясним причину ошибки в описанном случае: если файлы лицензий лежат на «Сервере 2», а база данных и сеансы работают на «Сервере 1», то «Сервер 1» просто не видит эти файлы, так как он не сканирует сетевые папки других серверов.
Первым делом нам необходимо переместить файлы программных лицензий на тот сервер, который будет заниматься их раздачей. В инфраструктуре с RDP это, как правило, сервер, на котором запущен процесс rmngr (менеджер кластера 1С).
Выполним следующие действия:
.lic на «Сервере 2». Обычно они располагаются в папке C:\ProgramData\1C\licenses.C:\ProgramData\1C\licenses.Посмотрим на текст ошибки из журнала, предоставленного автором. Коды Warning=129 и Warning=159 прямо указывают на то, что сетевой поиск ключа через Broadcast (широковещательный запрос) не увенчался успехом. В современных сетях такие запросы часто блокируются брандмауэрами или не проходят между подсетями.
Чтобы гарантированно «подружить» сервер 1С с ключом HASP, настроим файл nethasp.ini. Разберем пошагово:
Перейдем в папку с установленной платформой, например: C:\Program Files\1cv8\conf. Откроем файл nethasp.ini и приведем секцию [NH_TCPIP] к следующему виду:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP-адрес сервера, где физически стоит ключ HASP
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
После внесения изменений сохраним файл. Теперь система будет обращаться за проверкой ключа напрямую по указанному адресу, минуя нестабильные широковещательные запросы.
Проанализируем способ выдачи лицензий. Для работы через RDP наиболее стабильным является вариант, когда лицензии выдает сам сервер 1С:Предприятия. В этом случае сервер берет на себя роль диспетчера: он находит файл .lic, проверяет наличие ключа и закрепляет лицензию за сеансом пользователя.
Настроим этот режим в консоли администрирования кластера:
Обратите внимание: если этот параметр включен, лицензии тратятся на каждый запущенный сеанс. Если один пользователь откроет три разные базы, он займет три лицензии. Это плата за стабильность работы в терминальном режиме.
Для того чтобы ключ HASP был виден в сети, на сервере, где он установлен («Сервер 2»), должен быть запущен HASP License Manager. Рассмотрим основные требования к его настройке:
Sentinel LDK-License Manager запущена и работает.475 (UDP/TCP) в брандмауэре Windows на обоих серверах.Разберем важный нюанс, упомянутый в обсуждении. Если у вас имеется многопользовательская лицензия на 50 рабочих мест, привязанная к HASP, то файл .lic содержит информацию о лимите подключений.
При использовании серверной раздачи (пункт 3), сервер 1С самостоятельно подсчитывает количество занятых лицензий. Если в журнале регистрации или в консоли вы видите, что «свободные лицензии закончились», проверьте общее количество активных сеансов во всех базах данного кластера. Проанализируем ситуацию: сервер 1С суммирует лицензии из всех доступных ему файлов .lic, находящихся в локальной папке licenses.
Подведем итог нашим действиям. Чтобы настроить раздачу лицензий 1С с привязкой к HASP в многосерверной конфигурации, мы выполнили:
nethasp.ini.Такой подход позволяет избежать конфликтов при поиске ключей и обеспечивает стабильную работу пользователей в RDP-сессиях, даже если физический ключ и сервер 1С находятся на разных машинах.