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

Nodo Resequence

Utilice el nodo Resequence para controlar la secuencia en la que un grupo (o grupos) de mensajes de entrada se propagan en un flujo de mensajes.

Este tema contiene las secciones siguientes:

Finalidad

El nodo Resequence controla la secuencia en la que se va a propagar un grupo (o grupos) de mensajes de entrada a través del nodo de un flujo de mensajes.

Puede utilizar un nodo Resequence para organizar los grupos de mensajes en orden secuencial según un número de secuencia en el mensaje. Cada mensaje debe contener un número de secuencia, que puede ser cualquier entero positivo o negativo. El número de secuencia se calcula mediante una expresión XPath definida en la propiedad Vía de acceso al número de secuencia en el nodo, y puede ser un número añadido al mensaje mediante un nodo Secuencia.

El nodo Resequence puede reordenar varios grupos de forma independiente unos de otros, pero no puede reordenar mensajes entre grupos de secuencia distintos. El grupo al cual pertenece un mensaje viene determinado por las propiedades del nodo Resequence.

Cada grupo de secuencias se puede asociar únicamente a un nodo Resequence. Varios nodos Resequence pueden tener un grupo de secuencias con el mismo nombre, pero cada uno de esos grupos de secuencia se trata como un grupo aparte. Se utiliza la combinación del nombre del grupo de ejecución, el nombre del flujo de mensajes, el nombre del nodo y el nombre del grupo de secuencias para diferenciar los grupos de secuencia.

Por ejemplo, podría tener un flujo de mensajes denominado flow1 que contenga un nodo Resequence denominado node1, que se despliega en un grupo de ejecución denominado eg1. Se envía un mensaje al mismo utilizando un grupo de secuencias denominado group1. El resultado es eg1/flow1/node1/group1. El mismo flujo de mensajes en un grupo de ejecución distinto, por ejemplo eg2, daría como resultado eg2/flow1/node1/group1.

Puede configurar un nodo Resequence para que utilice diversas hebras para propagar mensajes, pero sólo si cada uno de los mensajes que se van a propagar pertenece a un grupo de secuencias distinto. Para los mensajes que pertenezcan al mismo grupo de secuencias, sólo se puede utilizar una hebra a la vez para propagar mensajes. En consecuencia, se conserva el orden secuencial de mensajes de un mismo grupo de secuencias, pero no se mantiene el orden entre grupos.

Se produce una interrupción en la transacción en el nodo Resequence. Los mensajes que llegan al nodo no se propagan directamente al terminal de salida; todos los mensajes (incluyendo el siguiente mensaje de la secuencia) se serializan inicialmente a una cola interna de WebSphere MQ. El almacenamiento de los mensajes se produce en la transacción actual; una vez almacenado, se ha completado la transacción. Si un mensaje almacenado es el siguiente de la secuencia, se propaga por el flujo de mensajes bajo una nueva transacción. Sólo la parte serializable de los datos se propaga desde el nodo; no se conserva el entorno local, el entorno ni las listas de excepciones.

Si se producen excepciones en los nodos siguientes al nodo Resequence se retrotraen al terminal de captación del nodo Resequence. Si terminal de captación (Catch) no está conectado a ningún otro nodo, los mensajes de reenvían al terminal de origen (Out, Missing o Expired). Los mensajes nunca se retiran ni se descartan.

El nodo Resequence almacena todos los mensajes recibidos en colas internas antes de propagar los mensajes en sentido descendente, incluso cuando se reciben en orden. El flujo de mensajes, de hecho, se divide en dos flujos internos (uno antes del nodo Resequence y otro después). Si la parte del flujo de mensajes anterior al nodo Resequence se ejecuta considerablemente más rápido que el flujo de mensajes posterior al mismo, el número de mensajes de la cola interna puede aumentar más rápido de lo que se puede procesar. Además, los tiempos de caducidad para el fin de los grupos o para los mensajes que faltan no se producen de en los momentos oportunos. Cuando las colas están llenas, los mensajes que llegan al nodo Resequence hacen que se generen excepciones. Puede evitar este problema siguiendo los pasos siguientes:
  1. Asegúrese de que las aplicaciones de control envíen un número limitado de trabajo de una vez, algo que el flujo de mensajes pueda manejar.
  2. Configure instancias adicionales para que la segunda parte del flujo de mensajes tenga más instancias sobre las que realizar el trabajo. Utilice las propiedades del separador Instancias para proporcionar al nodo Resequence su propio conjunto de instancias adicionales.
  3. Estructure el flujo de mensajes de forma que la parte del flujo que requiere más CPU (la transformación, por ejemplo), venga antes del nodo Resequence.
  4. Si la carga grande es transitoria, aumente la profundidad máxima de cola en las colas internas.
  5. Utilice el servicio configurable Resequence para particionar las colas. Esto puede evitar que una instancia del nodo Resequence llene las colas e impida el trabajo de otra instancia.

