web工作流管理系统开发之十九 工作流系统的事务处理

      工作流系统的每个流程实例,从创建到结束,都有一个较长的过程。流程实例的执行过程可能立即执行,也可能较长时间的等候处理。当处理过程中出现异常或者故障时候,流程需要回滚,并保持流程和业务的同步回滚,不至于业务和流程不同步,或流程本身的轨迹发生紊乱。因此需要在工作流系统中引入事务处理机制。

 

事务的属性有四种Atomicity, Consistency, Isolation, Durability,简称ACID。


  • Atomicity 原子 要么是所有的事务操作都成功完成,要么是所有的事务操作都没完成。
    Consistency 一致 当事务开始和结束的时候,涉及事务的资源都必须处于合法的状态。事务不能违返完整性约束或业务规则。
    Isolation 独立 事务内的操作独立于其他所有操作。事务外的操作都看不到处于中间状态的数据。
    Durability 持久 事务一旦成功完成,影响就是持久的,且无法撤消。


工作流引擎在执行每个流程实例时,通常是将流程分成一个环节一个环节的执行,各环节通过提交动作来完成本环节,并使流程流转到下一环节,每个环节的一次执行动作的过程就是一个流程的短事务处理过程。一个工作流实例运行的生命周期由多个这样的短事务组成。多个流程的短事务保证了流程的长事务一致性。

 

无论是流程的短事务还是流程的长事务,都应该具有事务的那4种属性。

 

在eworkflow工作流系统中,一个流程实例的生命周期中会包含多个短事务,由多个短事务保证流程的长事务。

 

短事务采用了数据库的事务处理,在每个动作的提交之初,启动流程的事务,执行流程的动作提交,同时提交涉及的业务数据,待都提交完成后,提交数据库的事务,将数据持久化入数据库。在动作执行的过程中,一旦有异常抛出,即回滚数据库事务,流程数据和业务数据均回滚到动作提交之初,达到事务的原子性一致性。

 

当流程的短事务人为的回滚时,即执行自由流,回退流的时候,流程的长事务通常需要辅助“业务补偿类”来达到数据的一致性。

 

 

数据库连接管理类:

 

web工作流管理系统开发之十九 工作流系统的事务处理
 
 

 

 

 

 

相关链接:

web工作流管理系统开发之一 工作流概念

web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造

web工作流管理系统开发之六 表单权限与流程的权限控制

web工作流管理系统开发之七 最新修改的版本下载 

web工作流管理系统开发之八 开源osworkflow之任务管理 

 

web工作流管理系统开发之十 数据库连接及事务设定

web工作流管理系统开发之十一 流程数据与业务数据的交互

web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件

web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇

web工作流管理系统开发之十四 流程设计器属性页面之实现篇

你可能感兴趣的:(工作,Web,中间件)