При работе с программным продуктом «1С:Предприятие 8.3. Сервер МИНИ на 5 подключений» системные администраторы и разработчики часто сталкиваются с загадочным поведением системы защиты. Официально заявлено жесткое ограничение в 5 сеансов, однако на практике возникают ситуации, когда в базу одновременно заходят 7, 8 или даже более пользователей. В этой статье мы подробно проанализируем механизмы лицензирования, разберем технические причины такой «щедрости» сервера и выясним, как именно 1С ведет подсчет активных соединений.
Прежде всего, нам необходимо разграничить понятия «пользователь» и «сеанс». Механизм защиты Мини-сервера ограничивает именно количество активных сеансов в одной информационной базе. Рассмотрим, из чего складывается этот счетчик:
Enterprise (1С:Предприятие).Designer. Однако на некоторых релизах платформы, таких как 8.3.23.2040, наблюдается возможность запуска нескольких Конфигураторов сверх лимита.BackgroundJob потребляет слот подключения, если оно активно. Если в системе одновременно работают 5 человек и запускается регламентное задание (например, обмен данными), шестой пользователь войти не сможет.Проанализируем ситуацию: если сервер «пропускает» 8 человек, это означает, что программный счетчик в какой-то момент перестал корректно инкрементировать (увеличивать) значение занятых слотов или же часть пользователей использует обходные пути лицензирования.
Одной из главных причин «волшебного» расширения лимитов является комбинация типов лицензий. Выясним, как место хранения лицензионного ключа влияет на проверку ограничений Мини-сервером:
Сценарий А: Лицензии раздает сервер. В этом случае сервер 1С сам обращается к менеджеру лицензий, берет свободный слот и отдает его клиенту. Здесь контроль максимально строгий, так как сервер видит каждое выданное разрешение.
Сценарий Б: Лицензии установлены локально (локальный USB-ключ или программная лицензия на ПК). В этой ситуации пользователь запускает 1С, клиентское приложение находит лицензию локально и «приходит» на сервер уже «со своим билетом». Проанализируем поведение системы: Мини-сервер должен проверять общее количество подключений независимо от источника лицензии, но в некоторых релизах платформы (особенно в ветке 8.3.23) наблюдается баг или особенность, при которой пользователи с локальными лицензиями не учитываются в общем лимите 5-ти подключений Мини-сервера.
Система защиты Мини-сервера — это не только проверка ключа, но и работа с файлами регистрации. Разберем по шагам, как сервер понимает, сколько человек уже «внутри»:
За информацию о текущих соединениях отвечает файл 1cv8conn.pfl, который обычно располагается в каталоге данных сервера 1С. Рассмотрим алгоритм его работы:
rphost записывает данные о сеансе в этот файл. Для мониторинга этих процессов удобно использовать WEB приложение для управления сеансами сервера 1С.1C:Enterprise 8.3 Server Agent, недостаточно прав на запись, счетчик может сбоить.Исторически сложилось, что сервер 1С на операционных системах семейства Linux до определенных версий имел «дыру» в защите, позволявшую подключать неограниченное количество пользователей без проверки серверной лицензии. Однако, начиная с релизов 8.3.22.2239 и 8.3.23.1865, эту лазейку закрыли.
Рассмотрим ситуацию на Windows, как в нашем случае. Здесь контроль лицензий осуществляется через взаимодействие процессов rmngr и rphost. В версии 8.3.23.2040 был обновлен механизм работы с менеджером лицензий. Мы можем предположить, что в данной версии существует задержка синхронизации. Если 7-8 пользователей заходят в базу одновременно (в течение короткого промежутка времени), сервер просто не успевает обновить файл 1cv8conn.pfl и заблокировать вход лишним клиентам.
Для понимания того, как именно распределены лицензии в вашем случае, выполните следующие действия в режиме «1С:Предприятие»:
Если вы видите, что у части пользователей указано «Локальный ключ» или «Сетевой ключ», а у части — «Сервер», это подтверждает теорию о смешанном использовании лицензий, которое «сбивает с толку» Мини-сервер.
Если вы столкнулись с тем, что сервер «встает в позу» и внезапно начинает строго соблюдать лимит, выкидывая лишних, или, наоборот, вы хотите добиться предсказуемости, рекомендуется выполнить профилактику серверного кэша:
1. Остановите службу 1C:Enterprise 8.3 Server Agent.
2. Перейдите в каталог кластера (обычно это C:\Program Files\1cv8\srvinfo), изучив предварительно информацию по рабочему каталогу центрального сервера srvinfo.
3. Найдите и временно переместите (для бэкапа) файл 1cv8conn.pfl.
4. Очистите папку snccntx — там хранятся данные сеансов.
5. Запустите службу снова. Для систем на базе Linux рекомендуем использовать автоматизированный рестарт сервера 1С с очисткой сеансовых данных через systemd.
Это заставит сервер начать подсчет пользователей «с чистого листа». Помните, что использование Мини-сервера сверх лимита — это нестабильное состояние. В любой момент при очередной циклической проверке (которая выполняется платформой раз в несколько минут) система может обнаружить нарушение и принудительно завершить лишние сеансы.
Подведем итог нашему анализу. Превышение лимита в Мини-сервере 1С на 5 пользователей чаще всего вызвано:
1cv8conn.pfl.8.3.23.Для стабильной работы более чем 5 пользователей рекомендуется либо переход на полноценную серверную лицензию, либо перевод базы в файловый режим с использованием веб-сервера (IIS или Apache), где механизмы подсчета работают несколько иначе.