클라이언트 응용프로그램으로부터의 요청을 처리하는 중에 결함이
발생하면 내보내기 바인딩이 결함 정보를 클라이언트에 리턴할 수 있습니다.
내보내기 바인딩을 구성하여 결함을 처리하고 클라이언트에 리턴하는 방법을
지정합니다.
WebSphere® Integration Developer를 사용하여 내보내기 바인딩을 구성합니다.
요청을 처리하는 동안 클라이언트는 요청을 사용하여 내보내기를 호출하고 내보내기에서는
SCA 컴포넌트를 호출합니다. 요청을 처리하는 동안 SCA 컴포넌트는
비즈니스 응답을
리턴하거나 비즈니스 예외 또는 서비스
런타임 예외를 처리할 수 있습니다. 이러한
예외가 발생하면 다음 그림에 표시되고 뒤따르는 섹션에 설명되어 있는 대로
내보내기 바인딩은 예외를 결함 메시지로 변환한 후
클라이언트에
전송합니다.
그림 1. 내보내기 바인딩을 통해 컴포넌트에서 클라이언트로 결함 정보가
전송되는 방법
사용자 정의 데이터 핸들러 또는 데이터 바인딩을 작성하여 결함을 처리할 수
있습니다.
비즈니스 결함
비즈니스 결함은 처리 중에 발생하는
비즈니스 오류 또는 예외입니다.
createCustomer 조작이 있는 다음과 같은
인터페이스를 고려하십시오. 이 조작에는 두 가지 비즈니스 결함(CustomerAlreadyExists 및
MissingCustomerId)이 정의되어 있습니다.
이 예제에서는
클라이언트가 고객을 작성하기 위한 요청을 이 SCA 컴포넌트에 전송하고 해당
고객이 이미 있는 경우 컴포넌트는 CustomerAlreadyExists 결함을 내보내기에
전달합니다. 내보내기에서는 이 비즈니스 결함을 다시 호출하는 클라이언트로
전파해야 합니다. 이를 위해서 내보내기에서는 내보내기 바인딩에 설정된
결함 데이터 핸들러를 사용합니다.
내보내기 바인딩에 의해 비즈니스
결함이 수신되면 다음 처리가 발생합니다.
- 바인딩은 결함을 처리하기 위해 호출하는 결함 데이터 핸들러를 판별합니다.
서비스 비즈니스 예외에 결함 이름이 포함되어 있는 경우
결함에 설정된 데이터 핸들러가 호출됩니다. 서비스 비즈니스 예외에 결함의
이름이 포함되지 않은 경우 결함 유형을 일치시켜 결함 이름이 파생됩니다.
- 바인딩은 서비스 비즈니스 예외의 데이터 오브젝트를 사용하여
결함 데이터 핸들러를 호출합니다.
- 결함 데이터 핸들러는 결함 데이터 오브젝트를 응답 메시지로 변환하여
내보내기 바인딩에 리턴합니다.
- 내보내기에서는 응답 메시지를 클라이언트에 리턴합니다.
서비스 비즈니스 예외에 결함 이름이 포함되어 있는 경우
결함에 설정된 데이터 핸들러가 호출됩니다. 서비스 비즈니스 예외에 결함의
이름이 포함되지 않은 경우 결함 유형을 일치시켜 결함 이름이 파생됩니다.
런타임 예외
런타임 예외는 비즈니스 결함과
일치하지 않는 요청을 처리하는 동안 SCA 응용프로그램에 발생하는 예외입니다.
비즈니스 결함과는 달리 런타임 예외는 인터페이스에 정의되어 있지 않습니다.
특정 시나리오에서는 클라이언트 응용프로그램이 적절한 조치를 취할 수
있도록 이러한 런타임 예외를 클라이언트 응용프로그램에 전파할 수 있습니다.
예를 들어, 클라이언트가 SCA 컴포넌트에 고객 작성 요청을 전송하고
요청 처리 중에 권한 오류가 발생하는 경우 컴포넌트에는 런타임 예외가 발생합니다.
권한에 대해 적절한 조치를 취할 수 있도록 이 런타임 예외를 호출하는 클라이언트에
다시 전파해야 합니다. 이는 내보내기 바인딩에 구성된 런타임 예외 데이터 핸들러에
의해 달성됩니다.
주: HTTP 바인딩에서만 런타임 예외
데이터 핸들러를 구성할 수 있습니다.
런타임 예외 처리는 비즈니스 결함 처리와 비슷합니다.
런타임 예외 데이터 핸들러가 설정된 경우 다음과 같은 처리가 발생합니다.
- 내보내기 바인딩이 서비스 런타임 예외를 사용하여 적합한 데이터 핸들러를
호출합니다.
- 데이터 핸들러가 결함 데이터 오브젝트를 응답 메시지로 변환하여
내보내기 바인딩에 리턴합니다.
- 내보내기에서는 응답 메시지를 클라이언트에 리턴합니다.
결함 처리 및 런타임 예외 처리는 선택적입니다.
호출하는 클라이언트에 결함 또는 런타임 예외를 전파하지 않으려면 결함
데이터 핸들러 또는 런타임 예외 데이터 핸들러를 구성하지 마십시오.