Condividi tramite


NSExecuteRuleFiring (Transact-SQL)

Prepara ed esegue regole di Microsoft SQL Server Notification Services. In questo modo è possibile eseguire il generatore a mano, eseguendo le regole per generare le notifiche e gestire lo stato.

Indipendentemente dal fatto che l'esecuzione della regola abbia esito positivo, la stored procedure cerca di preparare l'esecuzione della regola successiva materializzando le viste degli eventi e delle sottoscrizioni pianificate appropriate, in modo che sia possibile eseguire il debug dell'esecuzione della regola.

Sintassi

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

Argomenti

[@ReportExecutionResults = ] report_flag

Indica se la stored procedure deve creare un report sull'esecuzione della regola. Se si specifica un valore diverso da zero, verranno restituite informazioni sull'esecuzione della regola. report_flag è di tipo tinyint e il valore predefinito è 1.

[@DisableQuantumLimits = ] limit_flag

Indica se la stored procedure deve rispettare i limiti specificati dall'applicazione per il quantum della cronologia degli eventi e il quantum della sottoscrizione. Se si specifica un valore diverso da zero, la pianificazione del quantum ignorerà i limiti del quantum. limit_flag è di tipo tinyint e il valore predefinito è 1.

Set di risultati

NSExecuteRuleFiring genera fino a tre set di risultati. Il primo set di risultati contiene informazioni su tutte le regole pianificate.

Nome colonna Tipo di dati Descrizione

QuantumId

int

ID del quantum per l'esecuzione della regola.

QuantumStartTime

datetime

Data e ora UTC (Coordinated Universal Time o ora di Greenwich) di inizio del quantum che contiene la regola.

QuantumEndTime

datetime

Data e ora UTC di fine del quantum che contiene la regola.

RuleName

nvarchar(255)

Nome assegnato alla regola nel file di definizione dell'applicazione (ADF). Se non vi è alcuna regola pronta per l'esecuzione, il valore è NULL.

EventClassName

nvarchar(255)

Per le regole attivate da eventi, nome della classe di eventi correlata. Se la regola è una regola di sottoscrizione pianificata oppure se non vi è alcuna regola pronta per l'esecuzione, il valore è NULL.

SubscriptionClassName

nvarchar(255)

Nome della classe di sottoscrizione correlata. Se la regola è una regola di cronologia degli eventi oppure se non vi è alcuna regola pronta per l'esecuzione, il valore è NULL.

RuleFiringId

int

ID che identifica l'esecuzione della regola preparata. La colonna è NULL se non vi è alcuna esecuzione di regola pronta.

EventBatchId

bigint

ID che identifica il batch di eventi correlato. Il valore è NULL se la regola non è una regola di cronologia degli eventi o di sottoscrizione degli eventi, se l'applicazione non elabora gli eventi in ordine oppure se non è disponibile una regola pronta per l'esecuzione.

StartScanTime

datetime

Data e ora UTC di inizio di una regola di sottoscrizione pianificata preparata. La data e l'ora di inizio devono essere comprese tra i valori di QuantumStartTime e QuantumEndTime.

Il valore è NULL se la regola non è una regola di cronologia degli eventi o di sottoscrizione degli eventi, se l'applicazione non elabora gli eventi in ordine oppure se non è disponibile una regola pronta per l'esecuzione.

EndScanTime

datetime

Data e ora UTC di fine di una regola di sottoscrizione pianificata preparata. La data e l'ora di fine devono essere comprese tra i valori di QuantumStartTime e QuantumEndTime.

Il valore è NULL se la regola non è una regola di cronologia degli eventi o di sottoscrizione degli eventi, se l'applicazione non elabora gli eventi in ordine oppure se non è disponibile una regola pronta per l'esecuzione.

RemainingQuantumRuleFirings

int

Numero di esecuzioni di regole rimanenti per completare l'esecuzione della regola per il quantum. Questo numero comprende tutte le esecuzioni di regole preparate perché non sono state eseguite. Se non vi sono regole da preparare, il valore è 0.

