다음을 통해 공유


5단원: 구독 클래스 추가

이 단원에서는 ADF(응용 프로그램 정의 파일)에 구독 클래스를 추가한 다음 Notification Services 인스턴스를 업데이트하여 변경 내용을 응용 프로그램 데이터베이스에 적용합니다. 그런 후 응용 프로그램 데이터베이스의 변경 내용을 검토할 수 있습니다.

구독 클래스 소개

구독 클래스를 정의할 때 이벤트와 구독 데이터에서 알림을 생성하는 구독 데이터와 쿼리의 저장소를 정의합니다.

구독 데이터의 저장소를 정의할 때 수집한 구독 데이터의 필드를 정의합니다. 예를 들어 구독 데이터에 특정 도시가 포함될 경우 City 구독 필드를 추가할 수 있습니다. 그런 다음 구독자가 도시를 지정한 구독을 만들 수 있도록 인터페이스를 제공합니다.

응용 프로그램에서 여러 구독자 로캘과 전자 메일, 휴대폰 등의 여러 장치를 지원할 경우 구독 필드에 DeviceNameSubscriberLocale 필드를 추가할 수도 있습니다. 이러한 필드를 사용하면 여러 장치, 시간대 및 언어에 대한 알림을 사용자 지정할 수 있습니다.

Notification Services는 각 구독 클래스의 기본 테이블에 SubscriberId 필드를 추가합니다.

구독 필드뿐 아니라 알림 생성 규칙도 정의해야 합니다. 이 규칙은 이벤트 및 구독 데이터와 일치하고 알림 클래스 뷰에 결과를 삽입하는 Transact-SQL 쿼리이며 이벤트 기반 규칙이거나 예약 규칙일 수 있습니다. 이벤트 기반 규칙은 이벤트가 발생할 때마다 실행되고 예약 규칙은 구독에 제공된 일정에 따라 개별 구독을 평가합니다.

구독 클래스는 구독 데이터의 인덱스, 보충 테이블 등의 기타 정보를 정의할 수 있습니다. 구독 클래스에 대한 자세한 내용은 구독 클래스 정의를 참조하십시오.

응용 프로그램을 만들 때 Notification Services는 구독 클래스 정의를 사용하여 구독 클래스에 대한 테이블, 뷰, 인덱스 및 저장 프로시저를 만듭니다.

WeatherCity 구독 클래스

이 응용 프로그램의 경우 ADF에 WeatherCity 구독 클래스를 추가합니다. 이 구독 클래스에는 DeviceName, SubscriberLocaleCity라는 3개의 필드가 있습니다. City 필드는 이 응용 프로그램에서 중요한 필드입니다. 구독자가 날씨 구독을 만들 때 도시 이름을 지정해야 합니다.

DeviceNameSubscriberLocale 구독 필드는 여러 장치 및 로캘에 대한 지원을 추가할 수 있도록 정의됩니다.

이 구독 클래스는 알림 생성 쿼리도 정의합니다. 이 쿼리를 쓰려면 사용 가능한 이벤트 데이터, 생성할 알림 데이터 및 사용 가능한 구독 데이터를 알아야 합니다.

  • 3단원에 나온 대로 WeatherData 이벤트 클래스에는 City, Date, Low, HighForecast라는 5개의 필드가 있습니다.
  • 구독 클래스에는 City 필드가 있습니다.
  • 4단원에 나온 대로 WeatherAlerts 알림 클래스에는 이벤트 클래스와 마찬가지로 City, Date, Low, HighForecast 필드가 있습니다.
  • 또한 기본 알림 테이블에는 SubscriberId, DeviceNameSubscriberLocale 필드가 있습니다.

이러한 필드는 뷰의 열이 됩니다. 이러한 필드를 알면 다음과 같이 이벤트 및 구독 뷰를 조인하고 알림 뷰에 데이터를 삽입할 수 있습니다.

INSERT INTO WeatherAlerts(SubscriberId, 
   DeviceName, SubscriberLocale, City, Date, Low, High, 
   Forecast)
SELECT s.SubscriberId, s.DeviceName, s.SubscriberLocale,
    e.City, e.Date, e.Low, e.High, e.Forecast
FROM WeatherData e, WeatherCity s
WHERE e.City = s.City;

Notification Services에서 이 쿼리를 실행할 때 이벤트와 구독 City 값 사이의 일치하는 항목의 경우 이벤트 클래스 뷰의 현재 이벤트 집합을 구독 클래스 뷰의 구독과 조인합니다. 그런 다음 Notification Services에서는 결과를 알림 뷰에 삽입합니다.

