要了解 IBM® Business Process Manager 事件管理器的工作方式,请查看配置属性。
任务装入器属性
任务装入器是事件管理器实例用于将事件管理器任务装入内存中队列的专用线程。针对大多数使用模式优化任务装入器的缺省参数设置。通常,无需调整其中任何参数。
- <loader-long-period>15000</loader-long-period>
- 指定任务装入器的主装入之间的毫秒数。
对于每个任务装入器长周期,事件管理器都会查看其有权访问的每个同步和异步队列并将它们填充至相应容量。
- <loader-short-period>2000</loader-short-period>
- 指定任务装入器的次装入之间的毫秒数。
对于每个任务装入器短周期,事件管理器都会浏览上一个短周期或长周期内事件管理器填充至相应容量的每个队列,并将它们填充至相应容量。请不要更改此设置。
- <loader-advance-window>15000</loader-advance-window>
- 指定任务装入器可提前获取任务但保留不执行的毫秒数。对于调度任务,该参数指定事件管理器提前多久查找任务。建议:将该属性设置为 <loader-long-period>。
缺省情况下,该值设置为 15000,它与 <loader-long-period> 值相同。
- <kick-on-schedule>true</kick-on-schedule>
- 如果设置为 true,那么任务装入器会在调度新任务的任何时候,立即进入主装入。新调度的任务几乎会立即执行。请不要更改此设置。
队列容量属性
事件管理器队列用于调度事件管理器任务。当您在 Process Designer 中定义 Undercover Agent 时,指定是使用特定同步队列还是异步 Undercover Agent (UCA) 队列。
提示: 可通过减少队列容量来调节事件管理器的速度。请注意,通过减少线程池的 max-thread-pool-size 属性并不能实现此操作,该属性仅指定池中的线程数,而不是指定事件管理器可使用的实际线程数。
- <sync-queue-capacity>10</sync-queue-capacity>
- 指定每个同步 UCA 队列装入内存的最大事件管理器任务数。
- <async-queue-capacity>10</async-queue-capacity>
- 指定异步 UCA 队列装入内存的事件管理器任务数。
- <bpd-queue-capacity>40</bpd-queue-capacity>
- 指定业务流程定义 (BPD) 队列(它是包含用于执行 BPD、计时器、系统任务和决策任务的事件管理器任务的异步队列)装入内存的事件管理器任务数。
提示: 要优化吞吐量和缩放比例,请在开始时将 bpd-queue-capacity 设置为“10 * 物理处理器内核数”(例如,对于 4 核处理器配置,该参数设置为 40),最大值为 80。
- <system-queue-capacity>10</system-queue-capacity>
- 指定事件管理器内部系统队列装入内存的事件管理器任务数,例如,中断日程表更新任务。
线程池属性
线程池属性指定由事件管理器使用的工作程序线程。
- <use-was-work-manager>true</use-was-work-manager>
- 指定是否为线程池指派 WebSphere Application Server 工作管理器。缺省情况下,该参数设置为 true。建议不要将该值更改为 false,因为将该值设置为 false 会产生如下结果:禁用 IBM WebSphere Application Server 资源监视工具中的可视性。在集群级别的管理控制台上配置工作管理器。
注: 应用程序服务器连接池中可用的
IBM Business Process Manager 数据库连接总数应至少是最大事件管理器工作程序线程数的两倍。
实际数据库服务器上的连接数需至少是集群中所有节点的最大线程数的总和。如果
<use-was-work-manager> 为 true,那么在工作管理器线程池配置中配置线程数。
如果
<use-was-work-manager> 为 false,那么最大线程数是 BPD 队列容量、异步队列容量、系统队列容量与同步队列数的总和。
Web 容器线程还需要数据库连接。
- <was-work-manager>wm/BPMEventManagerWorkManager</was-work-manager>
- 指定所使用的 WebSphere Application Server 工作管理器。
提示: 可通过减少队列容量来调节事件管理器的速度。如果您正在使用 <was-work-manager> 线程池,那么它会限制事件管理器线程的并发性。它应该足够大以支持队列的容量。请将该参数设置为 bpd-queue-capacity、async-queue-capacity、system-queue-capacity 和 number of sync-queues 的总和。
- <min-thread-pool-size>5</min-thread-pool-size>
- 指定事件管理器引擎线程池的最小线程数(如果未使用 WebSphere Application Server 工作管理器)。
- <max-thread-pool-size>50</max-thread-pool-size>
- 指定事件管理器引擎线程池的最大线程数(如果未使用 WebSphere Application Server 工作管理器)。
提示: 要优化吞吐量和缩放比例,请在开始时将 max-thread-pool-size 设置为“30 + 10 * 物理处理器内核数”(例如,对于 4 核处理器配置,该参数设置为 70),最大值为 110。
- <re-execute-limit>5</re-execute-limit>
- 指定事件管理器在某任务发生异常终止的情况下尝试执行该任务的最大次数。
提示: 失败且达到 re-execute-limit 的事件管理器任务将进入暂挂状态。这些任务会保留在数据库中,但在运行 BPMReplayOnHoldEMTasks 命令时会将它们标记为暂挂且重新安排在未来运行。
脉动信号属性
脉动信号是事件管理器实例用于定期发出信号表明事件管理器实例仍在运行的专用线程。
- <heartbeat-period>30000</heartbeat-period>
- 指定脉动信号之间的毫秒数。请不要更改此设置。如果更改了此设置,那么它必须小于 <heartbeat-expiration> 除以 4。
- <heartbeat-expiration>240000</heartbeat-expiration>
- 指定脉动信号到期的毫秒数。请不要更改此设置。如果更改了此设置,那么它必须大于 <heartbeat-period> 的 4 倍。
获取程序属性
获取程序是每个集群成员用于检查已到期的事件管理器实例是否拥有任何事件管理器任务的专用线程。如果它发现这些任务,那么获取程序会将状态重置为已调度,并将所有权重置为未分配。因此,其他事件管理器实例将选取工作。
- <reaper-period>120000</reaper-period>
- 指定已到期事件管理器获取程序的活动之间的毫秒数。请不要更改此设置。
其他事件管理器属性
- <start-paused>false</start-paused>
- 允许启动处于暂停状态的事件管理器。可以使用 Process Admin Console 中的事件管理器监视器来恢复事件管理器。
- <name>EM instance name</name>
- 指定事件管理器实例的名称。该名称用于 Process Admin Console 的事件管理器监视器中。