WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Reordenación de mensajes en un flujo de mensajes

Cuando los mensajes que entran en un flujo de mensajes contienen números de secuencia y un ID de grupo, puede utilizar el nodo Resequence para restablecer el orden secuencial de los mensajes antes de propagarlos a través del flujo de mensajes.

Antes de empezar:

Lea el tema de concepto sobre Secuencias de mensajes.

Asegúrese de que cada mensaje contenga un número de secuencia que aumente de forma monotónica.

El número de secuencia puede haberse añadido al mensaje por el nodo Secuencia o puede ser otro campo de número entero del mensaje.

Cuando el nodo Resequence recibe un mensaje de entrada, propaga el mensaje únicamente si es el siguiente de la secuencia. Si el mensaje no es el siguiente de la secuencia, el nodo Resequence lo almacena hasta que llegan más mensajes que permitan al nodo corregir la secuencia y entonces el nodo propaga el mensaje almacenado. Si uno de los mensaje no llega, el nodo Resequence no puede completar la secuencia; en ese caso, los mensajes restantes se procesan de acuerdo con la forma en que se ha configurado el nodo Resequence. Para obtener más información sobre esta configuración, consulte Gestión de mensajes que faltan.

Se produce una interrupción en la interrupción en el nodo Resequence. Cuando se entrega un mensaje al nodo Resequence, se devuelve el control al nodo anterior del flujo de mensajes. Todos los mensajes que se propagan desde el nodo Resequence se propagan en una nueva transacción, aun cuando la secuencia esté completa. Para obtener más información, consulte Nodo Resequence.

Cuando se reinicia el intermediario, se conserva la secuencia de mensajes. Si la opción Persistente está seleccionada en el separador Avanzadas del nodo Resequence, también se conserva la secuencia cuando se reinicia el gestor de colas.

Los pasos siguientes muestran cómo crear un flujo de mensajes que permita restablecer el orden secuencial de los mensajes de un grupo de secuencia:

  1. Vaya a la perspectiva Desarrollo de aplicaciones de intermediario.
  2. Cree un flujo de mensajes que contenga un nodo MQInput, un nodo Resequence y un nodo MQOutput.
  3. Conecte el terminal de salida del nodo MQInput al terminal de entrada de un nodo Resequence.
  4. Conecte el terminal de salida del nodo Resequence al terminal de entrada de un nodo MQOutput.
    Flujo de mensajes con nodos MQInput, Resequence y MQOutput.
  5. En el nodo MQInput, especifique el origen de los mensajes de entrada para el nodo estableciendo la propiedad Nombre de cola (en el separador Básicas) en el nombre de una cola de WebSphere MQ, de la que el nodo MQInput recupera mensajes. Por ejemplo: RESEQ.TASK1.IN1.
  6. Establezca las propiedades siguientes del nodo Resequence:
    1. En el separador Básicas, establezca las siguientes propiedades:
      • Establezca la propiedad Vía de acceso de número de secuencia en la ubicación del número de secuencia del mensaje. Por ejemplo, $InputBody/doc/seq. El número de secuencia también se establece en el entorno local, con la variable LocalEnvironment.Sequence.Number.
      • Establezca la propiedad Vía de acceso de identificador de grupo de secuencia en la ubicación del identificador de grupo de secuencia del mensaje. Por ejemplo, $InputBody/doc/grp. El número de secuencia también se establece en el entorno local, con la variable LocalEnvironment.Sequence.Group.
      • Establezca la propiedad Definición de inicio de secuencia en el primer número de secuencia del grupo. Por ejemplo, seleccione Literal con un valor de 0.
      • Establezca la propiedad Definición de fin de secuencia en Automática con el valor de tiempo de espera necesario; por ejemplo, 60. Este valor especifica que el grupo de secuencia se cierra automáticamente cuando la cola de mensajes del nodo ha estado vacía durante 60 segundos. El mensaje de fin de secuencia se indica en el entorno local mediante la variable LocalEnvironment.Sequence.End, que tiene un valor booleano.
      • Establezca la propiedad Tiempo de espera de mensajes que faltan en 10. Este valor especifica que el nodo Resequence esperará un mensaje durante 10 segundos antes de propagar mensajes posteriores en el grupo de secuencia al terminal Expire (de caducidad). Cuando se propague el mensaje posterior, los números de secuencia de los mensajes que falten (que se hayan temporizado) se copiarán en el entorno local como variables LocalEnvironment.Sequence.Missing.
  7. En el nodo MQOutput, establezca la propiedad Nombre de cola (en el separador Básicas) con el nombre de la cola MQ de WebSphere al que el nodo MQOutput envía los mensajes. Por ejemplo: SEQ.TASK1.OUT1.
  8. Guarde el flujo de mensajes.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:54


Tema de tareaTema de tarea | Versión 8.0.0.5 | bc28042_