Vista NS<NotificationClassName>NotificationDistribution
Riunisce i dati da varie tabelle interne di Microsoft SQL Server Notification Services per fornire informazioni sui tentativi di distribuzione delle notifiche. Notification Services crea una vista per ogni classe di notifica utilizzando la convenzione di denominazione seguente: NSNotificationClassNameNotificationDistribution.
Ad esempio, l'applicazione di esempio Stock fornita con Notification Services ha due classi di notifica: StockNotifications e PortfolioNotifications. Le viste associate sono denominate NSStockNotificationsNotificationDistribution e NSPortfolioNotificationsNotificationDistribution.
Le viste NSNotificationClassNameNotificationDistribution includono le colonne illustrate nella tabella seguente.
Colonna | Tipo di dati | Descrizione |
---|---|---|
NotificationId |
bigint |
ID della notifica. |
DeliveryChannelName |
nvarchar (255) |
Nome del canale di recapito utilizzato per recapitare la notifica. |
DistributorName |
nvarchar(255) |
Nome del server di distribuzione utilizzato per recapitare la notifica. |
DeliveryRequestTime |
datetime |
Data e ora in cui il server di distribuzione ha consegnato i dati di notifica al protocollo di recapito. |
SentTime |
datetime |
Ora di invio effettivo della notifica. |
DeliveryStatusDescription |
nvarchar(255) |
Stato del tentativo di recapito: non tentato, con esito positivo, con esito negativo. Per ulteriori informazioni, vedere la sezione Osservazioni. |
DeliveryStatusInfo |
nvarchar(2048) |
Messaggio di stato restituito dal protocollo di distribuzione al server di distribuzione durante la segnalazione dello stato di notifica. In genere viene utilizzato per indicare il motivo dell'esito negativo. NULL indica che non è stato inviato alcun messaggio di stato. |
NotificationText |
nvarchar(2048) |
Testo della notifica. |
SubscriberId |
nvarchar(255) |
ID del sottoscrittore per la notifica. |
DeviceName |
nvarchar(255) |
Nome del dispositivo di recapito specificato nella sottoscrizione. |
SubscriberLocale |
nvarchar(10) |
Impostazioni internazionali del sottoscrittore per la notifica. |
Campi della classe di notifica (1-n) |
application-defined |
Tutte le colonne specificate nella classe di notifica vengono visualizzate anche in questa vista. |
LinkNotificationId |
bigint |
ID della prima notifica inclusa nel digest quando viene utilizzato il recapito digest. Tutte le notifiche successive nel digest contengono questo ID. NULL indica che la notifica non è una notifica successiva in un digest. |
Osservazioni
Le viste NSNotificationClassNameNotificationDistribution sono contenute nei database dell'applicazione.
La quantità di dati disponibili nella vista è controllata per ogni applicazione tramite le impostazioni di registrazione del server di distribuzione nella definizione dell'applicazione. Queste impostazioni per l'esecuzione dell'applicazione controllano quanto viene scritto nel log di distribuzione, e quindi le informazioni disponibili in questa vista. Per ulteriori informazioni, vedere Configurazione della registrazione dei server di distribuzione.
Un singola notifica può occupare più righe nella vista NSNotificationClassNameNotificationDistribution, una per ogni tentativo di recapito. Ad esempio, se un tentativo di recapito di una notifica ha due esiti negativi prima di essere completato, la notifica occuperà tre righe nella vista, fino a quando i dati non verranno rimossi dal processo di rimozione dei dati.
Utilizzare la colonna DeliveryStatusDescription per determinare lo stato di recapito della notifica. Nella tabella seguente sono incluse le descrizioni dei codici di stato.
Valore DeliveryStatusDescription | Descrizione |
---|---|
Nessun tentativo di recapito: primo tentativo in sospeso |
Il server di distribuzione non ha ancora tentato di recapitare la notifica. Le possibili cause sono le impostazioni dell'applicazione, un backlog di notifiche da distribuire, un problema di distribuzione quale un server di distribuzione disattivato, o troppi errori (controllati dall'impostazione FailuresBeforeAbort). |
Recapito completato |
Il protocollo di recapito ha restituito un valore che indica il completamento dell'operazione di recapito. |
Recapito non riuscito |
Si è verificato uno degli eventi seguenti:
|
Per risolvere i problemi relativi agli errori di recapito, verificare i messaggi di errore nel registro applicazioni del Visualizzatore eventi di Microsoft Windows. Si noti che per una singola occorrenza di un recapito non riuscito potrebbero essere stati registrati più errori. È pertanto necessario controllare la descrizione di ogni messaggio di errore di Notification Services.
Autorizzazioni
Questa vista è disponibile per i membri dei ruoli del server sysadmin e db_owner e del ruolo NSAnalysis di Notification Services.
Esempi
Eseguire la query seguente nell'applicazione di esempio Stock per determinare la presenza di tentativi di recapito di notifiche non riusciti:
USE StockInstanceStock;
SELECT NotificationId, DeliveryStatusInfo
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';
La query sopra riportata restituisce tutti gli errori di notifica che non sono stati rimossi tramite il processo di rimozione dei dati. Se per una notifica si sono verificati più tentativi di recapito non riusciti, la query restituisce una riga per ogni tentativo non riuscito.
Per restituire un elenco delle notifiche non riuscite una o più volte dall'applicazione di esempio Stock, eseguire la query seguente:
USE StockInstanceStock;
SELECT DISTINCT(NotificationId)
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';
Vedere anche
Riferimento
Visualizzazioni di Notification Services
Altre risorse
Configurazione della registrazione dei server di distribuzione