次の方法で共有


NSDiagnosticNotificationClass (Transact-SQL)

Microsoft SQL Server Notification Services アプリケーションの通知クラス レポートを生成します。このレポートには、通知クラスが処理した通知と通知バッチの数、および通知の配信が成功したかどうかを示す情報が含まれます。

構文

[ schema_name . ] NSDiagnosticNotificationClass 
    [ @ApplicationName = ] 'app_name' ,
    [ @NotificationClassName = ] 'notification_class_name' 
    [, [ @ReportingInterval = ] interval ] 
    [, [ @StartDateTime = ] 'start_date_time' ] 
    [, [ @EndDateTime = ] 'end_date_time' ] 

引数

[ @ApplicationName =] 'app_name'

構成ファイルで定義されている、アプリケーションの名前を指定します。app_name のデータ型は nvarchar(255) で、既定値はありません。

[ @NotificationClassName =] 'notification_class_name'

アプリケーション定義ファイル (ADF) で定義されている、通知クラスの名前を指定します。notification_class_name のデータ型は nvarchar(255) で、既定値はありません。

[ @ReportingInterval =] interval

各レポート間隔に含めるジェネレータ クォンタムの数を指定します。1 つの間隔ごとに 1 行のデータが作成されます。interval のデータ型は int で、既定値は 1 です。これは、1 間隔に 1 ジェネレータ クォンタムを含めることを表します。

クォンタムの期間は、アプリケーション定義ファイル (ADF) で定義します。

[ @StartDateTime =] 'start_date_time'

レポートの開始日時を、UTC (協定世界時またはグリニッジ標準時) で指定します。start_date_time のデータ型は datetime です。既定値は、@EndDateTime の値から (5 * QuantumDuration * @ReportingInterval) さかのぼった日時となります。既定値を使用した場合、結果セットに含まれる行数は最大で 5 行となります。1 つの行が 1 つのレポート間隔を表します。

[ @EndDateTime =] 'end_date_time'

レポートの終了日時を、UTC で指定します。end_date_time のデータ型は datetime です。既定値は、GETUTCDATE 関数の戻り値です。つまり、このストアド プロシージャが呼び出された日時です。

結果セット

列名 データ型 説明

IntervalStartDateTime

datetime

このレポート間隔の開始日時 (UTC)。

IntervalEndDateTime

datetime

このレポート間隔の終了日時 (UTC)。

NotificationBatchesGenerated

int

指定した通知クラスに関して、このレポート間隔中に生成された通知バッチの数。

NotificationsGenerated

int

指定した通知クラスに関して、このレポート間隔中に生成された通知の数。

NotificationsGeneratedPerSecond

float

指定した通知クラスに関して、このレポート間隔中に生成された 1 秒あたりの通知の数。

AvgNotificationBatchWaitTillDistribution

float

指定した通知クラスに関して、このレポート間隔中に、ディストリビュータが通知バッチの処理を開始するまでにかかった平均待機時間。

NotificationDeliveryAttempts

int

このレポート間隔中に生成された指定の通知クラスの通知バッチに関して、通知の配信が試行された回数。

NotificationSuccessfulDeliveries

int

このレポート間隔中に生成された指定の通知クラスの通知バッチに関して、正常に配信された通知の数。

NotificationFailedAttempts

int

このレポート間隔中に生成された指定の通知クラスの通知バッチに関して、通知の配信試行が失敗した回数。

NotificationsDeliveryNotAttempted

int

このレポート間隔中に生成された指定の通知クラスの通知バッチに関して、ディストリビュータがまだ配信を試行していない通知の数。

NotificationsNotYetDelivered

int

このレポート間隔中に生成された指定の通知クラスの通知バッチに関して、まだ配信されていない通知の数。配信されていない理由としては、配信がまだ試行されていないことや、試行したが失敗したことが考えられます。

NotificationToMessageRatio

float

このレポート間隔中に生成された通知バッチに関して、生成された通知の数と送信されたメッセージの数の比率。

ダイジェスト配信またはマルチキャスト配信の場合、1 つのメッセージに複数の通知を含めることができます。この場合、この列の値は、ダイジェスト メッセージまたはマルチキャスト メッセージに含まれていた通知の数の平均値を表します。

AvgNotificationBatchSucceedDeliveryTime

float

このレポート間隔中に生成された通知バッチに関して、配信処理を通じて正常に通知を送信するまでにかかった平均時間。

解説

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

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

この場合、EndGenerationTime の値が IntervalStartDateTime の値より大きく、かつ IntervalEndDateTime 以下である条件を満たす通知バッチがレポート間隔に含まれます。

現在の UTC 時間を調べるには、SQL Server Management Studio で SELECT GETUTCDATE() を実行します。現在の UTC 時間は、SQL Server を実行しているコンピュータのオペレーティング システムで設定されているタイム ゾーンと現在のローカル時間から算出されます。

権限

既定では、NSAnalysis データベース ロール、db_owner 固定データベース ロール、および sysadmin 固定サーバー ロールのメンバに実行権限が与えられています。

戻り値

0 (成功) または 1 (失敗)

A. レポート間隔、開始時刻、終了時刻の値を指定する

次の例では、Flight アプリケーションの FlightNotifications 通知クラスを対象に、通知クラス診断レポートを生成します。インスタンスでは、既定のデータベース設定が使用されます。この設定では、すべてのインスタンス オブジェクトが dbo スキーマに格納されます。

1 レポート間隔に含めるジェネレータ クォンタムの数は 60 です。レポートの開始日時は 2002 年 5 月 23 日午後 5:00、終了日時は同日の午後 6:00 です。

EXEC dbo.NSDiagnosticNotificationClass 
    @ApplicationName = N'Flight', 
    @NotificationClassName = N'FlightNotifications', 
    @ReportingInterval = 60, 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

B. 既定値、指定したスキーマを使用する

次の例では、Flight アプリケーションの FlightNotifications 通知クラスを対象に、通知クラス診断レポートを生成します。この例では、ICF の要素 SchemaName で指定された FlightInstance スキーマ内に、ストアド プロシージャと他のすべてのインスタンス オブジェクトが格納されます。

レポートでは既定値が使用されます。この場合、過去 5 つのジェネレータ クォンタムのデータが表示されます。

EXEC FlightInstance.NSDiagnosticNotificationClass 
    @ApplicationName = N'Flight', 
    @NotificationClassName = N'FlightNotifications';

参照

関連項目

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

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手