指定配量限制

在 Notification Services 中,產生器會維護它自己的時鐘,這個時鐘會將時間分成若干間隔。這些時間間隔,每個都稱為一個配量。您可以在定義應用程式時,設定間隔長度。

由於規則的處理可能落後於系統時鐘,因此,您可以定義一個產生器配量限制。這個配量限制用來決定落後於系統時鐘多久,產生器的配量時鐘仍可以執行,之後,Notification Services 便可能不處理某些規則。

產生器的配量時鐘

當應用程式最初啟動時,產生器的配量時鐘和系統時鐘是同步的。如果產生器配量間隔是五分鐘,產生器會每隔五分鐘引發一次規則,且會處理在過去五分鐘之內預定要處理的所有事件和排程訂閱。

如果執行個體、應用程式或產生器已停止或停用,或配量持續時間不足以引發給定配量中的所有規則,產生器的配量時鐘就會落在即時時鐘之後。

如果產生器配量時鐘落後,Notification Services 便會在引發事件紀事輯規則和訂閱規則上落後。Notification Services 會儘可能加快規則的引發和資料的處理,但可能要花一些時間才能趕上,這會隨著產生器配量時鐘落後多遠而不同。

產生器配量限制

您可以針對事件紀事輯規則和訂閱規則來限制產生器的配量時鐘能夠落後多遠。例如,您可以指定應用程式只能針對事件紀事輯規則落後四個配量,針對訂閱規則落後兩個配量。如果應用程式落後超出這些限制,它會開始省略引發規則,直到在限制之內。在這個情況下,當您重新啟動產生器時,Notification Services 不會引發四個配量之外的所有事件紀事輯規則,以及兩個配量之外的所有訂閱規則。

當產生器略過事件紀事輯規則時,不會處理在略過的配量中到達的事件批次。當產生器略過訂閱規則時,應用程式不會從略過的配量期間到達的事件產生通知,也不會從略過的配量期間之預期的排程訂閱產生通知。

配量限制圖解

在下列圖例中,產生器已重新啟動,且落在即時時鐘之後八個配量。紀事輯配量限制設為 4,訂閱規則限制設為 2。當產生器啟動時,它只會處理最後四個事件紀事輯規則,最後兩個訂閱規則。

配量限制效果

範例事件和訂閱時間表

產生器會針對在配量 5 到 8 中到達的事件批次 (E9 – E12) 來處理事件紀事輯規則,它們是最後四個配量。

產生器也會處理在配量 7 和 8 中預期處理之所有訂閱的訂閱規則,它們是最後兩個配量。在配量 7 以前所應處理之任何訂閱的訂閱規則都會略過,不會產生它們的通知。

決定配量限制值

當決定產生器配量限制值時,請在即時通知的需求和處理舊資料的價值之間,取得平衡。如果您必須有較即時的通知,請設定低的限制,如 1。如果您必須處理所有事件批次和訂閱,請將限制設為 0。

如果您要根據時間來設定限制,請將所需要的時間除以產生器配量持續時間。如果您的應用程式不要落後即時時鐘超出 60 分鐘,且您的配量持續時間是五分鐘,請將 60 除以 5,這會得出配量限制 12。

0 值表示沒有配量限制。Notification Services 會試圖處理所有配量。

預設配量限制是 1440 個配量。因此,如果配量持續時間是 1 分鐘,預設配量限制便是 1 天。

若要設定事件紀事輯規則的配量限制

  • 如果您利用 XML 來定義應用程式,請利用 ChronicleQuantumLimit Element (ADF) 來設定事件紀事輯規則的配量限制。
  • 如果您以程式設計的方式定義應用程式,請利用 ChronicleQuantumLimit 屬性 (NMO) 來設定事件紀事輯規則的配量限制。

若要設定訂閱規則的配量限制

請參閱

參考

ChronicleQuantumLimit
SubscriptionQuantumLimit

概念

指定應用程式執行設定
指定事件處理順序

其他資源

ChronicleQuantumLimit Element (ADF)
SubscriptionQuantumLimit Element (ADF)

說明及資訊

取得 SQL Server 2005 協助