BPEL-오류 처리 사용
오류 처리를 사용하는 방법을 이해하려면 Oracle SOA Suite에서 서비스 조합의 기본 아키텍처를 배워야합니다.
Service components− BPEL 프로세스, 비즈니스 규칙, 휴먼 태스크, 중재자. 이들은 SOA 복합 애플리케이션을 구성하는 데 사용됩니다.
Binding components − SOA 컴포지트와 외부 세계 간의 연결을 설정합니다.
Services − SOA 복합 애플리케이션에 대한 진입 점을 제공합니다.
Binding − SOAP / HTTP, JCA 어댑터 등과 같은 서비스와 통신하는 프로토콜을 정의합니다.
WSDL − 웹 서비스의 서비스 정의를 정의합니다.
References − SOA 복합 애플리케이션이 외부 서비스에 메시지를 보낼 수 있도록합니다.
Wires − 서비스 구성 요소 간의 연결을 활성화합니다.
결함 유형
이제 다양한 유형의 결함을 살펴 보겠습니다.
비즈니스 결함
애플리케이션이 THROW 활동을 실행하거나 INVOKE가 응답으로 오류를 수신 할 때 발생합니다. 결함 이름은 BPEL 프로세스 서비스 구성 요소에 의해 지정됩니다. 결함 이름과 결함 변수를 사용하는 결함 핸들러는이 결함을 포착합니다.
런타임 오류
이것은 시스템에 의해 발생합니다. 이러한 결함은RunTimeFaultMessage 에 포함되어 있습니다.
http://schemas.oracle.com/bpel/extensionnamespace.
오류 처리 방법
이 섹션에서는 다양한 오류 처리 방법에 대해 알아 봅니다.
활동 던지기
Throw 활동은 명시 적으로 오류를 throw합니다. catch 블록은이 오류를 포착하고 이에 따라 해당 작업이 실행됩니다.
throw 활동을 사용하면 비즈니스 오류를 throw 할 수 있으며 생성 된 범위 내에서이 오류를 포착하고 조치를 취하기 위해 호출자 (소비자)에게 리디렉션 할 수 있습니다.
위의 접근 방식 대신 생성 된 범위의 catch 활동에서 잡힌 동일한 오류를 발생시킵니다. 기본 범위에서 catchall 활동을 사용하여이 결함을 포착 할 수 있습니다.
오류 처리기 프레임 워크 (EHF)
EHF에서 사용되는 2 개의 주요 파일은 다음과 같습니다.
- Fault-Policy.xml
- Fault-Bindings.xml
BPEL 프로세스에서 오류가 발생할 때마다 EHF는 오류가 Fault-Bindings.xml 파일에 있는지 여부를 확인합니다. 그렇다면 Fault-Policy.xml 파일의 작업이 수행됩니다. 조치가 발견되지 않으면 결함이 발생하고 catch 블록에서 처리됩니다.
오류 관리 프레임 워크 (Fault-Policy.xml 및 Fault-Bindings.xml)는 SOA 조합 내에 유지됩니다.
catch 및 catchall과 같은 결함 처리기는 모든 결함을 포착하기 위해 BPEL 내부에 있지만 fault policies will only be executed when an invoke activity fails.