Сеансы интернет-сервисов 1С
Зачем переиспользовать сеанс
Каждый вызов HTTP-сервиса, Web-сервиса или OData без переиспользования создаёт новый сеанс информационной базы. При этом выполняется тяжёлый УстановкаПараметровСеанса() и связанная инициализация. На высокой частоте запросов это даёт задержки и нагрузку на кластер.
Переиспользование сеансов позволяет обслужить следующий запрос уже «прогретым» сеансом.
Два режима
Автоматический пул
Настраивается при публикации (параметры вроде poolSize, poolTimeout, sessionMaxAge / ВремяЖизниСеанса).
- Сеансы хранятся в разрезе типа сервиса, имени, пользователя, разделителей, безопасного режима.
- При запросе платформа ищет свободный сеанс с теми же параметрами.
- Если пул заполнен — ожидание до
poolTimeout, затем 406 Not Acceptable. - Свободный сеанс уничтожается по истечении ВремяЖизниСеанса.
Подходит для публичных сервисов с однотипными вызовами и унифицированными правами.
Не подходит, если клиенту нужно гарантированно попасть в тот же сеанс (состояние на сервере) — в пуле может быть несколько сеансов с одинаковым ключом.
Ручное управление — заголовок IBSession
Клиент сам создаёт и завершает сеанс через HTTP-заголовок IBSession:
| Значение | Действие |
|---|---|
start | Создать сеанс; в ответе Set-Cookie: IBsession=<ID> |
| (cookie в следующих запросах) | Использовать существующий сеанс |
finish | Завершить сеанс из cookie |
Без заголовка и cookie сеанс создаётся и уничтожается на каждый вызов.
Подходит для корпоративных интеграций внутри одной организации, когда нужен контроль жизненного цикла.
Практические рекомендации
- Подбирайте poolSize с запасом — при пике иначе часть запросов получит 406.
- Учитывайте разные публикации одной базы — у каждой свой пул.
- Долгие операции в переиспользуемом сеансе блокируют этот сеанс для других запросов с тем же ключом.
- Для stateless API (каждый запрос автономен) пул сеансов даёт выигрыш без логики IBSession на клиенте.
Связанные материалы
Проверка себя
- Что выполняется при каждом «холодном» вызове интернет-сервиса?
- Когда клиент получит HTTP 406?
- В чём разница автоматического пула и IBSession?
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Платформа 1С - архитектура среды исполнения, назначение и место в автоматизации бизнес-процессов. История 1С - развитие платформы, ключевые этапы роста и влияние на цифровизацию бизнеса и госсектора. Экосистема 1С - продукты платформы, инструменты разработки, внедрение и сопровождение корпоративных решений. Архитектура платформы 1С, объекты метаданных, регистры, модули и исполнение прикладного кода. Пошаговое создание учебной конфигурации: справочники, документ, регистры, проведение, подсистемы и роли. Синтаксис и пунктуация 1С - базовые правила записи кода, операторы и структура выражений. Типизация, набор правил определения типа данных значений языка. Управление потоком выполнения в 1С - последовательность операций, ветвления и контроль выполнения сценариев. Функции и процедуры 1С - различия, правила использования и организация переиспользуемой бизнес-логики. Объекты и классы 1С - модель метаданных, экземпляры объектов и работа с прикладными сущностями. Данные — это конкретные записи, созданные пользователями или автоматически системой в рамках определённых объектов. Каждая запись имеет уникальный идентификатор и соответствует описанию в метаданных. Обработка ошибок в 1С - перехват исключений, диагностика сбоев и устойчивые сценарии обработки.Платформа 1С
История 1С
Экосистема 1С
Архитектура и мета-объекты 1С
Конфигурирование — мини-склад
Синтаксис и пунктуация 1С
Переменные и типы данных 1С
Управление потоком выполнения 1С
Функции и процедуры 1С
Объекты и классы 1С
Работа с базами данных 1С
Обработка ошибок 1С