This topic applies only to the IBM Business Process Manager Advanced configuration.

异步并行处理

为了缩短聚集的整体处理时间,可以同时调用多个服务,而不是按顺序处理各个服务。

在缺省情况下,分支聚集块(例如图 1 所示的分支聚集块)将不会以并行方式进行处理。
图 1. 分支聚集块
分支聚集块 1
为了使多个服务调用能够在响应消息的处理之前发生,您必须完成下列步骤:
  1. 将每个“服务调用”调解原语的“调用样式”属性指定为异步,如图 2 所示。
    图 2. “服务调用”调解原语属性详细信息
    “服务调用”调解原语属性
  2. 如果将调解流组件配置为在某个全局事务下运行,请确保与“服务调用”调解原语相关联的“引用”组件具有将“异步调用”设置为调用的限定符,如图 3 所示。
    图 3. 设置 Asynchronous invocation 限定符
    设置 Asynchronous invocation 限定符 1

    如果配置了全局事务,并且“异步调用”设置为落实,那么永远不会发送请求消息,这是因为直到事务落实之后才能发送服务请求。

  3. 当聚集块以迭代方式进行处理时,您需要另外执行一个配置步骤。通过使用“扇出”调解原语, 您可以指定在处理响应消息之前可以发出的并发未处理请求的数目。通过在 X 条消息触发后查找异步响应字段中指定一个整数值(如图 4 所示),运行时将先完成 X 个请求的处理,然后处理响应消息, 接着再处理其他迭代。这样,您就可以限制后端服务(例如 Payroll 和 HR 服务)所处理的并行请求数。要在处理响应消息之前处理数组中的所有条目,请选择在所有消息触发后查找异步响应
    图 4. 设置应该处理的请求数
    设置 Asynchronous invocation 限定符 4

通过使用 Invocation style 和 Asynchronous invocation 设置,将在处理任何一条响应消息之前调用 Payroll 和 HR 服务。