Ejecutar el ejemplo de Direccionamiento de mensajes utilizando una base de datos

La ejecución del ejemplo de Direccionamiento de mensajes se divide en dos escenarios:

Estos dos escenarios se describen por separado. Todos los mensajes de prueba que se utilizan en esta sección están guardados en el directorio Mensajes de prueba del proyecto de Message Broker llamado Flujos de mensajes del ejemplo de direccionamiento de mensajes.

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.

Mensajes de prueba de entrada

Todos los mensajes de prueba utilizados para la ejecución de este ejemplo se basan en el siguiente formato:

<SaleEnvelope>
  <Header>
    <SaleListCount>1</SaleListCount>
  </Header>
  <SaleList>
    <Invoice>
      <Initial>T</Initial>
      <Initial>D</Initial>
      <Surname>Montana</Surname>
      <Item><Code>00</Code>
        <Code>01</Code><Code>02</Code>
        <Description>Twister</Description>
        <Category>Games</Category>
        <Price>00.30</Price>
        <Quantity>01</Quantity>
      </Item>
      <Item>
        <Code>02</Code><Code>03</Code><Code>01</Code>
        <Description>The Times Newspaper</Description>
        <Category>Books and Media</Category>
        <Price>00.20</Price>
        <Quantity>01</Quantity>
      </Item>
      <Balance>00.50</Balance>
      <Currency>Sterling</Currency>
    </Invoice>
  </SaleList>
  <Trailer>
    <CompletionTime>12.00.00</CompletionTime>
  </Trailer>
</SaleEnvelope>

Los campos Initial y Surname se utilizan para direccionar el mensaje.

Ejecutar el ejemplo

Utilizar una conexión directa a la tabla de base de datos para direccionar el mensaje

Esta parte del ejemplo utiliza el flujo de mensajes Routing_using_database_table. El flujo de mensajes contiene una cola de entrada llamada ROUTING.DATABASE.IN1. El flujo de mensajes puede direccionar el mensaje a una de 20 colas de salida basándose en el contenido del mensaje (ROUTING.OUT seguido de un número del 1 al 19 más una cola llamada ROUTING.DEFAULT). Para ejecutar esta parte del ejemplo:

  1. En la vista Desarrollo de intermediario, expanda el proyecto Flujos de mensajes del ejemplo de direccionamiento de mensajes. En Pruebas de flujos, pulse dos veces en Database_Direct_message1.mbtest para abrir el archivo en el Cliente de pruebas
  2. En el Cliente de prueba, pulse Colocar en cola, pulse Enviar mensaje para enviar un mensaje en la cola ROUTING.DATABASE.IN1. El flujo de mensajes direcciona el mensaje a la cola ROUTING.OUT1.
  3. En el cliente de prueba, pulse Colocar en cola, pulse Obtener mensaje para leer un mensaje de la cola ROUTING.DATABASE.OUT1.
  4. En Mensajes de prueba, pulse dos veces Database_Direct_message2.. mbtest para abrir el archivo en el Cliente de prueba.
  5. En el cliente de prueba, pulse colocar en cola, pulse Enviar mensaje para enviar el mensaje a ROUTING.DATABASE.IN1. El flujo de mensajes direcciona el mensaje a la cola ROUTING.OUT19.
  6. En el cliente de prueba, pulse Colocar en cola, pulse Obtener mensaje para leer el mensaje direccionado de la cola ROUTING.OUT19.

Si todos los pasos anteriores se satisfactoriamente, la primera parte del ejemplo es completo. Para averiguar cómo está programado el direccionamiento, busque ESQL en el flujo de mensajes, consulte Routing_using_database_table_Compute.

Utilizar una memoria caché de la tabla de base de datos para direccionar el mensaje.

