Utilisation d'un en-tête SOAP pour s'abonner à des notifications de requêtes
Les points de terminaison HTTP prennent en charge les demandes de notification par le biais de l'élément d'en-tête <notificationRequest>. Un élément <notificationRequest> contient les attributs indiqués dans le tableau suivant.
Attribut |
Type |
Description |
|---|---|---|
notificationId |
text |
Chaîne de message de la demande. |
deliveryService |
text |
Nom du service Service Broker auquel remettre les notifications. |
timeout |
int |
Délai facultatif de la demande. |
Pour plus d'informations sur le schéma de l'élément <notificationRequest>, consultez Structure des messages de demande SOAP.
Pour vous abonner à une notification de requête à l'aide de SOAP, insérez l'élément <notificationRequest> dans l'en-tête SOAP. Par exemple, l'en-tête suivant crée un abonnement aux notifications avec un délai de 10000. Les messages de notification sont remis au service Service Broker WebCacheNotifications.
<SOAP-ENV:Header>
<sqloptions:notificationRequest notificationId="NotificationMessage"
timeout="10000" deliveryService="WebCacheNotifications">
</sqloptions:notificationRequest>
</SOAP-ENV:Header>
Pour vous abonner à une notification de requête à l'aide de l'élément <notificationRequest>, vous devez préparer les objets Service Broker sous-jacents afin que l'application puisse demander la notification. Une fois que vous avez demandé l'abonnement, l'application surveille la file d'attente et réagit en conséquence dès qu'elle reçoit un message de notification.
L'exemple ci-après crée un service nommé WebCacheMessages qui utilise la file d'attente WebCacheNotifications puis crée un itinéraire vers le service WebCacheMessages dans la base de données locale.
USE AdventureWorks ;
CREATE QUEUE WebSiteCacheMessages ;
CREATE SERVICE WebCacheNotifications
ON QUEUE WebSiteCacheMessages
([https://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]) ;
CREATE ROUTE
WebCacheMessagesRoute
WITH SERVICE_NAME = 'WebCacheNotifications',
ADDRESS = 'LOCAL' ;
Le contrat https://schemas.microsoft.com/SQL/Notifications/PostQueryNotification spécifie que les messages de type https://schemas.microsoft.com/SQL/Notifications/QueryNotification peuvent être envoyés par l'initiateur de la conversation.
SQL Server remet les notifications de requêtes à l'aide de Service Broker. Un message de notification de requête possède le nom de type de message https://schemas.microsoft.com/SQL/Notifications/QueryNotification. Service Broker valide les messages de ce type en tant que VALID_XML WITH SCHEMA COLLECTION. L'application est responsable de la surveillance de la file d'attente et du traitement des messages de notification. Vous pouvez extraire des messages d'une file d'attente qui utilise des messages SOAP. Vous pouvez également écrire une procédure stockée ou un programme externe pour traiter les messages de notification.
Pour plus d'informations sur la création d'une application permettant de traiter les messages de notification de requête, consultez Avantages de la programmation avec Service Broker.
Voir aussi