Ejecutar el ejemplo de Direccionamiento de mensajes

La ejecución del ejemplo de Direccionamiento de mensajes puede dividirse en dos partes principales:

Estas dos partes se describen por separado. Todos los mensajes de prueba mencionados en esta sección pueden encontrarse en el directorio Test messages (mensajes de prueba) del proyecto de flujos de mensajes llamado Flujos de mensajes del ejemplo de direccionamiento de mensajes.

Mensajes de prueba de entrada

Todos los mensajes de prueba usados 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>

Para direccionar el mensaje se utilizan los campos <Initial> y <Surname>.

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. 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. Abra el archivo de colocación en cola del mensaje de prueba Direct_database_message1. Compruebe que el campo Puerto contiene el valor 2414.
  2. Pulse en Grabar en cola. Se enviará un mensaje a la cola ROUTING.DATABASE.IN1. El flujo de mensajes direcciona el mensaje a la cola ROUTING.OUT1.
  3. Para comprobar si el mensaje ha llegado a la cola correcta, utilice WebSphere MQ Explorer:
    1. Inicie WbSphere MQ Explorer
    2. Pulse el botón derecho del ratón en la carpeta Gestores de colas y seleccione Mostrar gestor de colas. Entre WBRK6_DEFAULT_QUEUE_MANAGER.
    3. Abra las carpetas que hay bajo el gestor de colas y seleccione Colas. Renueve la visualización de la cola para que muestre el número actual de mensajes que hay en cada cola. Si utiliza WebSphere MQ v5.3 en Windows, cuando renueve WebSphere MQ Explorer asegúrese de que está seleccionada la carpeta Colas y no un nombre de cola real, de lo contrario no se renovarán todas las colas mostradas.
    4. Use WebSphere MQ Explorer para el resto del ejemplo para asegurarse de que los mensajes se direccionan a la ubicación correcta.
  4. Abra el archivo de colocación en cola llamado Direct_database_message2 y grabe el mensaje en la cola.
  5. Renueve WebSphere MQ Explorer. Debería aparecer un mensaje en la cola ROUTING.OUT19.

Si todos los pasos anteriores han funcionado correctamente, la primera parte del ejemplo ha terminado. Vea el ESQL del flujo de mensajes Routing_using_database_table para saber cómo se ha llevado a cabo el direccionamiento.

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

Esta parte del mensaje utiliza el flujo de mensajes Routing_using_memory_cache. Contiene dos colas de entrada llamadas ROUTING.MEMORY.IN1 y ROUTING.REFRESH.IN1 y el flujo de mensajes puede direccionar el mensaje a una de 20 colas 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). La lógica del direccionamiento es igual que en la versión que no está en memoria caché. La única diferencia es que la base de datos se guarda en memoria caché utilizando variables compartidas. Los pasos para ejecutar esta parte del ejemplo son:

  1. Abra el archivo de colocación en cola llamado: Memory_cache_message1 y grabe el mensaje en la cola.
  2. Renueve WebSphere MQ Explorer. Debería aparecer un nuevo mensaje en la cola ROUTING.OUT1 (dos mensajes en total).
  3. Abra el archivo de colocación en cola del mensaje de prueba Memory_cache_message2 y grabe el mensaje en la cola.
  4. Renueve WebSphere MQ Explorer. Debería aparecer un nuevo mensaje en la cola ROUTING.OUT19 (dos mensajes en total).
  5. 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 la base de datos:

    DB2

    1. Escriba el siguiente mandato en una ventana de mandatos de DB2 (en Windows) o en una consola de mandatos (en Linux):

      db2cmd

    2. En el indicador de mandatos, escriba db2 para iniciar la línea de mandatos de DB2.
    3. Conecte con la base de datos ROUTING:

      DB2> connect to ROUTING user usuario using contraseña

      donde usuario es un usuario que tiene autorización para acceder a la base de datos ROUTING. Normalmente, es el mismo usuario que se ha utilizado para crear el intermediario de ejemplo. contraseña es la contraseña de ese usuario.

    4. Actualice la última entrada de la tabla routing_table para grabarla en ROUTING.OUT18

      DB2> update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite'

    Derby

    1. Inicie la línea de mandatos ij. Si aún no ha establecido el archivo de proceso por lotes para la línea de mandatos ij, consulte el apartado Ver el contenido de una base de datos Derby.
    2. Actualice la última entrada de la routing_table para grabarla en la cola ROUTING.OUT18:

      ij>update routing_table set queue_name='ROUTING.OUT18' where Variable3='Braithwaite';

  6. Abra el archivo de colocación en cola de mensaje de prueba llamado: Memory_cache_message2 y grabe el mensaje en la cola.
  7. Renueve WebSphere MQ Explorer. Debería aparecer un nuevo mensaje en la cola ROUTING.OUT19 (tres mensajes en total). Observe que el mensaje no se está direccionando al nombre de la nueva cola debido a que la tabla de la base de datos no se ha vuelto a leer.
  8. Para hacer que el flujo vuelva a leer la base de datos, abra el archivo de colocación en cola: Refresh_cache_message1 y grabe el mensaje en la cola.
  9. Repita el paso 3 para enviar un mensaje de prueba al flujo de mensajes.
  10. Renueve WebSphere MQ Explorer. Debería aparecer un nuevo mensaje en la cola ROUTING.OUT18 (un mensaje en total). La tabla de base de datos almacenada en la memoria se ha renovado.

Los pasos 5 a 10 pueden repetirse pero cambiando el nombre de la cola de la base de datos por alguno de los otros nombres de cola que están disponibles. En vez de utilizar el mensaje Refresh_cache_message1, se puede detener y reiniciar el flujo de mensajes. De este modo también se renovará la tabla de base de datos en memoria caché.

Si todos los pasos anteriores han funcionado correctamente, la ejecución del ejemplo ha terminado. Vea el ESQL del flujo de mensajes Routing_using_memory_cache para saber cómo se ha llevado a cabo el almacenamiento de la base de datos en las variables compartidas.

Descripción de los resultados

El ejemplo de Direccionamiento de mensajes dirige el mensaje de prueba de entrada a varias colas de salida sin modificar la salida. El mensaje de salida es idéntico al mensaje de prueba de entrada. Los pasos, indicados en dos partes, explican en detalla adónde se direccionan los mensajes. Se puede comprobar si los mensajes se han direccionado a la cola correcta usando WebSphere MQ Explorer (como se indica en los pasos de arriba). También es posible comprobar el contenido de los mensaje en las colas utilizando el programa de extracción de cola que forma parte del Kit de herramientas de Message Brokers. Para acceder al programa de extracción de cola, pulse en el icono de extracción de cola en la barra de herramientas del kit de herramientas.

ubicación del programa de extracción de cola

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