Esta parte del ejemplo utiliza el flujo de mensajes Routing_using_memory_cache. Contiene dos colas de entrada denominadas ROUTING.DATABASE.MEMORY.IN1 y ROUTING.REFRESH.IN1. El flujo de mensajes puede direccionar el mensaje a una de las 20 colas del contenido del mensaje (ROUTING.OUT seguido de un número de 1-19 más una cola denominada ROUTING.DEFAULT). La lógica de direccionamiento es igual que en la versión que no está almacenada en memoria caché. Utilice los pasos siguientes para ejecutar esta parte del ejemplo son:

  1. En la vista Desarrollo de intermediario, expanda el proyecto Flujos de mensajes del ejemplo de direccionamiento de mensajes. En mensajes de Prueba, pulse dos veces Database_Memory_cache_message1.. mbtest para abrir el archivo en el Cliente de prueba.
  2. En el Cliente de prueba, pulse Colocar en cola, pulse Enviar mensaje para escribir el mensaje en la cola ROUTING.DATABASE.MEMORY.IN1.
  3. En el cliente de prueba, pulse Colocar en cola, pulse Obtener mensaje para obtener el mensaje de la cola ROUTING.OUT1.
  4. En Mensajes de prueba, pulse dos veces Database_Memory_cache_message2.. mbtest para abrir el archivo en el Cliente de prueba.
  5. En el Cliente de prueba, pulse Colocar en cola, pulse Enviar mensaje para escribir el mensaje en la cola ROUTING.DATABASE.MEMORY.IN1.
  6. En el cliente de prueba, pulse Colocar en cola, pulse Obtener mensaje para obtener el mensaje de la cola ROUTING.OUT19.
  7. Al llegar a este punto, el flujo funciona exactamente igual que el último flujo en lo que se refiere a funcionalidad, pero está utilizando la versión en memoria caché de la tabla de la base de datos. Para probar el efecto de la utilización de la memoria caché, la tabla de la base de datos se modificará para mostrar cómo se puede renovar la memoria caché. Para modificar la tabla de base de datos de su base de datos:
  8. Efectúe una doble pulsación en Database_Memory_cache_message2.. mbtest para abrirlo en el Cliente de prueba.
  9. En el Cliente de prueba, pulse Colocar en cola, pulse Enviar mensaje para escribir el mensaje en la cola ROUTING.DATABASE.MEMORY.IN1.
  10. En el cliente de prueba, pulse Colocar en cola, pulse Obtener mensaje para obtener el mensaje de la cola ROUTING.OUT19. El mensaje no se direcciona al nombre de la nueva cola debido a que la tabla de base de datos no se ha vuelto a leer.
  11. Para hacer que el flujo vuelva a leer la base de datos, bajo Mensajes de prueba, abra Database_Refresh_cache_message1.. mbtest, pulse Colocar en cola, pulse Enviar mensaje para escribir el mensaje en la cola ROUTING.DATABASE.REFRESH.IN1.
  12. Efectúe una doble pulsación en Database_Memory_cache_message2.mbtest para abrirlo en el Cliente de prueba, pulse Colocar en cola y pulse Enviar mensaje para escribir el mensaje en la cola ROUTING.DATABASE.MEMORY.IN1.
  13. En el Cliente de prueba, pulse Extraer de la cola, pulse Obtener mensaje para leer el mensaje direccionado de la cola ROUTING.OUT18.

Los pasos 9 a 13 se pueden repetir cambiando el nombre de cola de la base de datos por uno de los otros nombres de cola que están disponibles. En vez de utilizar el mensaje Database_Refresh_cache_message1, puede detener y reiniciar el flujo de mensajes, lo que también causa que se renueve la tabla de base de datos almacenada en memoria caché.

Si todos los pasos anteriores se han realizado correctamente, el ejemplo se habrá completado. Para obtener información sobre cómo almacenar la base de datos en las variables compartidas, consulte el ESQL en el flujo de mensajes, consulte el apartado Routing_using_database_and_memory_cache_Compute.

Descripción de los resultados

El ejemplo de Direccionamiento de mensajes direcciona el mensaje de prueba de entrada a diversas colas de salida sin modificar la salida. El mensaje de salida es idéntico al mensaje de prueba de entrada, consulte Mensajes de prueba de entrada. Los pasos indicados en los dos escenarios informan en detalle de adónde se direccionan los mensajes. Puede comprobar que los mensajes se han direccionado a la cola correcta utilizando WebSphere MQ Explorer al igual que Extraer de la cola en el cliente de prueba.

Volver a la página inicial del ejemplo