使用jfinal 集成activity工作流,怎么做事务控制?
请大神帮忙看看问题,这里先谢谢大家,问题如下
框架使用jfinal+cxf+activity技术,通过Enhancer.enhance(obj, Tx.class),操作普通的数据库操作可以做到事务控制。
但是操作activity工作流(工作流采用了mybatis-3.2.5.jar)时,没有受到事务控制
activity工作流和系统采用的是同一个数据源
数据源配置 如图
工作流插件如下
本人推测的观点应该是 因为我使用的是
DseActivitiProcessEnginePlugin act = DseActivitiProcessEnginePlugin.getInstance();
获取到的数据连接和jfinal获取到的数据连接不是一个,因此不受事务控制了,如果问题是这个,jfinal怎么来控制呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
终于找到了,按照这个做,已经完全实现
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/
jfinal 的数据库操作要和工作流的数据库操作在同一个事务中,因为在办理的环节需要对业务数据进行数据库操作,貌似你提的这种方案不可行。不过还是谢谢你
第一种情况叫组合服务,第二种情况是action调用两次原子服务。当工作流采用独立的产品的时候,一般用第二种情况,即先保存订单,再去调用工作流接口启动工作流实例。但是要注意的是启动工作流是一个异步操作,需要进 MQ,这样支持启动工作流失败时候的重试。即工作流是否启动成功原则上不应该影响到订单本身的提交。事务控制:
http://edu.51cto.com/course/course_id-3795.html