如何添加补偿块

如果不添加自己的补偿,运行时引擎将执行默认补偿,以调用当前事务中任何嵌套事务的补偿。 它首先调用最近完成的事务的补偿,然后依次回溯,直至所有嵌套的事务都被补偿完毕。

即使在循环形状内进行补偿也是如此:补偿将按相反顺序运行。 首先,将调用循环最后一次迭代的补偿,然后调用上一次迭代的补偿等。

谨慎

由于数据会保存到物理内存中以用于补偿工作,在循环中使用补偿可能会影响性能,特别是在迭代次数较多时,这可能成为一个问题。

如果默认排序不符合你的要求,则可以编写自己的补偿处理程序,以按照指定的顺序显式调用嵌套范围的补偿处理程序。

添加补偿块

  1. 右键单击要向其添加补偿块的事务的作用域形状,然后单击“新建补偿块”。

    注释

    若要将补偿块添加到范围形状,作用域形状的事务类型属性必须设置为 AtomicLong Running

    补偿块被添加到业务流程中,紧跟在关联的作用域形状之后。

  2. “补偿块” 形状中,添加其他形状,以便创建撤消已提交事务的过程。