Compartir a través de


NSSetQuantumClock (Transact-SQL)

Restablece el reloj del cuanto de la aplicación de Microsoft SQL Server Notification Services en la hora de inicio de un cuanto anterior. Se crea un nuevo cuanto con la misma hora de inicio UTC (hora universal coordinada u hora del meridiano de Greenwich) que el cuanto especificado en el procedimiento almacenado. Esto permite reproducir cuantos antiguos.

En los dos escenarios siguientes se muestra cómo se puede utilizar este procedimiento almacenado:

  • Al probar una aplicación, se puede agregar una suscripción programada y después probarla restableciendo el reloj del cuanto según sea necesario.
  • Al diagnosticar problemas del sistema, puede restablecer el reloj del cuanto y reproducir comportamientos del sistema pasados. Todos los procesamientos (por ejemplo, lotes de eventos y suscripciones programadas) se reproducen igual que en tiempo real, siempre y cuando el servicio NS$instance_name se esté ejecutando y la instancia esté habilitada.

Sintaxis

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

Argumentos

[ @QuantumId =] quantum_ID

Es el identificador único de un cuanto pasado. quantum_id es de tipo int y no tiene ningún valor predeterminado.

Conjuntos de resultados

Ninguno

Notas

Notification Services crea el procedimiento almacenado NSSetQuantumClock en la base de datos de aplicación al crear la instancia. Al actualizar la aplicación, Notification Services vuelve a compilar el procedimiento almacenado.

Este procedimiento almacenado se encuentra en el esquema de la aplicación, que se especifica mediante el elemento SchemaName del archivo de definición de aplicación (ADF). Si no se proporciona ningún nombre de esquema, el esquema predeterminado es dbo.

Antes de ejecutar NSSetQuantumClock, debe deshabilitar el generador.

En el archivo de definición de aplicación (ADF), asegúrese de que los valores ChronicleQuantumLimit y SubscriptionQuantumLimit son cero, lo que significa que no hay ningún límite para el tiempo que puede retroceder para procesar cuantos. Si se especifican límites distintos de cero, puede que el generador no tenga en cuenta el cuanto en cuestión.

El proceso de supresión de datos (Vacuumer) quita los datos del sistema. Si ha quitado datos de interés, no se puede reproducir el procesamiento de esos datos.

Cuando Notification Services intenta ponerse al día con los cuantos anteriores, los más antiguos tienen prioridad y se procesan primero. Al inicializar el reloj del cuanto, es posible que los cuantos nuevos se procesen más tarde de lo programado.

Permisos

De forma predeterminada, los permisos de ejecución corresponden a los miembros de las funciones de base de datos NSGenerator y NSRunService, la función fija de base de datos db_owner y la función fija de servidor sysadmin.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

En el ejemplo siguiente se muestra cómo restablecer el reloj del cuanto para reproducir cuantos anteriores, empezando por el cuanto número 1. Se indica un nuevo cuanto en la tabla NSQuantum1 con un número de cuanto nuevo pero con un valor de StartTime igual al valor StartTime del cuanto 1.

La aplicación utiliza la configuración predeterminada de SchemaName, que coloca todos los objetos de la aplicación en el esquema dbo.

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;

Por ejemplo, si actualmente hay cuatro cuantos en la tabla NSQuantum1 y el cuanto 1 comenzó el 2002-05-23 17:23:37.640, al ejecutar este ejemplo se indica el cuanto 5 con una hora de inicio 2002-05-23 17:23:37.640. Al habilitar el generador, éste reproduce todos los cuantos a partir del número 1.

Vea también

Referencia

Procedimientos almacenados de Notification Services (Transact-SQL)
NSSetQuantumClockDate (Transact-SQL)

Otros recursos

Informes de rendimiento de Notification Services
SchemaName Element (ADF)

Ayuda e información

Obtener ayuda sobre SQL Server 2005