Partager via


NSSetQuantumClock (Transact-SQL)

Réinitialise l'horloge du quantum de l'application Microsoft SQL Server Notification Services avec l'heure de début d'un quantum précédent. Un nouveau quantum est créé avec la même heure de début UTC (Coordinated Universal Time ou heure GMT) que le quantum spécifié dans la procédure stockée. Cela vous permet de relire les quanta antérieurs.

Les deux scénarios suivants vous indiquent comment utiliser cette procédure stockée :

  • Lors du test d'une application, vous pouvez ajouter un abonnement planifié, puis tester cet abonnement en redéfinissant l'horloge du quantum comme requis.
  • Lors de l'analyse de problèmes du système, vous pouvez réinitialiser l'horloge du quantum et reproduire le comportement antérieur du système. Tous les traitements, tels que les lots d'événements et les abonnements planifiés, sont réexécutés exactement en temps réel, tant que le service NS$instance_name est en cours d'exécution et l'instance activée.

Syntaxe

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

Arguments

[ @QuantumId =] quantum_ID

Identificateur unique d'un quantum antérieur. quantum_id est de type int et ne possède pas de valeur par défaut.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Jeux de résultats

Aucun

Notes

Notification Services crée la procédure stockée NSSetQuantumClock dans la base de données des applications lorsque vous créez l'instance. Lorsque vous mettez à jour l'application, Notification Services recompile la procédure stockée.

Cette procédure stockée se trouve dans le schéma de l'application, spécifié par l'élément SchemaName du fichier de définition d'application. Si aucun nom de schéma n'est spécifié, le schéma par défaut est dbo.

Vous devez désactiver le générateur avant l'exécution de NSSetQuantumClock.

Dans le fichier ADF (fichier de définition d'application), vérifiez que les valeurs de ChronicleQuantumLimit et de SubscriptionQuantumLimit ne sont pas égales à zéro, ce qui signifie qu'il n'existe aucune limite de retour en arrière pour traiter des quanta. Si des limites différentes de zéro sont spécifiées, le générateur risque d'ignorer le quantum d'intérêt.

Le traitement du ramasse-miettes supprime des données du système. Si vous avez supprimé des données d'intérêt, le traitement de ces données peut être réexécuté.

Lorsque Notification Services tente de s'aligner sur les quanta précédents, les quanta les plus anciens sont prioritaires et sont traités en premier. Lorsque vous initialisez l'horloge du quantum, sachez que de nouveaux quanta peuvent être traités plus tard que prévu.

Autorisations

Les autorisations d'exécution reviennent par défaut aux membres des rôles de base de données NSGenerator et NSRunService, le rôle de base de données fixe db_owner et celui de serveur fixe sysadmin.

Exemples

L'exemple suivant illustre comment réinitialiser l'horloge du quantum afin de relire des quanta précédents, en démarrant par le quantum numéro 1. Un nouveau quantum est entré dans la table NSQuantum1 avec un nouveau numéro de quantum, mais dont la valeur StartTime équivaut à la valeur StartTime du quantum 1.

L'application utilise les paramètres SchemaName par défaut, qui place tous les objets d'application dans le schéma dbo.

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;

Si, par exemple, il existe actuellement quatre quanta dans la table NSQuantum1 et que le quantum 1 à démarré le 2002-05-23 à 17:23:37.640, lorsque vous exécutez cet exemple, le quantum 5 est entré avec une heure de début 2002-05-23 17:23:37.640. Lorsque vous activez le générateur, celui-ci relit tous les quanta en démarrant au quantum 1.

Voir aussi

Référence

Procédures stockées de Notification Services (Transact-SQL)
NSSetQuantumClockDate (Transact-SQL)

Autres ressources

Rapports de performances de Notification Services
SchemaName Element (ADF)

Aide et Informations

Assistance sur SQL Server 2005