使用 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 進行程式設計的優點>。