输出服务将XML表单数据与在Designer中创建的表单设计合并,以创建各种格式的文档输出流。
管理控制台中的“输出”页包含控制输出服务缓存项目的方式的设置。 您可以调整这些设置以优化输出服务的性能。
输出服务缓存以下项:
输出将缓存存储在两个位置:
输出支持两种缓存模式:
如果在缓存模式之间切换,请重新启动“输出”服务,以使更改生效。 要重新启动此服务,请使用Workbench或参见开始或停止与AEM forms模块关联的服务以获取说明。
在模式之间切换时,缓存检查点时间会自动重置。
在此模式下,当输出服务收到请求时,它将验证所需的资源(表单设计以及任何相关资产,如片段和图像)。 输出服务将存储库中资源的时间戳与缓存中资源的时间戳进行比较。 如果缓存中的资源较旧,则输出服务会更新它。
此缓存模式确保使用最新的资源。 但是,性能会受到影响,因为输出服务会根据每个请求验证针对存储库的缓存项目。 此缓存模式适用于资源频繁更新且性能不是主要考虑因素的开发和升级环境。
指定无条件缓存
在此模式下,当缓存资源的时间戳早于缓存检查点时间时,输出服务只检查存储库是否有较新版本的资源。 最后一个缓存检查点时间显示在管理控制台的“输出”页上。
在高性能生产环境中使用此缓存模式,因为性能是关键所在,资源更改很少。 当您要部署对存储库资源所做的任何更改时,可以重置缓存检查点时间。
指定缓存检查点的使用
重置缓存检查点
您可以随时清除缓存的内容。 缓存重置后,每个表单的第一个请求速度较慢,因为输出服务执行完整渲染并创建新的缓存内容。
您可以指定“输出”用于缓存的设置,这可以优化AEM表单环境的性能。
要访问这些设置,请在管理控制台中单击“服务”>“输出”。
缓存的磁盘要求应等于存储库。
全局缓存设置区域中的设置影响所有类型的缓存。 如果您更改了其中任一设置,请重新启动“输出”服务,以使更改生效。 要重新启动此服务,请使用Workbench或参见开始或停止与AEM forms模块关联的服务以获取说明。
最大缓存文档大小(KB):表 单设计或其他资源的最大大小(以千字节为单位),可以存储在任何内存中的缓存中。这是应用于所有内存中缓存的全局设置。 如果资源大于此值,则不在内存中缓存该资源。 默认值为1024 KB。 此设置不影响磁盘缓存。
启用表单渲染缓 存:默认情况下,此选项处于选中状态,这意味着已渲染的表单会被缓存以供后续检索。此设置对输出服务的性能几乎没有影响,因为它不缓存非交互式文档。 将“输出”服务用于在客户端呈现的非交互式文档时,此选项会生效。
当输出服务收到渲染请求时,它从存储库或HTTP源中检索表单设计并缓存它。 此缓存提高了性能,因为对于后续的渲染请求,输出服务从缓存而不是存储库检索表单设计。
输出服务始终在磁盘上缓存表单设计。 如果表单设计存储在服务器上,则这些文件被视为磁盘缓存。 输出服务还根据在内存模板缓存区域中的设置将表单设计缓存在内存中。 如果更改了这些设置中的任何一个,请重新启动“输出”服务,以使更改生效。 要重新启动此服务,请使用Workbench或参见开始或停止与AEM forms模块关联的服务以获取说明。
模板配置缓存大 小:要保留在内存中的模板配置对象的最大数量。默认值为 100。建议您将此值设置为大于或等于“模板缓存大小”值。 此设置不影响磁盘缓存。
模板缓存大 小:要保留在内存中的模板内容对象的最大数量。默认值为 100。此设置不影响磁盘缓存。
启用: 默认情况下,此复选框处于选中状态,这意味着表单模板在内存中缓存。如果未选择此选项,则表单模板仅在磁盘上缓存。
输出服务在磁盘上缓存表单设计中使用的片段和图像。 这提高了性能,因为片段和图像只在第一个请求时从存储库中读取。 然后,在后续请求中,输出服务从磁盘缓存中读取片段和图像。 片段和图像仅缓存在磁盘上,而不缓存在内存中。
您可以使用以下设置控制片段和图像的磁盘上缓存。 这些设置位于模板资源缓存设置区域:
资源 缓存从列表中选择以下选项之一:
为片段和图像启用:输 出服务缓存片段和图像。这是默认选项。
为片段启用: 输出服务缓存片段,但不缓存图像。
禁用: 输出服务不缓存片段或图像。
清除间隔(秒):指 定输出服务删除旧无效缓存文件的频率。输出服务不会删除有效的缓存文件。 如果更改清除间隔,请重新启动“输出”服务,以使更改生效。 要重新启动此服务,请使用Workbench或查看与AEM表单模块关联的开始或停止服务,以获取相关说明。
在群集环境中,每个节点都维护其自己的内存和磁盘缓存。 每个节点上的缓存内容取决于在该节点上渲染的表单。
缓存在群集的每个节点上的位置必须相同(磁盘和路径相同)。 请勿将缓存放在共享存储上。
如果您使用管理控制台中的“输出”页更改特定节点的缓存设置,则当请求转到该节点时,其他节点上的缓存设置会更新。 此行为也适用于“重置缓存”按钮。 如果单击某个节点的“重置缓存”按钮,则会立即从该节点删除缓存。 当请求转到该节点时,其他节点上的缓存将被清除。