При администрировании клиент-серверных информационных баз 1С:Предприятия в консоли кластера серверов или в списке активных пользователей можно обнаружить множество подключений с именем приложения ImplAppID. В нормальной ситуации эти сеансы исчезают почти мгновенно, однако при возникновении сбоев их количество может стремительно расти, достигая десятков и сотен соединений. В результате база данных перестает пускать пользователей, рабочие процессы зависают, а сервер 1С начинает испытывать критическую нехватку системных ресурсов. Разберем детально, для чего платформе нужен этот процесс, почему сеансы зависают и как устранить данную неполадку.
Проанализируем внутреннюю архитектуру платформы. ImplAppID — это системное служебное имя сеанса, создаваемого сервером 1С на этапе предварительной инициализации клиентского подключения. Такой сеанс стартует до того, как завершится процедура аутентификации пользователя информационной базы, но в тот момент, когда серверу уже требуется доступ к служебным метаданным.
В рамках сеанса ImplAppID выполняются следующие задачи:
В штатном режиме жизненный цикл ImplAppID составляет доли секунды. Как только пользователь успешно проходит аутентификацию, сеанс меняет тип приложения на стандартный (например, 1CV8C для тонкого клиента или WebClient). Если сеансы ImplAppID остаются висеть в консоли кластера на минуты и часы, это прямо свидетельствует о сбое на этапе рукопожатия между клиентом и сервером.
Выясним основные источники проблемы, приводящие к накоплению неуправляемых подключений:
.lgf/.lgp) запись события о начале аутентификации блокирует рабочий поток. Сеанс уходит в состояние бесконечного ожидания ответа от файловой подсистемы.rphost.exe не получает уведомления о закрытии сокета.rmngr.exe: падение сервиса кластера (например, нарушение доступа к памяти 0xc0000005 в библиотеке backbas.dll) приводит к потере дескрипторов соединений. Сеансы становятся «сиротами» (orphaned sessions), оставаясь в памяти без возможности штатного завершения.srvinfo во время низкоуровневых файловых операций.Если база данных опубликована на веб-сервере (IIS или Apache), в первую очередь проверим настройки публикации и правила авторизации. Рассмотрим параметры файла конфигурации веб-сервисов default.vrd.
Откроем файл default.vrd, расположенный в каталоге публикации базы, и настроим параметры пула соединений:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/base_name"
ib="Srvr="server1c";Ref="base_name";">
<ws enable="true"
point="ws1"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"/>
</point>
Параметр reuseSessions="autouse" позволяет повторно использовать уже созданные сеансы для веб-сервисов, а sessionMaxAge ограничивает время жизни простаивающих сеансов. В настройках IIS убедимся, что включен только требуемый метод проверки подлинности (например, только анонимная аутентификация или только Windows Authentication), чтобы исключить состояние циклического ожидания ответа от клиента.
Если сеансы ImplAppID зависают наглухо и не завершаются даже при закрытии клиентских окон, разберем процедуру обслуживания журнала регистрации. Поврежденные индексные файлы журнала часто становятся узким местом при аутентификации.
1C:Enterprise Server Agent).srvinfo. Путь по умолчанию: C:\Program Files\1cv8\srvinfo\reg_1541\<Идентификатор_Базы>\1Cv8Log.1Cv8Log в резервную папку..lgd).Чтобы сервер 1С не удерживал бесконечно зависшие системные подключения, настроим параметры тайм-аутов в консоли администрирования кластера серверов 1С:
1200 (20 минут).120 (2 минуты).После применения этих параметров платформа начнет в принудительном порядке закрывать соединения, которые перешли в статус пассивных и не проявляют активности, освобождая лицензии и память рабочих процессов rphost.exe.
Когда менеджер кластера теряет соответствие между контекстами и сеансами, в служебных каталогах накапливаются поврежденные файлы контекстов. Разберем по шагам безопасную очистку кэша кластера:
ragent (Агент сервера 1С:Предприятия).srvinfo\reg_1541.snccntx* (контексты соединений) и удалим их содержимое. Важно: не удаляйте конфигурационный файл 1CV8Clst.lst, чтобы не сбросить список зарегистрированных информационных баз.Если появление ImplAppID сопровождается аварийным завершением процесса rmngr.exe (ошибка 0xc0000005 в backbas.dll), проанализируем происходящее с помощью технологического журнала платформы.
Создадим файл конфигурации logcfg.xml в каталоге C:\Program Files\1cv8\conf\:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1C_Logs\Sessions" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="SESN"/>
</event>
<event>
<eq property="name" value="CONN"/>
</event>
<property name="all"/>
</log>
</config>
События SESN и CONN зафиксируют IP-адрес входящего подключения, имя компьютера и момент обрыва соединения, а событие EXCP перехватит системные ошибки в памяти. Это позволит точно определить, какой конкретно клиентский узел или регламентный скрипт вызывает зависание сеанса ImplAppID. Если сбой происходит из-за бага платформы в библиотеке backbas.dll, потребуется обновить платформу 1С:Предприятие на актуальный стабильный релиз.