Using a SOAP Header to Subscribe to Query Notifications

HTTP endpoints support notification requests through the <notificationRequest> header element. A <notificationRequest> element contains the attributes shown in the following table.






The message string for the request.



The name of the Service Broker service to deliver notifications to.



An optional time-out for the request.

For more information on the schema for the <notificationRequest> element, see SOAP Request Message Structure.

To subscribe to a query notification using SOAP, include the <notificationRequest> element in the SOAP header. For example, the following header creates a notification subscription with a timeout of 10000. Notification messages are delivered to the Service Broker service WebCacheNotifications.

         <sqloptions:notificationRequest  notificationId="NotificationMessage"
             timeout="10000"   deliveryService="WebCacheNotifications">

Subscribing to a query notification using the <notificationRequest> element requires that you prepare the underlying Service Broker objects before your application can request the notification. Once you request the subscription, your application monitors the queue for a notification message and reacts appropriately when the message arrives.

The example below creates a service named WebCacheMessages that uses the queue WebCacheNotifications and then creates a route to the WebCacheMessages service in the local database.

USE AdventureWorks2008R2 ;

CREATE QUEUE WebSiteCacheMessages ;

CREATE SERVICE WebCacheNotifications
  ON QUEUE WebSiteCacheMessages
  ([]) ;

  WITH SERVICE_NAME = 'WebCacheNotifications',
       ADDRESS = 'LOCAL' ;

The contract specifies that messages of type may be sent by the initiator of the conversation.

SQL Server delivers query notifications using Service Broker. A query notification message has the message type name Service Broker validates messages of this type as VALID_XML WITH SCHEMA COLLECTION. The application is responsible for monitoring the queue and processing the notification messages. Notice that you can retrieve messages from a queue using SOAP messages. You can also write a stored procedure or an external program to process the notification messages.

For more information on creating an application to process query notification messages, see Benefits of Programming with Service Broker.

Community Additions