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