NS<NotificationClassName>NotificationDistribution (Sicht)
Kombiniert die Daten aus verschiedenen internen Microsoft SQL Server Notification Services-Tabellen, um Informationen zur versuchten Verteilung von Benachrichtigungen bereitzustellen. Notification Services erstellt eine Sicht für jede Benachrichtigungsklasse und verwendet dabei die folgende Benennungskonvention: NSNotificationClassNameNotificationDistribution.
Das Stock-Beispiel, das im Lieferumfang von Notification Services enthalten ist, verfügt beispielsweise über zwei Benachrichtigungsklassen: StockNotifications und PortfolioNotifications. Die zugeordneten Sichten heißen NSStockNotificationsNotificationDistribution und NSPortfolioNotificationsNotificationDistribution.
Die NSNotificationClassNameNotificationDistribution-Sichten enthalten die in der folgenden Tabelle aufgeführten Spalten.
Spalte | Datentyp | Beschreibung |
---|---|---|
NotificationId |
bigint |
Die Benachrichtigungs-ID. |
DeliveryChannelName |
nvarchar (255) |
Der Name des Übermittlungskanals, der für die Übermittlung der Benachrichtigung verwendet wird. |
DistributorName |
nvarchar(255) |
Der Name des Verteilers, der für die Übermittlung der Benachrichtigung verwendet wird. |
DeliveryRequestTime |
datetime |
Das Datum und die Uhrzeit des Zeitpunkts, zu dem der Verteiler die Benachrichtigungsdaten zur Übermittlung an das Übermittlungsprotokoll übergeben hat. |
SentTime |
datetime |
Die Uhrzeit, zu der die Benachrichtigung tatsächlich gesendet wurde. |
DeliveryStatusDescription |
nvarchar(255) |
Der Status des Übermittlungsversuchs: kein Versuch, Erfolg oder Fehler. Weitere Informationen finden Sie im Abschnitt zu den Hinweisen. |
DeliveryStatusInfo |
nvarchar(2048) |
Die Statusmeldung, die das Übermittlungsprotokoll beim Melden des Benachrichtigungsstatus an den Verteiler zurückgegeben hat. Diese Meldung wird üblicherweise verwendet, um die Ursache eines Fehlers zu melden. NULL zeigt an, dass keine Statusmeldung gesendet wurde. |
NotificationText |
nvarchar(2048) |
Der Text der Benachrichtigung. |
SubscriberId |
nvarchar(255) |
Die ID des Abonnenten der Benachrichtigung. |
DeviceName |
nvarchar(255) |
Der Name des im Abonnement angegebenen Übermittlungsgeräts. |
SubscriberLocale |
nvarchar(10) |
Das Gebietsschema des Abonnenten der Benachrichtigung. |
Benachrichtigungsklassenfelder (1-n) |
application-defined |
Alle in der Benachrichtigungsklasse angegebenen Spalten sind in dieser Sicht ebenfalls enthalten. |
LinkNotificationId |
bigint |
Die ID der ersten in den Digest eingeschlossenen Benachrichtigung, wenn die Digestübermittlung verwendet wird. Alle nachfolgenden Benachrichtigungen im Digest enthalten diese ID. NULL zeigt an, dass die Benachrichtigung keine nachfolgende Benachrichtigung in einem Digest ist. |
Hinweise
Die NSNotificationClassNameNotificationDistribution-Sichten befinden sich in Anwendungsdatenbanken.
Der Umfang der in den Sichten verfügbaren Daten wird anwendungsbasiert über die Verteilerprotokollierungseinstellungen in der Anwendungsdefinition gesteuert. Mit diesen Einstellungen zur Anwendungsausführung wird gesteuert, was in das Verteilungsprotokoll geschrieben wird. Es wird somit gesteuert, welche Inhalte für diese Sicht verfügbar sind. Weitere Informationen finden Sie unter Konfigurieren der Verteilerprotokollierung.
Eine einzelne Benachrichtigung kann über mehrere Zeilen in der NSNotificationClassNameNotificationDistribution-Sicht verfügen, wobei jede Zeile für einen Übermittlungsversuch steht. Wenn der Versuch, eine Benachrichtigung zu übermitteln, beispielsweise zwei Mal scheitert und dann erfolgreich ist, würde diese Sicht drei Zeilen für diese Benachrichtigung enthalten, und zwar so lange, bis der Vacuumer-Prozess die Daten entfernt.
Verwenden Sie die DeliveryStatusDescription-Spalte, um den Benachrichtigungsübermittlungsstatus zu bestimmen. Die folgende Tabelle enthält Beschreibungen der Statuscodes.
DeliveryStatusDescription-Wert | Beschreibung |
---|---|
Ohne Übermittlungsversuch: erster Versuch steht aus |
Der Verteiler hat noch nicht versucht, die Benachrichtigung zu übermitteln. Dies kann auf Anwendungseinstellungen, einen Rückstand bei zu verteilenden Benachrichtigungen, ein Verteilungsproblem (z. B. ein deaktivierter Verteiler) oder eine zu große Anzahl von Fehlern (was durch die FailuresBeforeAbort-Einstellung gesteuert wird) zurückzuführen sein. |
Übermittlungserfolge |
Das Übermittlungsprotokoll hat einen Wert zurückgegeben, der eine erfolgreiche Übermittlung anzeigt. |
Übermittlungsfehler |
Eines der folgenden Ereignisse ist eingetreten:
|
Um Probleme in Form gescheiterter Übermittlungen zu beheben, sollten Sie in der Microsoft Windows-Ereignisanzeige nach Fehlermeldungen im Anwendungsprotokoll suchen. Beachten Sie, dass für eine einzelne gescheiterte Übermittlung mehrere Fehler protokolliert werden können. Lesen Sie daher die Beschreibung jeder Notification Services-Fehlermeldung.
Berechtigungen
Diese Sicht steht Mitgliedern der Serverrollen sysadmin und db_owner und der NSAnalysis-Rolle in Notification Services zur Verfügung.
Beispiele
Führen Sie die folgende Abfrage für das Stock-Beispiel aus, um zu bestimmen, ob der Versuch einer Benachrichtigungsübermittlung gescheitert ist:
USE StockInstanceStock;
SELECT NotificationId, DeliveryStatusInfo
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';
Die oben aufgeführte Abfrage gibt alle gescheiterten Benachrichtigungen zurück, die noch nicht durch den Vacuumer-Prozess entfernt wurden. Wenn für eine Benachrichtigung mehrere Übermittlungsversuche gescheitert sind, gibt die Abfrage eine Zeile für jeden gescheiterten Versuch zurück.
Führen Sie die folgende Abfrage aus, um für das Stock-Beispiel eine Liste der Benachrichtigungen zurückzugeben, deren Übermittlung mehr als einmal gescheitert ist:
USE StockInstanceStock;
SELECT DISTINCT(NotificationId)
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';
Siehe auch
Verweis
Andere Ressourcen
Konfigurieren der Verteilerprotokollierung