Funktionsweise der SOAP-Sitzungsunterstützung

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

Alle SOAP-Sitzungen erfolgen über Anforderungs-/Antwortmeldungspaare zwischen dem Server und den Clients, die den optionalen sqlSession-Header enthalten, der alle Informationen einschließt, die sich auf SOAP-Sitzungen beziehen. Für sqlSession wird Groß- und Kleinschreibung unterschieden; die Option ist Teil des sqloptions-Namespaces.

Nachdem der Server SOAP-Sitzungen initiiert hat, werden die Sitzungen in der dynamischen Verwaltungssicht sys.dm_exec_sessions gespeichert. Diese Sicht gibt die Sitzungs-IDs und die Startzeit für jede Sitzung zurück. Sie können diese Tabelle anzeigen, indem Sie die folgende Abfrage in SQL Server Management Studio oder mithilfe des osql-Befehlszeilen-Dienstprogramms ausführen:

SELECT * FROM [sys].[dm_exec_sessions]

SOAP-Sitzungen laufen basierend auf einem Timeoutwert der Sitzung aus. Der Standard- oder maximale Sitzungstimeout für den Server wird mithilfe der CREATE ENDPOINT- oder ALTER ENDPOINT-DDL-Anweisung festgelegt. Clients können jedoch einen Timeoutwert anfordern, der kleiner als das Standardintervall ist. Wenn ein Client einen längeren Timeoutwert als den Standardwert des Servers anfordert, setzt der in der Endpunkt-DDL-Anweisung angegebene Timeoutwert die Einstellung des Clients außer Kraft. Angenommen, die folgende CREATE ENDPOINT-Anweisung wurde zum Einrichten eines Endpunkts mit Sitzungsunterstützung verwendet:

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

Wenn ein SOAP-Client anschließend einen Timeoutwert für die Sitzung anfordert, der größer als der Maximalwert des Servers ist (z. B. 90), setzt der Maximalwert von 60 des Servers den angeforderten Wert außer Kraft und wird als tatsächliches Timeoutintervall für die Sitzung angewendet. Wenn SESSION_TIMEOUT nicht in der Endpunkt-DDL-Anweisung festgelegt wurde, führt der Server kein Timeout von Sitzungen aus (unendlicher Timeoutwert).

Standardmäßig sind für HTTP-Endpunkte keine Sitzungen aktiviert. Wenn Sie Sitzungen für einen Endpunkt aktivieren möchten, müssen Sie SESSIONS=ENABLED in der Endpunkt-DDL-Anweisung angeben.

Sitzungen sind nur permanent, während die Instanz von SQL Server online ist. Alle Sitzungen werden zurückgesetzt, wenn der Server beendet und dann neu gestartet wird. Das Ändern des Endpunkts kann sich außerdem auf geöffnete oder neue Sitzungen auswirken, die den betreffenden Endpunkt verwenden. Weitere Informationen finden Sie unter Ändern von Endpunkten beim Verwenden von SOAP-Sitzungen.

HinweisHinweis

Alle Anforderungen für die Teilnahme an vorhandenen HTTP SOAP-Sitzungen müssen authentifiziert werden. Weitere Informationen finden Sie unter Endpunktauthentifizierungs-Typen.

Sitzungen können initiiert oder beendet werden, um ihren Status zu ändern, sie verbleiben in der Regel jedoch im Standbymodus, z. B., wenn die Sitzung initiiert wurde und auf dem Server für die Verwendung durch den Client geöffnet ist, oder ein einem "Ruhezustand", z. B., wenn die Sitzung beendet wurde und auf dem Server für die Verwendung durch den Client aktuell nicht verfügbar ist.

HinweisHinweis

WDSL-Anforderungen (Web Services Definition Language) können nicht an SOAP-Sitzungen teilnehmen. Weitere Informationen zu WDSL finden Sie unter Verwenden von WSDL.