Поделиться через


Поддержка сеансов SOAP

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

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

После того как сервер инициализирует сеансы SOAP, они будут храниться в динамическом административном представлении sys.dm_exec_sessions. Это представление возвращает идентификаторы сеансов и время их начала. Для просмотра этой таблицы запустите один из следующих запросов или в среде SQL Server Management Studio, либо с помощью программы командной строки osql:

SELECT * FROM [sys].[dm_exec_sessions]

Сеансы SOAP завершаются согласно времени ожидания сеанса. По умолчанию максимальное время ожидания сеанса для сервера задается с помощью DDL-инструкций CREATE ENDPOINT или ALTER ENDPOINT. Однако время ожидания, запрашиваемое клиентами, может быть меньше, чем время по умолчанию. Если клиент запрашивает больший промежуток времени, чем установленный сервером по умолчанию, то интервал, заданный в конечной точке DDL-инструкции, переопределяет время, указанное клиентом. Например, допустим, что с помощью следующего кода CREATE ENDPOINT была задана конечная точка с поддержкой сеансов:

CREATE ENDPOINT   ...SESSIONS=ENABLED   ...SESSION_TIMEOUT = 60

Если после этого клиент SOAP запросил большее время ожидания сеанса, чем максимум сервера (например 90), то максимум сервера (60) переопределит пользовательское значение и будет применяться в качестве действующего интервала. Если параметр SESSION_TIMEOUT не установлен в конечной точке DDL-инструкции, то сервер не будет прерывать сеанс (бесконечная продолжительность).

По умолчанию для конечных точек HTTP сеансы отключены. Чтобы включить сеансы в конечной точке, следует указать в конечной точке DDL параметр SESSIONS=ENABLED.

Сеансы сохраняются, только если экземпляр SQL Server работает в оперативном режиме. При остановке или перезапуске сервера все сеансы сбрасываются. Кроме того, изменение конечной точки может повлиять на открытые или новые сеансы, которые ее используют. Дополнительные сведения см. в разделе Изменение конечных точек при использовании SOAP-сеансов.

ПримечаниеПримечание

Все запросы на присоединение к существующим HTTP-сеансам SOAP должны пройти проверку подлинности. Дополнительные сведения см. в разделе Типы проверки подлинности конечной точки.

Сеансы могут быть инициированы или завершены с целью изменения состояния, но в целом они остаются в состоянии «sleep», как при запуске и открытии сеанса на сервере для использования клиентом, или в состоянии «dormant», как при завершении сеанса, когда он становится недоступным.

ПримечаниеПримечание

Запросы языка определения веб-служб не могут участвовать в сеансах SOAP. Дополнительные сведения о WSDL см. в разделе Использование языка WSDL.