BPEL - Usando Tratamento de Falhas
Para entender como usar o tratamento de falhas, precisamos aprender a arquitetura básica de um Service Composite no Oracle SOA Suite.
Service components- Processos BPEL, Regra de Negócios, Tarefa Humana, Mediador. Eles são usados para construir um aplicativo composto SOA.
Binding components - Estabelecer conexão entre um composto SOA e o mundo externo.
Services - Fornece um ponto de entrada para o aplicativo composto SOA.
Binding - Define os protocolos que se comunicam com o serviço como SOAP / HTTP, adaptador JCA, etc.
WSDL - Define a definição de serviço de um serviço web.
References - Permite que um aplicativo composto SOA envie mensagens para serviços externos
Wires - Permite a conexão entre os componentes do serviço.
Tipos de Falhas
Vamos agora ver os diferentes tipos de falhas.
Falhas de negócios
Ocorre quando o aplicativo executa a atividade THROW ou um INVOKE recebe falha como resposta. O nome da falha é especificado pelo componente de serviço do processo BPEL. O manipulador de falhas usando o nome da falha e a variável de falha detecta essa falha.
Falhas de tempo de execução
Isso é acionado pelo sistema. Essas falhas estão associadas aRunTimeFaultMessage e estão incluídos em
http://schemas.oracle.com/bpel/extensionnamespace.
Formas de tratamento de falhas
Nesta seção, aprenderemos sobre as diferentes formas de tratamento de falhas.
Jogue atividade
Jogue a atividade explicitamente lança a falha. O bloco catch detecta essa falha e as ações correspondentes são executadas desse modo.
Usando a atividade de lançamento, você pode lançar falhas de negócios e dentro do escopo criado, você pode detectar essa falha e redirecionar para o chamador (consumidor) para agir.
Em vez da abordagem acima, você lança a mesma falha detectada na atividade de captura do escopo criado. No escopo principal, você pode detectar essa falha usando a atividade catchall.
Estrutura do manipulador de erros (EHF)
Os 2 principais arquivos usados em EHF são -
- Fault-Policy.xml
- Fault-Bindings.xml
Sempre que o processo BPEL gerar um erro, o EHF verificará se o erro existe nos arquivos Fault-Bindings.xml. Nesse caso, a ação no arquivo Fault-Policy.xml será executada. Se a ação não for encontrada, a falha será lançada e será tratada no bloco de recepção.
A estrutura de gerenciamento de falhas (Fault-Policy.xml e Fault-Bindings.xml) é mantida dentro de um SOA Composite.
Manipuladores de falhas como catch e catchall estão dentro de um BPEL para capturar todas as falhas, mas fault policies will only be executed when an invoke activity fails.