调用 transaction.complete() 后回滚事务
Rollback the transaction after calling transaction.complete()
我可以在调用 scope.complete() 后回滚事务吗?在这种情况下嵌套事务会起作用吗?还有其他选择吗?我不得不添加 scope.complete 以便正确调用 MyService。但是我想在最后回滚事务。
不,交易不是这样进行的。完成事务后,该范围将关闭,您不能在其他地方再次重用它。另外,事务一旦完成,就不能回滚。
您需要将两个事务放在同一范围内,以便您可以完成它们或将它们一起回滚。
事务的 ACID 属性的 "Durability" 部分不允许您这样做。
已提交的事务无法回滚。
而是从同一事务范围调用 "BillImportProxy.ImportPendingUtilityBills" 方法。
您可以有嵌套范围。所有范围都必须完成,事务才能完成。范围 != 事务。
所以内部范围可以完成,外部范围可以回滚。这将回滚生效的事务。
我可以在调用 scope.complete() 后回滚事务吗?在这种情况下嵌套事务会起作用吗?还有其他选择吗?我不得不添加 scope.complete 以便正确调用 MyService。但是我想在最后回滚事务。
不,交易不是这样进行的。完成事务后,该范围将关闭,您不能在其他地方再次重用它。另外,事务一旦完成,就不能回滚。
您需要将两个事务放在同一范围内,以便您可以完成它们或将它们一起回滚。
事务的 ACID 属性的 "Durability" 部分不允许您这样做。 已提交的事务无法回滚。 而是从同一事务范围调用 "BillImportProxy.ImportPendingUtilityBills" 方法。
您可以有嵌套范围。所有范围都必须完成,事务才能完成。范围 != 事务。
所以内部范围可以完成,外部范围可以回滚。这将回滚生效的事务。