共用方式為


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_namenvarchar(255),沒有預設值。

[ @StartDateTime = ] 'start_date_time'

這是報表的開始日期和時間,以國際標準時間 (UTC) 或格林威治標準時間 (GMT) 表示。start_date_timedatetime。預設值是系統的開始日期和時間。

[ @EndDateTime = ] 'end_date_time'

這是報表的結束日期和時間 (以 UTC 為單位)。end_date_timedatetime。預設值是您叫用預存程序的時間 (以 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

輸出的排序依據,依序為 ApplicationNameNotificationClassNameDeliveryChannelNameSubscriberId

報表不會將通知關聯於個別訂閱,因為單項訂閱可能產生多份通知,多項訂閱也可能造成單項通知 (這會隨著應用程式邏輯而不同)。

如果傳遞服務支援錯誤記錄,它也可以將特定通知的失敗記錄在資料庫中。您可以利用 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)

說明及資訊

取得 SQL Server 2005 協助