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 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:

  1. En el Kit de herramientas de Message Brokers, pase a la perspectiva Desarrollo de aplicaciones.
  2. 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.
  3. En el editor de colocación en cola, en el campo Puerto, escriba 2414.
  4. Pulse en Grabar en cola. El primer mensaje de entrada se transfiere a la cola XML_RESERVATION_IN.
  5. En la barra de herramientas de Kit de herramientas de Message Brokers, pulse en la flecha del icono Obtener un mensaje de la cola El icono de Extraer mensaje de cola, y a continuación pulse en Obtener mensaje... para abrir el diálogo Extraer mensaje de cola.
  6. 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>
  7. 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:
  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.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.
  10. 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.
  11. 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:
  12. Consulte la tabla XMLPASSENGERTB en la base de datos RESERVDB. El flujo de mensajes XML_RESERVATION ha efectuado los cambios siguientes:

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:

  1. Abra passengerquery1.enqueue en el editor de colocación en cola.
  2. 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.
  3. 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>
  4. Abra passengerquery2.enqueue en el editor de colocación en cola.
  5. 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.
  6. 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>
  7. 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:

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.enqueue en el editor de colocación en cola.
  2. 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.
  3. 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>
  4. 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:

  1. Abra cancelreservation.enqueue en el editor de colocación en cola.
  2. En el campo Puerto, escriba 2414.
  3. 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.
  4. Pulse en Grabar en cola. El mensaje de entrada se transfiere a la cola XML_CANCELRESERVATION_IN.
  5. 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.
  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_RESERVATION ha efectuado los cambios siguientes:

Icono de la página principal   Volver a la página de presentación de ejemplos