Para obtener información sobre los diversos estados y transiciones de estado del nodo Resequence, consulte Máquinas de estados de nodos Resequence.

El nodo Resequence se encuentra en la bandeja Direccionamiento de la paleta y está representado en el WebSphere Message Broker Toolkit mediante el siguiente icono:

Icono de nodo Resequence

Utilización del nodo Resequence en un flujo de mensajes

Examine el ejemplo siguiente para saber cómo utilizar el nodo Resequence:

Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.

Configuración del nodo Resequence

Cuando haya colocado una instancia del nodo Resequence en un flujo de mensajes, podrá configurarlo; consulte el tema Configurar un nodo de flujo de mensajes. Las propiedades del nodo se muestran en la vista Propiedades.

Todas las propiedades obligatorias que no tienen un valor predeterminado aparecen con un asterisco.

Configure el nodo Resequence:

  1. Opcional: en el separador Descripción, entre una Descripción corta, una Descripción larga o ambas cosas. En este separador también puede renombrar el nodo.
  2. En el separador Básicas, establezca las propiedades que determinan cómo se controla la secuencia de mensajes.
    • Utilice la propiedad Vía de acceso al número de secuencia para especificar una expresión XPath que se utilice para calcular el número de secuencia del mensaje. La expresión XPath puede calcular el número de secuencia o puede apuntar a un campo de entero dentro del mensaje. Los mensajes también contienen un identificador de grupo de secuencias opcional. Esta propiedad es obligatoria.
    • Utilice la propiedad Vía de acceso de identificador de grupo de secuencias para especificar la ubicación del identificador del grupo de secuencias. La ubicación se especifica como una expresión XPath. Los mensajes que tienen el mismo identificador de grupo se consideran parte del mismo grupo de secuencias.
    • Utilice la propiedad Inicio de definición de secuencia para identificar el primer número de secuencia en cada grupo.
      • Seleccione Literal para especificar un número de secuencia literal, que puede ser cualquier valor numérico positivo o negativo. Cuando llega el mensaje con el número de secuencia especificado, se propagan los mensajes.
      • Seleccione Predicado para especificar una expresión XPath que se evalúa como Verdadera o Falsa, e indica si el mensaje es el primero de la secuencia.

        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 primero de la secuencia.

        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 manera:
        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 inicio de la secuencia), el nodo comprueba que el mensaje tenga el número de secuencia menor recopilado hasta ese momento. Si se encuentran mensajes con números de secuencia más bajos, se genera una excepción.

        Cuando el primer mensaje que se evalúa a true se ha procesado satisfactoriamente, no se comprueban las expresiones XPath de los mensajes subsiguientes. Si llega un mensaje con un número de secuencia menor que el mensaje que se ha identificado como el inicio de la secuencia, se genera una excepción.

      • Seleccione Automático para especificar un plazo de recopilación de mensajes antes de utilizar el mensaje con el número más bajo.
    • Utilice la propiedad Definición de fin de secuencia para especificar cuándo se ha completado cada grupo de secuencias.
      • Seleccione Literal para especificar un número de secuencia literal. Este valor puede ser cualquier valor numérico positivo o negativo que sea igual o mayor que el valor de la propiedad Definición de inicio de secuencia. Cuando llega el mensaje con el número de secuencia especificado, el grupo de secuencias permanece abierto y espera mensajes hasta que expira el tiempo indicado en la propiedad Tiempo de espera de mensajes que faltan. Todos los mensajes que llegan hasta este momento se incluyen en el grupo (a menos que estén duplicados o fuera del rango permitido) hasta que se cierra el grupo de secuencias. Una vez cerrado el grupo de secuencias, cualquier nuevo mensaje que llegue al nodo para ese grupo se trata como perteneciente a una nueva instancia del grupo.
      • Seleccione Predicado para especificar una expresión XPath que se evalúa como Verdadera o Falsa, e indica si el mensaje es el último de la secuencia.

        Generalmente, la expresión XPath se evalúa en un Booleano; sin embargo, si se devuelven otros tipos de datos, el predicado se determina tal como se muestra en la Tabla 1.

        Cuando el predicado se evalúa en True, se asigna el número de secuencia del mensaje a la propiedad Definición de fin de secuencia .

        Cuando se recibe un mensaje con el predicado fin de secuencia establecido en True, el grupo de secuencias permanece abierto y espera mensajes hasta que expira el tiempo indicado en la propiedad Tiempo de espera de mensajes que faltan. Todos los mensajes que llegan hasta este momento se incluyen en el grupo (a menos que estén duplicados o fuera del rango permitido) hasta que se cierra el grupo de secuencias. Una vez cerrado el grupo de secuencias, cualquier nuevo mensaje que llegue al nodo para ese grupo se trata como perteneciente a una nueva instancia del grupo.

        Si llega un mensaje con el predicado fin de secuencia establecido en True y con un número menor de secuencia que un mensaje que ya ha llegado, se genera una excepción.

      • Seleccione Automático para especificar el periodo de tiempo de espera para el nodo. Esta opción especifica cuánto tiempo (en segundos) espera el nodo que lleguen los mensajes de una cola vacía, antes de cerrar el grupo de secuencias. Esta opción es útil para las aplicaciones que no pueden determinar el número final de la secuencia. El temporizador empieza cuando no hay mensajes en la cola a la espera de que se propaguen. Si hay nuevos mensajes que llegan antes de alcanzar el período de tiempo de espera, se cancela el temporizador. Si no llegan mensajes nuevos antes del final del tiempo especificado, se cierra el grupo de secuencias y los demás mensajes para el grupo se consideran parte de un grupo nuevo.
    • Utilice la propiedad Tiempo de espera de mensajes que faltan para especificar cuánto tiempo (en segundos) espera el nodo el siguiente mensaje en la secuencia antes de pasar al siguiente mensaje de la secuencia. Los mensajes que llegan dentro del plazo especificado se propagan en orden secuencial al terminal de salida.

      Cuando se supera el plazo especificado, los mensajes se propagan en orden secuencial al terminal de caducidad. Los mensajes posteriores del grupo de secuencias también se direccionan al terminal de caducidad. Si finalmente llega el mensaje que falta, se propaga al terminal Missing (que falta).

  3. En el separador Avanzadas:
    • Utilice la propiedad Modalidad de persistencia para especificar si se deben almacenar secuencias de mensajes incompletas de forma persistente.
    • Utilice la propiedad Servicio configurable para especificar el nombre de un servicio configurable Resequence que altera temporalmente las propiedades especificadas del nodo Resequence.
  4. Opcional: en el separador Instancias, establezca los valores para las propiedades que muestran las instancias (hebras) adicionales que están disponibles para un nodo.

    Se pueden utilizar diversas hebras para propagar mensajes desde un mismo nodo Resequence, pero sólo si cada uno de los mensajes que se propagan pertenece a un grupo de secuencias distinto. Para los mensajes que pertenezcan al mismo grupo de secuencias, sólo se puede utilizar una hebra a la vez para propagar mensajes. En consecuencia, se conserva el orden secuencial de mensajes de un mismo grupo de secuencias, pero no se mantiene el orden entre grupos.

    Para obtener más información sobre sobre cómo especificar instancias adicionales, consulte Propiedades configurables del flujo de mensajes.

