2 kjwangxun kjwangxun 于 2016.02.28 21:48 提问

两个事务任意失败一个回滚 10C

不加任何措施,两个事务呈直线,第一个失败就不执行第二个,但怎么使第一个失败了还能执行第二个,来判断到底哪个事务有问题

2个回答

fk002008
fk002008   2016.02.28 22:06

2个事务,还是直线的关系
如果你想第二个事务失败了还能回滚第一个事务那么也就是说第一个事务没有commit了
不放做一个事务的观察控制器
将所有的事务注册在这个观察器里面,
然后这个观察控制器可以记录每个事务的运行结果并且可以显示指定那个事务可以先执行

大体做法:
1--你先做一个事务的接口,里面定义这个事务的执行方法和事务的运行状态
2--做一个事务观察控制器
它可以注册多个事务接口,并且为每个事务定义一个执行顺序号吗
通过这个事物观察控制器可以启动事务
3--将你的事务都用一个类表示然后实现这个事务接口
4--通过事务观察控制器来控制事务的执行顺序以及结果的记录

fk002008
fk002008 不成直线关系也没有关系,使用观察控制器可以记录事务的执行状态,可以增加一个错误处理方法,一旦控制器监管的事务有一个执行异常就可以回滚全部的或者指定某些事务回滚
接近 2 年之前 回复
kjwangxun
kjwangxun 不好意思。我说错了,两个事务可以不成直线关系,只要任意一个事务失败就回滚。第一个失败还能执行第二个事务,第二个成功也回滚
接近 2 年之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.28 23:03

你别让这两个事物产生顺序,各自执行

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!