為了提高工作流程效能,管理者可以配置系統進行非同步(背景)規則處理,且工作流程作者可識別需要這項處理的特定規則集。
雖然規則軟體在幾微秒之內就能執行大部分規則集,但有些規則集(例如資料庫查閱)需要較長的處理時間。處理用戶端要求的工作流程系統伺服器執行緒在等待規則軟體回應時,無暇處理其他送入的要求。
非同步處理會使工作流程系統產生額外負載,因為它需要安排背景規則執行、額外佇列和額外處理。對於指定非同步處理的規則集,工作流程系統會將規則執行排入 ISI 佇列中,進行背景執行。未指定非同步處理的規則集,則透過正常執行路徑執行。因此,為避免整體系統退化,只有需要較長處理時間的規則集才應該歸類為非同步處理。
重要: 搭配「儲存時」選項來使用「非同步規則」會導致您的應用程式發生非預期的行為,因為在執行該規則之後,先前鎖定的步驟將自動解除鎖定。當規則以非同步方式執行時,工作項目會從其佇列移除,並放到 isi 佇列中,等待 vwisi 執行緒執行,然後再回到原始佇列中。在此程序期間,您無法保留工作物件的鎖定,因此在非同步規則執行之後,先前鎖定的工作項目將不再被使用者鎖定。
此問題不適用於步驟「執行之前」或「完成之後」非同步執行的規則。
如果 isi 執行緒清空其佇列的速度不夠快,您可以使用下列程序來增加 vwisi 執行緒的數目,以服務 InstructionSheetInterpreter 佇列。
- 在管理主控台中,增加工作流程子系統的主要執行緒上限數。
- 在網域導覽窗格中,選取網域。
- 在工作流程子系統標籤中,增加主要執行緒上限數值。
如果您有 Rules Engine 無法在小於一秒內執行的規則集,您可以完成下列步驟來啟用非同步規則處理:
- 在管理主控台中存取遠端伺服器的配置:
- 在網域導覽窗格中,選取物件儲存庫。
- 在物件儲存庫導覽窗格中,按一下。
- 在詳細資料窗格中,按一下遠端伺服器標籤。
- 在遠端伺服器標籤上,選中容許非同步規則勾選框,使「非同步規則」選項可以在「程序設計程式」中使用。
- 與工作流程作者一起合作,識別將使用非同步處理的特定規則集。