주 컨텐츠로 이동
Administrator Guide
최종 업데이트: 2023-06-23
개념: 오류 처리기 구성요소

개념: 오류 처리기 구성요소

Studio의
Palette
에는 3가지
Error Handlers
가 제공됩니다.
이름
함수
send-error
표준 구성요소 및 단계를 사용하여 오류를 처리할 수 있습니다. 일반적인 패턴은
PutIntegrationMessage
공통 구성요소를 호출하여
send-error
를 통해 통합 이벤트에 오류를 보고하는 것입니다.
log-error
현재 오류를 출력 로그에 기록합니다. Java 예외의 스택 추적 및 오류 메시지를 포함합니다. 통합 이벤트에 오류를 개별적으로 표시할 필요는 없지만 오류 발생 시 메시지를 기록하려는 경우에 사용합니다. 큰 메시지는 성능을 저하시키고 잘려서 진단 데이터가 손실될 수 있으므로 기록하지 마십시오.
커스텀 오류 처리기
Java를 사용하여 오류를 처리하는 스프링 bean을 제공할 수 있습니다. 오류 처리에 복잡한 Java 코드가 필요한 경우에 사용합니다.
오류 처리기를 중재 구성요소의 하위 요소로 추가하거나 어셈블리의 개별 요소로 추가할 수 있습니다. 중재 구성요소에 추가된 오류 처리기는 로컬 오류 처리기입니다. 어셈블리의 오류 처리기는 글로벌 오류 처리기입니다.
Workday는 Studio 통합에서 오류가 발생하면 일반적인 처리를 중지하고 처리된 구성요소의 연결을 해제하여 호출할 오류 처리기를 찾습니다. 항상 로컬에서 먼저 오류를 처리하려고 시도합니다. 로컬 오류 처리기를 사용할 수 없는 경우 글로벌 오류 처리기가 대신 오류를 처리합니다. 오류 발생 시 수행할 작업을 세부적으로 제어하거나 오류 발생 시 통합이 수행하고 있던 작업에 대한 자세한 컨텍스트를 보고해야 하는 경우 로컬 오류 처리기를 사용합니다. 글로벌 오류 처리기는 비상 안전 장치로 간주됩니다.
모든 오류 처리기가 실행되었지만 오류가 여전히 처리완료 상태로 표시되지 않으면 Workday가 메시지를 처리하고 예외에서 오류를 생성하며 어셈블리를 종료된 것으로 표시합니다. 통합을 ‘완료 - 오류 있음’으로 표시합니다.
주요 기본 동작은 다음과 같습니다.
  • 로컬 오류 처리기는 상위 중재 구성요소에서 발생하는 오류만 처리합니다. 그러나 다운스트림 구성요소의 오류도 처리할 수 있습니다. 이 동작을 활성화하려면 오류 처리기가 포함된 중재 구성요소의
    Handle Downstream Errors
    속성을
    true
    로 설정합니다.
  • Workday는 오류 처리기가 호출되면 오류를 처리완료 상태로 표시합니다. 그러나 오류 처리기의
    Rethrow Error
    속성을
    true
    로 설정하면 Workday가 오류를 처리하지 않습니다. 따라서 범위 내 다음 업스트림 오류 처리기 또는 글로벌 오류 처리기에서 처리됩니다. 이 패턴을 사용하여 오류의 세부내용을 로컬로 보고하고 전체 실패 또는 완료를 조립품의 상위 레벨에서 처리합니다.
  • Workday는 오류를 처리할 때 호출된 오류 핸들러에서 메시지 처리를 재시작하고, 오류가 발생한 요소의 응답 경로를 계속 진행합니다. 그러나 오류가 발생한 요소에서 처리가 재개되도록 지정할 수도 있습니다. 이 동작을 활성화하려면 오류 처리기가 포함된 중재 구성요소의
    Continue After Error
    속성을
    recover
    로 설정합니다. 이 동작은 오류 처리기에 의해 호출된 코드가 오류 조건을 수정하고 실패한 작업을 다시 시도하여 성공적으로 완료할 수 있는 상황에서 사용합니다.
속성
뷰에 MVEL 조건 표현식을 추가하여 오류 처리기를 더 효과적으로 제어할 수 있습니다. 조건식이 있는 경우 Workday는 모두 True로 평가되는 경우에만 오류 핸들러를 호출합니다.
다음을 사용하여 강제로 오류를 발생시킬 수 있습니다.
context.setError
또는
context.SetException
MVEL 또는 Java 코드의 메서드 다음을 사용하는 경우
setError
메서드를 사용하는 경우 오류 처리기의 조건식으로 검색할 수 있는 오류 ID를 구성할 수 있습니다. 로컬에서 오류를 처리하지만 일반적인 처리를 위해 일부 오류 유형의 세부내용을 업스트림 오류 처리기로 전달하려는 경우 이 기술을 사용합니다.
다음과 같이
Route
구성요소를 사용하여 오류를 처리할 수도 있습니다.
  • failover-strategy
    는 route 사용을 시도하고, 오류가 발생하면 failover route를 실행하여 오류를 처리완료 상태로 표시합니다.
  • custom-strategy를
    사용하면 봄철 빈(bean)을 제공할 수 있습니다. 다음을 구현합니다.
    RoutingStrategy
    다음을 포함하는 인터페이스
    isHandleError
    방법 이 방법을 사용하여 전략이 오류를 처리하도록 지정합니다.