1с текущему соединению с информационной базой не назначен сеанс

Обновлено: 07.07.2024

В чем отличия между сеансом и соединением? Этот, на первый взгляд, простой вопрос на экзамене 1С:Эксперт многих ставит в тупик. Несмотря на немалый опыт программирования, сформулировать четкий и правильный ответ сможет далеко не каждый специалист.

В данной статье проведем детальный разбор этого вопроса. Для начала рассмотрим по отдельности понятия сеанс и соединение в 1С:Предприятие. Отметим, что информация актуальна для версий платформы 8.2.x и 8.3.x.

Сеанс 1С

Обратимся к руководству администратора. В нем понятие сеанса определено следующим образом:

Сеанс определяет активного пользователя информационной базы и поток управления этого пользователя.

Можно сказать, что кластер серверов не видит пользователей, вместо них он видит сеансы и сеансовые данные. В консоли управления кластером в принципе отсутствует раздел «Пользователи», под пользователями кластер понимает сеансы.

Это подтверждает визуальное представление пункта «Сеансы» – иконка отображается в виде пользователей.

Следует уточнить, что под активным пользователем не обязательно понимается клиентское соединение, это также может быть:

Сеансовые данные

Рассмотрим понятие сеансовые данные. Сеанс содержит в себе некоторую информацию, такую как:

  • наименование информационной базы
  • номер сеанса
  • имя аутентифицированного пользователя информационной базы
  • язык интерфейса
  • значения параметров сеанса
  • временные хранилища
  • статистику работы сеанса
  • информацию форм управляемого приложения
  • некоторые внутренние данные платформы

Такая информация называется сеансовыми данными. Причем для каждого активного пользователя сеансовые данные свои, и актуальны они только на время его работы. Если пользователь покидает базу (завершил сеанс) – его сеансовые данные удаляются.

Данные сеансов хранятся на кластере серверов, за это отвечает менеджер кластера, именно для этого существует сервис сеансовых данных. Чтобы ускорить работу, данные сеансов кешируются в рабочих процессах и в толстых клиентах.

При перезапуске кластера серверов данные сеансов будут сохранены. В том случае если активный пользователь не выполнил ни одного обращения к кластеру в течение 20-ти минут и сеанс не назначен соединению, то сеанс удаляется вместе с его данными.

Для поддержания сеанса тонкий клиент и веб-клиент обеспечивают обращение к кластеру не реже 1 раза в 10 минут.

Соединение 1С

Теперь разберемся с понятием соединение. Вновь обратимся к руководству администратора:

Соединение является средством доступа сеансов к кластеру серверов «1С:Предприятие», содержит ограниченное множество данных соединения, не отождествляется с активным пользователем.

Другими словами, с помощью соединения сеанс получает доступ к кластеру. При этом количество соединений ограничено, и как только таковое становится не нужным сеансу, оно возвращается в пул соединений.

В случае если сеанс не обращается к кластеру, то есть пользователь бездействует, ему не будет назначено соединение. Таким образом, сеанс может существовать без соединения.

Нужно отметить, что сеансовые данные хранятся на сервере, поэтому если разрыв соединения длится менее 20 минут, то на сеансе это не отразится, ведь соединение – всего лишь средство доступа.

Также соединения используются для взаимодействия процессов кластера, то есть рабочие процессы (rphost) общаются с менеджером кластера (процесс rmngr) при помощи соединений, а не с помощью сеансов.

Отличия соединения от сеансов

Для того чтобы описать основное отличие данных понятий, приведем аналогию.

Допустим, что сеанс – это пассажир, а соединение – такси. Когда пассажиру необходимо добраться домой (сеансу нужно подключится к серверу), он вызывает такси (сеансу назначается соединение из пула соединений).

Если, добравшись домой, пассажир захочет снова поехать на работу, а такси уже уехало (после подключения случился разрыв соединения), то пассажир вызывает новое такси и едет по своим делам (сеансу назначается новое соединение).

В данной аналогии наглядно представлено, что сеанс и соединение далеко не одно и тоже, и сеанс может довольно легко перенести разрыв соединения.

PDF-версия статьи для участников группы ВКонтакте

Станьте экспертом по оптимизации 1С, изучив наш курс
«Ускорение и оптимизация систем на 1С:Предприятие 8.3 (2016). Подготовка на 1С:Эксперт по технологическим вопросам»

