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 determinada de WebSphere MQ. 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 del Kit de herramientas de Message Brokers. Este aviso indica que no se han importado al proyecto
definiciones para las tablas de base de datos. Esto no afecta al comportamiento del ejemplo durante la ejecución.
La forma de visualizar el contenido de la base de datos del ejemplo depende de el producto de base de datos que se haya
instalado.
Para bases de datos DB2 utilice las herramientas proporcionadas por DB2; por ejemplo, el Centro de control de DB2. Si no ha
instalado un producto de base de datos, los ejemplos utilizarán la base de datos
Apache Derby. Las instrucciones para la visualización de los datos en una base de datos
Derby, consulte
Ver el contenido de una base de
datos Derby.
Si tiene problemas al ejecutar el ejemplo, consulte el apartado
Diagnóstico de problemas.
1. 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 el Kit de herramientas de Message Brokers, pase a la perspectiva Desarrollo de aplicaciones.
- En la vista Navegador de recursos, amplíe el proyecto Flujos de mensajes XML de
reserva de vuelos y, a continuación, efectúe una doble pulsación en el archivo
reservation1.enqueue para abrirlo en el editor de Colocación en cola.
- En el editor de colocación en cola, en el campo
Puerto, escriba
2414.
- Pulse en Grabar en cola. El primer mensaje de entrada se transfiere a la cola
XML_RESERVATION_IN.
- En la barra de herramientas de Kit de herramientas de Message Brokers, pulse en la flecha del icono
Obtener un mensaje de la cola
,
y a continuación pulse en Obtener mensaje... para abrir el diálogo Extraer mensaje de cola.
- En el diálogo Extraer mensaje de cola, obtenga cuatro mensajes de respuesta de la
cola XML_RESERVATION_OUT del gestor de colas WBRK6_DEFAULT_QUEUE_MANAGER; el número de
puerto es 2414.
Cada mensaje de respuesta confirma la reserva de un pasajero y contiene el nombre completo de éste, 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>
- Consulte la tabla XMLFLIGHTTB en la base de datos RESERVDB.
En todas las filas, el valor en 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.enqueue en el editor de colocación en cola y pulse
Grabar en cola. El segundo mensaje de entrada se transfiere a la cola XML_RESERVATION_IN.
- Use el diálogo Extraer mensaje de cola 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 el número exclusivo de su reserva.
La estructura del mensaje de respuesta es la misma que la de las respuestas el primer mensaje de entrada.
- Consulte la tabla XMLFLIGHTTB en la base de datos RESERVDB.
En todas las filas, el valor en 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 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 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
2. 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.enqueue en el editor de
colocación en cola.
- En el campo Puerto, escriba
2414 y, a continuación, pulse
Escribir en la cola. El primer mensaje de entrada se transfiere a la cola XML_PASSENGERQUERY_IN.
- Use el diálogo Extraer mensaje de cola 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 siguiente ejemplo 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.enqueue en el editor de
colocación en cola.
- En el campo Puerto, escriba
2414 y, a continuación, pulse
Escribir en la cola. El segundo mensaje de entrada se transfiere a la cola
XML_PASSENGERQUERY_IN.
- Use el diálogo Extraer mensaje de cola 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 siguiente ejemplo 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.
3. 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.enqueue en el editor de
colocación en cola.
- En el campo Puerto, escriba
2414 y, a continuación, pulse
Escribir en la cola. El mensaje de entrada se transfiere a la cola XML_FLIGHTQUERY_IN.
- Utilice el diálogo Extraer mensaje de cola, para obtener un mensaje de respuesta 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>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>
- Consulte la base de datos RESERVDB para comprobar que el flujo de mensajes XML_PassengerQuery no ha modificado los datos.
4. 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.enqueue en el editor de colocación en cola.
- En el campo Puerto, escriba
2414.
- Compruebe la base de datos del usuario RESERVDB para asegurarse de que los números de reserva de
cancelreservation.enqueue existen en la tabla XMLPASSENGERTB. Si los números de reserva no se encuentran
en cancelreservation.enqueue, edite el campo Datos de mensaje.
- Pulse en Grabar en cola. El mensaje de entrada se transfiere a la cola
XML_CANCELRESERVATION_IN.
- Use el diálogo Extraer mensaje de cola para obtener un mensaje de salida de la cola XML_CANCELRESERVATION_OUT. El
mensaje de salida sólo 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_RESERVATION ha efectuado 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 de presentación de ejemplos