我正在尝试在我的流程中创建一个故障保护方案。
我的流程如下所示。它涉及实习生调用web服务的一些子流。在任何情况下,如果其中一个web服务不可用,就会抛出拒绝连接异常,整个处理过程就会停止。
相反,我想要一个故障安全的场景,即使当前出站调用失败,流也应该继续下一个子流。
是否有任何消息处理器或流控制处理器可以帮助在Mule中实现此行为。
下面是我的抽象流程
<flow name="main_flow" >
....
....
<flow-ref name="subflow_1" />
....
....
<flow-ref name="subflow_2" />
....
....
<flow-ref name="subflow_3" />
....
....
</flow>
<sub-flow name="subflow_1">
....
....
<out-bound call to web-service />
....
....
</sub-flow>
<sub-flow name="subflow_2">
....
....
<out-bound call to web-service />
....
....
</sub-flow>
<sub-flow name="subflow_3">
....
....
<out-bound call to web-service />
....
....
</sub-flow>发布于 2013-03-14 23:08:56
您可以使用流实现故障保护行为。
<flow name="main_flow" >
....
....
<flow-ref name="flow_1" />
....
....
<flow-ref name="flow_2" />
....
....
<flow-ref name="flow_3" />
....
....
</flow>
<flow name="flow_1" processingStrategy="synchronous" >
....
....
<out-bound call to web-service />
....
<catch-exception-strategy >
.... Your FailSafe code to recover. Also you will have the exception here.
</catch-exception-strategy>
</flow>通过这种方式,您可以使用流来设置故障安全行为。
快乐编码:)
发布于 2013-02-02 04:04:18
一种技巧是将有效负载存储在一个变量中,使用<catch-exception-strategy>块捕获web服务调用异常,使用<set-payload>覆盖当前有效负载,然后从sub-flow1的catch-exception流中手动调用sub-flow2
发布于 2013-02-02 04:32:09
对于每个web服务调用,使用first-successful路由器,将您的web服务调用作为第一个子级,并将回退机制作为第二个子级。
https://stackoverflow.com/questions/14653881
复制相似问题