Ejecutar el ejemplo de Reserva de vuelos
Puede
ejecutar el ejemplo de Reserva de vuelos para simular las tareas siguientes:
- Reservar asientos en un vuelo
- Solicitar información sobre un pasajero.
- Solicitar información sobre un vuelo específico y su lista de pasajeros
- Cancelar una reserva
Para cada tarea, transfiera un mensaje a una cola de WebSphere MQ específica.
El flujo de mensajes apropiado obtiene el mensaje de la cola y lo procesa.
Las siguientes instrucciones explican cómo transferir los mensajes XML autodefinidos a través de los flujos de mensajes
del ejemplo de Reserva de vuelos y qué salida se puede recibir de los flujos de mensajes.
Como los flujos de mensajes actualizan las bases de datos, deberá ejecutar los flujos de mensajes en el orden en que
están listados en las siguientes instrucciones.
Cuando ejecute el ejemplo, es posible que vera mensajes de error parecidos a éste: Referencia de tabla de
datos irresoluble T.CLASSTYPE en la vista Problemas de WebSphere Message Broker Toolkit.
Este aviso indica que no se han importado al proyecto
definiciones para las tablas de base de datos.
Este aviso no afecta al comportamiento del ejemplo durante la ejecución.
La forma de visualizar el contenido de la base de datos depende del producto de base de datos esté instalado.
Para bases de
datos DB2, utilice las herramientas proporcionadas por DB2; por ejemplo,
el Centro de control de DB2.
Si encuentra cualquier tipo de problema al ejecutar el ejemplo, consulte Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message Broker.
Nota: Si se ejecutan varios mensajes de prueba a través del flujo puede que parezca que se ha producido un error.
Este error aparente se debe a que se ha sobrepasado un umbral provocando que el mensaje pase a través del flujo de una forma diferente.
Para resolver este error aparente, devuelva a la base de datos el contenido original.
Ejecutar el flujo de mensajes XML_Reservation
El flujo de mensajes XML_Reservation reserva asientos en el vuelos indicado en el mensaje de entrada y genera mensajes
de respuesta para los pasajeros confirmando sus reservas.
Para ejecutar el flujo de mensajes XML_Reservation:
- En la vista "Desarrollo de intermediario", expanda el proyecto Airline XML Message Flows, bajo Pruebas de flujo efectúe una doble pulsación en el archivo reservation1.mbtest para abrirlo en el Cliente de prueba.
- En el Cliente de prueba, pulse Colocar en cola.
- Pulse Enviar mensaje. El primer mensaje de entrada se transfiere a la cola
XML_RESERVATION_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para leer el primer mensaje de la cola, confirmando la reserva de Mary Smith.
El mensaje de respuesta confirma la reserva de un pasajero y contiene el nombre completo del pasajero, la clase de asiento que ha reservado y el número de reserva exclusivo.
El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<PassengerReservationResponse>
<ListOfConfirmations>
<Confirmation>
<FirstName>Mary</FirstName>
<LastName>Smith</LastName>
<Class>F</Class>
<ReservationNumber>CA937200305251</ReservationNumber>
</Confirmation>
</ListOfConfirmations>
</PassengerReservationResponse>
- Repita el paso anterior para obtener cada uno de los restantes tres mensajes que confirma las reservas para Diane Rose, Debra Wiess y Atila Wiess, desde la cola XML_RESERVATION_OUT.
- Consulte la tabla XMLFLIGHTTB en la base de datos RESERVDB.
En todas las filas, el valor del campo RESERVATIONSEQNO ha aumentado en cuatro. En
la fila para el vuelo CA937 del 25 de mayo de 2003 el flujo de mensajes
XML_Reservation ha efectuado los cambios siguientes:
- Ha aumentado en dos el valor en ECONOMICCLASS
- Ha aumentado en dos el valor en FIRSTCLASS
- Ha disminuido en dos el valor en TOTALECONOMIC
- Ha disminuido en dos el valor en TOTALFIRST
- Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El flujo de mensajes
XML_Reservation ha efectuado los cambios siguientes:
- Ha añadido cuatro filas nuevas a la tabla
XMLPASSENGERTB, una para cada persona listada en el mensaje de entrada
- Ha asignado un número exclusivo a cada reserva
- Abra reservation2.mbtest en el cliente de prueba y pulse Colocar en cola.
- Pulse Enviar mensaje para colocar el
segundo mensaje de entrada en la cola XML_RESERVATION_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para obtener un
mensaje de respuesta de la cola XML_RESERVATION_OUT.
El mensaje de respuesta confirma la segunda reserva de Mary Smith y contiene su nombre completo, la clase de asiento que ha reservado y su número de reserva exclusivo. La estructura del mensaje de respuesta es
la misma que la de las respuestas al primer mensaje de entrada.
- Consulte la tabla XMLFLIGHTTB en la base de datos RESERVDB.
En todas las filas, el valor de RESERVATIONSEQNO ha aumentado en uno. En
la fila para el vuelo BA039 del 25 de mayo de 2003, el flujo de mensajes
XML_Reservation ha efectuado los cambios siguientes:
- Ha aumentado en uno el valor en FIRSTCLASS
- Ha disminuido en uno el valor en TOTALFIRST
- Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB.
El
flujo de mensajes XML_RESERVATION ha efectuado los cambios siguientes:
- Ha añadido una fila nueva a la tabla
XMLPASSENGERTB para la persona nombrada en el mensaje de entrada
- Ha asignado un número exclusivo a la reserva
Ejecutar el flujo de mensajes XML_PassengerQuery
El flujo de mensajes XML_PassengerQuery recupera los detalles de la
reserva del pasajero especificado en el mensaje de entrada. El tipo de
información en el mensaje de salida depende de la información
proporcionada en el mensaje de entrada.
Para ejecutar el flujo de mensajes XML_PassengerQuery:
- Abra passengerquery1.mbtest en el
Cliente de prueba y pulse Colocar en cola.
- Pulse Enviar mensaje. El primer mensaje de entrada se transfiere a la cola XML_PASSENGERQUERY_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para obtener un
mensaje de salida de la cola XML_PASSENGERQUERY_OUT. El mensaje de salida
contiene el nombre y los detalles de la reserva de Debra Weiss, a quien se
le ha asignado el número de reserva especificado en el mensaje de entrada. El
ejemplo siguiente muestra el formato del mensaje de salida:
<PassengerInfoResponse>
<PassengerInfo>
<ReservationNumber>CA937200305253</ReservationNumber>
<FirstName>Debra</FirstName>
<LastName>Weiss</LastName>
<FlightNumber>CA937</FlightNumber>
<Date>20030525</Date>
<Class>Y</Class>
</PassengerInfo>
<PassengerInfoResponse>
- Abra passengerquery2.mbtest en el cliente de prueba y pulse Colocar en cola.
- Pulse Enviar mensaje para colocar el
segundo mensaje de entrada en la cola XML_PASSENGERQUERY_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para obtener un
mensaje de salida de la cola XML_PASSENGERQUERY_OUT.
El
mensaje de salida contiene el nombre y los detalles de las dos reservas
efectuadas por Mary Smith, la pasajera especificada
en el mensaje de entrada. El ejemplo siguiente muestra el formato del mensaje de salida:
<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>
- Consulte la base de datos RESERVDB para comprobar que el flujo de mensajes XML_PassengerQuery no ha modificado los datos.
Ejecutar los flujos de mensajes XML_FlightQuery
El flujo de mensajes XML_FlightQuery se crea a partir de tres
pequeños flujos de mensajes.
Para que XML_FlightQuery funcione, los tres
flujos de mensajes deben estar desplegados en el intermediario e iniciados:
- XML_FlightQueryOut
- XML_FlightQueryReply
- XML_FlightQueryIn
El flujo de mensajes XML_FlightQuery recupera información sobre el vuelo especificado en el mensaje de entrada y una
lista de los pasajeros que han reservado asiento en ese vuelo.
Para ejecutar el flujo de mensajes XML_FlightQuery:
- Abra flightdetailsquery.mbtest en el cliente de prueba y pulse Colocar en cola.
- Pulse Enviar mensaje para colocar el
mensaje de entrada en la cola XML_FLIGHTQUERY_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para obtener un
mensaje de salida de la cola XML_FLIGHTQUERY_OUT.
El mensaje de respuesta
contiene detalles de cuántos asientos hay en Primera clase y en Clase
turista, el precio de cada asiento y cuántos hay disponibles. El ejemplo siguiente muestra el formato de un mensaje de respuesta:
<FlightDetailsInfoResponse>
<Flight number="CA937" Flightdate="20030525">
<FirstClass>
<Capacity>48</Capacity>
<Used>2</Used>
<Price>300</Price>
</FirstClass>
<EconomyClass>
<Capacity>198</Capacity>
<Used>2</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>
- Consulte la base de datos RESERVDB para comprobar que el flujo de
mensajes XML_FlightQuery no ha modificado ninguno de los datos.
Ejecutar el flujo de mensajes XML_CancelReservation
El flujo de mensajes XML_CancelReservation cancela las reservas que se listan, por
número de reserva, en el mensaje de entrada.
Para ejecutar el flujo de mensajes XML_CancelReservation:
- Abra cancelreservation.mbtest en el
Cliente de prueba y pulse Colocar en cola.
- Compruebe la base de datos de usuario RESERVDB para asegurarse de que
los números de reserva en cancelreservation.mbtest existen en la tabla
XMLPASSENGERTB.
Si los números de reserva no existen en
cancelreservation.mbtest, edite el campo Datos
del mensaje.
- Pulse Enviar mensaje.
El mensaje de
entrada se coloca en la cola XML_CANCELRESERVATION_IN.
- En el Cliente de prueba, pulse Extraer de la cola.
- Pulse Obtener mensaje para obtener un
mensaje de salida de la cola XML_CANCELRESERVATION_OUT. El mensaje de salida es una copia del mensaje de entrada.
- Consulte la tabla XMLFLIGHTTB en la base de datos RESERVDB. En la
fila para el vuelo CA937 del 25 de mayo de 2003 el flujo de mensajes
XML_CancelReservation ha efectuado los cambios siguientes:
- Ha disminuido en dos el valor en ECONOMICCLASS
- Ha disminuido en dos el valor en FIRSTCLASS
- Ha aumentado en dos el valor en TOTALECONOMIC
- Ha aumentado en dos el valor en TOTALFIRST
- Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El
flujo de mensajes XML_CancelReservation ha realizado los cambios siguientes:
- Ha eliminado cuatro filas de la tabla XMLPASSENGERTB, una
para cada persona listada en el mensaje de entrada.
Volver a la página inicial del ejemplo