Terminales y propiedades

Los terminales del nodo Resequence se describen en la tabla siguiente.

Terminal Descripción
Entrada El terminal de entrada a través del cual llega al nodo el mensaje ensamblado de entrada.
Anomalía El terminal de salida al que se direcciona el mensaje si se produce un error. Este valor incluye anomalías provocadas por el proceso de reintento.
Salida El terminal de salida al cual se propaga de forma predeterminada el mensaje de salida.
Expire (de caducidad) El terminal de salida al cual se direcciona el mensaje si se produce un tiempo de espera mientras el nodo está a la espera de que llegue el mensaje. Todos los mensajes posteriores del mismo grupo se propagarán también a ese terminal.
Missing (que falta) El terminal de salida al cual se direccionan el mensaje que falta (que ha provocado que se excediera el tiempo de espera) si éste llega posteriormente al nodo.
Catch (de captación) El terminal de salida al que se direcciona un mensaje si se emite una excepción en sentido descendente y después este nodo la capta. Las excepciones se detectan sólo si este terminal está conectado.

Las tablas siguientes describen las propiedades del nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).

En la tabla siguiente se describen las propiedades de descripción del nodo Resequence.

Propiedad M C Valor predeterminado Descripción
Nombre de nodo No No Resequence El nombre del nodo.
Descripción corta No No   Descripción breve del nodo.
Descripción larga No No   Texto que describe la finalidad del nodo en el flujo de mensajes.

