zoukankan      html  css  js  c++  java
  • 驰骋工作流引擎,表单引擎工作事务单元测试报告

    驰骋工作流引擎,表单引擎工作事务单元测试报告

    各位浙商银行:

    事务问题一直是浙商银行客户反复提出尚未解决的问题,经过与浙商银行的同事一起讨论,我们把流程引擎的底层进行了一些改造,让其支持事务,并且做出如下测试案例,请各位同事与客户进行评估与测试。

    关于bp架构的事务综述

    驰骋的bp框架所有执行update,delete,insert 的sql ,都是通过DBAccess.RunSQL()这个方法执行的,不管是直接执行的sql,还是实体类执行的增删改查的sql。

    所以该问题的解决重点就是DBAccess.RunSQL()这个方法。

    执行SQL 部分:

    正常执行(验证通过):

    clip_image002

    代码如下

    String bussID="zhoupeng";

    //开始事务.

    DBAccess.DoTransactionBegin(bussID);

    String sql="UPDATE Port_Emp Set Name='admin1' where no='admin' ";

    DBAccess.RunSQL(sql);

    DBAccess.DoTransactionCommit(buessID); //提交事务.

    执行后回滚(验证通过)

    代码

    clip_image004

    <%

    String bussID="zhoupeng"; //定义事务的ID.

    //开始事务.

    DBAccess.DoTransactionBegin(bussID);

    String sql="UPDATE Port_Emp Set Name='admin1' where no='admin' ";

    DBAccess.RunSQL(sql);

    DBAccess.DoTransactionRollback(bussID); //回滚事务.

    return;

    //DBAccess.DoTransactionCommit(buessID); //提交事务.

    //return;

    %>

    实体类更新部分

    正常执行更新(测试通过)

    clip_image006

    执行后回滚 (测试通过)

    clip_image008

    流程引擎的重要过程

    在流程引擎的操作中,我们列出了如下方法对事务有一定的要求。

    创建workid(测试通过)

    正常创建

    代码如下:

    clip_image010

    首先删除:

    delete from ND301Rpt

    delete from wf_generworkflow

    执行后代码:

    clip_image012

    clip_image014

    执行两次没有错误。

    撤销创建

    代码如下:

    clip_image016

    先执行删除后的效果:

    clip_image018

    多次刷新无数据,与上图一样,说明回滚成功:

    执行发送(测试通过)

    错误发送(没有指定接受人的情况):

    源代码:

    clip_image020

    这时候,死锁产生,因为没有释放连接,kill 99; 改造代码实现如下步骤。

    clip_image022

    改造后的代码:

    clip_image024

    控制台已经输出了异常的消息,如控制台图。

    clip_image026

    流程状态,仍然是空白状态:

    clip_image028

    多次执行数据仍然与上图相同,说明已经执行了回滚。

    改造后,增加了接收人代码,如下图:

    clip_image030

    正常发送:

    代码如下:

    clip_image032

    提示信息正常:

    clip_image034

    撤销发送:

    首先执行删除语句:

    clip_image036

    编码如下:

    clip_image038

    可以完整执行,执行后,查询应该没有数据,就符合预期。

    clip_image040

    执行流程发送后的撤销(未测试)

    执行退回(未测试)

  • 相关阅读:
    spring----AOP 和 AspectJ
    js----wangEditor
    java易错题----获取路径问题
    Spring MVC----Validation(数据校验)
    java----lombok插件
    jquery----Ztree
    java web----跨域请求解决办法
    git----gitHub和电脑绑定的步骤
    js----DateTime工具
    SQLSTATE[HY000]: General error: 1366 Incorrect string value: 'xF0x9Fx90xA3xF0x9F...' for column
  • 原文地址:https://www.cnblogs.com/mengjuan/p/10185680.html
Copyright © 2011-2022 走看看