共用方式為


使用 SOAP 標頭訂閱查詢通知

HTTP 端點能透過 <notificationRequest> 標頭元素支援通知要求。<notificationRequest> 元素包含下表顯示的屬性。

屬性

類型

描述

notificationId

text

要求的訊息字串。

deliveryService

text

要傳遞通知的 Service Broker 服務名稱。

timeout

int

要求的逾時 (選擇性)。

如需 <notificationRequest> 元素之結構描述的詳細資訊,請參閱<SOAP 要求訊息結構>。

若要使用 SOAP 訂閱查詢通知,請在 SOAP 標頭中併入 <notificationRequest> 元素。例如,以下標頭會建立逾時值為 10000 的通知訂閱。通知訊息會傳遞給 Service Broker 服務 WebCacheNotifications

     <SOAP-ENV:Header>
         <sqloptions:notificationRequest  notificationId="NotificationMessage"
             timeout="10000"   deliveryService="WebCacheNotifications">
         </sqloptions:notificationRequest>
      </SOAP-ENV:Header>

在應用程式要求通知之前,您必須備妥基礎的 Service Broker 物件,才能使用 <notificationRequest> 元素訂閱查詢通知。在您要求訂閱之後,應用程式就會監視通知訊息的佇列,並在訊息送達時採取適當的動作。

以下範例會建立稱為 WebCacheMessages 的服務,此服務會使用佇列 WebCacheNotifications,然後建立本機資料庫中之 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 進行程式設計的優點>。