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

Finalización de una secuencia de mensajes

El final de una secuencia de mensajes viene determinada por la propiedad Definición de fin de secuencia en los nodos Resequence y Secuencia.

Utilización de un nodo Resequence

Cuando se utiliza el nodo Resequence para reordenar los mensajes en un flujo de mensajes, se utiliza la propiedad Definición de fin de secuencia en el nodo Resequence para definir cómo finalizará la secuencia de mensajes reordenada. Puede especificar el número de fin de secuencia en el nodo Resequence de una de las siguientes formas:

Como un número literal
Seleccione Literal para especificar un número de secuencia literal como fin de secuencia. Este valor puede ser cualquier valor numérico positivo o negativo dentro del rango de -9223372036854775807 a 9223372036854775807. Cuando llega un mensaje con el número de secuencia especificado, se cierra el grupo de secuencia. Si faltan mensajes de la secuencia, el grupo de secuencia permanece abierto durante el periodo de tiempo especificado en la propiedad Tiempo de espera de mensajes que faltan.
Por ejemplo, suponga que tiene un nodo Resequence con las siguientes propiedades:
  • Propiedad Vía de acceso al número de secuencia con el valor /doc/seq
  • Propiedad Vía de acceso al identificador del grupo de secuencia con el valor /doc/grp
  • Propiedad Definición de inicio de secuencia establecida en Literal con el valor 0.
  • Propiedad Definición de fin de secuencia establecida en Literal con el valor 6. Este valor significa que el grupo se cerrará cuando se reciba un mensaje con el número de secuencia 6 y se hayan recibido todos los mensajes anteriores de la secuencia (o haya caducado el tiempo de espera de mensajes que faltan).
El nodo Resequence recibe los siguientes mensajes:
<doc><grp>a<grp><seq>6</seq></doc>
<doc><grp>a<grp><seq>5</seq></doc> 
<doc><grp>a<grp><seq>4</seq></doc> 
<doc><grp>a<grp><seq>3</seq></doc>
<doc><grp>a<grp><seq>2</seq></doc>
<doc><grp>a<grp><seq>1</seq></doc>
<doc><grp>a<grp><seq>0</seq></doc>
Se propagan los siguientes mensajes al terminal de salida:
<doc><grp>a<grp><seq>0</seq></doc>
<doc><grp>a<grp><seq>1</seq></doc>
<doc><grp>a<grp><seq>2</seq></doc>
<doc><grp>a<grp><seq>3</seq></doc>
<doc><grp>a<grp><seq>4</seq></doc>
<doc><grp>a<grp><seq>5</seq></doc>
<doc><grp>a<grp><seq>6</seq></doc>
Una vez cerrado el grupo de secuencia, cualquier otro mensaje que llegue al nodo para ese grupo de secuencia se procesa como parte de una nueva instancia del grupo.
Mediante un tiempo de espera automático
Seleccione Automático y especifique el tiempo (en segundos) durante el cual el nodo espera a que lleguen nuevos mensajes a una cola vacía. Cada vez que la cola de mensajes que esperan a ser propagados está vacía, el nodo Resequence inicia un temporizador, que caduca tras un número especificado de segundos. Si no llegan nuevos mensajes dentro del tiempo especificado, se cierra el grupo de secuencia y, si después llegan nuevos mensajes, se tratan como parte de un grupo nuevo. Si llegan nuevos mensajes al nodo dentro del límite de tiempo especificado, el temporizador se restablece.
Utilizando el predicado establecido en el nodo Resequence
Seleccione Predicado y especifique una expresión XPath para calcular si el mensaje es el último de la secuencia. El predicado se evalúa a True o False, y se siguen recopilando mensajes mientras la expresión se evalúa a False. Cuando la expresión de un mensaje se evalúa a True, indica que el mensaje es el último y el grupo de secuencia se cierra. Sin embargo, si faltan mensajes anteriores del grupo de secuencia, el grupo de secuencia permanece permanece abierto durante el periodo de tiempo especificado en la propiedad Tiempo de espera de mensajes que faltan.

Una vez cerrado el grupo de secuencia, cualquier otro mensaje que llegue al nodo para ese grupo de secuencia se procesa como parte de una nueva instancia del grupo.

Generalmente, la expresión XPath se evalúa a un Booleano; sin embargo, si se devuelven otros tipos de datos, el predicado se determina de la siguiente forma:
Tabla 1.
Tipo de datos devueltos True False
Boolean (booleano) True False
Numeric (numérico) Cualquier valor distinto de cero 0 o 0.0
String (serie) Cualquier serie que coincida con true (no sensible a mayúsculas y minúsculas) Cualquier serie que no coincida con true (no sensible a mayúsculas y minúsculas)
NodeSet (Conjunto de nodos) Nunca Siempre

Cuando un mensaje evalúa la expresión a True (y, por tanto, se identifica como el fin de la secuencia), el nodo comprueba que el mensaje tenga el número de secuencia más alto recopilado hasta ese momento. Si se encuentran mensajes con números de secuencia más altos, se genera una excepción.

Utilizando un nodo Secuencia

Cuando se utiliza el nodo Secuencia para añadir números de secuencia a mensajes, se utiliza la propiedad Definición de fin de secuencia para definir cómo finalizará la secuencia de mensajes. El nodo Secuencia asigna un número de secuencia que aumenta de forma monotónica para cada mensaje de entrada que llega al nodo, terminando con el número de secuencia que ha definido en la propiedad Definición de inicio de secuencia.

Puede especificar el número de fin de secuencia en el nodo Secuencia de una de las siguientes formas:

Como un número literal
Seleccione Literal y especifique un valor numérico positivo o negativo como número de fin de secuencia (por ejemplo, 15). El valor debe estar dentro del rango de -9223372036854775807 a 9223372036854775807. La secuencia creciente monotónica termina cuando llega al número de fin de secuencia especificado por esta propiedad.
Utilizando el predicado establecido en el nodo Secuencia
Seleccione Predicado para especificar que la secuencia termina cuando la expresión XPath se evalúa a True. Para obtener más información, consulte la tabla anterior.
Mediante un tiempo de espera automático
Seleccione Automático y especifique el tiempo (en segundos) durante el cual el nodo espera a que lleguen nuevos mensajes después de que se haya propagado un mensaje para ese grupo de secuencia. Si llega un mensaje nuevo, el temporizador se cancela y se restablece cuando se propaga el mensaje. Si no llegan nuevos mensajes dentro del tiempo especificado, se cierra el grupo de secuencia y, si después llegan nuevos mensajes, se tratan como parte de un grupo nuevo.
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 conceptoTema de concepto | Versión 8.0.0.5 | bc28023_