Exception handling Biztalk例外-自愈管弦乐团

Exception handling Biztalk例外-自愈管弦乐团,exception-handling,biztalk,biztalk2006r2,self-healing,Exception Handling,Biztalk,Biztalk2006r2,Self Healing,我们的主编排有多个子编排。所有根业务流程都是事务类型:无,因此所有子业务流程也具有相同的性质。现在,任何异常都会在主业务流程的父范围内捕获,我们有一些步骤,比如日志记录。业务流程通过来自应用程序SQL的消息激活。所以每次发生异常时,比如说由于某些间歇性的原因,比如无法连接到web服务。我们稍后手动重新触发 我正在考虑将orch修改为自愈,比如从异常捕获块,它会根据条件重新初始化消息,这表明问题是间歇性的。类似于应用程序发出空引用,我们不想重新发送消息,因为orch永远不会工作 有一个称为补偿的概

我们的主编排有多个子编排。所有根业务流程都是事务类型:无,因此所有子业务流程也具有相同的性质。现在,任何异常都会在主业务流程的父范围内捕获,我们有一些步骤,比如日志记录。业务流程通过来自应用程序SQL的消息激活。所以每次发生异常时,比如说由于某些间歇性的原因,比如无法连接到web服务。我们稍后手动重新触发

我正在考虑将orch修改为自愈,比如从异常捕获块,它会根据条件重新初始化消息,这表明问题是间歇性的。类似于应用程序发出空引用,我们不想重新发送消息,因为orch永远不会工作

有一个称为补偿的概念,但它适用于基于事务的orch-do n步骤,如果任何一个步骤失败,则执行m个其他步骤(这将执行替代操作或清理)


我唯一的想法就是根据exception中的关键字进行查找,然后决定重新发送消息。但我希望有人对此提出质疑或提出更好的方法

我一直认为离线处理故障更好。因此,如果编排失败,请终止它。但在终止之前,请发送一条消息。如果出现导致故障的临时问题,则此消息将包含恢复消息处理所需的所有信息。负责恢复的“管理员”进程可以使用该消息

这类似于Erlang OTP框架实现高可用性的方式。进程会很快失败,看守进程会确保发生恢复