Установка пределов тактовой задержки

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

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

Тактовый генератор

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

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

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

Пределы тактовой задержки генератора

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

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

Продемонстрированные пределы тактовой задержки

На следующем рисунке генератор перезапущен и отстает относительно реального времени на восемь тактов. Заданный предел тактовой задержки для хроники — 4, а предел правила подписки — 2. После запуска генератор обрабатывает только последние четыре правила хроники событий и два последних правила подписки.

Влияние пределов тактовой задержки

Пример временной шкалы событий и подписок

Генератор обрабатывает правила хроники событий для пакета событий (E9—E12), получаемого в последних четырех тактах (5—8).

Генератор также обрабатывает правила подписок, которые должны обрабатываться за последние два такта (7 и 8). Для любых подписок, которые должны обрабатываться до 7 такта, правила подписок пропускаются, и уведомления не формируются.

Определение значений пределов тактовой задержки

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

Для задания предела на основе времени разделите требуемое время на длительность такта генератора. Если приложение не должно запаздывать более чем на 60 минут относительно реального времени и длительность такта генератора равна пяти минутам, то разделите 60 на пять, и в результате предел тактовой задержки будет равен 12.

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

По умолчанию предел тактовой задержки равен 1440 тактам. Если длительность такта составляет одну минуту, то предел тактовой задержки по умолчанию равен одному дню.

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

  • Если приложение определяется с помощью XML, то задайте предел тактовой задержки для правил хроники событий с помощью ChronicleQuantumLimit Element (ADF).
  • Если приложение определяется программным путем, то задайте предел тактовой задержки для правил хроники событий с помощью свойства ChronicleQuantumLimit (NMO).

Задание предела тактовой задержки для правил подписок

  • Если приложение определяется с помощью XML, то задайте предел тактовой задержки для правил подписок с помощью SubscriptionQuantumLimit Element (ADF).
  • Если приложение определяется программным путем, то задайте предел тактовой задержки для правил подписок с помощью свойства SubscriptionQuantumLimit (NMO).

См. также

Справочник

ChronicleQuantumLimit
SubscriptionQuantumLimit

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

Указание настроек выполнения приложения
Указание порядка обработки событий

Другие ресурсы

ChronicleQuantumLimit Element (ADF)
SubscriptionQuantumLimit Element (ADF)

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

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