Usar un encabezado SOAP para suscribirse a notificaciones de consulta
Los extremos HTTP admiten solicitudes de notificación a través del elemento de encabezado <notificationRequest>. Un elemento <notificationRequest> contiene los atributos que se muestran en la tabla siguiente.
Atributo | Tipo | Descripción |
---|---|---|
notificationId |
text |
Cadena de mensaje de la solicitud. |
deliveryService |
text |
Nombre del servicio Service Broker al que se entregan las notificaciones. |
timeout |
int |
Tiempo de espera opcional para la solicitud. |
Para obtener más información acerca del esquema del elemento <notificationRequest>, vea Estructura de los mensajes de solicitud SOAP.
Para suscribirse a una notificación de consulta utilizando SOAP, incluya el elemento <notificationRequest> en el encabezado SOAP. Por ejemplo, el siguiente encabezado crea una suscripción a notificaciones con un tiempo de espera de 10000. Los mensajes de notificación se entregan al servicio Service Broker WebCacheNotifications.
<SOAP-ENV:Header>
<sqloptions:notificationRequest notificationId="NotificationMessage"
timeout="10000" deliveryService="WebCacheNotifications">
</sqloptions:notificationRequest>
</SOAP-ENV:Header>
Para suscribirse a una notificación de consulta utilizando el elemento <notificationRequest>, es preciso preparar los objetos de Service Broker subyacentes antes de que la aplicación pueda solicitar la notificación. Una vez solicitada la suscripción, la aplicación supervisa si hay un mensaje de notificación en la cola y reacciona de manera apropiada cuando llega el mensaje.
El ejemplo siguiente crea un servicio denominado WebCacheMessages que utiliza la cola WebCacheNotifications y crea una ruta al servicio WebCacheMessages en la base de datos local.
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' ;
En el contrato https://schemas.microsoft.com/SQL/Notifications/PostQueryNotification
se especifica que el iniciador de la conversación puede enviar mensajes del tipo https://schemas.microsoft.com/SQL/Notifications/QueryNotification
.
SQL Server entrega las notificaciones de consulta mediante Service Broker. Un mensaje de notificación de consulta tiene el nombre de tipo de mensaje https://schemas.microsoft.com/SQL/Notifications/QueryNotification
. Service Broker valida los mensajes de este tipo como VALID_XML WITH SCHEMA COLLECTION. La aplicación es responsable de supervisar la cola y procesar los mensajes de notificación. Tenga en cuenta que puede recuperar mensajes de una cola utilizando mensajes SOAP. También puede escribir un procedimiento almacenado o un programa externo para procesar los mensajes de notificación.
Para obtener más información acerca de cómo crear una aplicación para procesar mensajes de notificación de consulta, vea Introduction to Service Broker Programming.
Vea también
Conceptos
Otros recursos
Usar servicios Web XML nativos en SQL Server 2005
Introduction to Service Broker Programming