Share via


Prise en charge des travaux par les sessions SOAP

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

L'ensemble des sessions SOAP donnent lieu à un échange de paires de messages (demande/réponse) entre le serveur et les clients. Ces messages peuvent inclure un en-tête sqlSession qui contient toutes les informations relatives aux sessions SOAP. sqlSession respecte la casse et fait partie de l'espace de noms sqloptions.

Une fois initiées par le serveur, les sessions SOAP sont stockées dans la vue de gestion dynamique sys.dm_exec_sessions. Cette vue retourne l'ID de chaque session, ainsi que leur heure de début. Vous pouvez afficher cette table en exécutant la requête suivante dans SQL Server Management Studio ou via l'utilitaire de ligne de commande osql :

SELECT * FROM [sys].[dm_exec_sessions]

Le délai d'expiration des sessions SOAP dépend du délai d'attente de session défini. La valeur par défaut, c'est-à-dire le délai d'attente maximal de session du serveur, est définie à l'aide des instructions DDL CREATE ENDPOINT ou ALTER ENDPOINT. Toutefois, les clients peuvent demander une valeur de délai d'attente inférieure à l'intervalle par défaut. Si un client demande un délai d'attente plus long que celui défini par défaut sur le serveur, le délai d'attente spécifié dans l'instruction DDL de point de terminaison remplace la préférence du client. Par exemple, supposons que l'instruction CREATE ENDPOINT suivante ait été utilisée pour créer un point de terminaison avec prise en charge des sessions :

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

Si, par la suite, un client SOAP demande un délai d'attente de session plus long que le délai maximal du serveur, par exemple 90 au lieu du délai maximal du serveur de 60, cette dernière valeur prévaut et est appliquée comme délai d'attente de session. Si l'option SESSION_TIMEOUT n'est pas définie dans l'instruction DDL de point de terminaison, le serveur n'impose aucun délai d'expiration aux sessions (infini).

Par défaut, les sessions ne sont pas activées pour les points de terminaison HTTP. Pour activer des sessions sur un point de terminaison, vous devez spécifier SESSIONS=ENABLED dans l'instruction DDL de point de terminaison.

Les sessions ne durent que le temps où l'instance de SQL Server est en ligne. Toutes les sessions sont réinitialisées lorsque le serveur est arrêté puis redémarré. De plus, la modification du point de terminaison peut affecter les sessions ouvertes ou nouvelles qui utilisent ce point de terminaison. Pour plus d'informations, consultez Modification des points de terminaison dans des sessions SOAP.

Notes

Toutes les demandes visant à joindre des sessions SOAP HTTP existantes doivent être authentifiées. Pour plus d'informations, consultez Types d'authentification du point de terminaison.

Les sessions peuvent être ouvertes ou fermées afin de modifier leur état, mais elles restent généralement soit en état de « veille » (tel est le cas si la session a été ouverte sur le serveur pour une utilisation cliente), soit en état « dormant » (p.ex., la session a été fermée et n'est plus disponible sur le serveur pour une utilisation cliente).

Notes

Les demandes WSDL (Web Services Definition Language) ne peuvent pas participer aux sessions SOAP. Pour plus d'informations sur WSDL, consultez Utilisation de WSDL.