Определение правил событий

Если приложение поддерживает подписки, управляемые событиями, то необходимо определить хотя бы одно правило событий.

Правила событий представляют собой именованный набор из одного или нескольких запросов на языке Transact-SQL, создающих уведомления для подписок, управляемых событиями. Также правила событий могут управлять данными в хрониках событий. Правила событий обрабатываются для каждого пакета событий после его прибытия.

ms171059.note(ru-ru,SQL.90).gifПримечание.
Точная синхронизация запуска правил событий зависит от длительности такта и от того, как приложение обрабатывает события. Дополнительные сведения см. в разделах Указание длительности такта генератора и Указание порядка обработки событий.

В каждом классе подписки может содержаться одно или несколько правил событий. Однако нельзя указать порядок обработки правил. Правила событий могут запускаться в любом порядке.

Обработка правил событий

Службы Notification Services используют следующий процесс для создания уведомлений из правил событий:

  1. Возникновение событий.
  2. Службы Notification Services создают один пакет для класса событий и затем добавляют каждый пакет событий к соответствующей таблице событий.
  3. Службы Notification Services запускают любые правила хроники для класса событий, обслуживающего таблицы хроники событий.
    Если правило хроники выполняется неудачно, то обработка останавливается, и пакет событий отмечается как неудачный. Правила событий не запускаются, так как они зависят от успешной обработки пакета событий.
  4. Службы Notification Services затем запускают правила событий, которые соединяют данные событий с данными подписки для создания уведомлений. Правила событий действуют относительно представления, в котором перечислены только текущие события для класса событий, и представления, содержащего только включенные подписки. Правила событий могут использовать данные хроники событий.
  5. Правила событий добавляют в таблицу уведомлений результирующие уведомления. Эти данные используются для создания и распространения уведомлений.

Так как уведомления создаются сразу после получения событий, то правила событий хорошо использовать для произвольных событий и данных, зависящих от времени. Примерами таких приложений, использующих правила событий, являются подписки обновления данных об аукционах и предупреждения о сенсационных сообщениях.

Определение правила событий

Правило событий является частью класса подписки. При определении класса подписки необходимо определить хотя бы одно правило, являющееся либо запланированным, либо правилом событий. Для определения правила событий создайте элемент правила событий. Затем задайте имя, выполняемое действие и имя связанного класса событий. Можно также предоставить значение времени ожидания для действия правила событий.

Определение правила событий

  • При определении приложения посредством XML определите правила событий с помощью EventRule Element (ADF).
  • При определении правила событий программным путем создайте отдельные объекты SubscriptionEventRule и добавьте их к классу подписки с помощью свойства SubscriptionEventRules.
  • При определении правила событий с условными действиями программным путем создайте отдельные объекты SubscriptionConditionEventRule и добавьте их к классу подписки с помощью свойства SubscriptionConditionEventRules.

Именование правила событий

Каждое правило событий должно иметь уникальное имя в приложении. Это имя используется для определения каждого правила в административных целях.

Определение имени для правила событий

  • При определении правила событий посредством XML определите имя правила событий с помощью RuleName Element for EventRule (ADF).
  • При определении правила событий программным путем определите имя правила событий в классе SubscriptionEventRule (NMO).
  • При определении правила событий с условным действием программным путем определите имя правила событий с помощью класса SubscriptionConditionEventRule (NMO).

Определение действия или условного действия

Действие является запросом, который службы Notification Services выполняют каждый раз при срабатывании правила. Правила событий могут содержать простые действия или более сложные условные действия:

  • Действие содержит запрос на языке Transact-SQL, используемый для создания уведомлений на основе соответствий между полями подписок и полями событий. Когда подписчики создают подписки, они определяют параметры для предварительно определенного запроса. Дополнительные сведения об определении простых действий см. в разделе Определение действий.
  • Условное действие также содержит запрос на языке Transact-SQL, однако этот запрос определяет представление, на основе которого подписчики могут определять свои подписки. Вместо указания параметров для предварительно определенного запроса подписчики выбирают интересующие их поля и указывают свои собственные условия, используя предварительно определенный набор операторов. Дополнительные сведения об определении условных действий см. в разделе Определение условных действий.

Задание значения времени ожидания

Время ожидания действия задает допустимую продолжительность времени для завершения выполнения инструкций действия или условного действия. Если инструкции не выполняются до истечения времени ожидания, то службы Notification Services откатывают транзакцию, отмечают правило событий как выполненное неудачно и записывают ошибку в журнал событий.

Указание значения времени ожидания

Привязка правила к классу событий

Каждое правило событий необходимо связать с отдельным классом событий. Службы Notification Services обрабатывают правило событий только после обработки пакетов событий из определенного класса событий.

Связывание правила с классом событий

См. также

Основные понятия

Определение запланированных правил
Определение действий
Определение условных действий
Определение правил подписок
Определение хроники для класса событий

Справка и поддержка

Получение помощи по SQL Server 2005