使用jfinal 集成activity工作流,怎么做事务控制?

龙生 发布于 2016/05/12 15:14
阅读 1K+
收藏 0

请大神帮忙看看问题,这里先谢谢大家,问题如下


框架使用jfinal+cxf+activity技术,通过Enhancer.enhance(obj, Tx.class),操作普通的数据库操作可以做到事务控制。

但是操作activity工作流(工作流采用了mybatis-3.2.5.jar)时,没有受到事务控制

activity工作流和系统采用的是同一个数据源

数据源配置 如图


工作流插件如下




本人推测的观点应该是 因为我使用的是

DseActivitiProcessEnginePlugin act = DseActivitiProcessEnginePlugin.getInstance();

获取到的数据连接和jfinal获取到的数据连接不是一个,因此不受事务控制了,如果问题是这个,jfinal怎么来控制呢?


加载中
0
w
wangshirufeng123
第一种情况叫组合服务,第二种情况是action调用两次原子服务。当工作流采用独立的产品的时候,一般用第二种情况,即先保存订单,再去调用工作流接口启动工作流实例。但是要注意的是启动工作流是一个异步操作,需要进 MQ,这样支持启动工作流失败时候的重试。即工作流是否启动成功原则上不应该影响到订单本身的提交。事务控制:http://edu.51cto.com/course/course_id-3795.html
龙生
jfinal 的数据库操作要和工作流的数据库操作在同一个事务中,因为在办理的环节需要对业务数据进行数据库操作,貌似你提的这种方案不可行。不过还是谢谢你
0
龙生

终于找到了,按照这个做,已经完全实现

http://www.codeweblog.com/activiti%E4%BA%8B%E5%8A%A1%E5%92%8C%E8%87%AA%E5%B7%B1%E4%B8%9A%E5%8A%A1%E4%BA%8B%E5%8A%A1%E5%85%B1%E5%90%8C%E7%9A%84%E4%BD%BF%E7%94%A8/


返回顶部
顶部