工作管理器和限制

AEM表单(及更早版本)使用JMS队列异步执行操作。 在AEM表单中,JMS队列已由工作管理器替换。 本文档提供了有关工作管理器的背景信息,并提供了有关配置工作管理器限制选项的说明。

关于长期(异步)操作

在AEM Forms中,服务执行的操作可以是短期的(同步),也可以是长期的(异步)。 短期操作在从中调用它们的同一线程上同步完成。 这些操作在继续之前等待响应。

长期运营可能跨多个系统,甚至可能扩展到组织之外,例如,客户必须填写并提交贷款申请表,作为集成多个自动化和人工任务的更大型解决方案的一部分。 在等待回应的同时,这种行动必须继续进行。 长寿运营以异步方式执行其基础工作,从而允许资源在等待完成时以其他方式参与。 与短期操作不同,工作管理器在调用长期操作后不会认为该操作已完成。 必须发生外部触发器(如请求对同一服务执行其他操作的系统或提交表单的用户)才能完成操作。

关于工作管理器

AEM表单(及更早版本)使用JMS队列异步执行操作。 AEM Forms使用工作管理器通过托管线程来计划和执行异步操作。

异步操作按以下方式处理:

  1. 工作管理器接收要执行的工作项。
  2. 工作管理器将工作项存储在数据库表中,并为工作项分配唯一标识符。 数据库记录包含执行工作项所需的所有信息。
  3. 当线程空闲时,工作管理器线程拉入工作项。 在拉入工作项之前,线程可以检查所需服务是否已启动、是否有足够的栈大小来拉入下一个工作项,以及是否有足够的CPU周期来处理该工作项。 在安排执行时,工作管理器还会评估工作项的属性(如其优先级)。

AEM Forms管理员可以使用运行状况监视器检查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

指定工作管理器限制传入作业之前可以使用的最大内存百分比。

此选项的默认值为 95. 对于大多数系统,该值应该是合适的。 仅当您的系统需要推送到其最大容量时才增加容量。 但请注意,随着此值的增加,“内存不足”问题的风险也会增加。

如果在群集环境中运行AEM表单,则可能需要在群集的不同节点上以不同的方式设置内存控制限制设置。 例如,节点A和B的上限可能较低,这两个节点在负载平衡器中编程以用于交互式工作。 此外,您还可以在节点C和D上设置更高的高限制,负载平衡器不使用这些节点,而是将其保留用于异步工作。

 adobe.workmanager.memory-control.low-limit

指定工作管理器停止限制传入作业之前可以使用的最大内存百分比。

此选项的默认值为 20. 对于大多数系统,该值应该是合适的。

Dadobe.workmanager.allocate.max-batch-size

指定Workmanager的批次大小上限。 默认批次大小为10。

如果即使在任务完成后,workmanager中进程的状态也未更新,则将批次大小设置为1。

将Java选项添加到JBoss

  1. 停止JBoss应用程序服务器。
  2. 打开 [appserver根]/bin/run.bat (Windows)或run.sh (Linux或UNIX),并根据需要以格式添加任何Java选项 -Dproperty=value.
  3. 重新启动服务器。

将Java选项添加到WebLogic

  1. 通过键入以下内容启动WebLogic管理控制台 https://[host name]:[port]/console 在Web浏览器中。

  2. 键入为WebLogic Server域创建的用户名和密码,然后单击更改中心下的日志,然后单击锁定和编辑。

  3. 在“域结构”下,单击“环境”>“服务器”,然后在右窗格中,单击受控服务器名称。

  4. 在下一个屏幕上,单击Configuration选项卡> Server Start选项卡。

  5. 在“参数”框中,将所需的参数附加到当前内容的末尾。 例如,要禁用运行状况监视器,请添加:

    -Dadobe.healthmonitor.enabled=false 禁用Health Monitor。

  6. 单击保存,然后单击激活更改。

  7. 重新启动WebLogic托管服务器。

将Java选项添加到WebSphere

  1. 在“WebSphere管理控制台”导航树中,单击“服务器”>“服务器类型”>“WebSphere应用程序服务器”。
  2. 在右窗格中,单击服务器名称。
  3. 在“服务器基础架构”下,单击Java和表单工作流>进程定义。
  4. 在“其他属性”下,单击“Java虚拟机”。
  5. 在“通用JVM参数”框中,键入所需的参数。
  6. 单击“确定”或“应用”,然后单击“直接保存到主控配置”。

在此页面上