本主题仅适用于 IBM Business Process Manager Advanced 配置。

从基础结构故障恢复

长时间运行的 BPEL 流程跨多个事务运行。 如果由于基础结构故障而导致事务失败,那么业务流程管理器提供了一种自动从这些故障恢复的设施。

在长时间运行的流程中,业务流程管理器将向自身发送用于触发后续导航的请求消息。对于每个入局请求消息,将启动一个新的事务并将该请求消息传递给业务流程管理器以进行处理。每个事务都由下列操作组成:

业务流程管理器使用下列队列来处理基础结构故障: 成功处理消息后,将推断该基础结构可用。然而,在下列情况下,业务流程管理器可能无法处理消息:
原因 响应
基础结构不可用 在正常处理方式下,所有消息在指定时间内将保持可用,直到该基础结构再次可正常运行为止。导致此问题的原因可能是数据库故障或其他原因。
消息已损坏 在尝试所指定次数后,会将该消息放入挂起队列。也可以将该消息从挂起队列移回到输入队列,以再次尝试执行该事务。

如果基础结构不可用,并且保留队列已满,那么消息处理将从正常处理切换为停顿方式。在停顿方式下,消息处理的速度将变慢,直到基础结构再次可用为止。当基础结构变为可用时,消息处理将切换回正常方式。

正常消息处理

在正常处理期间,将按如下所示处理消息:

停顿方式下的消息处理

在停顿方式下,将定期尝试处理消息。未能处理的消息将放回到输入队列中,而不会递增发送计数或保留队列往返计数。 一旦能够成功地处理消息,消息处理将立即切换回正常方式。

重试限制

重试限制定义了将消息放入挂起队列之前可以将其传送至保留队列的最大次数。

将一条消息放入保留队列前,处理该消息失败的次数必须达到三次。

例如,如果重试限制为 5,那么消息必须进入保留队列 5 次(即失败次数必须为 3 * 5 = 15 次),才会开始最后一次重试。如果最后一次重试又失败两次,那么该消息将放入挂起队列中。 这意味着一条消息必须失败 (3 * RetryLimit)+ 2 次,才会放入挂起队列中。

在可靠基础结构中运行的性能关键应用程序中,重试限制应该较小,例如 1 或 2。如果重试限制设置为 0,那么不断失败的消息将重试 3 次,然后立即进入挂起队列。

要更改此业务流程管理器属性,请单击服务器 > 集群 > WebSphere Application Server 集群 > cluster_name,然后在配置选项卡上的 Business Process Manager 部分中,展开 Business Process Choreographer,并单击业务流程管理器

保留队列消息限制

保留队列消息限制定义了可以位于保留队列中的最大消息数。如果保留队列溢出,那么系统将进入停顿方式。要使系统在一条消息失败时立即进入停顿方式,请将此值设置为零。要提高业务流程管理器对基础结构故障的容忍度,请增大此值。

要更改此业务流程管理器属性,请单击服务器 > 集群 > WebSphere Application Server 集群 > cluster_name,然后在配置选项卡上的 Business Process Manager 部分中,展开 Business Process Choreographer,并单击业务流程管理器

重放消息

管理员可以将挂起队列或保留队列中的消息移回内部队列。此操作可以通过管理控制台、管理脚本或失败事件管理器来完成。