En la tabla siguiente se describen las propiedades básicas del nodo Resequence.

Propiedad M C Valor predeterminado Descripción
Vía de acceso de número de secuencia No   Una expresión XPath que calcula el número de secuencia del mensaje.
Vía de acceso de identificador de grupo de secuencias No No   Una expresión XPath que calcula el identificador de grupo de secuencias. Los mensajes que tienen el mismo identificador de grupo se consideran parte del mismo grupo de secuencias. Esta propiedad funciona del mismo modo que la propiedad Vía de acceso de correlación en el nodo Collector.
Definición de inicio de secuencia No Literal, 0 Especifica el primer número de secuencia de cada grupo. Los valores válidos son:
  • Literal y número
  • Predicado y XPath
  • Automático y tiempo en segundos
Si esta propiedad se ha establecido en Automático, el tiempo asociado a la misma se sobrescribe con el valor de la propiedad startSequenceSeconds, si se ha establecido, del servicio configurable Resequence.
Definición de fin de secuencia No Automática Especifica cuándo se ha completado cada grupo de secuencias. Los valores válidos son:
  • Literal y número
  • Predicado y XPath
  • Automático y tiempo en segundos
Si esta propiedad se ha establecido en Automático, el tiempo asociado a la misma se sobrescribe con el valor de la propiedad endSequenceSeconds, si se ha establecido, del servicio configurable Resequence.
Tiempo de espera de mensajes que faltan (segundos) No No   Especifica cuánto tiempo (en segundos) espera el nodo el próximo mensaje de la secuencia antes de pasar al siguiente. Esta propiedad se sobrescribe con la propiedad Tiempo de espera de mensajes que faltan, si se ha establecido, del servicio configurable Resequence.
Las propiedades de instancias del nodo Resequence se describen en la tabla siguiente. Para ver la descripción completa de estas propiedades, consulte Propiedades configurables del flujo de mensajes.
Propiedad M C Valor predeterminado Descripción
Agrupación de instancias adicionales No Utilizar agrupación asociada al flujo de mensajes La agrupación de la que se obtienen instancias adicionales.
  • Si selecciona Utilizar agrupación asociada al flujo de mensajes, las instancias adicionales se obtendrán del flujo de mensajes.
  • Si selecciona Utilizar agrupación asociada al nodo, las instancias adicionales se asignarán desde las instancias adicionales del nodo basándose en el número especificado en la propiedad Instancias adicionales.
Instancias adicionales No 0 El número de instancias adicionales que el nodo puede iniciar si la propiedad Agrupación de instancias adicionales se establece en Utilizar agrupación asociada al nodo.

En la tabla siguiente se describen las propiedades Avanzadas del nodo Resequence.

Propiedad M C Valor predeterminado Descripción
Modalidad de persistencia No No persistente Especifica si se van a almacenar secuencias incompletas de mensajes de forma persistente. Las opciones válidas son:
  • No persistente
  • Persistente
Servicio configurable No Ninguno establecido Esta propiedad especifica el nombre de un servicio configurable Resequence que debe utilizar el nodo Resequence.

Las propiedades establecidas por el servicio configurable Resequence alteran temporalmente las propiedades equivalentes establecidas en el nodo Resequence.

Para obtener más información sobre las propiedades que puede establecer con este servicio configurable, consulte Propiedades de servicios configurables.

Las propiedades de supervisión del nodo se describen en la siguiente tabla.
Propiedad O C Valor predeterminado Descripción
Sucesos No No Ninguno Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles.

Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado.

No puede utilizar propiedades de supervisión para configurar sucesos de transacción de los nodos siguientes: En su lugar, utilice un perfil de supervisión; consulte Configuración de orígenes de sucesos de supervisión utilizando un perfil de supervisión.
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 referenciaTema de referencia | Versión 8.0.0.5 | bc28000_