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


Представление NS<ИмяКлассаУведомлений>NotificationDistribution

Комбинирует данные нескольких внутренних таблиц Microsoft SQL Server Notification Services, чтобы предоставить информацию о попытках рассылки уведомлений. Службы Notification Services создают по одному отображению для каждого класса уведомления с использованием следующей нотации: NSИмяКлассаУведомленийNotificationDistribution.

Образец «Stock» из комплекта поставки Notification Services содержит два класса уведомлений: StockNotifications и PortfolioNotifications. Связанные с ними представления называются NSStockNotificationsNotificationDistribution и NSPortfolioNotificationsNotificationDistribution.

Отображения NSИмяКлассаУведомленийNotificationDistribution содержат столбцы, показанные в следующей таблице.

Столбец Тип данных Описание

NotificationId

bigint

Идентификационный номер уведомления.

DeliveryChannelName

nvarchar (255)

Имя канала доставки, используемого для доставки уведомления.

DistributorName

nvarchar(255)

Имя распространителя, используемого для доставки уведомления.

DeliveryRequestTime

datetime

Дата и время передачи данных уведомления из распространителя в протокол доставки.

SentTime

datetime

Время действительной отправки уведомления.

DeliveryStatusDescription

nvarchar(255)

Состояние попытки доставки: попытка не производилась, успешно или неуспешно. Дополнительные сведения см. в разделе «Примечания».

DeliveryStatusInfo

nvarchar(2048)

Сообщение о состоянии уведомления, которое протокол доставки вернул распространителю. Обычно используется для сообщения о причине неудачи. NULL означает, что сообщение о состоянии не было отправлено.

NotificationText

nvarchar(2048)

Текст уведомления.

SubscriberId

nvarchar(255)

Идентификатор подписчика уведомления.

DeviceName

nvarchar(255)

Имя устройства доставки, указанного в подписке.

SubscriberLocale

nvarchar(10)

Языковой стандарт подписчика уведомления.

Поля класса уведомления (1-n)

application-defined

Все столбцы из класса уведомления также отображаются в данном представлении.

LinkNotificationId

bigint

Идентификатор первого уведомления, включенного в сводную доставку. Все последующие уведомления в сводной доставке содержат тот же идентификатор. Значение NULL означает, что уведомление не является последующим уведомлением сводной доставки.

Замечания

Представления NSИмяКлассаУведомленийNotificationDistribution расположены в базе данных приложений.

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

Одно уведомление может занимать несколько строк в представлении NSИмяКлассаУведомленийNotificationDistribution, по одной на каждую попытку доставки. Например если попытка доставки уведомления дважды завершится неудачно, а затем будет выполнена, то уведомление будет занимать три строки представления, пока процесс очистки не удалит эти данные.

Столбцом DeliveryStatusDescription можно воспользоваться для определения состояния доставки уведомления. Следующая таблица содержит описания кодов состояния.

Значение в столбце DeliveryStatusDescription Описание

Доставка не произведена: первая попытка доставки

Распространитель еще не пытался доставить уведомление. Это могло произойти из-за настроек приложения, задолженности по распространению уведомлений, проблемы распространения, такой как отключенный распространитель или по причине большого количества отказов (которые контролируются установкой параметра FailuresBeforeAbort).

Доставка выполнена успешно

Протокол доставки вернул значение, которое указывает на успешную доставку.

Доставка не выполнена

Произошло одно из следующих событий.

  • Неудача в фазе форматирования содержимого.
  • Ошибка при вызове протокола доставки.
  • Ошибка из-за проблем в протоколе доставки.

Чтобы устранить неисправность, следует проверить сообщения об ошибках в журнале приложений Microsoft Windows Event Viewer. Обратите внимание, что несколько ошибок могут быть зарегистрированы в одной записи о неудачной доставке. Следует просмотреть описание каждой ошибки Notification Services.

Разрешения

Данное представление доступно членам серверных ролей sysadmin и db_owner, а также членам роли NSAnalysis служб Notification Services.

Примеры

Запустите следующий запрос в образце «Stock», чтобы определить, завершились ли неудачей какие либо попытки доставить уведомления:

USE StockInstanceStock;
SELECT NotificationId, DeliveryStatusInfo 
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';

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

Чтобы получить из образца «Stock» список уведомлений, доставка которых не удалась один или несколько раз, запустите следующий запрос:

USE StockInstanceStock;
SELECT DISTINCT(NotificationId) 
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';

См. также

Справочник

Представления служб Notification Services

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

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

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

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