流程引擎集群

部署

在流程引擎可以执行流程(或案例,决策)之前,必须对其进行部署。部署是将多个部署在一起的资源分组的逻辑实体。可以通过Java API或REST API以编程方式进行部署,也可以以声明方式针对Process Application的资源进行部署。本节介绍高级部署概念。

集群方案中的部署

在流程引擎开始执行部署之前,它会尝试获取表中一行的排他锁ACT_GE_PROPERTY。当流程引擎能够成功获取锁定时,只要开始执行部署,它就会开始部署并持有排他锁。

如果在群集方案中的多个节点上同时执行相同资源的部署,则获得的排他锁可确保重复过滤按预期进行。否则,并行部署可能会导致同一流程定义的多个版本。

另外,排他锁确保具有相同密钥的多个定义(例如,流程定义)在同时部署时不会得到相同的版本,这可能导致失败和意外行为。注意,数据库中没有唯一约束来检查定义的唯一性。

因此,排他锁强制执行部署的顺序顺序。

默认情况下,排他锁获取已启用。如果不希望这样做,可以通过将名称deploymentLockUsed为false 的流程引擎配置标志设置为禁用。

H2数据库

请注意,在群集方案中不支持H2数据库。流程引擎不会创建任何排他锁,因为H2默认情况下使用表级锁,如果在执行部署时deploy命令需要使用DbIdGenerator获取新的ID,则可能会导致死锁。

 技术支持:盘古BPM工作流平台

相关教程