Condividi tramite


NSSetQuantumClockDate (Transact-SQL)

Reimposta l'orologio del quantum di un'applicazione di Microsoft SQL Server Notification Services su un'ora specifica, il che risulta utile per l'esecuzione continua di un'applicazione nello stesso intervallo di tempo a scopo di testing impostando una data e un'ora specifiche, ad esempio le 9.00 di lunedì mattina.

Nei due scenari seguenti viene illustrata la modalità di utilizzo di questa stored procedure:

  • Durante il testing di un'applicazione, è possibile aggiungere una sottoscrizione pianificata e quindi testare tale sottoscrizione reimpostando l'orologio del quantum in base alle necessità.
  • Durante la diagnosi di errori di sistema, è possibile reimpostare l'orologio del quantum e riprodurre il funzionamento precedente del sistema. Tutte le elaborazioni, ad esempio i batch di eventi e le sottoscrizioni pianificate, vengono rieseguite esattamente come in tempo reale, a condizione che l'istanza sia in esecuzione e attivata.

Sintassi

NSSetQuantumClockDate 
    [ @QuantumStartTime = ] 'start_date_time'

Argomenti

[ @StartDateTime = ] 'start_date_time'

Valore iniziale precedente di data e ora UTC (Coordinated Universal Time o ora di Greenwich) datetime, per l'orologio del quantum. In tal modo viene imposto al generatore di avviare un nuovo quantum in una data e un'ora anteriori, rieseguendo le elaborazioni precedenti. Poiché data e ora sono impostate nel passato, il generatore elabora il quantum il prima possibile.

Set di risultati

Nessuno

Osservazioni

Quando viene creata l'istanza, Notification Services crea la stored procedure NSSetQuantumClockDate nel database dell'applicazione. 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 NSSetQuantumClockDate è necessario disattivare il generatore.

NSSetQuantumClockDate inizializza l'orologio del quantum, in modo che il valore @QuantumStartTime venga incluso nel primo quantum elaborato dal generatore dopo l'esecuzione della procedura.

Per trovare l'ora di inizio del quantum, utilizzare la stored procedure NSQuantumList. Nel set dei risultati sono inclusi i valori relativi a ora di inizio e ora di fine, in UTC, per ogni quantum.

Nel file di definizione dell'applicazione (ADF), se i valori ChronicleQuantumLimit e SubscriptionQuantumLimit sono diversi da zero (ad indicare che non esiste un limite di tempo nel passato oltre il quale è possibile elaborare i quantum), il generatore potrebbe saltare il quantum di interesse.

Il processo di rimozione dei dati rimuove i dati dal sistema. Se sono stati rimossi dati di interesse, non è possibile rieseguire l'elaborazione di tali dati.

Quando Notification Services tenta 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, tenere presente che i nuovi quantum potrebbero essere elaborati in un periodo successivo rispetto a quello 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 rieseguire quanto accaduto il 23 aprile 2004, alle 9.00, ora del Pacifico, corrispondente alle 17.00 dell'ora UTC (Coordinated Universal Time o ora di Greenwich). Nella colonna EndTime della tabella NSQuantum1 viene indicato che il quantum precedente è terminato alle 16.59.

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

EXEC dbo.NSSetQuantumClockDate 
    @QuantumStartTime = '2004-04-23 16:59';

Vedere anche

Riferimento

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

Altre risorse

Report sulle prestazioni di Notification Services
SchemaName Element (ADF)

Guida in linea e informazioni

Assistenza su SQL Server 2005