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 會重新編譯預存程序。
這個預存程序在應用程式定義檔案 (ADF) 的 SchemaName 元素所指定的應用程式結構描述中。如果未提供結構描述名稱,預設結構描述便是 dbo。
您必須先停用產生器,才能執行 NSSetQuantumClock。
在應用程式定義檔案 (ADF) 中,請確定 ChronicleQuantumLimit 和 SubscriptionQuantumLimit 值都是零,這表示您可以往回處理配量到多遠,並沒有限制。如果指定了非零限制,產生器可能會略過您想要的配量。
移除處理會從系統中移除資料。如果您已移除想要的資料,便無法重新執行這項資料的處理程序。
當 Notification Services 嘗試追上先前的配量時,配量愈舊,優先順序愈高,會首先處理。當您初始化配量時鐘時,請注意,新配量的處理可能會晚於排程時間。
權限
執行權限預設會授與 NSGenerator 和 NSRunService 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。
範例
下列範例會顯示如何重設配量時鐘,從配量號碼 1 開始來重新執行先前的配量。新配量會以新的配量號碼來進入 NSQuantum1 資料表中,但 StartTime 值等於配量 1 的 StartTime 值。
應用程式使用預設的 SchemaName 設定,這項設定會將所有應用程式物件放在 dbo 結構描述中。
EXEC dbo.NSSetQuantumClock
@QuantumId = 1;
例如,如果 NSQuantum1 資料表中目前有四個配量,配量 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)