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

本文探讨了工作流系统中事务管理的重要性,特别是如何确保流程实例的执行具备ACID特性。通过对流程实例生命周期中的短事务与长事务进行分析,介绍了如何使用数据库事务处理机制来维护流程与业务数据的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

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


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


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

 

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

 

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

 

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

 

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

 

 

数据库连接管理类:

 


 
 

 

 

 

 

相关链接:

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

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

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

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

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

 

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值