XML_CancelReservation 메시지 플로우 정보
XML_CancelReservation 메시지 플로우는 입력 메시지에 나열된 예약을 취소하고, 사용자 데이터베이스를
갱신하여 예약 수가 감소하고 더 많은 좌석이 예약 가능함을 표시합니다. XML_CancelReservation 메시지 플로우는
Reservation Numbers 목록을 처리할 수 있으므로 예약을 한번에 하나씩 취소할 필요가 없습니다.
다음 그림은 XML_CancelReservation 메시지 플로우를 보여줍니다.

다음 표는 XML_CancelReservation 메시지 플로우에 사용된 노드 유형을 나열합니다.
노드 유형 |
노드 이름 |
MQInput |
XML_CANCELRESERVATION_IN |
Compute |
DeleteReservation; IncrementSeat |
Trace |
Trace; Trace1; Trace2 |
MQOutput |
XML_CANCELRESERVATION_FAIL1_1; XML_CANCELRESERVATION_FAIL1_2; XML_CANCELRESERVATION_FAIL2; XML_CANCELRESERVATION_OUT |
자세한 정보는 WebSphere Message Broker 문서에서 XML_CancelReservation 메시지 플로우의 노드를 읽으십시오. 이 메시지 플로우에 사용된 ESQL을 보려면 XML_CancelReservation 메시지 플로우 작성을 참조하십시오.
XML_CancelReservation 메시지 플로우는 다음 조치를 수행합니다.
- XML_CANCELRESERVATION_IN 노드는 XML_CANCELRESERVATION_IN 큐에서 입력 메시지를 가져와 이 입력 메시지를 XML 도메인에 있는 메시지로 식별합니다. 따라서
메시지 플로우는 XML 구문 분석기를 사용하여 메시지를 구문 분석해야 합니다.
- XML_CANCELRESERVATION_IN 노드는 Out 터미널을 통해 DeleteReservation 노드로 메시지를 전달합니다. 또는 다운스트림으로 예외가 발생하고 메시지가 여기로 롤백된 경우, XML_CANCELRESERVATION_IN 노드는
Catch 터미널을 통해 XML_CANCLERESERVATION_FAIL1_1 노드로 메시지를 전달하고, 이 노드는 메시지를
XML_CANCELRESERVATION_FAIL1 큐에 넣습니다.
- DeleteReservation 노드는 RESERVDB 데이터베이스에 있는 XMLPASSENGERTB 테이블을 점검하여 입력 메시지에 나열된 예약이 실제로 존재하는지 확인합니다.
- 예약이 존재하면 DeleteReservation 노드가 XMLPASSENGERTB 테이블에서 입력 메시지에 나열된 승객을 제거합니다. DeleteReservation 노드는Out 터미널을 통해 Trace1 노드로 메시지를 전달합니다. Trace1 노드는
메시지가 DeleteReservation 노드를 떠난 후 메시지의 상태를 로그합니다. 이 추적은 Windows의 경우 이벤트 뷰어 또는 Linux의 경우 syslog인 로컬 오류 로그에 저장됩니다. Trace1 노드는 메시지를 IncrementSeat 노드로 전달합니다.
- 예약이 존재하지 않을 경우
DeleteReservation 노드는 Failure 터미널을 통해 Trace 노드로 메시지를 전달합니다. Trace 노드는메시지를 Trace 노드로 전달되게 하는 올바르지 않은 XML과 같은 문제점을 추적하고 로그합니다. 추적은 로컬 오류 로그에 저장됩니다. 그런 다음, Trace 노드는 Out 터미널을 통해
XML_CANCELRESERVATION_FAIL1_2 노드로 메시지를 전달하고, 이 노드는 메시지를 XML_CANCELRESERVATION_FAIL1 큐에 넣습니다.
- IncrementSeat 노드는 RESERVDB 데이터베이스에 있는 XMLFLIGHTTB 테이블을 갱신하여 네 개의 좌석(각 등급에서 두 개씩)이
예약 가능해졌음을 보여줍니다. 그런 다음, IncrementSeat 노드는 Out 터미널을 통해 XML_CANCELRESERVATION_OUT 노드로 메시지를 전달하고, 이 노드는
메시지를 XML_CANCELRESERVATION_OUT 큐에 넣습니다. 또는 XMLFLIGHTTB 테이블을 갱신할 때 문제점이 있으면 IncrementSeat 노드는
메시지를 Trace2 노드로 전달합니다. Trace2 노드는 IncrementSeat 노드와 XML_CANCELRESERVATION_FAIL2 노드 사이에서
메시지가 흐를 때 이를 추적합니다. 추적은 로컬 오류 로그에 저장됩니다. XML_CANCELRESERVATION_FAIL2 노드는 메시지를 XML_CANCELRESERVATION_FAIL2 큐에 넣습니다.
XML_CancelReservation
메시지 플로우는 전달을 보증하는 순수한 비동기 메시징 설계를 보여줍니다. 메시지 플로우에 MQOutput 노드가 있지만 테스트용일 뿐이며 샘플 응용프로그램에서
의미가 없습니다. XML_CancelReservation 메시지 플로우는 단지
메시지 처리 완료 시 입력 메시지의 사본을 XML_CANCELRESERVATION_OUT
큐에 넣습니다. 메시지가 지속적인 경우 안전하게 로그되었으므로 메시지 플로우는 메시지가 목적지에 도달했는지 확인할 필요가
없습니다.
Airline Reservations 샘플 정보로 돌아가기