ExceptionList 트리는 메시지 플로우가 메시지 처리 시 발생하는 예외 사항에 대한 정보를 작성하는 논리적 메시지 트리의 부분입니다.
ExceptionList 트리의 루트를 ExceptionList라고 하며, 트리는 0개 이상의 예외 설명 세트로 구성됩니다. ExceptionList 트리는 예외가 발생하는 경우 메시지 플로우로 채워집니다. 메시지 플로우 처리 중에 예외 조건이 발생하지 않으면, 해당 메시지와 연관된 예외 목록은 루트 요소만으로 구성됩니다. 즉, 실제로는 예외 목록이 비어 있습니다.
예외가 발생한 후 메시지를 수신하는 메시지 플로우 내의 다른 노드가 ExceptionList 트리에 액세스할 수 있습니다. Compute 노드에서만 해당 컨텐츠를 수정할 수 있습니다.
예외 조건이 발생하면, 메시지 처리가 일시중단되고 예외가 전달됩니다. 제어는 상위 레벨, 즉 catch 블록으로 다시 전달됩니다. LocalEnvironment 및 새로 채워진 ExceptionList와 함께 실패 조건 및 전체 메시지를 설명하기 위해 빌드된 ExceptionList는 예외 핸들링 메시지 플로우 경로를 통해 전달됩니다.
ExceptionList의 하위는 항상 RecoverableException입니다. 일부 환경에서는 둘 이상이 생성될 수도 있으나 일반적으로 루트에 대해 하나의 하위만 있습니다. ExceptionList의 하위에는 여러 개의 하위가 포함되어 있으며, 이 중 마지막 하위는 예외 유형에 고유한 추가 정보를 제공하고 다음 중 하나일 수 있습니다.
RecoverableException에 대한 ExceptionList 트리 구조가 아래에 표시됩니다.
예외 설명 구조는 ExceptionList 트리를 생성하기 위해 반복 또는 중첩될 수 있습니다. 이 트리의 경우:
트리의 하위는 예외에 대한 세부사항을 제공하는 여러 개의 이름-값 요소 형식과, 이름이 Insert인 0개 이상의 이름 요소를 취합니다. 이름-값 요소에 지정되는 자국어 지원(NLS) 메시지 번호는 WebSphere Message Broker 오류 메시지를 나타냅니다. Insert 값은 이 메시지 내의 변수를 바꾸는 데 사용되며 예외의 원인에 대한 보다 자세한 정보를 제공합니다.
위의 그림에 표시된 ExceptionList 내의 이름-값 요소가 아래의 표에 설명되어 있습니다.
이름 | 유형 | 설명 | |
---|---|---|---|
File1 | 문자열 | C++ 소스 파일 이름 | |
Line1 | 정수 | C++ 소스 파일 행 번호 | |
Function1 | 문자열 | C++ 소스 함수 이름 | |
Type2 | 문자열 | 소스 오브젝트 유형 | |
Name2 | 문자열 | 소스 오브젝트 이름 | |
Label2 | 문자열 | 소스 오브젝트 레이블 | |
Text1 | 문자열 | 추가 텍스트 | |
Catalog3 | 문자열 | NLS 메시지 카탈로그 이름4 | |
Severity3 | 정수 | 1 = 정보 |
|
Number3 | 정수 | NLS 메시지 번호4 | |
Insert3 | Type | 정수 | 데이터 유형의 값: 0 = 알 수 없음 |
Text | 문자열 | 데이터 값 | |
주:
|
메시지 플로우 처리가 완료되면 ExceptionList 트리가 제거됩니다.
Airline Reservations 샘플이 XML_Reservation 메시지 플로우의 ExceptionList를 사용하여 Throw 노드에 오류 정보를 전달하며, 이로써 ExceptionList의 정보를 포함하는 오류 메시지가 생성됩니다.