При запуске 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией, когда окно запуска сообщает об исчерпании лицензий и показывает детальную строку вида: «свободные лицензии закончились. Занято через менеджер лицензий 70, через сервер 30». Разберем детально, как платформа 1С распределяет клиентские лицензии, почему предположение о разделении на файловые и клиент-серверные (SQL) базы ошибочно, и как оптимизировать инфраструктуру, чтобы исключить дублирование и перерасход лицензий.
Разберем, что именно означает строка о занятых лицензиях. Ошибочно полагать, что лицензии, полученные через сервер — это исключительно клиент-серверные базы, а через менеджер лицензий — только файловые. В реальности эти цифры отражают механизм и источник выдачи лицензий, а не формат хранения данных информационной базы:
HASP LM. В классической схеме при работе на локальном компьютере менеджер лицензий захватывает одну лицензию на рабочее место (хост) независимо от того, сколько информационных баз 1С (файловых или клиент-серверных) открыто на этой машине.Разрешить выдавать лицензии сервером 1С:Предприятия, либо когда клиент не смог самостоятельно обнаружить ключ в сети. Сервер 1С всегда выдает лицензии на каждый сеанс, а не на компьютер. Если один пользователь на своем ПК запустил три клиент-серверные базы, сервер 1С израсходует три клиентские лицензии из доступного ему пула.Проанализируем типичный сценарий перерасхода лицензий в смешанной среде. Если часть пользователей получает лицензии от менеджера лицензий HASP LM, а другая часть — от сервера 1С, либо если один и тот же клиент сначала берет лицензию с ключа для одной базы, а затем сервер выделяет ему дополнительную лицензию для другой базы, возникает нерациональное потребление слотов:
Рассмотрим конкретные шаги, которые позволят навести порядок в распределении лицензий и избежать их дефицита.
Рекомендуется придерживаться правила: лицензии должны централизованно выдаваться либо только клиентами (через менеджер лицензий), либо только сервером 1С. Смешивание режимов в рамках одной локальной сети почти всегда влечет за собой перерасход.
Если требуется запретить серверу 1С тратить лицензии на сеансы и перевести клиентов на прямое получение лицензий от HASP LM:
Разрешить выдавать лицензии сервером 1С:Предприятия и переведем его значение в Нет.В этом случае сервер откажется выдавать лицензию от своего имени, и клиентское приложение будет вынуждено самостоятельно найти аппаратный ключ в сети или использовать локальную лицензию.
Чтобы рабочие станции стабильно и быстро находили менеджер лицензий без широковещательных сбоев в сети, настроим конфигурационный файл nethasp.ini. Файл располагается в каталоге conf платформы (например, C:\Program Files\1cv8\conf\nethasp.ini).
Разберем параметры, которые необходимо задать в секции [NH_TCPIP]:
NH_USE_BROADCAST = Disabled.NH_SERVER_ADDR = 192.168.1.100 (где вместо примера укажем реальный IP-адрес).[NH_COMMON].Выясним причину, по которой сервер занял 30 лицензий. Для этого проведем диагностику через консоль администрирования кластера 1С:
Сеансы.Лицензия (или откроем свойства интересующего сеанса).Чтобы зависшие подключения пользователей не удерживали серверные лицензии часами, настроим параметры политики сеансов в свойствах информационной базы через консоль кластера серверов 1С:
Время засыпания пассивного сеанса — установим интервал неактивности пользователя (в секундах), после которого сеанс считается спящим.Время завершения спящего сеанса — установим время, по истечении которого спящий сеанс принудительно удаляется сервером, возвращая клиентскую лицензию обратно в пул доступных лицензий.Если в компании для части баз или пользователей развернуты программные лицензии, полезно отключить лишний опрос аппаратных ключей. В окне запуска 1С перейдем в раздел Настройка и снимем флаг Использовать аппаратную лицензию (ключ защиты), либо добавим ключ запуска /AppAutoCheckLicense-. Это ускорит старт платформы и предотвратит случайный захват аппаратных слотов с HASP LM теми клиентами, которые должны работать по программным лицензиям.