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 オブジェクトを用意しておく必要があります。サブスクリプションを要求すると、アプリケーションはキューの監視を開始し、通知メッセージがキューに配信されると適切な処理を行います。
次の例では、WebCacheNotifications というキューを使用する WebCacheMessages という名前のサービスを作成し、ローカル データベースに WebCacheMessages サービスへのルートを作成します。
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' ;
コントラクト 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 のプログラミングの概要」を参照してください。
参照
概念
その他の技術情報
SQL Server 2005 におけるネイティブ XML Web サービスの使用
Service Broker のプログラミングの概要