NSSetQuantumClock (Transact-SQL)

Setzt die Quantumuhr der Microsoft SQL Server Notification Services-Anwendung auf die Startzeit eines früheren Quantums zurück. Es wird ein neues Quantum erstellt, das dieselbe UTC-Startzeit (Coordinated Universal Time, Koordinierte Weltzeit oder Greenwich Mean Time) wie das in der gespeicherten Prozedur angegebene Quantum aufweist. Hierdurch ist es Ihnen möglich, zurückliegende Quanten wiederzugeben.

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 der NS$instance_name-Dienst ausgeführt wird und die Instanz aktiviert ist.

Syntax

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

Argumente

[ @QuantumId =] quantum_ID

Der eindeutige Bezeichner eines zurückliegenden Quantums. quantum_id ist ein Wert vom Datentyp int und hat keinen Standardwert.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Notification Services erstellt die gespeicherte Prozedur NSSetQuantumClock 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 NSSetQuantumClock ausführen.

Stellen Sie sicher, dass ChronicleQuantumLimit und SubscriptionQuantumLimit in der ADF auf 0 festgelegt sind. Hierdurch geben Sie an, dass die Verarbeitung zurückliegender Quanten unbegrenzt ist und nicht nur bis zu einem bestimmten Zeitpunkt in der Vergangenheit möglich ist. Wenn eine Begrenzung ungleich 0 angegeben wird, 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 zurückgesetzt werden kann, um zurückliegende Quanten, beginnend mit Quantumnummer 1, wiederzugeben. Ein neues Quantum wird in die NSQuantum1-Tabelle eingetragen. Dieses Quantum erhält eine neue Quantumnummer, weist jedoch einen StartTime-Wert auf, der mit dem StartTime-Wert von Quantum 1 identisch ist.

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

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;

Angenommen, die NSQuantum1-Tabelle enthält derzeit vier Quanten, und die Startzeit von Quantum 1 ist 2002-05-23 17:23:37.640. Wenn Sie nun dieses Beispiel ausführen, wird Quantum 5 mit der Startzeit 2002-05-23 17:23:37.640 in die Tabelle eingetragen. Wenn Sie den Generator aktivieren, gibt er alle Quanten wieder, beginnend mit Quantum 1.

Siehe auch

Verweis

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

Andere Ressourcen

Notification Services-Leistungsberichte
SchemaName Element (ADF)

Hilfe und Informationen

Informationsquellen für SQL Server 2005