调用transaction.complete()后回滚事务。

4

在调用 scope.complete() 后,我是否可以回滚事务?嵌套事务在这种情况下是否有效?还有其他替代方案吗?我被迫添加 scope.complete 以便正确调用 MyService。但是我想在最后回滚事务。

3个回答

2
不,事务不是这样工作的。一旦你完成一个事务,该范围就关闭了,你不能再在其他地方重用它。此外,一旦事务完成,它就无法回滚。
你需要将两个事务放在同一个范围内,这样你才能一起完成它们或者回滚它们。

2

您可以有嵌套的范围。所有范围必须完成,事务才能完成。范围!= 事务。

因此,内部范围可以完成,而外部范围可以回滚。这将回滚实际的事务。


1
ACID属性中的"Durability"部分不允许您这样做。 一旦提交事务,就无法回滚。 请改为从相同的事务范围内调用 "BillImportProxy.ImportPendingUtilityBills" 方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接