NSDiagnosticFailedNotifications (Transact-SQL)

Создает отчет о неудачных уведомлениях для приложения служб Microsoft SQL Server Notification Services. Отчет содержит список неудачных попыток доставки уведомлений. В каждой строке отчета содержатся классы уведомлений и подписки, которые создали уведомление, подписчик, которому было послано уведомление, и сведения о попытке доставки. Данный отчет может быть использован для устранения неполадок доставки уведомлений.

Синтаксис

[ schema_name . ] NSDiagnosticFailedNotifications 
    [ @ApplicationName = ] 'app_name' ,
    [, [@StartDateTime = ] 'start_date_time' ] 
    [, [@EndDateTime = ] 'end_date_time' ] 

Аргументы

  • [ @ApplicationName = ] 'app_name'
    Имя приложения, как оно определено в файле конфигурации. Аргумент app_name имеет тип nvarchar(255) без значения по умолчанию.
  • [ @StartDateTime = ] 'start_date_time'
    Дата и время начала отчета в формате UTC. Аргумент start_date_time имеет тип datetime. Значение по умолчанию — системные дата и время начала.
  • [ @EndDateTime = ] 'end_date_time'
    Дата и время завершения отчета в формате UTC. Аргумент end_date_time имеет тип datetime. Значение по умолчанию — время, когда была запущена хранимая процедура (в формате UTC).

Значения кодов возврата

Нет

Результирующие наборы

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

ApplicationName

nvarchar(255)

Имя приложения, из которого было отправлено неудачное уведомление.

NotificationClassName

nvarchar(255)

Имя класса уведомлений, создавшего уведомление.

DeliveryChannelName

nvarchar(255)

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

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

NotificationBatchId

bigint

Идентификатор пакета уведомлений, который содержит неудачное уведомление.

NotificationId

bigint

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

SubscriberId

nvarchar(255)

Идентификатор подписчика, который должен был получить уведомление.

SubscriberDeviceAddress

nvarchar(255)

Адрес устройства (например, адрес электронной почты), которое должно было получить уведомление.

DeliveryRequestTime

datetime

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

SentTime

datetime

Дата и время, когда протокол доставки сообщил о неудачной попытке доставки уведомления.

NextRetryTime

datetime

Дата и время следующей попытки распространителя доставить сообщение.

Замечания

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

Эта хранимая процедура находится в схеме экземпляра, указанной в элементе SchemaName файла конфигурации экземпляра (ICF). Если имя схемы не задано, схемой по умолчанию является dbo.

Вывод упорядочен по ApplicationName, NotificationClassName, DeliveryChannelName, a затем SubscriberId.

Отчет не относит уведомления к отдельным подпискам, потому что одна подписка может формировать более одного уведомления, а в создании одного уведомления может участвовать несколько подписок (в зависимости от логики приложения).

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

Чтобы определить текущую дату и время в формате UTC, выполните инструкцию SELECT GETUTCDATE() в среде SQL Server Management Studio. Текущее время в формате UTC получается из текущего местного времени и настройки часового пояса в операционной системе компьютера, на котором запущен SQL Server.

Разрешения

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

Примеры

А. Задание значений начального и конечного времени

Следующий пример предоставляет отчет о неудачных уведомлениях для приложения Flight. Экземпляр использует настройки базы данных по умолчанию, в соответствии с которыми все объекты экземпляра помещаются в схему dbo.

Отчет содержит сведения для всех уведомлений, которые закончились ошибкой 23 мая 2004 г. между 17:00 и 18:00.

EXEC dbo.NSDiagnosticFailedNotifications 
    @ApplicationName = N'Flight', 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

Б. Использование значений по умолчанию, именованная схема

Следующий пример предоставляет отчет о неудачных уведомлениях для приложения Flight. В этом примере хранимая процедура (как и все остальные объекты экземпляра) находится в схеме FlightInstance, как указано в элементе SchemaName файла ICF.

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

EXEC FlightInstance.NSDiagnosticFailedNotifications 
    @ApplicationName = N'Flight';

См. также

Справочник

Хранимые процедуры служб Notification Services (Transact-SQL)

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

Отчеты о производительности служб Notification Services
SchemaName Element (ICF)

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

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