Ejecutar el ejemplo de Reserva de vuelos

Puede ejecutar el ejemplo de Reserva de vuelos para simular las tareas siguientes:

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:

  1. 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.
  2. En el Cliente de prueba, pulse Colocar en cola.
  3. Pulse Enviar mensaje. El primer mensaje de entrada se transfiere a la cola XML_RESERVATION_IN.
  4. En el Cliente de prueba, pulse Extraer de la cola.
  5. 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>
  6. 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.
  7. 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:
  8. Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El flujo de mensajes XML_Reservation ha efectuado los cambios siguientes:
  9. Abra reservation2.mbtest en el cliente de prueba y pulse Colocar en cola.
  10. Pulse Enviar mensaje para colocar el segundo mensaje de entrada en la cola XML_RESERVATION_IN.
  11. En el Cliente de prueba, pulse Extraer de la cola.
  12. 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.
  13. 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:
  14. Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El flujo de mensajes XML_RESERVATION ha efectuado los cambios siguientes:

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:

  1. Abra passengerquery1.mbtest en el Cliente de prueba y pulse Colocar en cola.
  2. Pulse Enviar mensaje. El primer mensaje de entrada se transfiere a la cola XML_PASSENGERQUERY_IN.
  3. En el Cliente de prueba, pulse Extraer de la cola.
  4. 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>
  5. Abra passengerquery2.mbtest en el cliente de prueba y pulse Colocar en cola.
  6. Pulse Enviar mensaje para colocar el segundo mensaje de entrada en la cola XML_PASSENGERQUERY_IN.
  7. En el Cliente de prueba, pulse Extraer de la cola.
  8. 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>
  9. 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:

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:

  1. Abra flightdetailsquery.mbtest en el cliente de prueba y pulse Colocar en cola.
  2. Pulse Enviar mensaje para colocar el mensaje de entrada en la cola XML_FLIGHTQUERY_IN.
  3. En el Cliente de prueba, pulse Extraer de la cola.
  4. 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>
  5. 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:

  1. Abra cancelreservation.mbtest en el Cliente de prueba y pulse Colocar en cola.
  2. 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.
  3. Pulse Enviar mensaje. El mensaje de entrada se coloca en la cola XML_CANCELRESERVATION_IN.
  4. En el Cliente de prueba, pulse Extraer de la cola.
  5. 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.
  6. 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:
  7. Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El flujo de mensajes XML_CancelReservation ha realizado los cambios siguientes:

Volver a la página inicial del ejemplo