Partager via


Clôture d'une session SOAP

Pour terminer une session, vous devez créer une requête spécifiant l'en-tête sqlSession ainsi que le jeu d'attributs sessionId et terminate. L'attribut sessionId doit identifier une session connue accessible sur le serveur et l'attribut terminate doit correspondre à la la valeur true.

Si aucune session n'existe pour l'ID spécifié, une erreur SOAP est retournée dans l'en-tête sqlSession avec l'attribut terminate.

Si la requête est exécutée dans un autre contexte de sécurité ou à un autre point de terminaison que celui ayant servi à initialiser la session, une erreur SOAP est retournée et la session demeure inchangée.

En cas de terminaison explicite, aucune autre requête n'est acceptée sous cette session. La session est fermée lorsque le dernier lot de la session est exécuté. Il ne s'agit pas nécessairement du même lot pour lequel la clôture de session a été demandée.

Exemples

L'exemple suivant illustre la clôture d'un session SOAP. Pour terminer une session, le client SOAP envoie une requête comme celle ci-dessous spécifiant les valeurs connues et valides du jeu d'attributs sessionId et de l'attribut terminate, qui correspond à true :

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session, and terminate it -->
    <sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

Les requêtes de clôture d'une session peuvent être vides ou contenir un corps de message. Dans ce dernier cas, l'en-tête est traité et fait l'objet d'un accusé de réception en dépit des erreurs survenues lors de l'exécution de la méthode.

Le serveur retourne ensuite une confirmation, comme celle ci-dessous, de la clôture de la session.

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- response to terminating an existing session -->
    <sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

Pour s'assurer que la clôture est effective, un client doit généralement rechercher la réponse de confirmation auprès du serveur. Si le client ne reçoit pas la confirmation dans un délai raisonnable, il peut introduire une nouvelle requête de clôture.

Voir aussi

Référence

Utilisation d'une session SOAP
Exemples d'applications pour l'envoi de demandes de services Web XML natifs
Ajout d'en-têtes SOAP à des applications clientes

Autres ressources

Utilisation de sessions SOAP

Aide et Informations

Assistance sur SQL Server 2005