NSExecuteRuleFiring (Transact-SQL)

Prépare et exécute les règles de l'application Notification Services de Microsoft SQL Server. Ceci vous permet aussi d'exécuter manuellement le générateur pour créer des règles capables de générer des notifications et de gérer l'état.

Que l'activation des règles ait aboutie ou non, cette procédure stockée essaie de préparer l'activation suivante en créant un affichage matérialisé des événements et des abonnements planifiés afin de vous laisser déboguer le comportement de l'activation de règles.

Syntaxe

[ application_schema_name . ] NSExecuteRuleFiring 
    [ [ @ReportExecutionResults = ] report_flag ]
    [, [ @DisableQuantumLimits = ] limit_flag ]

Arguments

[@ReportExecutionResults = ] report_flag

Indique si la procédure stockée consigne des informations sur l'exécution de l'activation des règles. Des valeurs différentes de zéro indiquent que des informations sont renvoyées sur l'activation des règles. report_flag est de type tinyint et a une valeur par défaut de 1.

[@DisableQuantumLimits = ] limit_flag

Indique si la procédure stockée respecte les limites maximales fixées pour le quanta de chronique d'événements et d'abonnement par l'application. Une valeur différente de zéro indique que la planification du quantum ne tient pas compte des limites fixées. limit_flag est de type tinyint et a une valeur par défaut de 1.

Jeux de résultats

NSExecuteRuleFiring produit jusqu'à trois jeux de résultats. Le premier jeu de résultats contient les informations relatives aux règles planifiées.

Nom de colonne Type de données Description

QuantumId

int

Numéro d'identification du quantum pour l'activation de la règle.

QuantumStartTime

datetime

Date et heure de début, en temps universel coordonné (ou temps moyen de Greenwich), du quantum contenant la règle.

QuantumEndTime

datetime

Date et heure de fin, en temps universel, du quantum contenant la règle.

RuleName

nvarchar(255)

Nom attribué à la règle dans le fichier ADF (fichier de définition d'application). Si aucune règle n'est prête à s'exécuter, cette valeur est NULL.

EventClassName

nvarchar(255)

Pour les règles déclenchées par un événement, nom de la classe d'événements associée. Si la règle est une règle d'abonnement planifié ou si aucune règle n'est prête à s'exécuter, cette valeur est NULL.

SubscriptionClassName

nvarchar(255)

Nom de la classe d'abonnement associée. Si la règle est une règle de chronique d'événements ou si aucune règle n'est prête à s'exécuter, cette valeur est NULL.

RuleFiringId

int

Numéro d'identification de l'activation de règle préparée. La colonne a la valeur NULL si aucune activation de règle n'est prête à s'exécuter.

EventBatchId

bigint

Numéro d'identification du lot d'événements associé. Si la règle n'est ni une règle de chronique d'événement ni une règle d'abonnement, l'application ne traite pas les événements dans l'ordre, et s'il n'y a pas de règle prête à s'exécuter, la valeur est NULL.

StartScanTime

datetime

Date et heure de début, en temps universel, d'une règle d'abonnement planifiée préparée. La date et l'heure de début doivent être comprises entre QuantumStartTime et QuantumEndTime.

Si la règle n'est ni une règle de chronique d'événement ni une règle d'abonnement, l'application ne traite pas les événements dans l'ordre, et s'il n'y a pas de règle prête à s'exécuter, la valeur est NULL.

EndScanTime

datetime

Date et heure de fin, en temps universel, d'une règle d'abonnement planifiée préparée. La date et l'heure de fin doivent être comprises entre QuantumStartTime et QuantumEndTime.

Si la règle n'est ni une règle de chronique d'événement ni une règle d'abonnement, l'application ne traite pas les événements dans l'ordre, et s'il n'y a pas de règle prête à s'exécuter, la valeur est NULL.

RemainingQuantumRuleFirings

int

Nombre d'activations de règles restant pour terminer l'activation des règles pour le quantum. Ce nombre tient compte des activations de règles préparées puisqu'elles n'ont pas encore été exécutées. S'il n'existe aucune règle à préparer, cette valeur est 0.

Le deuxième jeu de résultats n'apparaît qu'en cas d'impacts éventuels sur les chroniques. Ce jeu de résultats est ordonné en fonction de PossibleChronicleReferenceByRule.

Nom de colonne Type de données Description

PossibleChronicleReferenceByRule

nvarchar(255)

Nom de la chronique d'événements associée à une activation de règle préparée.

Le troisième jeu de résultats n'apparaît que si la procédure stockée a généré des notifications. Le jeu de résultats contient des informations relatives aux notifications et est regroupé en fonction de la valeur NotificationClassName.

Nom de colonne Type de données Description

NotificationClassName

nvarchar(255)

Nom de la classe de notification qui a généré les notifications.

NotificationBatchId

bigint

Numéro d'identification du lot de notifications qui contient les notifications générées.

NotificationCount

bigint

Nombre de notifications générées par l'activation de règle.

StartGenerationTime

datetime

Date et heure de début, en temps universel, du lot de notifications.

EndGenerationTime

datetime

Date et heure de fin, en temps universel, du lot de notifications.

Notes

Notification Services crée la procédure stockée NSExecuteRuleFiring dans la base de données d'application lors de la création de l'instance. Lors de la mise à jour de l'application, Notification Services recompile la procédure stockée.

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

Le générateur doit être désactivé pour pouvoir exécuter la procédure stockée NSExecuteRuleFiring. Dans la mesure où cette procédure stockée a manuellement recours au générateur, il convient de ne pas activer le générateur en même temps pour ne pas perturber le bon fonctionnement de cette procédure stockée.

Utilisez la procédure stockée NSPrepareRuleFiring si vous souhaitez simplement préparer la base de données d'application en vue d'une activation de règle, sans avoir l'intention d'activer vraiment la règle.

Autorisations

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

Valeurs des codes renvoyés

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

Exemple

A. Consignation des résultats sans prise en compte des limites de quantum

L'exemple suivant montre comment définir l'ID de quantum à 1 et activer la règle pour ce quantum. La procédure stockée renvoie les résultats et ne tient pas compte des limites de quantum fixées dans le fichier ADF.

L'application utilise le paramètre SchemaName par défaut afin de placer tous les objets d'application dans le schéma dbo.

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;
EXEC dbo.NSExecuteRuleFiring 
    @ReportExecutionResults = 1,
    @DisableQuantumLimits = 0;

Lorsque vous activez l'application après avoir suivi cet exemple, l'horloge du quantum tourne à partir du quantum ID 1 ; l'horloge du quantum ne repart pas automatiquement à partir du dernier quantum lors de l'activation.

B. Utilisation des paramètres par défaut

L'exemple suivant montre comment définir l'ID de quantum à 100 et activer la règle pour ce quantum à l'aide des paramètres par défaut. La procédure stockée ne renvoie aucun résultat et ne tient pas compte des limites de quantum.

Dans cet exemple, la procédure stockée (à l'instar des autres objets d'application) se trouve dans le schéma Stock, conformément à ce qui est indiqué dans l'élément SchemaName du fichier ADF.

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 100;
EXEC Stock.NSExecuteRuleFiring;

Lorsque vous activez l'application après avoir suivi cet exemple, l'horloge du quantum tourne à partir du quantum ID 100 ; l'horloge du quantum ne repart pas automatiquement à partir du dernier quantum lors de l'activation.

Voir aussi

Référence

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

Autres ressources

Rapports de performances de Notification Services
SchemaName Element (ADF)

Aide et Informations

Assistance sur SQL Server 2005