死锁教训——连接需要带Connection
2005-08-03 17:20
387 查看
红色部分是以前遗漏的,我已经检查了一下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>
<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>
相关文章推荐
- myBatis连接MySQL报异常:No operations allowed after connection closed.Connection was i
- 使用Connection连接到数据库
- TCP连接建立过程中为什么需要“三次握手”(转)
- mysql连接远程数据库出现 ERROR 2013 (HY000) Lost connection to MySQL server at 'reading authorization packet',
- centOS下 jedis连接redis失败 redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExce
- web.config connectionStrings 数据库连接字符串的解释
- navicat连接oracle报错“ORA-28547:connection to server failed,probable Oracle Net admin 解决办法
- 远程连接CentOS7被拒绝的问题,SSH and Telnet Connection refused
- HttpURLConnection连接
- hibernate连接数据库时候提示'hibernate.dialect' must be set when no Connection avalable
- 自动安装需要连接的打印机
- Eclipse调试问题 adb connection Error:远程主机强迫关闭了一个现有的连接
- 连接oracle报错“ORA-28547:connection to server failed,probable Oracle Net admin 解决办法
- SQL Server 复制需要有实际的服务器名称才能连接到服务器--解决方法
- java web应用连接mysql会突然connection连接失败
- 对java中的String采用+=连接字符串需要注意的一个问题
- VS快速获取数据库连接字符串connectionStrrings
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- SQL Server 无法连接到服务器。SQL Server 复制需要有实际的服务器名称才能连接到服务器。请指定实际的服务器名称。