死锁教训——连接需要带Connection

红色部分是以前遗漏的,我已经检查了一下api-level-2-object-action.xml有几处遗漏,都改了。这个文件里调用接口一定要调用带Connection参数的方法,否则就会打开新的事物,造成一个接口打开多个事务

   <access serial-no="5.1" name="addUser" return="User" need-composite="true" description="新建用户, 增加用户到组织机构">

      <object source="param" type="int" name="organizationID"/>

      <object source="param" type="User" name="user"/>

      <object source="result" type="User" name="resultUser" return="true"/>

      <raw-code>

         <line>    String loginName=(String)user.getMap().get("LoginName");</line>

         <line>    User oldUser=getUser(conn, loginName);</line>

         <line>    if (oldUser!=null) throw new RemoteException("LoginName already exist");</line>

         <line>    resultUser=super.addUser(conn, user);</line>

         <line>    int userID=((Integer)resultUser.getMap().get("ID")).intValue();</line>

         <line>    super.addAppUser(conn, 1, userID);</line><!-- 增加用户,要增加UIM与用户的联系 -->

         <line>    super.addGroupUser(conn, 1, organizationID, userID);</line>

         <!-- 增加用户的话,如果组织机构已经分配给应用系统则增加用户到应用系统 -->

         <line>    for(Iterator iter=getApplications(conn).iterator(); iter.hasNext();) {</line>

         <line>        Application application=(Application)iter.next();</line>

         <line>        int appID=application.getAppID();</line>

         <line>        if(appID==ConstantsApplication.UIM) continue;</line>

         <line>        if(isAppGroup(conn, appID, organizationID)) { </line> 

         <line>             addAppUser(conn, appID, userID);</line>

         <line>        }</line>

         <line>    }</line>

      </raw-code>

   </access>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值