Поделиться через


NSSetQuantumClock (Transact-SQL)

Сбрасывает тактовый генератор приложения служб Microsoft SQL Server Notification Services на время начала предыдущего такта. Новый такт создается с тем же временем начала в формате UTC, что и такт, заданный в хранимой процедуре. Это делает возможным воспроизведение прошедшего такта.

Следующие два сценария показывают, как можно использовать данную хранимую процедуру:

  • При тестировании приложения можно добавить одну подписку по расписанию, а затем проверить эту подписку, при необходимости сбросив тактовый генератор.
  • При диагностике системных проблем можно сбросить тактовый генератор и воспроизвести поведение системы в прошлом. Любая обработка, например пакеты событий и подписки по расписанию, воспроизводится точно так же, как и в реальном времени, пока служба NS$instance_name запущена и экземпляр включен.

Синтаксис

[ schema_name . ] NSSetQuantumClock 
    [ @QuantumId = ] quantum_ID

Аргументы

  • [ @QuantumId =] quantum_ID
    Уникальный идентификатор прошедшего такта. Аргумент quantum_id имеет тип int и не имеет значения по умолчанию.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Службы Notification Services при создании экземпляра создают в базе данных приложения хранимую процедуру NSSetQuantumClock. При обновлении приложения службы Notification Services перекомпилирует хранимую процедуру.

Эта хранимая процедура находится в схеме приложения, заданной элементом SchemaName файла определения приложения (ADF). Если имя схемы не задано, применяется схема по умолчанию dbo.

Перед запуском процедуры NSSetQuantumClock необходимо отключить генератор.

Удостоверьтесь, что в файле определения приложения (ADF) значения ChronicleQuantumLimit и SubscriptionQuantumLimit равны нулю, что означает отсутствие ограничений на обратную обработку тактов. Если указаны ненулевые пределы, генератор может пропустить нужный такт.

В процессе очистки данные удаляются из системы. Если нужные данные удалены, воспроизведение обработки этих данных невозможно.

Когда службы Notification Services пытаются наверстать предыдущий такт, старые такты имеют преимущество и обрабатываются первыми. При инициализации тактового генератора следует иметь в виду, что новые такты могут обрабатываться позже, чем назначено в расписании.

Разрешения

По умолчанию разрешения на выполнение назначены членам ролей баз данных NSGenerator и NSRunService, фиксированной роли баз данных db_owner и фиксированной серверной роли sysadmin.

Примеры

В следующем примере показано, как сбросить тактовый генератор для воспроизведения предыдущих тактов, начиная с номера 1. Новый такт вводится в таблицу NSQuantum1 под новым номером, но со значением StartTime, равным значению StartTime для такта 1.

Приложением используются настройки схемы SchemaName по умолчанию, при которых все объекты приложения помещаются в схему dbo.

EXEC dbo.NSSetQuantumClock 
    @QuantumId = 1;

Например, если в таблице NSQuantum1 на данный момент имеются четыре такта, а начало такта 1 — 17:23:37.640 23.05.2002, при запуске данного примера вводится такт 5 со временем начала 17:23:37.640 23.05.2002. При включении генератор воспроизводит все такты, начиная с такта 1.

См. также

Справочник

Хранимые процедуры служб Notification Services (Transact-SQL)
NSSetQuantumClockDate (Transact-SQL)

Другие ресурсы

Отчеты о производительности служб Notification Services
SchemaName Element (ADF)

Справка и поддержка

Получение помощи по SQL Server 2005