При организации многопользовательской работы с базой 1С через терминальный сервер (RDP) системные администраторы нередко сталкиваются с ситуацией, когда очередной пользователь не может войти в систему. При запуске программа выдает диагностическое сообщение: «поиск лицензии на клиенте... nethasp.ini прочитан успешно, ORGL8 сетевой, лицензии исчерпаны. Файл программной лицензии не найден». При этом общее число фактически работающих сотрудников меньше номинального количества купленных лицензий, а ошибка возникает у любого пользователя, запускающего сеанс сверх определенного лимита.
Разберем причины возникновения этой ошибки, выясним, почему сетевой менеджер лицензий перестает отдавать свободные слоты, и подробно рассмотрим пошаговые способы восстановления нормальной работы.
Проанализируем архитектуру раздачи аппаратных лицензий HASP и определим узкие места, приводящие к ошибке исчерпания лицензий:
1cv8.exe продолжает выполняться в фоновом режиме на сервере, удерживая сетевую лицензию.ORGL8), вставленных в один физический хост. Менеджер лицензий видит только один из них (первый инициализированный), а емкость второго ключа полностью игнорируется.Рассмотрим самое быстрое оперативное решение, которое позволяет вернуть систему в строй в экстренной ситуации.
В типовой топологии ключи часто проброшены в виртуальную машину или подключены напрямую к отдельному серверу (например, контроллеру домена), а пользователи подключаются к отдельному терминальному серверу. Если на терминальном сервере закрыты все сеансы, но лицензии не освободились, блокировка удерживается на уровне службы лицензирования хоста с ключами.
Разберем порядок действий:
net stop "HASP Loader"
net start "HASP Loader"
hasplms либо ссылаться на исполняемый файл nhsrvice.exe).1cv8.exe или 1cv8c.exe.Чтобы точно знать, какие компьютеры и процессы занимают лицензии, воспользуемся специализированной утилитой мониторинга Aladdin Monitor (AKS Monitor).
Разберем настройку сетевого взаимодействия, которая позволяет избежать задержек широковещательных запросов и жестко указать терминальному серверу, где именно искать аппаратный ключ.
На терминальном сервере переходим в каталог конфигурации платформы 1С. Файл nethasp.ini располагается в каталоге конкретной версии платформы (например, conf\nethasp.ini) либо в общесистемном каталоге настроек. Открываем файл в текстовом редакторе и задаем следующие параметры:
[NH_COMMON]
NH_TCPIP = Enabled
NH_IPX = Disabled
NH_NETBIOS = Disabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_SESSION = 5
NH_SEND_RCV = 4
Посмотрим на назначение указанных директив:
NH_TCPIP = Enabled — принудительно включает стек протоколов TCP/IP, отключая устаревшие протоколы IPX и NetBIOS, что ускоряет поиск.NH_SERVER_ADDR = 192.168.1.10 — указывает прямой IP-адрес сервера (или контроллера домена), на котором запущен менеджер лицензий. Если в сети используется несколько серверов с ключами, их IP-адреса перечисляются через запятую.NH_USE_BROADCAST = Disabled — отключает широковещательную рассылку запросов, защищая от сетевых коллизий и сбоев маршрутизации.NH_SESSION и NH_SEND_RCV — увеличивают допустимые сетевые тайм-ауты ожидания ответа от ключа, предотвращая ложный сброс соединения при кратковременных нагрузках на канал.Чтобы исключить повторение проблемы в будущем из-за небрежности пользователей, закрывающих терминальные окна крестиком, настроим автоматическое завершение брошенных сессий.
gpedit.msc и нажимаем Enter.Благодаря этой настройке сервер Windows самостоятельно закроет забытые сеансы и принудительно выгрузит процессы 1cv8.exe, что гарантированно вернет сетевые лицензии в пул свободных для остальных сотрудников.