次の方法で共有


NSSetQuantumClock (Transact-SQL)

Microsoft SQL Server Notification Services アプリケーションのクォンタム クロックを、過去のクォンタムの開始時刻にリセットします。このストアド プロシージャを実行すると、指定したクォンタムと同じ開始日時のクォンタムが新しく作成されます。この開始日時は、UTC (協定世界時またはグリニッジ標準時) に基づく日時です。このストアド プロシージャによって、過去のクォンタムを再現できます。

このストアド プロシージャの用途としては、次の 2 つのシナリオが考えられます。

  • アプリケーションをテストするときに使用。定期的なサブスクリプションを 1 つ追加した後、必要に応じてクォンタム クロックをリセットすることによって、そのサブスクリプションをテストできます。
  • システムの問題を診断するときに使用。クォンタム クロックをリセットすることによって、過去のシステムの動作を再現できます。NS$instance_name サービスが実行中でインスタンスが有効になっている限り、イベント バッチや定期的なサブスクリプションなどすべての処理は、実際に実行されたときと完全に同じ状態で再現されます。

構文

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

引数

[ @QuantumId =] quantum_ID

過去のクォンタムの一意識別子を指定します。quantum_id のデータ型は int で、既定値はありません。

結果セット

なし

解説

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

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

NSSetQuantumClock を実行する前には、ジェネレータを無効にしておく必要があります。

アプリケーション定義ファイル (ADF) で、ChronicleQuantumLimitSubscriptionQuantumLimit の値が 0 であることを確認してください。これらの値が 0 の場合は、制限なく過去のクォンタムを処理できます。0 以外の制限値が指定されている場合、ジェネレータで目的のクォンタムがスキップされる可能性があります。

Vacuumer 処理を実行すると、データがシステムから削除されます。目的のデータが削除されている場合、そのデータの処理は再現できません。

Notification Services で過去のクォンタムが再現されている場合は、より古いクォンタムが優先され、先に処理されます。したがって、クォンタム クロックをリセットするときには、新しいクォンタムが予定の時刻より遅れて処理される可能性があることに注意してください。

権限

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

戻り値

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

次の例では、クォンタム クロックをリセットし、以前のクォンタムの処理をクォンタム番号 1 から再現します。NSQuantum1 テーブルには新しいクォンタムが新しいクォンタム番号と共に挿入されますが、このクォンタムの StartTime 値は、クォンタム 1 の StartTime 値と同じになります。

アプリケーションでは、既定の SchemaName 設定が使用されます。この設定ではすべてのアプリケーション オブジェクトが dbo スキーマに格納されます。

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;

たとえば、NSQuantum1 テーブルに 4 つのクォンタムがあり、クォンタム 1 の開始時刻が 2002-05-23 17:23:37.640 である場合、この例を実行するとテーブルにクォンタム 5 が挿入され、このクォンタムの開始時刻はクォンタム 1 と同じ 2002-05-23 17:23:37.640 になります。ジェネレータを有効にすると、クォンタム 1 以降のすべてのクォンタムがジェネレータによって再現されます。

参照

関連項目

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

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手