Завершение сеанса активных пользователей веб-клиента

Печать (Ctrl+P)
При нештатном завершении клиентского приложения (обрыв связи или закрытие окна браузера) клиентские сеансы  «1С: Предприятие 8″ могут блокироваться и не переходят в спящий режим.  Следует уточнить, что активным пользователем может быть:

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

В параметрах  время засыпания сеанса и время удаления неиспользуемого спящего сеанса  в разделе Администрирование/ Параметры информационной базы можно установить интервал времени, по истечении которого неактивный сеанс переводится в спящий режим и интервал времени, по истечении которого спящий сеанс завершается.  Я предлагаю такие параметры параметры – 300 и 10  соответственно.

 

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

Однако. из-за нештатного  завершения,  сеанс может блокироваться и не  переходить в спящий  режим, и следовательно,  завершиться автоматически не может и нужно их удалить через консоль сервера предприятия

 

Однако в файловом режиме, для снятия заблокированного сеанса веб-клиента не достаточно  перезагружать web-сервер  apache. Это обычно не помогает. Можно попытаться перезагружать  ПК, где запущен браузер, но это тоже иногда не помогает.  Лучше всего помогает запустить конфигуратор  от имен администратора и снова опубликовать ИБ в разделе Администрирование/Публикация на веб- сервере.

Previous Article
Next Article

4 Replies to “Завершение сеанса активных пользователей веб-клиента”

  1. Сергей

    Добрый день

    Недавно добавил в конфигурацию Web-сервис, который по online оплате создает документ ППВходящеее
    Функционал в общем работает, но заметил что иногда остаются зависшие соединения от приложения “Модуль расширения веб-сервиса”

    Подскажите в чем может быть причина и куда смотреть ?

    1С:Предприятие 8.3.15.1778
    “УПП”, редакция 1.2.6.7, существенно доработана
    Обычное приложение, база клиент-серверная

    • master1c8

      Попробуйте найти в Google почему браузер некорректно завершает работу. Я точно могу сказать, что если сеанс работы с браузером некорректно завершен , то это сессия будет висеть в списке активных пользователей – Это аксиома! и поэтому Вам нужно найти причины того, что браузер некорректно завершает работу. Я не думаю, что причина связана с Вашим программным кодом сервиса. Тем более, Вы сами сказали, что программный код работает. Кроме того, в документации по платформе 1С есть материал о том, что не поддерживается в веб-браузерах Google Chrome и Safari . Но я не думаю, что Вы используйте методы и обращения, которые браузеры не поддерживают. Иначе была бы ошибка выполнения

  2. Сергей

    Добрый день
    Благодарю за ваш ответ.
    Хочу уточнить такие нюансы:
    1)зависает именно соединение от модуля расширения, а зависших сеансов специально созданного под эту задачу пользователя WEB-сервис никогда не наблюдал
    2)сам внешний вызов веб-сервиса выполняется не из браузера, а из некой “прокладки” через стандартный вызов средствами soap в php
    3)веб-сервис возвращает назад код исполнения, и ошибок программного плана не бывает

    • master1c8

      Мой ответ относится к HTTP сервисам, когда обращение к сервису выполняется HTTP запросом из браузера. В Вашем примере обращение к web-сервису выполняется из стороннего приложения на php , а не на 1С . Нужно посмотреть тело процедуры обращения к web-сервису. Сеанс завершается не тогда, когда получаешь ответ от сервера, а когда созданное соединение становится неопределенным при выходе процедуры . Это значит, что в качестве параметра не рекомендуется передавать объекты типа WSОпределения или WSПрокси. Их нужно создавать в теле процедуры обращения : Например обращения из 1С:
      Процедура МоеОбращениеКСервису()
      Определение = Новый WSОпределения(“http://192.168.1.1/WEB_Service/ws/request.1cws?wsdl”);
      Прокси = Новый WSПрокси(Определение, “http://192.168.1.1/request”, “DocumentsData”, “DocumentsDataSoap”);
      ДанныеЗаявки = Прокси.GetData(Клиент);
      Прокси = Неопределено; // не обязательно, но данная команда должна завершать сеанс

      // Обработка полученного ответа
      КонецПроцедуры

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.