为何事务不能回滚?

weblogic下的ejb出现异常,代码跟踪已经执行回滚代码了,为何中间操作数据库的数据行为不能回滚到事务开始前?
说明:1、中间很多方法都是用statment做参数,同一个statment的传参
2、应用和数据库服务的网咯连接比较慢。

求解

3个回答

你应该要清楚的是事务是建立在连接上的。而不是statment。

先在你的执行方法里面使用statment.getConnection().getAutoCommit()是不是为false。

又或者传参的时候的statment对象不是同一个Connection创建的。可以使用statment.getConnection()输出到控制台看看。

你没有附上代码很难准确定位到问题。自己设置断点调试一下吧。

有嵌套事务么?

总之一句话,从事务开始,到结束,必须保证是用一个connection连接,否则,部分事务无法回滚。并把事务设置为手动提交。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!