Share via


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:

  • un errore nel processo di formattazione del contenuto
  • un errore durante la chiamata al protocollo di recapito
  • un errore di recapito rilevato dal protocollo di recapito.

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

Guida in linea e informazioni

Assistenza su SQL Server 2005