共用方式為


NS<NotificationClassName>NotificationDistribution 檢視

結合若干內部 Microsoft SQL Server Notification Services 資料表中的資料,共同提供有關通知散發嘗試的資訊。Notification Services 會利用下述命名慣例,為每一個通知類別建立一份檢視:NSNotificationClassNameNotificationDistribution

例如,Notification Services 所檢附的 Stock 範例有兩個通知類別:StockNotificationsPortfolioNotifications。相關的檢視稱為 NSStockNotificationsNotificationDistributionNSPortfolioNotificationsNotificationDistribution

NSNotificationClassNameNotificationDistribution 檢視包含下表所顯示的資料行。

資料行 資料類型 描述

NotificationId

bigint

通知識別碼。

DeliveryChannelName

nvarchar (255)

傳遞通知所用的傳遞通道名稱。

DistributorName

nvarchar(255)

傳遞通知所用的散發者名稱。

DeliveryRequestTime

datetime

散發者將通知資料交給傳遞通訊協定加以傳遞的日期和時間。

SentTime

datetime

實際傳送通知的時間。

DeliveryStatusDescription

nvarchar(255)

傳遞嘗試的狀態:尚未嘗試、已成功或是已失敗。如需詳細資訊,請參閱「備註」一節。

DeliveryStatusInfo

nvarchar(2048)

在報告 notificationstatus 狀態時,傳遞通訊協定傳回給散發者的狀態訊息。它通常是用來報告失敗的原因。NULL 表示沒有傳送任何狀態訊息。

NotificationText

nvarchar(2048)

通知的文字。

SubscriberId

nvarchar(255)

通知的訂閱者識別碼。

DeviceName

nvarchar(255)

訂閱中所指定的傳遞裝置名稱。

SubscriberLocale

nvarchar(10)

通知的訂閱者地區設定。

通知類別欄位 (1-n)

application-defined

通知類別中所指定的所有資料行也會出現在這份檢視中。

LinkNotificationId

bigint

在使用摘要傳遞時,併入摘要中之第一項通知的識別碼。摘要中所有後續通知,都包含這個識別碼。NULL 表示通知不是摘要中的後續通知。

備註

NSNotificationClassNameNotificationDistribution 檢視位在應用程式資料庫中。

檢視中的可用資料量,是透過應用程式定義中的散發者記錄設定,在每一個應用程式加以控制。這些應用程式執行設定會控制寫到散發記錄中的內容,因而也會控制這份檢視所能使用的內容。如需詳細資訊,請參閱<設定散發者記錄>。

NSNotificationClassNameNotificationDistribution 檢視中,一項通知可以有多個資料列,每一個資料列都代表一次傳遞嘗試。例如,如果一個通知傳遞失敗兩次之後終於成功了,則在這份檢視中,該通知就會出現三個資料列,直到移除處理將這些資料移除為止。

請使用 DeliveryStatusDescription 資料行來判斷通知傳遞狀態。下表含有狀態碼的描述。

DeliveryStatusDescription 值 描述

未曾傳遞過:第一次嘗試暫止中

散發者尚未傳遞通知。可能是因為應用程式設定、尚未散發的通知、發生散發問題 (例如,散發者停用) 或是失敗太多次 (由 FailuresBeforeAbort 設定加以控制) 所導致。

傳遞成功

傳遞通訊協定傳回一值,表示已經成功傳遞。

傳遞失敗

發生下列一個事件:

  • 內容格式步驟失敗。
  • 在呼叫傳遞通訊協定時發生錯誤。
  • 傳遞通訊協定報告傳遞失敗。

若要排解失敗的傳遞,請在 Microsoft Windows 事件檢視器的應用程式記錄檔中,找出錯誤訊息。請注意,一個傳遞失敗也許包含了好幾個錯誤;請查看每一個 Notification Services 錯誤訊息的描述。

權限

sysadmindb_owner 伺服器角色的成員,以及 Notification Services 的 NSAnalysis 角色,都可以使用這份檢視。

範例

請在 Stock 範例中執行下述查詢,判斷是否有任何通知傳遞嘗試失敗:

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

上述查詢會傳回所有尚未利用移除處理移除的失敗通知。如果一項通知含有多個失敗的傳遞嘗試,查詢會傳回每個失敗各一個資料列。

若要從 Stock 範例傳回曾經失敗一或多次的通知清單,請執行下述查詢:

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

請參閱

參考

Notification Services 檢視

其他資源

設定散發者記錄

說明及資訊

取得 SQL Server 2005 協助