35 учебных часов, подготовка к 1С:Эксперт, правильная настройка серверной части, оптимизация кода, мониторинг загруженности оборудования и прочие взрослые вещи.

Комментарии / обсуждение (11):

1. При удалении соединения сеанс остается, ему назначается новое соединение.
2. Как я и описал, это так же средство общения между процессами. Не понятно зачем устанавливать соединения между несколькими источниками. У вас есть только 2 процессы которые в момент времени могут между собой общаться.
3. Наверняка это знают только разработчики платформы, в документации такие тонкости не описаны.

1. Теоретически это так и должно быть. Но практика показывает, что если удалить соединение, тогда сеанс тоже удаляется, при этом нового соединения ему автоматически не назначается. Кстати говоря, я ещё раз пересмотрел раздел продвинутого курса Евгения Гилёва, в котором он более кратко описывал работу в клиент-серверном режиме работы платформы, и он тоже показал и заострил внимание на том, если удалить соединение, тогда сеанс тоже удаляется. Но вот почему так происходит, тоже не объяснил. ((

5. А ещё Вы упомянули про некий ПУЛ СОЕДИНЕНИЙ. Что когда соединение больше не нужно, оно возвращается в пул соединений. Получается, что количество соединений ограничено, и находятся все они в этом пуле, и получается, что сначала соединение может быть назначено одному сеансу, затем по ненужности вернуться в пул, а через некоторое время назначиться другому сеансу?

1. Я говорю не про теорию, у меня на практике удаление соединения не приводит к удалению сеанса. Сеансу просто назначается другое соединение.
2. Причем тут 3 объекта. rphost общается с rmngr через соединение, эти соединения мы не видим в консоли.
3-4. Нельзя объединять сеанс и соединение, как минимум потому, что у соединения нет сеансовых данных. Как реализовано соединение в платформе на физическом уровне я не знаю, я не разработчик платформы, да если честно мне это все равно. На настройку кластера и оптимизацию это знание никак не повлияет. Если разработчики сделали 2 сущности, а не одну значит на то были причины, и мы можем либо тратить свое время на догадки почему они сделали именно так, либо просто принять это как есть и разобраться в том как это сейчас работает.
5. Да, все верно.

ОГО, ЧУДЕСА, в тонком клиенте и правда нету удаления сеанса, и назначается новое соединение сеансу.

У нас то просто УПП 1.3. Я все эксперименты из вашего курса и не только как правило делал на ней. А там основной режим работы: толстый клиент, обычное приложение. В обычном приложении почему-то при малейшем обрыве сети, соединение рвётся, сеанс удаляется. Даже если не надолго из сервера вытащить сетевой провод.

Да, толстый клиент работает так. Я и забыл уже что кто-то на толстом клиенте работает :)

Сервис 1С:ИТС Информационная система

Используя две вышеуказанные статьи на сайтах можно выполнить настройку за 1 час.

169 строка файла имела содержимое: LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.9.2033/bin/wsap24.dll"

1С 8 ошибка при настройке http-сервиса не запускается Apache после публикации

Позже, благодаря поиску решения проблемы, было выявлено, что установленная версия Apache и 1С были различной разрадяности - x64 и x32 соответственно. Удаление и установка Apache 2.4 x32 разрядности устранило проблему. Теперь компонента wsap24.dll без проблем была подгружена веб-сервером и служба Apache без проблем была запущена.

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

1С 8 Apache настройка http-сервиса ошибка ошибка descr: Текущему соединению с информационной базой не назначен сеанс, data

1С 8 Апач публикация на веб-сервере ошибка ошибка descr: Текущему соединению с информационной базой не назначен сеанс, data

1С 8 каталог публикации базы на веб-сервере, содержащий файл default.vrd

1С 8 Апач публикация базы на веб-сервере ошибка "descr":"Текущему соединению с информационной базой не назначен сеанс","data"

1С 8 Apache настройка http-сервиса и публикация базы на веб-сервере проблемы и ошибки при публикации

Соединения кластера серверов 1С:Предприятия 8.1

Этот раздел содержит пояснения к списку соединений кластера серверов 1С:Предприятия, отображаемому в утилите администрирования клиент-серверного варианта работы. Подробная информация о работе утилиты администрирования клиент-серверного варианта работы содержится в главе "Утилита администрирования кластера серверов" книги "1С:Предприятие 8.1 Клиент-сервер".

Краткий и подробный список соединений

Утилита администрирования клиент-серверного варианта работы в различных ветках дерева объектов отображает список соединений кластера серверов в разрезе объекта текущей ветки.

Список соединений, отображаемый в ветке "Соединения" содержит краткий список всех соединений кластера серверов в целом, как это показано на рисунке.


В ветках "Процессы/<Имя_сервера>/Соединения" и "Рабочие серверы/<Имя_сервера>/Процессы/<Имя_сервера>/Соединения" также отображается краткий список соединений выбранного рабочего процесса.

В ветке "Информационные базы/<Информационная_база>/Соединения" отображается полный список соединений выбранной информационной базы.

Полный список соединений содержит максимально подробную информацию о каждом соединении. Для ее получения утилита администрирования кластера серверов устанавливает соединение не только с агентом центрального сервера кластера, но и с каждым из рабочих процессов (процесс rphost), которым принадлежат отображаемые соединения. При этом необходима аутентификация администратора каждой из информационных баз, которой принадлежат отображаемые соединения. Если аутентификация не выполнена, то в списке соединений отображается только краткая информация о соединениях. Соединения утилиты администрирования кластера серверов с рабочими процессами отображаются в списке соединений и могут оказать влияние на работу информационных баз, в частности на возможность перевода информационной базы в режим монопольного доступа.

Источники соединений

Среди свойств соединения имеется свойство "Приложение", которое определяет источник соединения. В зависимости от источника соединения могут использоваться для различных целей и оказывать различное влияние на работу информационных баз. Возможные источники соединений и особенности соединений от каждого из источников приведены в таблице.

"Да" в колонке "ИБ" означает, что соединение устанавливается с определенной информационной базой, требует аутентификации пользователя информационной базы и может оказывать влияние на работу информационной базы, в частности на возможность установки монопольного доступа к информационной базе. Для этих соединений возможно отображение свойств и принудительное удаление.

"Да" в колонке "Процесс" означает, что соединение устанавливается с рабочим процессом в целом и не требует аутентификации пользователя информационной базы. Эти соединения не мешают установке монопольного доступа к информационной базе, не требуют аутентификации пользователя информационной базы и не могут быть принудительно удалены. Для них также не возможно отображение диалога свойств.

Свойства соединений

В любом списке соединений имеется возможность просмотра свойств соединения. Диалог свойств содержит полную информацию о соединении, для получения которой необходимо соединение утилиты администрирования кластера серверов с рабочим процессом, которому принадлежит данное соединение, и аутентификация администратора информационной базы, которой принадлежит данное соединение. Если аутентификация администратора информационной базы не выполнена, то открытие диалога свойств соединения не возможно.


Отображение диалога свойств соединения возможно только для соединений с информационными базами, но не возможно для служебных соединений с кластером.

Соединения утилиты администрирования кластера серверов

  • утилита администрирования кластера серверов будет закрыта;
  • соединение утилиты администрирования кластера серверов с данным центральным сервером будет разорвано. Для этого в локальном меню ветки соответствующего центрального сервера необходимо выполнить пункт "Отсоединить" или "Refresh";
  • соединения утилиты администрирования кластера серверов с информационной базой будут явно разорваны этой утилитой (или другим ее экземпляром).

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

Удаление (разрыв) соединений

Удаление соединений с информационной базой может быть выполнено путем выбора одного или нескольких соединений с информационной базой и выполнения пункта "Delete" локального меню списка соединений.

При удалении соединения консоль посылает на сервер сигнал на разрыв клиентского соединения и удаляет строку соединения из отображаемого списка без дополнительного запроса нового списка соединений. Действия сервера после получения сигнала зависят от состояния клиентского потока. Если клиентский поток находится в клиентском приложении, то соединение разрывается. Если клиентский поток находится на сервере 1С:Предприятия, то отреагировать на сигнал он может только при переходе на новую строку кода на встроенном языке. Если клиентский поток находится в сервере баз данных, то сигнал передается серверу баз данных. Сервер баз данных также не всегда может прервать выполнение запроса. Если передача сигнала на разрыв соединения не приводит к фактическому разрыву соединения, то при обновлении списка соединений данное соединение появится снова.

Читайте также: