NSSetQuantumClockDate (Transact-SQL)

Setzt die Quantumuhr einer Microsoft SQL Server Notification Services-Anwendung auf eine bestimmte Zeit zurück. Dies kann hilfreich sein, um eine Anwendung zu Testzwecken immer wieder in demselben bestimmten Zeitintervall auszuführen, indem eine genaue Zeit, z. B. Montagmorgen 9:00 Uhr, festgelegt wird.

In den beiden folgenden Szenarien wird gezeigt, wie Sie diese gespeicherte Prozedur verwenden können:

  • Beim Testen einer Anwendung können Sie ein geplantes Abonnement hinzufügen und dieses Abonnement dann testen, indem Sie die Quantumuhr nach Bedarf zurücksetzen.
  • Beim Diagnostizieren von Systemproblemen können Sie die Quantumuhr zurücksetzen und zurückliegende Systemvorgänge reproduzieren. Alle Verarbeitungsschritte, z. B. Ereignisbatches und geplante Abonnements, werden exakt wie in Echtzeit wiedergegeben, solange die Instanz ausgeführt wird und aktiviert ist.

Syntax

NSSetQuantumClockDate 
    [ @QuantumStartTime = ] 'start_date_time'

Argumente

[ @QuantumStartTime = ] 'start_date_time'

Ein zurückliegender Startwert in UTC (Coordinated Universal Time, Koordinierte Weltzeit) für die Quantumuhr. Es handelt sich um einen Wert vom Datentyp datetime. Hierdurch wird der Generator gezwungen, ein neues Quantum an einem bereits zurückliegenden Zeitpunkt zu starten, wodurch frühere Verarbeitungsschritte wiedergegeben werden. Da der Zeitpunkt in der Vergangenheit liegt, verarbeitet der Generator das Quantum so früh wie möglich.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Notification Services erstellt die gespeicherte Prozedur NSSetQuantumClockDate in der Anwendungsdatenbank, wenn Sie die Instanz erstellen. Wenn Sie die Anwendung aktualisieren, wird die gespeicherte Prozedur von Notification Services neu kompiliert.

Diese gespeicherte Prozedur befindet sich im Schema der Anwendung, das durch das SchemaName-Element der Anwendungsdefinitionsdatei (Application Definition File, ADF) angegeben wird. Falls kein Schemaname bereitgestellt wurde, wird dbo als Standardschema verwendet.

Sie müssen den Generator deaktivieren, bevor Sie NSSetQuantumClockDate ausführen.

NSSetQuantumClockDate initialisiert die Quantumuhr, daher wird der Wert für @QuantumStartTime in das erste Quantum eingeschlossen, das vom Generator nach der Ausführung der Prozedur verarbeitet wird.

Verwenden Sie die gespeicherte Prozedur NSQuantumList, um eine Quantumstartzeit zu ermitteln. Das Resultset zeigt für jedes Quantum die Start- und Beendigungszeit in UTC an.

Wenn die Werte für ChronicleQuantumLimit und SubscriptionQuantumLimit in der ADF ungleich 0 sind (0 bedeutet, dass die Verarbeitung zurückliegender Quanten unbegrenzt und nicht nur bis zu einem bestimmten Zeitpunkt in der Vergangenheit möglich ist), ist es möglich, dass der Generator das relevante Quantum auslässt.

Durch die Vacuumverarbeitung werden Daten vom System entfernt. Wenn Sie relevante Daten entfernt haben, kann die Verarbeitung dieser Daten nicht wiedergegeben werden.

Wenn Notification Services versucht, zurückliegende Quanten wiederzugeben, haben ältere Quanten Vorrang und werden zuerst verarbeitet. Beim Initialisieren der Quantumuhr müssen Sie beachten, dass neue Quanten eventuell später als geplant verarbeitet werden.

Berechtigungen

Standardmäßig verfügen Mitglieder der Datenbankrollen NSGenerator und NSRunService, der festen Datenbankrolle db_owner und der festen Serverrolle sysadmin über Berechtigungen zum Ausführen dieser gespeicherten Prozedur.

Beispiele

Im folgenden Beispiel wird gezeigt, wie die Quantumuhr so zurückgesetzt wird, dass die Verarbeitungsschritte vom 23. April 2004 um 9:00 Uhr, pazifische Sommerzeit, wiedergegeben werden. Die entsprechende UTC-Zeit ist 17:00 Uhr. Aus der EndTime-Spalte der NSQuantum1-Tabelle ist zu ersehen, dass das vorherige Quantum um 16:59 beendet wurde.

Von der Anwendung werden die standardmäßigen SchemaName-Einstellungen verwendet, wodurch alle Anwendungsobjekte im dbo-Schema platziert werden.

EXEC dbo.NSSetQuantumClockDate 
    @QuantumStartTime = '2004-04-23 16:59';

Siehe auch

Verweis

Gespeicherte Prozeduren in Notification Services (Transact-SQL)
NSQuantumList (Transact-SQL)

Andere Ressourcen

Notification Services-Leistungsberichte
SchemaName Element (ADF)

Hilfe und Informationen

Informationsquellen für SQL Server 2005