NSSetQuantumClock (Transact-SQL)

Reimposta l'orologio del quantum dell'applicazione Microsoft SQL Server Notification Services sull'ora di inizio di un quantum precedente. Viene creato un nuovo quantum con la stessa data e ora UTC (Coordinated Universal Time o ora di Greenwich) di inizio del quantum specificato nella stored procedure. In questo modo è possibile riprodurre quantum passati.

Di seguito vengono illustrate due possibilità di utilizzo di questa stored procedure:

  • Durante il test di un'applicazione è possibile aggiungere una sottoscrizione pianificata, quindi testare la sottoscrizione reimpostando l'orologio del quantum in base alle esigenze specifiche.
  • Durante la diagnosi dei problemi del sistema è possibile reimpostare l'orologio del quantum e riprodurre un comportamento passato del sistema. Tutta l'elaborazione, ad esempio batch di eventi e sottoscrizioni pianificate, viene riprodotta esattamente come in tempo reale, purché il servizio NS$instance_name sia in esecuzione e l'istanza sia attivata.

Sintassi

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

Argomenti

[ @QuantumId =] quantum_ID

Identificatore univoco di un quantum passato. quantum_id è di tipo int e non prevede alcun valore predefinito.

Set di risultati

Nessuno

Osservazioni

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

Prima di eseguire NSSetQuantumClock è necessario disattivare il generatore.

Nel file di definizione dell'applicazione (ADF) verificare che il valore di ChronicleQuantumLimit e il valore di SubscriptionQuantumLimit siano uguali a zero, a indicare che non vi sono limiti temporali per l'elaborazione dei quantum. Se vengono specificati limiti diversi da zero, il generatore potrebbe saltare il quantum di interesse.

L'esecuzione del processo Vacuumer rimuove dati dal sistema. Se sono stati rimossi dati di interesse, non sarà possibile riprodurre l'elaborazione di tali dati.

Quando Notification Services cerca di mettersi in pari con i quantum precedenti, i quantum meno recenti hanno la precedenza e vengono elaborati per primi. Quando si inizializza l'orologio del quantum è importante tenere presente che i nuovi quantum potrebbero venire elaborati più tardi rispetto a quanto pianificato.

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

Nell'esempio seguente viene illustrato come reimpostare l'orologio del quantum per la riproduzione di quantum precedenti a partire dal quantum numero 1. Viene immesso un nuovo quantum nella tabella NSQuantum1 con un nuovo numero di quantum ma con un valore StartTime uguale al valore StartTime del quantum 1.

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;

Se, ad esempio, nella tabella NSQuantum1 sono presenti quattro quantum e il quantum 1 ha avuto inizio il 23 maggio 2002 alle 17.23.37,640, quando si esegue questo esempio viene immesso un quantum 5 con data e ora di inizio 23 maggio 2002 17.23.37,640. Quando viene attivato, il generatore riproduce tutti i quantum a partire dal quantum 1.

Vedere anche

Riferimento

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

Altre risorse

Report sulle prestazioni di Notification Services
SchemaName Element (ADF)

Guida in linea e informazioni

Assistenza su SQL Server 2005