Использование заголовка SOAP для подписки на уведомления запросов
Конечные точки HTTP поддерживают уведомления запросов через элемент заголовка <notificationRequest>. Элемент <notificationRequest> содержит атрибуты, приведенные в следующей таблице.
Атрибут |
Тип |
Описание |
---|---|---|
notificationId |
text |
Строка сообщения для запроса. |
deliveryService |
text |
Имя компонента Service Broker, которому доставляются уведомления. |
timeout |
int |
Необязательный лимит время ожидания для запроса. |
Дополнительные сведения о схеме для элемента <notificationRequest> см. в разделе Структура сообщения SOAP-запроса.
Для подписки на уведомление запроса с использованием SOAP включите элемент <notificationRequest> в заголовок SOAP. Например, следующий заголовок создает подписку на уведомления с лимитом времени ожидания 10000. Сообщения уведомления доставляются в службу WebCacheNotifications компонента Service Broker.
<SOAP-ENV:Header>
<sqloptions:notificationRequest notificationId="NotificationMessage"
timeout="10000" deliveryService="WebCacheNotifications">
</sqloptions:notificationRequest>
</SOAP-ENV:Header>
Для подписки на уведомление запроса с использованием элемента <notificationRequest> требуется подготовить базовые объекты компонента Service Broker, прежде чем приложение сможет запросить уведомление. Как только сделан запрос на подписку, приложение начинает отслеживать очередь на предмет сообщения уведомления, и при появлении такого сообщения соответствующим образом реагирует на него.
В следующем примере создается служба с именем WebCacheMessages, которая использует очередь WebCacheNotifications, а затем строит маршрут к службе WebCacheMessages в локальной базе данных.
USE AdventureWorks2008R2 ;
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' ;
Контракт https://schemas.microsoft.com/SQL/Notifications/PostQueryNotification указывает, что сообщения типа https://schemas.microsoft.com/SQL/Notifications/QueryNotification могут посылаться инициатором диалога.
SQL Server доставляет уведомления о запросах при помощи компонента Service Broker. Сообщение уведомления о запросе имеет имя типа сообщения https://schemas.microsoft.com/SQL/Notifications/QueryNotification. Компонент Service Broker проверяет сообщения этого типа как VALID_XML WITH SCHEMA COLLECTION. Приложение отвечает за отслеживание очереди и обработку сообщений уведомления. Обратите внимание на то, что сообщения из очереди можно получить с помощью сообщений SOAP. Можно также подготовить хранимую процедуру или внешнюю программу для обработки сообщений уведомления.
Дополнительные сведения о создании приложения, обрабатывающего сообщения уведомлений о запросах, см. в разделе Преимущества программирования с компонентом Service Broker.
См. также