При развертывании и эксплуатации многосерверного кластера 1С:Предприятия системные администраторы нередко сталкиваются с нестабильным поведением окна авторизации. В момент запуска информационной базы список выбора пользователей оказывается практически пустым: в нем отображается только один-единственный пользователь (обычно тот, чья учетная запись редактировалась последней), либо список не загружается вовсе. При этом ошибка носит плавающий характер — при повторном запуске список может как появиться, так и снова исчезнуть.
Проанализируем архитектурные причины такого поведения платформы 1С и разберем по шагам надежные способы устранения неполадки.
В кластере, состоящем из нескольких физических или виртуальных серверов (центрального и рабочих узлов), встроенный балансировщик нагрузки динамически распределяет клиентские подключения и сервисы между всеми доступными рабочими процессами rphost. Когда пользователь запускает клиентское приложение 1С, происходит следующее:
rphost выполняет прямое обращение к таблицам базы данных (в частности, к таблице пользователей v8users и служебным параметрам базы) на сервере СУБД (например, MS SQL Server).def.usr в каталоге профиля %AppData%\Roaming\1C\1Cv8\...). В результате в диалоговом окне появляется только последний сохраненный в кэше пользователь, а полный список учетных записей остается недоступен.Именно из-за того, что запросы распределяются балансировщиком случайным образом между сервером с установленным драйвером и серверами без него, ошибка проявляется нестабильно.
Главное и обязательное правило функционирования распределенного кластера 1С — идентичность программного окружения на каждом узле. Разберем порядок действий по синхронизации библиотек подключения к СУБД:
ragent, rmngr, rphost имеют разрядность x64), компоненты доступа к базе данных должны быть строго 64-разрядными.SQL Server Native Client (sqlncli), однако в современных версиях платформы 1С:Предприятие 8.3 рекомендуется устанавливать актуальный Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL).Если по каким-либо причинам на вспомогательных серверах кластера невозможно установить драйверы для прямого соединения с СУБД, настроим распределение сервисов штатными средствами администрирования 1С. Выполним следующие действия в консоли администрирования серверов 1С:
Сервис баз данных и Сервис сеансовых данных установим тип требования «Назначать».Сервис баз данных установим тип требования «Не назначать».После установки необходимых компонентов рекомендуется полностью обнулить временные данные кластера, чтобы исключить использование некорректных кэшированных состояний. Разберем по шагам процедуру сброса:
1C:Enterprise 8.3 Server Agent на всех узлах кластера.C:\Program Files\1cv8\srvinfo\...) найдем и удалим временные папки сеансов snccntx*.Рассмотрим дополнительные архитектурные меры, позволяющие избежать зависимости от динамического списка пользователей: