Work Manager和限制

AEM表單(及舊版)使用JMS佇列,以非同步方式執行操作。 在AEM表單中,JMS隊列已被Work Manager替換。 本文檔提供了有關Work Manager的背景資訊,並提供了有關配置Work Manager限制選項的說明。

關於長期(非同步)操作

在AEM表單中,由服務執行的操作可以是短期(同步)操作,也可以是長期(非同步)操作。 短期操作在調用它們的同一線程上同步完成。 這些操作會等待回應,然後繼續。

長期運營可能跨越系統,甚至延伸到組織之外,例如客戶必須完成並提交貸款申請表,作為整合多個自動化和人力任務的更大解決方案的一部分。 在等待回應時,此類行動必須繼續。 長期作業以非同步方式執行其基礎工作,允許在等待完成時以其他方式參與資源。 與短期操作不同,一旦調用了長期操作,Work Manager就不會將其視為長期操作完成。 必須發生外部觸發器,例如在同一服務上請求另一操作的系統或提交表單的用戶,才能完成操作。

關於工作管理器

AEM表單(及舊版)使用JMS佇列,以非同步方式執行操作。 AEM forms使用Work Manager來排程及執行透過受管理的執行緒的非同步操作。

非同步操作的處理方式如下:

  1. 工作經理接收要執行的工作項。
  2. Oracle Work Manager將工作項儲存在資料庫表中,並為工作項分配唯一標識符。 資料庫記錄包含執行工作項所需的所有資訊。
  3. 當線程空閒時,Work Manager線程將拉入工作項。 在提取工作項之前,線程可以檢查所需的服務是否已啟動、是否有足夠的堆大小來提取下一個工作項,以及是否有足夠的CPU週期來處理工作項。 Work Manager在計畫工作項的執行時,也會評估工作項的屬性(如其優先順序)。

AEM Forms管理員可以使用運行狀況監視器來檢查Work Manager統計資訊,如隊列中的工作項數及其狀態。 您也可以使用「運行狀況監視器」來暫停、繼續、重試或刪除工作項。 (請參閱查看與Work Manager相關的統計資訊。)

配置Work Manager節流選項

您可以為Work Manager配置限制,以便只在有足夠的記憶體資源可用時才計畫工作項。 通過在應用程式伺服器中設定以下JVM選項,可以配置節流。

屬性

說明

 adobe.work-manager.queue-refill-interval

指定Work Manager在其隊列中檢查新項目時使用的時間間隔(以毫秒為單位)。

此選項的值是整數。 預設值為1000毫秒(1秒)。

如果非同步叫用的數量較少,您可以增加此值。 例如,您可將其增加至2000到5000(2到5秒)之間。

如果非同步叫用的量很大,預設值應該足夠,但您可以視需要使用較低的值。 將此值減少太多(例如,低於50,導致輪詢頻率為每秒20次),會導致系統產生大量開銷。

 adobe.workmanager.debug-mode-enabled

將此選項設定為true以啟用調試模式,或將設定為false以禁用它。

在調試模式下,將記錄有關Work Manager策略違規和Work Manager暫停/恢復操作的消息。 只有在進行疑難排解時,才將此選項設為true。

 adobe.workmanager.memory-control.enabled

將此選項設定為true以根據下面所述的記憶體控制設定啟用限制,或將此選項設定為false以禁用限制。

 adobe.workmanager.memory-control.high-limit

指定在Work Manager限制傳入的作業之前,可以使用的記憶體的最大百分比。

此選項的預設值為95。 此值在大部分系統中都可用。 僅在您的系統需要達到最大容量時才增加它。 但請注意,隨著您增加此值,記憶體不足問題的風險也會增加。

如果您在群集環境中運行AEM表單,則可能希望在群集的不同節點上以不同方式設定記憶體控制限制設定。 例如,您可以對節點A和B設定較低的高限制,這些節點在您的負載平衡器中寫程式,以便進行互動式工作。 而且,節點C和D上設定的高限值可以更高,這些不被負載平衡器使用,而是保留用於非同步工作。

 adobe.workmanager.memory-control.low-limit

指定在Work Manager停止限制傳入的作業之前,可使用的記憶體的最大百分比。

此選項的預設值為20。 此值在大部分系統中都可用。

Dadobe.workmanager.allocate.max-batch-size

指定Workmanager的最大批大小。 預設批大小為10。

如果工作管理器中的進程狀態在任務完成後也未更新,則將批大小設定為1。

將Java選項新增至JBoss

  1. 停止JBoss應用程式伺服器。
  2. 在編輯器中開啟​[appserver root]/bin/run.bat(Windows)或run.sh(Linux或UNIX),並視需要以-Dproperty=value格式新增任何Java選項。
  3. 重新啟動伺服器。

將Java選項新增至WebLogic

  1. 在Web瀏覽器中鍵入https://[host name]:[port]/console以啟動WebLogic管理控制台。

  2. 鍵入您為WebLogic Server域建立的用戶名和密碼,然後按一下更改中心下的日誌,按一下鎖定和編輯。

  3. 在「域結構」下,按一下「環境」>「伺服器」,然後在右窗格中按一下受控伺服器名稱。

  4. 在下一個畫面中,按一下「設定」標籤>「伺服器開始」標籤。

  5. 在「參數」框中,將所需參數附加到當前內容的結尾。 例如,要禁用運行狀況監視器,請添加:

    -Dadobe.healthmonitor.enabled=false 禁用運行狀況監視器。

  6. 按一下「儲存」,然後按一下「啟動變更」。

  7. 重新啟動WebLogic托管伺服器。

將Java選項添加到WebSphere

  1. 在WebSphere管理控制台導航樹中,按一下「伺服器」>「伺服器類型」>「WebSphere應用程式伺服器」。
  2. 在右窗格中,按一下伺服器名稱。
  3. 在「伺服器基礎架構」下,按一下「Java和表單工作流」>「流程定義」。
  4. 在「其他屬性」下,按一下「Java虛擬機」。
  5. 在「一般JVM參數」框中,鍵入所需參數。
  6. 按一下「確定」或「應用」,然後按一下「直接保存到主配置」。

本頁內容