Airline Reservations 샘플 실행
Airline Reservations 샘플을 실행하여 다음 작업을 시뮬레이션할 수 있습니다.
- 항공기 좌석 예약
- 승객에 대한 정보 요청
- 특정 항공기 및 관련 승객 목록에 대한 정보 요청
- 예약 취소
각 작업에 대해 특정 WebSphere MQ 큐에 메시지를 넣습니다. 해당 메시지 플로우는 큐에서 메시지를 가져와 이 메시지를 처리합니다. 다음 지시사항에서는 Airline Reservations 샘플 메시지 플로우를 통해 제공된 자체 정의 XML 메시지를 넣는 방법 및
메시지 플로우에서 수신할 것으로 예상할 수 있는 출력에 대해 설명합니다. 메시지 플로우는 데이터베이스를
갱신하므로 다음 지시사항에 나열된 순서대로 메시지 플로우를 실행해야 합니다.
샘플을 실행할 때 Message Brokers Toolkit의 문제점 보기에 해결할 수 없는 데이터베이스 테이블 참조 T.CLASSTYPE과 같은
오류 메시지가 표시될 수 있습니다. 이 경고는
데이터베이스 테이블의 정의를 프로젝트에 들여오지 않았음을 나타냅니다. 이는 런타임 시 샘플의 작동에 영향을 주지 않습니다.
샘플의 데이터베이스 컨텐츠를 보는 방법은 설치된 데이터베이스 제품에 따라 다릅니다. DB2 데이터베이스의 경우에는 DB2가 제공하는 도구를 사용하십시오(예: DB2 제어 센터). 데이터베이스 제품을 설치하지 않으면 샘플이 Apache Derby 데이터베이스를 사용합니다. Derby 데이터베이스에서 데이터를 보는 방법에 관한 지시사항은 Derby 데이터베이스의 컨텐츠 보기를 참조하십시오.
샘플을 실행할 때 문제점이 있으면 문제점 진단을 참조하십시오.
1. XML_Reservation 메시지 플로우 실행
XML_Reservation 메시지 플로우는 입력 메시지에 나열된 항공기에 좌석을 예약하고 승객이 예약을 확인할 수
있도록 응답 메시지를 생성합니다.
XML_Reservation 메시지 플로우를 실행하려면 다음을 수행하십시오.
- Message Broker Toolkit에서 응용프로그램 개발 Perspective로 전환하십시오.
- 자원 네비게이터 보기에서 Airline XML 메시지 플로우 프로젝트를 펼친 후
reservation1.enqueue 파일을 두 번 눌러 큐에 삽입 편집기로 파일을 여십시오.
- 큐에 삽입 편집기에서 포트 필드에 2414를 입력하십시오.
- 큐에 쓰기를 누르십시오. 첫 번째 입력 메시지가 XML_RESERVATION_IN 큐에 넣어집니다.
- Message Broker Toolkit 도구 모음에서 큐에서 메시지 가져오기 아이콘
의 화살표를 누른 후
메시지 가져오기...를 눌러 큐에서 삭제 메시지 대화 상자를 여십시오.
- 큐에서 삭제 메시지 대화 상자에서 WBRK6_DEFAULT_QUEUE_MANAGER 큐 관리자의 XML_RESERVATION_OUT 큐로부터
네 개의 응답 메시지를 가져오십시오. 포트 번호는 2414입니다. 각 응답 메시지는 한 승객의 예약을 확인하고 승객의 전체 이름과
예약된 좌석의 등급 및 고유 예약 번호를 포함합니다. 다음 예는 응답 메시지의 형식을 보여줍니다.
<PassengerReservationResponse>
<ListOfConfirmations>
<Confirmation>
<FirstName>Mary</FirstName>
<LastName>Smith</LastName>
<Class>F</Class>
<ReservationNumber>CA937200305251</ReservationNumber>
</Confirmation>
</ListOfConfirmations>
</PassengerReservationResponse>
- RESERVDB 데이터베이스에서 XMLFLIGHTTB 테이블을 점검하십시오. 모든 행에서 RESERVATIONSEQNO 값이 하나씩 증가되었습니다. 2003년 5월 25일 항공기 CA937에 대한
행에서 XML_Reservation 메시지 플로우가 다음과 같이 변경되었습니다.
- ECONOMICCLASS 값이 2만큼 증가
- FIRSTCLASS 값이 2만큼 증가
- TOTALECONOMIC 값이 2만큼 감소
- TOTALFIRST 값이 2만큼 감소
- RESERVDB 데이터베이스에서 XMLPASSENGERTB 테이블을 점검하십시오. XML_Reservation
메시지 플로우가 다음과 같이 변경했습니다.
- XMLPASSENGERTB 테이블에 네 개의 새 행 추가. 각 행은 입력 메시지에 나열된
각 승객에 대한 행입니다.
- 각 예약에 고유 예약 번호 할당
- 큐에 삽입 편집기에서 reservation2.enqueue를 열고 큐에 쓰기를 누르십시오. 두 번째 입력 메시지가 XML_RESERVATION_IN 큐에 넣어집니다.
- 큐에서 삭제 메시지 대화 상자를 사용하여 XML_RESERVATION_OUT 큐에서 하나의 응답 메시지를 가져오십시오.
응답 메시지는 Mary Smith의 두 번째 예약을 확인하고, 그녀의 전체 이름, 예약한 좌석의 등급 및 고유 예약 번호를
포함합니다. 응답 메시지의 구조는 첫 번째 입력 메시지에 대한 응답과 동일한 구조입니다.
- RESERVDB 데이터베이스에서 XMLFLIGHTTB 테이블을 점검하십시오. 모든 행에서
RESERVATIONSEQNO 값이 하나씩 증가되었습니다. 2003년 5월 25일 항공기 BA039에 대한 행에서
XML_Reservation 메시지 플로우가 다음과 같이 변경되었습니다.
- FIRSTCLASS 값이 1만큼 증가
- TOTALFIRST 값이 1만큼 감소
- RESERVDB 데이터베이스에서 XMLPASSENGERTB 테이블을 점검하십시오. XML_RESERVATION
메시지 플로우가 다음과 같이 변경되었습니다.
- 입력 메시지에 지정된 각 승객에 대한 새 행을 XMLPASSENGERTB 테이블에
추가
- 예약에 고유 예약 번호 할당
2. XML_PassengerQuery 메시지 플로우 실행
XML_PassengerQuery 메시지 플로우는 입력 메시지에 지정된 승객의 예약 세부사항을
검색합니다. 출력 메시지의 정보 유형은 입력 메시지에 제공된 정보에 따라 달라집니다.
XML_PassengerQuery 메시지 플로우를 실행하려면 다음을 수행하십시오.
- 큐에 삽입 편집기에서 passengerquery1.enqueue를 여십시오.
- 포트 필드에 2414를 입력한 후 큐에 쓰기를 누르십시오. 첫 번째 입력 메시지가 XML_PASSENGERQUERY_IN 큐에 넣어집니다.
- 큐에서 삭제 메시지 대화 상자를 사용하여 XML_PASSENGERQUERY_OUT 큐에서 하나의 출력 메시지를 가져오십시오. 출력 메시지에는
입력 메시지에 지정된 예약 번호를 할당받은 Debra Weiss의 이름 및 예약 세부사항이
포함됩니다. 다음 예는 출력 메시지의 형식을 보여줍니다.
<PassengerInfoResponse>
<PassengerInfo>
<ReservationNumber>CA937200305253</ReservationNumber>
<FirstName>Debra</FirstName>
<LastName>Weiss</LastName>
<FlightNumber>CA937</FlightNumber>
<Date>20030525</Date>
<Class>Y</Class>
</PassengerInfo>
<PassengerInfoResponse>
- 큐에 삽입 편집기에서 passengerquery2.enqueue를 여십시오.
- 포트 필드에 2414를 입력한 후 큐에 쓰기를 누르십시오. 두 번째 입력 메시지가 XML_PASSENGERQUERY_IN 큐에 넣어집니다.
- 큐에서 삭제 메시지 대화 상자를 사용하여 XML_PASSENGERQUERY_OUT 큐에서 하나의 출력 메시지를 가져오십시오. 출력 메시지에는
입력 메시지에 지정된 Mary Smith의 두 예약에 대해 승객의 이름 및 예약 세부사항이 포함됩니다. 다음 예는 출력 메시지의 형식을 보여줍니다.
<PassengerInfoResponse>
<ListOfReservations>
<Reservation>
<FlightNumber>CA937</FlightNumber>
<Date>20030525</Date>
<Class>F</Class>
</Reservation>
<Reservation>
<FlightNumber>BA039</FlightNumber>
<Date>20030525</Date>
<Class>F</Class>
</Reservation>
</ListOfReservations>
</PassengerInfoResponse>
- RESERVDB 사용자 데이터베이스를 점검하여 XML_PassengerQuery 메시지 플로우가 데이터를 수정하지 않았는지 확인하십시오.
3. XML_FlightQuery 메시지 플로우 실행
XML_FlightQuery 메시지 플로우는 세 개의 작은 메시지 플로우로 구성됩니다.
XML_FlightQuery가 작동하려면 세 개의 모든 메시지 플로우가 브로커로 전개되어
시작되어야 합니다.
- XML_FlightQueryOut
- XML_FlightQueryReply
- XML_FlightQueryIn
XML_FlightQuery 메시지 플로우는 입력 메시지에 지정된 항공기에 대한 정보 및 이 항공기에
예약한 승객 목록을 검색합니다.
XML_FlightQuery 메시지 플로우를 실행하려면 다음을 수행하십시오.
- 큐에 삽입 편집기에서 flightdetailsquery.enqueue를 여십시오.
- 포트 필드에 2414를 입력한 후 큐에 쓰기를 누르십시오. 입력 메시지가 XML_FLIGHTQUERY_IN 큐에 넣어집니다.
- 큐에서 삭제 메시지 대화 상자를 사용하여 XML_FLIGHTQUERY_OUT 큐에서 하나의 응답 메시지를 가져오십시오. 응답 메시지에는
일등석 및 일반석의 좌석 수, 좌석 요금 및 예약 가능한 좌석 수에 대한 세부사항이
포함됩니다. 다음 예는 응답 메시지의 형식을 보여줍니다.
<FlightDetailsInfoResponse>
<Flight number="CA937" Flightdate="20030525">
<FirstClass>
<Capacity>38</Capacity>
<Used>6</Used>
<Price>300</Price>
</FirstClass>
<EconomyClass>
<Capacity>188</Capacity>
<Used>6</Used>
<Price>200</Price>
</EconomyClass>
<Origin>BEIJING</Origin>
<Destination>LONDON</Destination>
</Flight>
<ListOfPassengers>
<Passenger>
<ReservationNumber>CA937200305251</ReservationNumber>
<FirstName>Mary</FirstName>
<LastName>Smith</LastName>
<Class>F</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305252</ReservationNumber>
<FirstName>Diane</FirstName>
<LastName>Rose</LastName>
<Class>Y</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305253</ReservationNumber>
<FirstName>Debra</FirstName>
<LastName>Wiess</LastName>
<Class>Y</Class>
</Passenger>
<Passenger>
<ReservationNumber>CA937200305254</ReservationNumber>
<FirstName>Atila</FirstName>
<LastName>Wiess</LastName>
<Class>F</Class>
</Passenger>
</ListOfPassengers>
</FlightDetailsInfoResponse>
- RESERVDB 사용자 데이터베이스를 점검하여 XML_PassengerQuery 메시지 플로우가 데이터를 수정하지 않았는지 확인하십시오.
4. XML_CancelReservation 메시지 플로우 실행
XML_CancelReservation 메시지 플로우는 입력 메시지에 예약 번호별로 나열된
예약을 취소합니다.
XML_CancelReservation 메시지 플로우를 실행하려면 다음을 수행하십시오.
- 큐에 삽입 편집기에서 cancelreservation.enqueue를 여십시오.
- 포트 필드에 2414를 입력하십시오.
- RESERVDB 사용자 데이터베이스를 점검하여 cancelreservation.enqueue에 있는 예약 번호가
XMLPASSENGERTB 테이블에 존재하는지 확인하십시오. cancelreservation.enqueue에 예약 번호가 존재하지
않으면 메시지 데이터 필드를 편집하십시오.
- 큐에 쓰기를 누르십시오. 입력 메시지가 XML_CANCELRESERVATION_IN 큐에 넣어집니다.
- 큐에서 삭제 메시지 대화 상자를 사용하여 XML_CANCELRESERVATION_OUT 큐에서 하나의 출력 메시지를 가져오십시오. 출력 메시지는
단지 입력 메시지의 사본입니다.
- RESERVDB 데이터베이스에서 XMLFLIGHTTB 테이블을 점검하십시오. 2003년 5월 25일 항공기 CA937에 대한
행에서 XML_CancelReservation 메시지 플로우가 다음과 같이 변경되었습니다.
- ECONOMICCLASS 값이 2만큼 감소
- FIRSTCLASS 값이 2만큼 감소
- TOTALECONOMIC 값이 2만큼 증가
- TOTALFIRST 값이 2만큼 증가
- RESERVDB 데이터베이스에서 XMLPASSENGERTB 테이블을 점검하십시오. XML_RESERVATION
메시지 플로우가 다음과 같이 변경되었습니다.
- 입력 메시지에 나열된 사람마다 하나씩, XMLPASSENGERTB 테이블로 네 개의 행을 제거했습니다.
샘플 홈으로 돌아가기