Определение запланированных правил

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

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

ms171328.note(ru-ru,SQL.90).gifПримечание.
Точное время срабатывания запланированных правил зависит от длительности такта.

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

Обработка запланированных правил

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

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

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

Определение запланированного правила

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

Определение запланированного правила

  • При определении приложения посредством XML определите запланированные правила, используя ScheduledRule Element (ADF).
  • При определении приложения программным путем создайте отдельные объекты запланированных правил, используя класс SubscriptionScheduledRule, а затем добавьте их к классу подписки, используя свойство SubscriptionScheduledRules.
  • При определении запланированных правил с условными действиями программным путем создайте отдельные объекты запланированных правил, используя класс SubscriptionConditionScheduledRule, а затем добавьте их к классу подписки, используя свойство SubscriptionConditionScheduledRules.

Присвоение имени запланированному правилу

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

Создание имени запланированного правила

  • При определении запланированного правила посредством XML определите имя запланированного правила, используя RuleName Element for ScheduledRule (ADF).
  • При определении запланированного правила программным путем определите имя запланированного правила в классе SubscriptionScheduledRule (NMO).
  • При определении запланированного правила с условным действием программным путем определите имя запланированного правила, используя класс SubscriptionConditionScheduledRule (NMO).

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

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

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

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

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

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

См. также

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

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

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

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