NSDiagnosticFailedNotifications (Transact-SQL)
產生 Microsoft SQL Server Notification Services 應用程式的失敗通知報表。這份報表包含一份失敗的通知傳遞嘗試清單。報表中的每個資料列都包括產生通知的通知和訂閱類別、通知所送往的訂閱者,以及傳遞嘗試的相關資訊。請利用這份報表來進行傳遞通知的疑難排解。
語法
[ schema_name . ] NSDiagnosticFailedNotifications
[ @ApplicationName = ] 'app_name' ,
[, [@StartDateTime = ] 'start_date_time' ]
[, [@EndDateTime = ] 'end_date_time' ]
引數
[ @ApplicationName = ] 'app_name'
這是符合組態檔所定義的應用程式名稱。app_name 是 nvarchar(255),沒有預設值。
[ @StartDateTime = ] 'start_date_time'
這是報表的開始日期和時間,以國際標準時間 (UTC) 或格林威治標準時間 (GMT) 表示。start_date_time 是 datetime。預設值是系統的開始日期和時間。
[ @EndDateTime = ] 'end_date_time'
這是報表的結束日期和時間 (以 UTC 為單位)。end_date_time 是 datetime。預設值是您叫用預存程序的時間 (以 UTC 為單位)。
傳回碼值
無
結果集
資料行名稱 | 資料類型 | 描述 |
---|---|---|
ApplicationName |
nvarchar(255) |
失敗通知的來源應用程式名稱。 |
NotificationClassName |
nvarchar(255) |
產生通知的通知類別名稱。 |
DeliveryChannelName |
nvarchar(255) |
嘗試傳遞通知的傳遞通道名稱。 如果結果是 NULL,訂閱就沒有相關的有效訂閱者裝置,也因而無法指派給傳遞通道。 |
NotificationBatchId |
bigint |
包含失敗通知的通知批次識別碼。 |
NotificationId |
bigint |
失敗通知的識別碼。 |
SubscriberId |
nvarchar(255) |
應該已收到通知之訂閱者的識別碼。 |
SubscriberDeviceAddress |
nvarchar(255) |
應該已收到通知之裝置的地址,如電子郵件地址。 |
DeliveryRequestTime |
datetime |
散發者要求傳遞通訊協定以便傳遞通知的日期和時間。 |
SentTime |
datetime |
傳遞通訊協定報告通知傳遞失敗的日期和時間。 |
NextRetryTime |
datetime |
散發者下次嘗試傳遞訊息的日期和時間。 |
備註
當您建立執行個體時,Notification Services 會在執行個體資料庫中,建立 NSDiagnosticFailedNotifications 預存程序。當您更新執行個體時,Notification Services 會重新編譯預存程序。
這個預存程序在執行個體組態檔 (ICF) 的 SchemaName 元素所指定的執行個體結構描述中。如果未提供結構描述名稱,預設結構描述便是 dbo。
輸出的排序依據,依序為 ApplicationName、NotificationClassName、DeliveryChannelName 和 SubscriberId。
報表不會將通知關聯於個別訂閱,因為單項訂閱可能產生多份通知,多項訂閱也可能造成單項通知 (這會隨著應用程式邏輯而不同)。
如果傳遞服務支援錯誤記錄,它也可以將特定通知的失敗記錄在資料庫中。您可以利用 NSNotificationClassNameNotificationDistribution 檢視來檢視這項資料。
若要判斷目前的 UTC 日期和時間,請在 SQL Server Management Studio 中,執行 SELECT GETUTCDATE()。目前 UTC 時間是從目前本機時間和執行 SQL Server 之電腦的作業系統時區設定衍生而來。
權限
執行權限預設會授與 NSAnalysis 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。
範例
A. 指定開始時間和結束時間值
下列範例會產生 Flight 應用程式的失敗通知報表。執行個體使用預設資料庫設定,將所有執行個體物件放在 dbo 結構描述中。
這份報表包括 2004 年 5 月 23 日下午 5:00 和下午 6:00 之間的所有失敗通知資訊。
EXEC dbo.NSDiagnosticFailedNotifications
@ApplicationName = N'Flight',
@StartDateTime = '2004-05-23 17:00',
@EndDateTime = '2004-05-23 18:00';
B. 使用預設值,具名結構描述
下列範例會產生 Flight 應用程式的失敗通知報表。在這個範例中,依照 ICF 的 FlightInstance 元素所指定,預存程序 (如同所有其他執行個體物件) 是在 SchemaName 結構描述中。
這份報表使用預設值,指定顯示應用程式啟動之後的所有資料。
EXEC FlightInstance.NSDiagnosticFailedNotifications
@ApplicationName = N'Flight';
請參閱
參考
Notification Services 預存程序 (Transact-SQL)
其他資源
Notification Services 效能報告
SchemaName Element (ICF)