如果在业务流程中使用嵌套事务,可以在补偿块或事务范围的异常块中添加 补偿 形状。 这使您的协调能够显式地对嵌套事务执行补偿。 在 补偿 中指定您希望补偿的事务,并且只要事务成功提交,就会运行嵌套事务中的任何补偿代码。
注释
“补偿”属性是指事务范围的唯一标识符;它不引用范围的名称。
如果要补偿多个嵌套事务,请为每个事务添加额外的 补偿 形状。
如果外部事务中没有其他补偿代码,则不需要 补偿 形状;将自动运行任何嵌套事务的补偿代码。 “补偿”形状允许你确定是否希望对嵌套事务进行补偿,从而控制该过程。
配置补偿形状
在“属性”窗口中,选择要从 “补偿 ”下拉列表中调用的补偿块。
下拉列表将显示可以补偿的所有事务,其中包括当前事务和当前事务的任何直接子事务。 如果您看不到预期的交易,则这可能是由于交易之间的关系。
注释
无法在事务主体内补偿当前事务。 可以从补偿块或事务的异常块中对其进行补偿。
如果选择补偿当前事务,则表示将调用默认处理程序,而不是显式补偿块(如果有)。 这个机制用于自动补偿已成功完成的直接嵌套事务。