Поделиться через


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

Правила хроники событий поддерживают данные в таблицах хроники событий. Каждая хроника событий имеет имя, действие и время ожидания действия.

Имя правила

Имя правила хроники событий уникально идентифицирует правило в приложении служб Notification Services. Имя правила используется для создания имен объектов базы данных. Для обеспечения согласованности имя хроники событий должно соответствовать имени таблицы хроники событий.

Действие

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

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

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

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

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

-- Insert New Stock Symbols with Prices
INSERT dbo.StockEventsChron (StockSymbol, StockPrice)
SELECT e.StockSymbol, e.StockPrice
    FROM dbo.StockEvents AS e
    WHERE e.StockSymbol
        NOT IN (SELECT StockSymbol FROM dbo.StockEventsChron);
-- Update Existing Stock Symbols with New Prices
UPDATE dbo.StockEventsChron
    SET StockPrice = e.StockPrice
    FROM dbo.StockEvents AS e 
    JOIN dbo.StockEventsChron AS c
        ON e.StockSymbol = c.StockSymbol
        WHERE e.StockPrice > c.StockPrice;
ms172596.note(ru-ru,SQL.90).gifПримечание.
Если приложение определяется в XML-файле, то необходимо заменить зарезервированные символы XML, например «>», ссылками на сущности. Дополнительные сведения см. в разделе XML Reserved Characters.

Все инструкции в действии входят в одну транзакцию. Они либо все завершаются, либо все откатываются.

Дополнительные сведения о создании запросов на языке Transact-SQL см. в разделе Основные принципы запросов.

Время ожидания действия

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

ms172596.note(ru-ru,SQL.90).gifПримечание.
При сбое правила хроники событий, означающем возникновение ошибки или истечение времени ожидания при поддержке хроники событий, произойдет и сбой соответствующих правил событий подписок, которые должны сработать в течение этого же такта генератора. Запланированные правила не заканчиваются сбоем, поскольку они используют самые последние данные.

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

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

В следующих разделах приведены примеры правил хроники событий.

См. также

Справочник

EventChronicle
EventChronicleRule
EventFieldCollection

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

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

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

Определение классов событий
EventClass Element (ADF)
Определение приложений служб Notification Services
CREATE TABLE (Transact-SQL)
INSERT (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)
DELETE (Transact-SQL)

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

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