次の方法で共有


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 (協定世界時またはグリニッジ標準時) で指定します。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

失敗した通知を含む通知バッチの ID。

NotificationId

bigint

失敗した通知の ID。

SubscriberId

nvarchar(255)

通知を受信する予定であったサブスクライバの ID 番号。

SubscriberDeviceAddress

nvarchar(255)

通知を受信する予定であったデバイスのアドレス (電子メール アドレスなど)。

DeliveryRequestTime

datetime

通知を配信するため、ディストリビュータが配信プロトコルを要求した日時。

SentTime

datetime

通知の配信が失敗したことを配信プロトコルが報告した日時。

NextRetryTime

datetime

ディストリビュータが次にメッセージを配信する予定日時。

解説

Notification Services でインスタンスを作成すると、インスタンス データベース内に NSDiagnosticFailedNotifications ストアド プロシージャが作成されます。インスタンスを更新すると、Notification Services ではストアド プロシージャが再コンパイルされます。

このストアド プロシージャは、インスタンス構成ファイル (ICF) の要素 SchemaName で指定される、インスタンス スキーマ内に格納されます。スキーマ名が指定されないと、既定のスキーマ dbo が使用されます。

結果セットの値は、ApplicationNameNotificationClassNameDeliveryChannelNameSubscriberID の順で並べ替えられます。

アプリケーションのロジックに応じて、1 つのサブスクリプションで複数の通知が生成されたり、複数のサブスクリプションで 1 つの通知が生成されることがあるため、レポートの中で通知と個々のサブスクリプションは関連付けられません。

配信サービスでエラーのログ記録がサポートされている場合は、データベースに対する特定の通知の失敗を記録できます。このデータは、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 の要素 SchemaName で指定された FlightInstance スキーマ内に、ストアド プロシージャと他のすべてのインスタンス オブジェクトが格納されます。

レポートでは既定値が使用され、アプリケーションの起動以降に関連するすべてのデータが示されます。

EXEC FlightInstance.NSDiagnosticFailedNotifications 
    @ApplicationName = N'Flight';

参照

関連項目

Notification Services ストアド プロシージャ (Transact-SQL)

その他の技術情報

Notification Services パフォーマンス レポート
SchemaName 要素 (ICF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手