Partager via


Vue NS<NotificationClassName>NotificationDistribution

Combine des données issues de plusieurs tables internes Microsoft SQL Server Notification Services pour fournir des informations sur les tentatives de distribution des notifications. Notification Services crée une vue pour chaque classe de notification à l'aide de la convention de dénomination suivante : NSNotificationClassNameNotificationDistribution.

Par exemple, l'exemple Stock fourni avec Notification Services comporte deux classes de notification : StockNotifications et PortfolioNotifications. Les vues associées sont nommées NSStockNotificationsNotificationDistribution et NSPortfolioNotificationsNotificationDistribution.

Les vues NSNotificationClassNameNotificationDistribution contiennent des colonnes affichées dans la table suivante.

Colonne Type de données Description

NotificationId

bigint

Numéro d'ID de notification.

DeliveryChannelName

nvarchar (255)

Nom du canal de remise utilisé pour remettre la notification.

DistributorName

nvarchar(255)

Nom du serveur de distribution utilisé pour remettre la notification.

DeliveryRequestTime

datetime

Date et heure auxquelles le serveur de distribution a transmis les données de notification au protocole de remise.

SentTime

datetime

Heure d'envoi de la notification.

DeliveryStatusDescription

nvarchar(255)

Statut de la tentative de remise : aucun essai, succès ou échec. Pour plus d'informations, consultez la section Notes.

DeliveryStatusInfo

nvarchar(2048)

Message d'état retourné par le protocole de remise au serveur de distribution lors du signalement du statut de notification. Il est généralement utilisé pour signaler la raison d'un échec. La valeur NULL indique qu'aucun message d'état n'a été envoyé.

NotificationText

nvarchar(2048)

Texte de notification.

SubscriberId

nvarchar(255)

ID de l'abonné pour la notification.

DeviceName

nvarchar(255)

Nom du dispositif de remise spécifié dans l'abonnement.

SubscriberLocale

nvarchar(10)

Paramètres régionaux de l'abonné pour la notification.

Champs de classe de notification (1-n)

application-defined

Toutes les colonnes spécifiées dans la classe de notification s'affichent également dans cette vue.

LinkNotificationId

bigint

L'ID de la première notification comprise dans le digest lors d'une remise de ce même type. Toutes les notifications ultérieures dans le digest contiennent cet ID. La valeur NULL indique que la notification n'est pas de ce type dans un digest.

Notes

Les vues NSNotificationClassNameNotificationDistribution sont situées dans les bases de données de l'application.

La quantité des données disponibles dans cette vue est contrôlée par les paramètres d'enregistrement du serveur de distribution dans la définition de l'application. Ces paramètres d'exécution de l'application contrôlent les écritures sur le journal de distribution, c'est ainsi que sont contrôlées les disponibilités sur cette vue. Pour plus d'informations, consultez Configuration de la journalisation sur le serveur de distribution.

Une notification unique peut comporter plusieurs lignes dans la vue NSNotificationClassNameNotificationDistribution, en d'autres termes, une pour chaque tentative de remise. Par exemple, si une tentative de remise de notification échoue deux fois avant de finalement réussir, la notification aura trois lignes dans cette vue tant que les données n'ont pas été supprimées par le Vaccuumer.

Utilisez la colonne DeliveryStatusDescription pour déterminer le statut de remise de la notification. Le tableau suivant contient les descriptions des codes de statut.

Valeur DeliveryStatusDescription Description

Remise non encore effectuée : première tentative en attente

Le serveur de distribution n'a pas encore essayé de remettre la notification. Ceci est sans doute dû aux paramètres de l'application, à un retard de notifications à distribuer, à un problème de distribution, tel qu'un serveur de distribution désactivé ou un nombre excessif d'échecs (sous contrôle du paramètre FailuresBeforeAbort).

Remise réussie

Le protocole de remise a retourné une valeur qui indique une remise réussie.

Échec de la remise

Un des événements suivants s'est produit :

  • Un échec dans l'étape de formatage du contenu.
  • Une erreur lors de l'appel du protocole de remise.
  • Un échec de la remise signalée par le protocole de remise.

Pour résoudre le problème des remises échouées, cherchez les messages d'erreur dans le journal des applications dans l'Observateur d'événements Microsoft. Notez que plusieurs erreurs peuvent être consignées dans le journal pour un seul échec de remise, cherchez la description de chaque message d'erreur Notification Services.

Autorisations

Cette vue est disponible aux membres des rôles de serveur sysadmin et db_owner, ainsi qu'au rôle NSAnalysis de Notification Services.

Exemple

Exécutez la requête suivante sur l'exemple Stock afin de déterminer si les tentatives de remise de la notification ont échoué :

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

La requête ci-dessus retourne toutes les notifications échouées, qui n'ont pas été supprimées par le Vaccuumer. Si une notification a eu plusieurs tentatives de remise échouées, la requête retourne une ligne pour chaque échec.

Pour retourner une liste des notifications qui ont échoué au moins une fois, depuis l'exemple Stock, exécutez la requête suivante :

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

Voir aussi

Référence

Vues Notification Services

Autres ressources

Configuration de la journalisation sur le serveur de distribution

Aide et Informations

Assistance sur SQL Server 2005