vk fb tw rss

Чем сеанс отличается от соединения?

Соединение

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

Предлагаю заполнить белые пятна и подробно разобраться в этом вопросе.

 

Море соединяет страны, которые оно разъединяет

 

Давайте сначала отдельно рассмотрим сеанс и соединение в 1С:Предприятие.

Все нижеследующее актуально для версии платформы 8.2.x и 8.3.x

 

Что такое сеанс 1С?

В руководстве администратора написано следующее:

 

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

 

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

Кстати обратите внимание, что в консоли управления кластером даже нет раздела «Пользователи», под пользователями кластер понимает сеансы, о чем свидетельствует соответствующая иконка у пункта «Сеанс» в виде пользователей.

 

6

 

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

  • экземпляр клиентского приложения «1С:Предприятия»
  • экземпляр веб-приложения, в котором исполняется веб-клиент
  • экземпляр внешнего соединения (полученный из объекта V83.COMConnector)
  • один экземпляр фонового задания
  • одно обращение к Web-сервису

 

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

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

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

 

Эта информация называется сеансовыми данными. У каждого активного пользователя свои сеансовые данные, которые актуальны только на время работы этого пользователя. Как только пользователь вышел из базы (завершил сеанс), его сеансовые данные удаляются.

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

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

 

Что такое соединение 1С?

Из руководства администратора узнаем что:

 

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

 

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

Кстати, сеансовые данные хранятся на сервере, поэтому разрыв соединения сеансу не страшен (если длится меньше 20 минут), ведь соединение это только средство доступа.

 

Жизненный пример: если уборщица сделала свое черное дело и выдернула сетевой кабель, то это вовсе не значит что пользователь получит сообщение об ошибке (если успеть подключить кабель в течении 20 минут).  В этом случае сеансу просто будет назначено новое соединение и сеанс продолжит работу. За исключением возможного легкого подвисания, пользователь даже не узнает что была проблема.

 

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

 

Чем отличаются соединения от сеансов?

Что бы описать основное отличие проще всего прибегнуть к аналогии.

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

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

 

Друзья, давайте не будем теряться на просторах интернета!  Я предлагаю вам получать на e-mail извещения о публикации новых статей и материалов, таким образом вы всегда будете в курсе самых интересных новостей!

 



Лучшие материалы по теме

Расскажите своим друзьям
Вам ничего не стоит, а им будет интересно
Подпишитесь на обновления
Ваш e-mail: * Ваше имя: *


Обсудить Вконтакте


Обсудить в Facebook

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *