📅  最后修改于: 2020-10-15 10:46:24             🧑  作者: Mango
要了解如何使用错误处理,我们需要学习Oracle SOA Suite中服务组合的基本体系结构。
服务组件-BPEL流程,业务规则,人工任务,调解员。这些用于构建SOA复合应用程序。
绑定组件-在SOA组合和外部环境之间建立连接。
服务-提供SOA复合应用程序的入口点。
绑定-定义与服务通信的协议,例如SOAP / HTTP,JCA适配器等。
WSDL-定义Web服务的服务定义。
参考-使SOA复合应用程序能够将消息发送到外部服务
电线-启用服务组件之间的连接。
现在让我们看看不同类型的故障。
在应用程序执行THROW活动或INVOKE收到故障作为响应时发生。故障名称由BPEL流程服务组件指定。使用故障名称和故障变量的故障处理程序会捕获此故障。
这是由系统抛出的。这些故障与RunTimeFaultMessage相关联,并包含在
http://schemas.oracle.com/bpel/extensionnamespace 。
在本节中,我们将学习不同的故障处理方式。
引发活动明确引发了故障。 catch块捕获此故障,并由此执行相应的动作。
使用抛出活动,您可以抛出业务故障,并且可以在创建的范围内捕获该故障并重定向到调用方(消费者)以采取措施。
代替上面的方法,您抛出在创建的作用域的catch活动中捕获的相同错误。在主作用域中,可以使用catchall活动来捕获此故障。
EHF中使用的2个主要文件是-
每当BPEL流程抛出错误时,EHF都会检查Fault-Bindings.xml文件中是否存在该错误。如果是这样,将执行Fault-Policy.xml文件中的操作。如果未找到该动作,则将引发故障,并将在catch块中对其进行处理。
故障管理框架(Fault-Policy.xml和Fault-Bindings.xml)保存在SOA组合内部。
诸如catch和catchall之类的故障处理程序都位于BPEL内以捕获所有故障,但是仅当调用活动失败时才会执行故障策略。