다음을 통해 공유


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>

<notificationRequest> 요소를 사용하여 쿼리 알림을 구독하려면 응용 프로그램에서 알림을 요청하기 전에 기본 Service Broker 개체를 준비해야 합니다. 구독을 요청하면 응용 프로그램에서 알림 메시지의 큐를 모니터링하고 메시지가 도착하면 적절하게 반응합니다.

아래 예에서는 WebCacheNotifications 큐를 사용하는 WebCacheMessages 서비스를 만든 다음 로컬 데이터베이스에서 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를 사용한 프로그래밍의 장점를 참조하십시오.