ADF에 구독 클래스 추가

이 섹션의 XML은 구독 클래스를 정의합니다. XML을 검토한 후 지침에 따라 XML을 ADF로 복사합니다.

ADF에 구독 클래스를 추가하려면

  1. 코드 복사를 클릭하여 XML을 Windows 클립보드로 복사합니다.

    <!-- Subscription Classes -->
    <SubscriptionClasses>
      <SubscriptionClass>
        <SubscriptionClassName>WeatherCity</SubscriptionClassName>
        <Schema>
          <Field>
            <FieldName>DeviceName</FieldName>
            <FieldType>nvarchar(255)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
          <Field>
            <FieldName>SubscriberLocale</FieldName>
            <FieldType>nvarchar(10)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
          <Field>
            <FieldName>City</FieldName>
            <FieldType>nvarchar(40)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
        </Schema>
        <EventRules>
          <EventRule>
            <RuleName>WeatherEventRule</RuleName>
            <EventClassName>WeatherData</EventClassName>
            <Action>
              INSERT INTO WeatherAlerts(SubscriberId, 
                 DeviceName, SubscriberLocale, City, Date, Low, High, 
                 Forecast)
              SELECT s.SubscriberId, s.DeviceName, s.SubscriberLocale,
                  e.City, e.Date, e.Low, e.High, e.Forecast
              FROM WeatherData e, WeatherCity s
              WHERE e.City = s.City;
            </Action>
          </EventRule>
        </EventRules>
      </SubscriptionClass>
    </SubscriptionClasses>
    
  2. 솔루션 탐색기에서 WeatherADF.xml을 엽니다.

  3. 다음 XML을 방금 복사한 코드로 바꿉니다.

    <!-- Subscription Classes -->

    <SubscriptionClasses></SubscriptionClasses>

  4. 파일 메뉴에서 WeatherADF.xml 저장을 선택합니다.

Notification Services 인스턴스 업데이트

ADF를 수정한 후 Notification Services 인스턴스를 업데이트하여 응용 프로그램 데이터베이스에 구독 클래스 개체를 추가합니다.

Notification Services 인스턴스를 업데이트하려면

  1. 개체 탐색기에서 Notification Services를 확장합니다.

  2. Tutorial을 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 업데이트를 선택합니다.

  3. 인스턴스 업데이트 대화 상자에서 찾아보기를 클릭하고 TutorialICF.xml 파일을 찾은 다음 열기를 클릭합니다.

  4. 매개 변수 창에서 매개 변수 값을 검토합니다.

  5. 확인을 클릭합니다.

  6. Notification Services - 업데이트 요약 대화 상자를 검토한 다음 업데이트를 클릭합니다.

  7. 업데이트 작업이 완료되면 닫기를 클릭합니다.

응용 프로그램 데이터베이스의 변경 내용 검토

인스턴스를 업데이트할 때 Notification Services는 TutorialWeather 응용 프로그램 데이터베이스에서 구독 클래스의 테이블, 뷰 및 저장 프로시저를 추가합니다.

  • dbo.WeatherCityView 뷰는 연결된 구독 클래스의 구독 클래스 뷰를 제공합니다.
  • dbo.WeatherCity 뷰에는 응용 프로그램에서 평가하는 현재 구독 집합이 포함됩니다. 알림 생성 쿼리에서 이 뷰의 구독 데이터를 선택합니다.
  • dbo.NSWeatherCitySubscriptions 테이블은 구독 클래스의 구독 데이터가 들어 있는 기본 테이블입니다.
    ms166580.Caution(ko-kr,SQL.90).gif주의:
    구독 테이블과 보기의 데이터를 직접 수정하지 말고 구독 관리 개체를 사용하십시오. 자세한 내용은 구독 관리 인터페이스 개발을 참조하십시오.

개체 탐색기를 사용하여 TutorialWeather 데이터베이스에서 이러한 개체를 검토할 수 있습니다. 내부 전용 테이블과 뷰에는 내부 추적과 데이터 조회에 사용되는 데이터가 있습니다.

새 개체를 확인하기 위해 개체 탐색기를 새로 고쳐야 할 수 있습니다.

다음 단원

6단원: 이벤트 공급자 추가

참고 항목

개념

Notification Services 자습서

관련 자료

Notification Services 뷰
Notification Services 테이블
구독 클래스 정의
알림 솔루션 빌드
SQL Server Notification Services 소개

도움말 및 정보

SQL Server 2005 지원 받기