Share via


NSDiagnosticFailedNotifications (Transact-SQL)

Erstellt den Bericht über fehlgeschlagene Benachrichtigungen für eine Microsoft SQL Server Notification Services-Anwendung. Der Bericht enthält eine Liste der fehlgeschlagenen Benachrichtigungsübermittlungsversuche. Jede Zeile im Bericht schließt die Benachrichtigungs- und Abonnementklassen ein, die die Benachrichtigung generiert haben, den Abonnenten, an den die Benachrichtigung gesendet werden sollte, sowie Informationen zu einem Übermittlungsversuch. Diesen Bericht können Sie für die Problembehandlung der Benachrichtigungsübermittlung verwenden.

Syntax

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

Argumente

[ @ApplicationName = ] 'app_name'

Der Name einer Anwendung gemäß Definition in der Konfigurationsdatei. app_name ist ein Wert vom Datentyp nvarchar(255) und weist keinen Standardwert auf.

[ @StartDateTime = ] 'start_date_time'

Ist das Startdatum und die Startzeit des Berichts in UTC (Coordinated Universal Time oder Greenwich Mean Time). start_date_time ist ein Wert vom Datentyp datetime. Der Standardwert ist das Systemstartdatum und die Systemstartzeit.

[ @EndDateTime = ] 'end_date_time'

Ist das Enddatum und die Beendigungszeit des Berichts in UTC. end_date_time ist ein Wert vom Datentyp datetime. Der Standardwert ist die Uhrzeit, zu der Sie die gespeicherte Prozedur aufrufen (in UTC).

Rückgabecodewerte

Keine

Resultsets

Spaltenname Datentyp Beschreibung

ApplicationName

nvarchar(255)

Name der Anwendung, von der die fehlgeschlagene Benachrichtigung stammt.

NotificationClassName

nvarchar(255)

Name der Benachrichtigungsklasse, die die Benachrichtigung generiert hat.

DeliveryChannelName

nvarchar(255)

Name des Übermittlungskanals, der versucht hat, die Benachrichtigung zu übermitteln.

Ist das Ergebnis NULL, ist das Abonnement keinem gültigen Abonnentengerät zugeordnet und konnte deshalb keinem Übermittlungskanal zugewiesen werden.

NotificationBatchId

bigint

ID des Benachrichtigungsbatchs mit der fehlgeschlagenen Benachrichtigung.

NotificationId

bigint

ID der fehlgeschlagenen Benachrichtigung.

SubscriberId

nvarchar(255)

ID des Abonnenten, der als Empfänger für die Benachrichtigung vorgesehen war.

SubscriberDeviceAddress

nvarchar(255)

Adresse, wie z. B. eine E-Mail-Adresse des Geräts, das als Empfänger für die Benachrichtigung vorgesehen war.

DeliveryRequestTime

datetime

Datum und Uhrzeit, zu der der Verteiler das Übermittlungsprotokoll aufgefordert hat, die Benachrichtigung zu übermitteln.

SentTime

datetime

Datum und Uhrzeit, zu der das Übermittlungsprotokoll die fehlgeschlagene Benachrichtigungsübermittlung gemeldet hat.

NextRetryTime

datetime

Datum und Uhrzeit des nächsten Versuchs für die Übermittlung der Benachrichtigung durch den Verteiler.

Hinweise

Notification Services erstellt die gespeicherte Prozedur NSDiagnosticFailedNotifications in der Instanzdatenbank, wenn Sie die Instanz erstellen. Wenn Sie die Instanz aktualisieren, kompiliert Notification Services die gespeicherte Prozedur erneut.

Diese gespeicherte Prozedur ist Bestandteil des Instanzschemas, das durch das SchemaName-Element der Instanzkonfigurationsdatei (ICF, Instance Configuration File) angegeben wird. Wenn kein Schemaname bereitgestellt wird, ist dbo das Standardschema.

Die Ausgabe wird zuerst nach ApplicationName, NotificationClassName, DeliveryChannelName und dann nach SubscriberId sortiert.

Im Bericht werden Benachrichtigungen nicht einzelnen Abonnements zugeordnet, da ein einzelnes Abonnement mehr als eine Benachrichtigung generieren kann und mehr als ein Abonnement zu einer einzelnen Benachrichtigung beitragen kann (abhängig von der Anwendungslogik).

Wenn der Übermittlungsdienst die Fehlerprotokollierung unterstützt, kann der Fehler einer bestimmten Benachrichtigung in der Datenbank protokolliert werden. Diese Daten können mithilfe der NSNotificationClassNameNotificationDistribution-Sicht angezeigt werden.

Wenn Sie das aktuelle UTC-Datum bzw. die UTC-Uhrzeit ermitteln möchten, führen Sie SELECT GETUTCDATE() in SQL Server Management Studio aus. Die aktuelle UTC-Zeit wird von der aktuellen lokalen Zeit und der Zeitzoneneinstellung im Betriebssystem des Computers mit SQL Server abgeleitet.

Berechtigungen

Die Ausführungsberechtigungen erhalten standardmäßig Mitglieder der NSAnalysis-Datenbankrolle, der festen Datenbankrolle db_owner und der festen Serverrolle sysadmin.

Beispiele

A. Angeben der Werte für die Startzeit und die Beendigungszeit

Im folgenden Beispiel wird der Bericht über fehlgeschlagene Benachrichtigungen für die Flight-Anwendung erstellt. Für die Instanz werden die Standarddatenbankeinstellungen verwendet, worunter alle Instanzobjekte im dbo-Schema angeordnet werden.

Der Bericht schließt Informationen für alle fehlgeschlagenen Benachrichtigungen zwischen 17.00 Uhr und 18.00 Uhr am 23. Mai 2004 ein.

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

B. Verwenden von Standardwerten für ein benanntes Schema

Im folgenden Beispiel wird der Bericht über fehlgeschlagene Benachrichtigungen für die Flight-Anwendung erstellt. In diesem Beispiel befindet sich die gespeicherte Prozedur (wie alle anderen Instanzobjekte) im FlightInstance-Schema, wie im SchemaName-Element der ICF angegeben.

Für den Bericht werden Standardwerte verwendet, die angeben, dass alle Daten seit dem Anwendungsstart angezeigt werden.

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

Siehe auch

Verweis

Gespeicherte Prozeduren in Notification Services (Transact-SQL)

Andere Ressourcen

Notification Services-Leistungsberichte
SchemaName Element (ICF)

Hilfe und Informationen

Informationsquellen für SQL Server 2005