NSSetQuantumClock(Transact-SQL)
Microsoft SQL Server Notification Services 응용 프로그램 퀀텀 시계를 이전 퀀텀의 시작 시간으로 다시 설정합니다. 새 퀀텀은 저장 프로시저에서 지정한 퀀텀과 동일한 UTC(Coordinated Universal Time 또는 그리니치 표준시) 시작 시간으로 생성됩니다. 이렇게 하면 이전 퀀텀을 재생할 수 있습니다.
다음 두 시나리오에서는 이 저장 프로시저의 사용 방법을 보여 줍니다.
- 응용 프로그램을 테스트할 경우 예약된 구독을 추가한 다음 필요에 따라 퀀텀 시계를 다시 설정하여 구독을 테스트할 수 있습니다.
- 시스템 문제를 진단할 경우 퀀텀 시계를 재설정하여 이전 시스템 동작을 재현할 수 있습니다. NS$instance_name 서비스가 실행되고 인스턴스가 활성화되어 있으면 이벤트 일괄 처리 및 정기 구독 같은 모든 처리가 실시간으로 정확하게 재생됩니다.
구문
[ schema_name . ] NSSetQuantumClock
[ @QuantumId = ] quantum_ID
인수
[ @QuantumId =] quantum_ID
이전 퀀텀의 고유 식별자입니다. quantum_id는 int이며 기본값은 없습니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
없음
주의
Notification Services 는 인스턴스를 만들 때 응용 프로그램 데이터베이스에 NSSetQuantumClock 저장 프로시저를 만듭니다. 응용 프로그램을 업데이트할 경우 Notification Services 는 저장 프로시저를 다시 컴파일합니다.
저장 프로시저는 ADF(응용 프로그램 정의 파일)의 SchemaName 요소로 지정된 응용 프로그램의 스키마에 있습니다. 제공된 스키마 이름이 없을 경우 기본 스키마는 dbo입니다.
NSSetQuantumClock을 실행하려면 먼저 생성자를 해제해야 합니다.
ADF(응용 프로그램 정의 파일)에서 ChronicleQuantumLimit와 SubscriptionQuantumLimit 값이 0이 되도록 해야 합니다. 0은 퀀텀을 처리할 수 있는 이전 범위에 제한이 없다는 의미입니다. 0이 아닌 제한값을 지정하면 생성자가 해당 퀀텀을 건너뛸 수 있습니다.
데이터 제거(Vacuum) 처리는 시스템에서 데이터를 제거합니다. 데이터가 제거되면 해당 데이터 처리를 재생할 수 없습니다.
Notification Services 에서 이전 퀀텀을 catch하려는 경우 오래된 퀀텀의 우선 순위가 높으므로 먼저 처리됩니다. 퀀텀 시계를 초기화할 경우 새 퀀텀은 일정보다 늦게 처리될 수 있습니다.
사용 권한
실행 권한은 기본적으로 NSGenerator 및 NSRunService 데이터베이스 역할, db_owner 고정 데이터베이스 역할 및sysadmin 고정 서버 역할의 멤버로 설정됩니다.
예
다음 예에서는 퀀텀 번호 1부터 퀀텀 시계를 다시 설정하여 이전 퀀텀을 재생하는 방법을 보여 줍니다. 새 퀀텀은 새 퀀텀 번호가 있는 NSQuantum1 테이블에 입력되지만 StartTime 값은 퀀텀 1의 StartTime 값과 동일합니다.
응용 프로그램은 모든 응용 프로그램 개체를 dbo 스키마에 배치하는 기본 SchemaName 설정을 사용합니다.
EXEC dbo.NSSetQuantumClock
@QuantumId = 1;
예를 들어 현재 NSQuantum1 테이블에 4개의 퀀텀이 있고 퀀텀 1이 2002-05-23 17:23:37.640에 시작된 경우 이 예를 실행하면 퀀텀 5의 시작 시간이 2002-05-23 17:23:37.640으로 입력됩니다. 생성자를 설정하면 생성자가 퀀텀 1에서 시작하여 모든 퀀텀을 재생합니다.
참고 항목
참조
Notification Services 저장 프로시저(Transact-SQL)
NSSetQuantumClockDate(Transact-SQL)
관련 자료
Notification Services 성능 보고서
SchemaName Element (ADF)