Занятие 4. Добавление класса уведомлений
На этом занятии в файл определения приложения (application definition file, ADF) будет добавлен класс уведомлений, а затем будет обновлен экземпляр служб Notification Services, чтобы применить изменения к базе данных приложения. Затем можно просмотреть изменения, сделанные в базе данных приложения.
Основные сведения о классе уведомлений
Класс уведомлений представляет собой один из типов уведомлений, формируемых приложением служб Notification Services. При определении класса уведомлений необходимо определить следующие ниже данные.
- Поля для данных уведомления, включая их типы данных. Эти поля определяют данные, которые будут отправляться подписчикам.
- Сведения о модуле форматирования данных, который применяется при форматировании уведомлений для класса уведомлений. Можно воспользоваться модулем форматирования данных встроенной расширяемой таблицы стилей языковых преобразований (Extensible Stylesheet Language Transformations, XSLT) или же использовать пользовательский модуль форматирования данных.
- Сведения по использованию протоколов доставки для доставки уведомлений.
При желании можно также задать необязательные настройки, такие как сводная или многоадресная доставка и срок действия уведомления. Дополнительные сведения о классах уведомлений см. в разделе Определение классов уведомлений.
При создании или обновлении приложения определение класса уведомлений используется в службах Notification Services при создании таблиц, представлений, индексов и хранимых процедур для хранения данных уведомлений и управления ими.
При создании представления и таблицы уведомлений в службах Notification Services добавляются следующие поля: SubscriberId, DeviceName и SubscriberLocale. Эти поля требуются службами Notification Services, они рассматриваются на следующих занятиях.
Класс уведомлений WeatherAlerts
В этом приложении в файл ADF будет добавлен класс уведомлений WeatherAlerts. Этот класс уведомлений имеет пять полей уведомлений, XSLT-модуль форматирования данных и протокол доставки файлов.
- К полям уведомлений относятся поля City, Date, Low, High и Forecast. В данном приложении поля класса уведомлений соответствуют полям класса событий, однако это не обязательное требование.
- Когда службы Notification Services распространяют уведомления, сырые данные преобразуются в сообщения с индивидуальным форматом при помощи встроенного XSLT-модуля форматирования данных. Файл XSLT называется WeatherTransform.xslt, его расположение определяется параметром
%_AppPath_%
. Значение этого параметра берется из файла ICF.
Дополнительные сведения о XSLT-модуле форматирования данных см. в разделе Модуль форматирования данных XSLT. - После завершения форматирования службы Notification Services сохраняют уведомления в файле, используя встроенный протокол доставки файлов. Имя файла и его расположение определяются в файле ICF элементом DeliveryChannels.
Определения протоколов могут содержать определения полей для заголовков сообщений, например необходимые для протокола SMTP, а также параметры выполнения протокола, предназначенные для настройки параметров повторных и неудачных попыток и времени ожидания. В протоколе сохранения в файлах эти параметры не используются, однако в большинстве других протоколов поля заголовков востребованы.Примечание. Протокол доставки файлов предназначен в основном для создания прототипов и проверки.
Добавление класса уведомлений XML в файл ADF
XML-код в этом разделе определяет класс уведомлений. Изучите этот XML-код и скопируйте его в файл ADF согласно приведенным инструкциям.
Добавление класса уведомлений XML в файл ADF
Нажмите кнопку Скопировать код, чтобы скопировать XML-код в буфер обмена Windows.
<!-- Notification Classes --> <NotificationClasses> <NotificationClass> <NotificationClassName> WeatherAlerts</NotificationClassName> <Schema> <Fields> <Field> <FieldName>City</FieldName> <FieldType>nvarchar(35)</FieldType> </Field> <Field> <FieldName>Date</FieldName> <FieldType>datetime</FieldType> </Field> <Field> <FieldName>Low</FieldName> <FieldType>float</FieldType> </Field> <Field> <FieldName>High</FieldName> <FieldType>float</FieldType> </Field> <Field> <FieldName>Forecast</FieldName> <FieldType>nvarchar(3500)</FieldType> </Field> </Fields> </Schema> <ContentFormatter> <ClassName>XsltFormatter</ClassName> <Arguments> <Argument> <Name>XsltBaseDirectoryPath</Name> <Value>%_AppPath_%</Value> </Argument> <Argument> <Name>XsltFileName</Name> <Value>WeatherTransform.xslt</Value> </Argument> </Arguments> </ContentFormatter> <Protocols> <Protocol> <ProtocolName>File</ProtocolName> </Protocol> </Protocols> </NotificationClass> </NotificationClasses>
В обозревателе решений откройте файл WeatherADF.xml.
Замените следующий фрагмент только что скопированным XML-кодом.
<!-- Notification Classes -->
<NotificationClasses></NotificationClasses>
В меню Файл выберите команду Сохранить WeatherADF.xml.
Обновление экземпляра служб Notification Services
После изменения файла ADF следует обновить экземпляр служб Notification Services, чтобы добавить объекты класса уведомлений в базу данных приложения.
Обновление экземпляра служб Notification Services
В обозревателе объектов раскройте узел Службы Notification Services.
Щелкните правой кнопкой мыши пункт Учебник, установите указатель на пункт Задачи и выберите команду Обновить.
В диалоговом окне Обновление экземпляра нажмите кнопку Обзор, найдите файл TutorialICF.xml и нажмите кнопку Открыть.
В сетке Параметры просмотрите значения параметров. Используйте те же значения, которые применялись при создании экземпляра.
Нажмите кнопку ОК.
Просмотрите диалоговое окно Службы Notification Services — обновление сводки и нажмите кнопку Обновить.
По завершении обновления нажмите кнопку Закрыть.
Просмотр изменений базы данных
При обновлении экземпляра службы Notification Services добавляют таблицы, представления и хранимые процедуры класса уведомлений в базу данных TutorialWeather.
- Правила создания уведомлений вставят уведомления в представление dbo.WeatherAlerts.
- Представление dbo.NSWeatherAlertsFileNotifications содержит уведомления из класса уведомлений WeatherAlerts, которые были отправлены с использованием протокола доставки файлов. Это представление предназначено только для внутреннего использования.
- Представление dbo.NSWeatherAlertsNotificationDistribution объединяет данные нескольких внутренних таблиц служб Notification Services, предоставляя сведения о попытках распространить уведомления.
- Таблица dbo.NSWeatherAlertsNotifications является базовой, которая содержит данные уведомлений для класса уведомлений. Данные уведомлений остаются в этой таблице, пока не будут удалены в процессе чистки данных. Эта таблица предназначена только для внутреннего использования.
Внимание! Не изменяйте данные непосредственно в представлениях и таблицах уведомлений.
Чтобы проверить эти объекты в базе данных TutorialWeather, можно воспользоваться обозревателем объектов. Таблицы и представления, предназначенные только для внутреннего использования, содержат данные, которые применяются во внутренних операциях, изучать их содержимое нет необходимости.
Чтобы увидеть новые объекты, может возникнуть необходимость обновить обозреватель объектов.
Следующее занятие
Занятие 5: Добавление класса подписки
См. также
Основные понятия
Учебник по службам Notification Services
Другие ресурсы
Определение классов событий
Построение решений на основе служб Notification Services
Введение в службы SQL Server Notification Services