Ошибка соединения со службой лицензий

Продукт: 

Принцип  лицензирования АСУ «Эдельвейс» основан на технологиях работы с ключом защиты HASP4(HL) компании Aladdin(сейчас Sentinel).

Работа осуществляется со службой лицензирования «HASPLoader», при обращении с идентификацией по уникальному номеру ключа, путём создания сессии между клиентской частью ПО АСУ «Эдельвейс» и службой лицензии. При постоянной работе сессия создаётся с тайм-аутом её работы 300 секунд (5 минут). Со стороны АСУ Эдельвейс при проверки состояния сессии, производится опрос каждые 240 секунд (4 минуты), т.е. если АСУ Эдельвейс не прислала в службу лицензирования запрос на обновление сессии, она максимум через 5 минут отключается.

Служба лицензирования «HASPLoader» по умолчанию имеет настройки по работе в сети по протоколу UDP. В случае нестабильности работы и получении сообщений от АСУ «Эдельвейс»: «Ошибка соединения со службой лицензий», возможны потери при сетевой передаче пакета на обновление сессии в службе лицензирования. Это может быть связано и с нестабильной работой сетевого канала передачи данных между клиентом и сервером со службой лицензирования или нестабильной работой протокола UDP, так как в его протоколе нет обратной передачи данных о получении пакета и результат «клиенту» неизвестен. В таких случаях более приемлемым считается использования протокола TCP. Так же необходимо убедиться в отсутствии блокирования передачи пакетов между клиентами и службой со стороны стороннего ПО или оборудования.

Далее мы рассмотрим варианты перенастройки схемы работы системы лицензирования, в случаях возникновения ошибок в её работе: Несколько комментариев с сайта производителя доступны по ссылке: 

https://safenet-sentinel.ru/faq/user/hasp4#6487

Ниже выборка из указанной статьи:

1. Причина сбоев в работе менеджера лицензий – «битые» пакеты, приходящие по UDP. Поскольку обмен при помощи UDP-дэйтаграмм не предусматривает контроля успешной доставки пакета,  данный протокол надежно работает только в сетях, построенных на высококачественном оборудовании. Если же на какой-нибудь рабочей станции, где запускается защищенное приложение, установлена карта, которая не корректно работает с FlowControl,  то это приводит к вышеописанной ситуации. Единственный способ разрешить эту проблему,  не считая замены оборудования на более качественное, – это переход на обмен посредством TCP-пакетов. В этом случае контролируется успешная доставка каждого пакета и работа с ключом становится более надежной.


2. Ошибка иногда возникает, если защищенное приложение или ключ установлены на машине с более чем одним сетевым интерфейсом. Для устранения следует отключить второй сетевой интерфейс или переставить ключ/приложение на машину с одним сетевым интерфейсом.

3. Для того, чтобы настроить защищенное приложение на работу через TCP-пакеты, необходимо сконфигурировать файл "nethasp.ini" следующим образом:

-------------------- "nethasp.ini" ------------------------------

[NH_COMMON]

NH_TCPIP = Enabled

...

[NH_TCPIP]

NH_SERVER_ADDR = 168.192.1.41

NH_TCPIP_METHOD = TCP

...

----------------------------------------------------------------

Адрес дан для примера, следует указывать реальный IP-адрес машины, где установлен менеджер лицензий. Далее (важно!) следует отключить в менеджере лицензий прослушивание UDP-протокола, оставив только TCP:

--------------------- "nhsrv.ini" -------------------------------

...

[NHS_IP]

NHS_USE_UDP      = disabled

NHS_USE_TCP      = enabled

...

----------------------------------------------------------------

Если этого не сделать, то при получении "битых" UDP-пакетов менеджером ошибка может возникнуть вновь.

Некоторые приложения не работают по TCP, только по UDP (например, 1С 8.х).
Однако можно заставить их использовать TCP неявно. Для этого помимо того, что описано выше, необходимо разрешить в свойствах протокола TCP/IP (Properties - Advanced - WINS) поддержку NetBios over TCP/IP на рабочих станциях, где работает защищенное приложение и на машине, где установлен ключ. Конфигурационные файлы приложения необходимо настроить следующим образом:

-------------------- "nethasp.ini" ------------------------------

[NH_COMMON]

NH_TCPIP = Disabled

NH_NETBIOS = Enabled

...

[NH_NETBIOS]

...

NH_USELANANUM =  ...

----------------------------------------------------------------

Значение параметра Num можно взять из лога менеджера лицензий, там указывается, какие каналы менеджер слушает по NetBios. Если номеров несколько, переберите их по очереди, пока 1С не запустится. При такой настройке 1С в качестве транспорта по-прежнему будет использовать TCP/IP, но работать с ним будет через интерфейс NetBios. Причем при передаче пакетов будет использоваться именно TCP-механизм, в силу особенностей реализации NetBios over TCP/IP.

 

4. При установке в сети двух и более менеджеров лицензий их необходимо настроить для корректной работы. Иначе в сети может возникать коллизия между менеджерами лицензий по именам - при старте они принимают одно и то же имя по умолчанию, и в результате в сети присутствует несколько ресурсов с одинаковыми именами. Стоит отметить, что нередко менеджеры нормально работают и без настройки. Тем не менее, следует иметь в виду, что возможно возникновение проблемы. Кроме того, настройка может понадобиться, например, чтобы разделить клиентов по разным менеджерам лицензий.

Основная идея настройки в данном случае – назначить каждому менеджеру свое имя и сообщить каждой копии 1С эти имена. Задать имя менеджеру можно через файл "nhsrv.ini", он должен находиться в одном каталоге с менеджером лицензий (по умолчанию - C:\Program Files\Aladdin\HASP LM). Если менеджер лицензий установлен как сервис, то данный файл необходимо скопировать в каталог Windows\System32 (для 64-разрядных ОС - Windows\SysWOW64). Имя должно состоять из алфавитно-цифровых символов (можно использовать только латиницу) и не должно быть длиннее 7 символов.

Пример настройки:

------------------- "nhsrv.ini" #1------------------------------

[NHS_SERVER]

NHS_SERVERNAMES = LM1

----------------------------------------------------------------

------------------- "nhsrv.ini" #2------------------------------

[NHS_SERVER]

NHS_SERVERNAMES = LM2

----------------------------------------------------------------

Сообщить защищенному приложению имена менеджеров можно через файл "nethasp.ini", он должен находиться в одном каталоге с защищенным приложением или в каталоге, который указал разработчик (для 1С – каталог Bin\Conf от корня установки 1С):

-------------------- "nethasp.ini" ------------------------------

[NH_COMMON]

NH_TCPIP = Enabled

[NH_TCPIP]

NH_SERVER_ADDR = 168.192.1.41, 168.192.1.11

NH_SERVER_NAME = LM1, LM2

----------------------------------------------------------------

 

Параметры "адрес" и "имя" должны соответствовать друг другу, т.е. на машине с адресом 168.192.1.41 должен быть запущен менеджер с именем LM1. Адреса даны для примера, следует указывать реальные IP- адреса машин, где установлены соответствующие менеджеры лицензий.