NSSetQuantumClockDate (Transact-SQL)
將 Microsoft SQL Server Notification Services 應用程式配量時鐘重設為特定時間。當您想設定確切的時間 (如星期一早上 9:00),以便在相同時間間隔內連續執行應用程式來進行測試時,這會很有用。
下列兩個狀況顯示如何使用這個預存程序:
- 當測試應用程式時,您可以加入一個已排程的訂閱,再依照需要重設配量時鐘來測試這項訂閱。
- 當診斷系統問題時,您可以重設配量時鐘,再重新產生先前的系統行為。只要執行個體在執行中,且已啟用,就會完全依照真正時間來重新執行所有處理程序 (如事件批次和定時訂閱)。
語法
NSSetQuantumClockDate
[ @QuantumStartTime = ] 'start_date_time'
引數
[ @QuantumStartTime = ] 'start_date_time'
這是配量時鐘先前的起始 datetime 值 (以 UTC 表示,國際標準時間)。這會強迫產生器在過去的時間開始一項新的配量,以重新執行先前的處理程序。由於時間在過去,因此,產生器會儘快處理這項配量。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
無
備註
當您建立執行個體時,Notification Services 會在應用程式資料庫中,建立 NSSetQuantumClockDate 預存程序。當您更新應用程式時,Notification Services 會重新編譯預存程序。
這個預存程序在應用程式定義檔案 (ADF) 的 SchemaName 元素所指定的應用程式結構描述中。如果未提供結構描述名稱,預設結構描述便是 dbo。
您必須先停用產生器,才能執行 NSSetQuantumClockDate。
NSSetQuantumClockDate 會初始化配量時鐘,因此,在執行這個程序之後,@QuantumStartTime 值會併入產生器所處理的第一項配量內。
若要找到配量開始時間,請使用 NSQuantumList 預存程序。結果集會顯示每項配量的開始時間和結束時間值 (以 UTC 為單位)。
在應用程式定義檔案 (ADF) 中,如果 ChronicleQuantumLimit 和 SubscriptionQuantumLimit 值不是零 (零表示您可以往回處理配量到多遠,並沒有限制),產生器可能會略過您想要的配量。
移除處理會從系統中移除資料。如果您已移除想要的資料,便無法重新執行這項資料的處理程序。
當 Notification Services 嘗試追上先前的配量時,配量愈舊,優先順序愈高,會首先處理。當您初始化配量時鐘時,請注意,新配量的處理可能會晚於排程時間。
權限
執行權限預設會授與 NSGenerator 和 NSRunService 資料庫角色、db_owner 固定資料庫角色以及系統管理員 (sysadmin) 固定伺服器角色的成員。
範例
下列範例會顯示如何重設配量時鐘,使它在重新執行太平洋白晝時間 2004 年 4 月 23 日上午 9:00 發生的情況。對等的 UTC 時間是 17:00,NSQuantum1 資料表中的 EndTime 資料行顯示先前的配量在 16:59 結束。
應用程式使用預設的 SchemaName 設定,這項設定會將所有應用程式物件放在 dbo 結構描述中。
EXEC dbo.NSSetQuantumClockDate
@QuantumStartTime = '2004-04-23 16:59';
請參閱
參考
Notification Services 預存程序 (Transact-SQL)
NSQuantumList (Transact-SQL)
其他資源
Notification Services 效能報告
SchemaName Element (ADF)