找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 7366|回复: 2

[学习] 异常吃掉后事务仍然回滚

[复制链接]
发表于 2020-11-29 12:06:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
nc65开发中,
在标准产品的银行账户档案修改保存逻辑中,插入一段逻辑,保存修改版本信息:大致逻辑如下

                  BankAccBasVersionVO lastVo=this.queryLastBankAccBasVersionVO(oldVo.getPk_bankaccbas());
                  if (lastVo==null){
                          lastVo=this.createHistoryVersion(oldVo,1);
                  }
                  BankAccBasVersionVO newVersionVo=this.createHistoryVersion(newVo, lastVo.getVersion()+1);


在上面的方法queryLastBankAccBasVersionVO  中  try ....异常  catch 后,没有抛出来,整个过程执行成功。系统也提示“保存成功”。

但刷新后,数据仍然回到了保存前状态。

检查半天仍然未能发现问题。初步判断,应该是事务执行了回滚。

问题:为什么没有抛出异常,事务仍然会回滚哩......


如是从跟踪:CMTProxy开始:标准产品是通过该接口的方式,开启事务及提交(回滚)事务的。从而进入:afterCallMethod 方法
在 nc.bs.mw.naming.BeanBase.afterCallMethod(int, Exception)  中进行跟踪,发现exception 非空。该exception 是在queryLastBankAccBasVersionVO 方法中,被吃掉的异常......

修改问题点,找到了,是该方法中,SQL拼写的问题。

但异常被吃了之后,为什么还会影响事务的回滚哩.........?????




发表于 2020-12-2 12:31:51 | 显示全部楼层
都涉及到开发的问题了,呵呵,我有一个问题是NC55、56、57、6的开发插件包是一样的吗?

点评

不知道哩  详情 回复 发表于 2021-1-15 13:42
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2021-1-15 13:42:51 | 显示全部楼层
dtlovefy 发表于 2020-12-2 12:31
都涉及到开发的问题了,呵呵,我有一个问题是NC55、56、57、6的开发插件包是一样的吗? ...

不知道哩
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-20 19:27 , Processed in 0.053203 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表