Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Повторное использование сеансов интернет-сервисов
Дальше: Ручное управление сеансами

Автоматическое переиспользование сеансов

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

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

При обнаружении входящего запроса к интернет-сервису система анализирует текущий пул сеансов и ищет сеанс с параметрами, в точности соответствующими входящему запросу. Если такой сеанс обнаруживается и он не используется запросом от другого клиента интернет-сервиса, входящий запрос будет обслуживаться найденным сеансом. Если свободного сеанса не найдено – выполняется попытка создать новый сеанс. Если при попытке создания нового сеанса будет превышен размер пула сеансов (poolSize), входящий запрос будет ожидать некоторое время (poolTimeout). Если по истечении таймаута пула свободный сеанс не обнаруживается – интернет-запрос будет завершен с ошибкой 406 «Not Acceptable». Свободный сеанс будет уничтожен системой автоматически после истечения времени жизни свободного сеанса (ВремяЖизниСеанса).

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

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

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

Назад: Повторное использование сеансов интернет-сервисов
Дальше: Ручное управление сеансами