TimeoutNotification 노드는 트랜잭션 메시지의
오류를 핸들링할 때 다음과 같은 조치를 취합니다. 트랜잭션 메시지가 아닌 메시지의 오류는
입력 노드에서 오류 관리의 설명대로 핸들링됩니다.
- TimeoutNotification 노드가 내부 오류를 감지할 경우,
다음 조치 중 하나가 발생합니다.
- Failure 터미널이 연결되어 있지 않으면 다음과 같은 상황이 발생합니다.
- TimeoutNotification 노드는 오류를 로컬 오류 로그에 작성합니다.
- TimeoutNotification 노드는 문제점이 해결될 때까지 반복적으로 요청을
처리하려고 시도합니다.
- Failure 터미널이 연결되어 있으면 사용자가 Failure 터미널에 연결된 플로우의 오류를
핸들링해야 합니다. 브로커는 새 ExceptionList를 작성하여 오류를 표시하고 이 오류는
메시지 트리의 일부로 Failure 터미널에 전달됩니다. 하지만 TimeoutNotification 노드나 브로커는
이후 실패 처리를 제공하지 않습니다. 메시지는 동일 트랜잭션의 일부로
Failure 터미널에 작성되고 실패 플로우가 오류 핸들링을 완료하면 트랜잭션이 확약됩니다.
- TimeoutNotification 노드에서 이미 메시지를 Out 터미널에 전달하여
Out 터미널에 연결된 플로우에서 예외가 전달된 경우 메시지는
TimeoutNotification 노드에 리턴됩니다. TimeoutNotification 노드는
오류를 로컬 오류 로그에 작성하고 다음 중 하나를 수행합니다.
- Catch 터미널이 연결되어 있지 않으면, TimeoutNotification 노드는
문제점이 해결될 때까지 메시지는 처리하기 위해 다시 시도합니다.
- Catch 터미널이 연결되어 있으면 사용자가 Catch 터미널에 연결된 플로우의 오류를
핸들링해야 합니다. 브로커는 새 ExceptionList를 작성하여 오류를 표시하고 이 오류는
메시지 트리의 일부로 Catch 터미널에 전달됩니다. 하지만 TimeoutNotification 노드나 브로커는
이후 실패 처리를 제공하지 않습니다. 메시지는 동일 트랜잭션의 일부로
Catch 터미널에 작성되고 Catch 터미널에에 연결된 플로우가 오류 핸들링을 완료하면
트랜잭션이 확약됩니다.
- TimeoutNotification 노드에서 이미 메시지를 Catch 터미널에 전달하여
Catch 터미널에 연결된 플로우에서 예외가 전달된 경우 메시지는 TimeoutNotification
노드에 리턴됩니다. TimeoutNotification 노드는
오류를 로컬 오류 로그에 작성하고 메시지를 처리하기 위해 다시 시도합니다.
- TimeoutNotification 노드에서 이미 메시지를 Failure 터미널에 전달하여
Failure 터미널에 연결된 플로우에서 예외가 전달된 경우 메시지는 TimeoutNotification
노드에 리턴됩니다.
TimeoutNotification 노드는
오류를 로컬 오류 로그에 작성하고 메시지를 처리하기 위해 다시 시도합니다. Catch 터미널이
연결된 경우에도 메시지는 이 터미널에 전달되지 않습니다.
이 조치는 아래의 표에 요약되어 있습니다.
오류 이벤트 |
Failure 터미널이 연결됨 |
Failure 터미널이 연결되지 않음 |
Catch 터미널이 연결됨 |
Catch 터미널이 연결되지 않음 |
노드가 내부 오류를 감지함 |
Failure 터미널에 연결된 플로우가 오류를 핸들링함 |
오류가 기록되고 노드가 재시도함 |
적용할 수 없음 |
적용할 수 없음 |
노드가 메시지를 Out 터미널에 전달하고 Out 플로우에서
예외가 발생함 |
적용할 수 없음 |
적용할 수 없음 |
Catch 터미널에 연결된 플로우가 오류를 핸들링함 |
오류가 기록되고 노드가 재시도함 |
노드가 메시지를 Catch 터미널에 전달하고 Catch 터미널에 연결된 플로우에서
예외가 발생함 |
오류가 기록되고 노드가 재시도함 |
오류가 기록되고 노드가 재시도함 |
적용할 수 없음 |
적용할 수 없음 |
노드가 메시지를 Failure 터미널에 전달하고 Failure 터미널에 연결된 플로우에서
예외가 발생함 |
적용할 수 없음 |
적용할 수 없음 |
오류가 기록되고 노드가 재시도함 |
오류가 기록되고 노드가 재시도함 |