다음을 통해 공유


이벤트 규칙 정의

응용 프로그램이 이벤트 기반 구독을 지원할 경우 하나 이상의 이벤트 규칙을 정의해야 합니다.

이벤트 규칙은 이벤트 기반 구독에 대한 알림을 만드는 하나 이상의 Transact-SQL 쿼리로 구성된 명명된 집합입니다. 이벤트 규칙에 따라 이벤트 기록의 데이터가 조작되는 경우도 있습니다. 이벤트 규칙은 이벤트 일괄 처리가 도착한 직후 이벤트 일괄 처리 단위로 처리됩니다.

[!참고] 이벤트 규칙이 발생하는 정확한 시간은 퀀텀 기간 및 응용 프로그램이 이벤트를 처리하는 방법에 따라 다릅니다. 자세한 내용은 생성자 퀀텀 기간 지정이벤트 처리 순서 지정를 참조하십시오.

각 구독 클래스에는 하나 이상의 이벤트 규칙이 포함될 수 있습니다. 그러나 규칙 발생 순서를 지정할 수는 없으며 이벤트 규칙은 어떠한 순서로도 발생될 수 있습니다.

이벤트 규칙 처리

Notification Services는 다음 프로세스에 따라 이벤트 규칙에서 알림을 생성합니다.

  1. 이벤트가 도착합니다.
  2. Notification Services는 이벤트 클래스당 하나의 이벤트 일괄 처리를 만든 후 각 이벤트 일괄 처리를 관련 이벤트 테이블에 추가합니다.
  3. Notification Services는 이벤트 기록 테이블을 유지하는 이벤트 클래스에 대한 기록 규칙을 실행합니다.
    기록 규칙이 실패하면 처리가 중지되고 이벤트 일괄 처리가 실패한 것으로 표시됩니다. 이벤트 규칙은 이벤트 일괄 처리가 성공적으로 수행되어야만 실행됩니다.
  4. 그런 후 Notification Services는 이벤트 데이터를 구독 데이터에 연결하여 알림을 생성하는 이벤트 규칙을 발생시킵니다. 이벤트 규칙은 이벤트 클래스의 현재 이벤트만 보여 주는 뷰와 설정된 구독만 보여 주는 구독 뷰에 대해 작동합니다. 이벤트 규칙에 이벤트 기록 데이터가 사용될 수도 있습니다.
  5. 이벤트 규칙은 알림 테이블에 결과 알림을 추가합니다. 이 데이터는 알림을 빌드 및 배포하는 데 사용됩니다.

알림은 이벤트가 도착하자마자 생성되므로 이벤트 규칙은 임의로 발생하는 이벤트나 시간적 제한을 받는 데이터에 적합합니다. 이벤트 규칙을 사용해야 하는 응용 프로그램의 예로 경매 업데이트 구독 및 최신 뉴스 제공 프로그램을 들 수 있습니다.

이벤트 규칙 정의

이벤트 규칙은 구독 클래스에 속합니다. 구독 클래스를 정의할 때는 하나 이상의 규칙(이벤트 규칙 또는 예약 규칙)을 정의해야 합니다. 이벤트 규칙을 정의하려면 이벤트 규칙 항목을 만듭니다. 그런 후 규칙 이름, 수행할 작업 및 연결된 이벤트 클래스의 이름을 제공합니다. 이벤트 규칙 작업에 대한 제한 시간 값을 제공할 수도 있습니다.

이벤트 규칙을 정의하려면

이벤트 규칙 이름 지정

각 이벤트 규칙은 응용 프로그램 내에서 고유한 이름이 있어야 합니다. 이 이름은 관리를 위해 각 규칙을 식별하는 데 사용됩니다.

이벤트 규칙의 이름을 지정하려면

  • XML을 통해 이벤트 규칙을 정의할 경우에는 RuleName Element for EventRule (ADF)를 사용하여 이벤트 규칙 이름을 정의합니다.
  • 프로그래밍 방식으로 이벤트 규칙을 정의할 경우에는 SubscriptionEventRule 클래스(NMO)에 이벤트 규칙 이름을 정의합니다.
  • 프로그래밍 방식으로 조건 작업이 있는 이벤트 규칙을 정의할 경우에는 SubscriptionConditionEventRule 클래스(NMO)를 사용하여 이벤트 규칙 이름을 정의합니다.

작업 또는 조건 작업 정의

작업은 Notification Services가 규칙을 발생시킬 때마다 실행하는 쿼리입니다. 이벤트 규칙은 다음과 같은 단일 작업 및 보다 복잡한 조건 작업을 포함할 수 있습니다.

  • 작업에는 구독 필드와 이벤트 필드 간 일치 항목을 기반으로 알림을 생성하는 데 사용되는 Transact-SQL 쿼리가 포함됩니다. 구독자는 구독을 만들 때 미리 정의된 쿼리에 대한 매개 변수를 정의합니다. 단순 작업을 정의하는 방법은 작업 정의를 참조하십시오.
  • 조건 작업에도 Transact-SQL 쿼리가 있지만 이 쿼리는 구독자가 해당 구독을 정의할 수 있는 뷰를 정의합니다. 구독자는 미리 정의된 쿼리의 매개 변수를 제공하는 대신 관심 있는 필드를 선택한 후 미리 결정한 연산자 집합을 사용하여 자체 조건을 정의합니다. 조건 작업을 정의하는 방법은 조건 작업 정의를 참조하십시오.

제한 시간 값 지정

작업 제한 시간은 작업 또는 조건 작업의 문이 완료되기까지 허용되는 시간을 지정합니다. 제한 시간 전에 문이 완료되지 않으면 Notification Services는 트랜잭션을 롤백하고 이벤트 규칙을 실패한 것으로 표시한 후 이벤트 로그에 오류를 씁니다.

제한 시간 값을 지정하려면

이벤트 클래스에 규칙 연결

각 이벤트 규칙은 단일 이벤트 클래스에 연결되어야 합니다. Notification Services는 지정된 이벤트 클래스의 이벤트 일괄 처리를 처리한 후에만 이벤트 규칙을 발생시킵니다.

이벤트 클래스에 규칙을 연결하려면

참고 항목

개념

예약 규칙 정의
작업 정의
조건 작업 정의
구독 규칙 정의
이벤트 클래스에 대한 기록 정의

도움말 및 정보

SQL Server 2005 지원 받기