Il secondo set di risultati viene visualizzato solo se vi possono essere conseguenze per le cronologie. Il set di risultati è ordinato per PossibleChronicleReferenceByRule.

Nome colonna Tipo di dati Descrizione

PossibleChronicleReferenceByRule

nvarchar(255)

Nome della cronologia degli eventi associata a un'esecuzione di regola preparata.

Il terzo set di risultati viene visualizzato solo se la stored procedure ha creato notifiche. Il set di risultati contiene informazioni sulle notifiche ed è raggruppato in base al valore di NotificationClassName.

Nome colonna Tipo di dati Descrizione

NotificationClassName

nvarchar(255)

Nome della classe di notifica che ha generato le notifiche.

NotificationBatchId

bigint

ID del batch di notifiche che contiene le notifiche generate.

NotificationCount

bigint

Numero di notifiche generate dall'esecuzione della regola.

StartGenerationTime

datetime

Data e ora UTC di inizio per il batch di notifiche.

EndGenerationTime

datetime

Data e ora UTC di fine per il batch di notifiche.

Osservazioni

Notification Services crea la stored procedure NSExecuteRuleFiring nel database dell'applicazione quando viene creata l'istanza. Quando si aggiorna l'applicazione, Notification Services ricompila la stored procedure.

Questa stored procedure è disponibile nello schema dell'applicazione, specificato dall'elemento SchemaName del file di definizione dell'applicazione (ADF). Se non si specifica un nome di schema, viene utilizzato lo schema predefinito dbo.

Il generatore deve essere disattivato per l'esecuzione della stored procedure NSExecuteRuleFiring. Dal momento che questa stored procedure consente di eseguire il generatore a mano, l'esecuzione contemporanea del generatore renderebbe difficile utilizzare la stored procedure.

Utilizzare la stored procedure NSPrepareRuleFiring se si desidera solo preparare il database dell'applicazione per l'esecuzione di una regola e non eseguire realmente la regola.

Autorizzazioni

Le autorizzazioni di esecuzione vengono assegnate per impostazione predefinita ai membri dei ruoli di database NSGenerator e NSRunService, del ruolo predefinito del database db_owner e del ruolo predefinito del server sysadmin.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

A. Creazione di un report ignorando i limiti del quantum

Nell'esempio seguente viene illustrato come impostare l'ID del quantum su 1 ed eseguire la regola per tale quantum. La stored procedure crea un report e ignora i limiti del quantum specificati nel file di definizione dell'applicazione (ADF).

L'applicazione utilizza le impostazioni predefinite di SchemaName, che prevedono l'inserimento di tutti gli oggetti dell'applicazione nello schema dbo.

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

Quando si attiva l'applicazione dopo aver eseguito questo esempio, l'orologio del quantum continua dal quantum con ID 1. L'orologio del quantum non viene reimpostato automaticamente sul quantum più recente.

B. Utilizzo delle impostazioni predefinite

Nell'esempio seguente viene illustrato come impostare l'ID del quantum su 100 ed eseguire la regola per tale quantum utilizzando le impostazioni predefinite. La stored procedure non crea un report e ignora i limiti del quantum.

In questo esempio, la stored procedure (come tutti gli altri oggetti dell'applicazione) è inclusa nello schema Stock, come specificato nell'elemento SchemaName del file di configurazione dell'applicazione (ADF).

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

Quando si attiva l'applicazione dopo aver eseguito questo esempio, l'orologio del quantum continua dal quantum con ID 100. L'orologio del quantum non viene reimpostato automaticamente sul quantum più recente.

Vedere anche

Riferimento

NSPrepareRuleFiring (Transact-SQL)
NSSetQuantumClock (Transact-SQL)
NSSetQuantumClockDate (Transact-SQL)
Stored procedure di Notification Services (Transact-SQL)
NSPrepareRuleFiring (Transact-SQL)

Altre risorse

Report sulle prestazioni di Notification Services
SchemaName Element (ADF)

Guida in linea e informazioni

Assistenza su SQL Server 2005