NSPrepareRuleFiring (Transact-SQL)

Prepara il database dell'applicazione per l'esecuzione di regole, verificando che sia stato pianificato un quantum, che le viste di eventi e di sottoscrizioni pianificate siano materializzate in modo corretto per il quantum e che per il quantum siano pianificate esecuzioni di regole in base al set di eventi e sottoscrizioni disponibile.

Al termine della stored procedure, lo stato del database dell'applicazione è equivalente allo stato esistente prima dell'esecuzione della regola durante il normale funzionamento del generatore.

Sintassi

[ application_schema_name . ] NSPrepareRuleFiring 
    [ [ @ReportPossibleEventChronicleUsage = ] chronical_usage_flag ]
    [, [ @DisableQuantumLimits = ] quantum_limits_flag ]

Argomenti

[ @ReportPossibleEventChronicleUsage = ] chronical_usage_flag

Indica se la routine di esecuzione della regola preparata restituisce un elenco delle cronologie di eventi che possono essere interessate o utilizzate dall'esecuzione della regola. Se si specifica un valore diverso da zero, la routine restituirà un set di risultati con l'elenco delle cronologie di eventi associate all'esecuzione della regola preparata. chronical_usage_flag è di tipo tinyint e il valore predefinito è 1.

[ @DisableQuantumLimits = ] quantum_limits_flag

Indica se la pianificazione di un nuovo quantum utilizza il valore di ChronicleQuantumLimit e il valore di SubscriptionQuantumLimit delle impostazioni di esecuzione dell'applicazione contenute nel file di definizione dell'applicazione (ADF). Un valore diverso da zero indica che la stored procedure non deve utilizzare queste impostazioni per saltare uno o più periodi di quantum. quantum_limits_flag è di tipo tinyint e il valore predefinito è 1.

Set di risultati

NSPrepareRuleFiring genera uno o due set di risultati. Il primo set di risultati contiene informazioni sulla regola.

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.

Osservazioni

Notification Services crea la stored procedure NSPrepareRuleFiring 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.

La stored procedure può essere eseguita solo quando il generatore è disattivato o la disattivazione è in sospeso.

La stored procedure può essere chiamata ripetutamente senza chiamare NSExecuteRuleFiring, ma lo stato nel database dell'applicazione non verrà modificato. L'unico modo per portare lo stato del database dell'applicazione oltre un'esecuzione di regola preparata, consiste nell'utilizzare la stored procedure NSExecuteRuleFiring o nell'avviare l'istanza.

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 del report sull'utilizzo delle cronologie e utilizzo dei limiti del quantum

Nell'esempio seguente viene illustrato come preparare il database per l'esecuzione delle regole pianificate dal quantum 1, creando un report sul possibile utilizzo delle cronologie degli eventi. L'esecuzione delle regole non 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.NSPrepareRuleFiring 
    @ReportPossibleEventChronicleUsage = 1,
    @DisableQuantumLimits = 0;

B. Utilizzo delle impostazioni predefinite

Nell'esempio seguente viene illustrato come preparare il database per l'esecuzione delle regole pianificate dal quantum 100 utilizzando le impostazioni predefinite della stored procedure.La stored procedure non crea un report sull'utilizzo delle cronologie degli eventi 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.NSPrepareRuleFiring;

Vedere anche

Riferimento

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

Altre risorse

Report sulle prestazioni di Notification Services
SchemaName Element (ADF)

Guida in linea e informazioni

Assistenza su SQL Server 2005