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)