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

Establecer valores de tiempo de espera para agregación

Puede utilizar dos propiedades de los nodos de agregación para establecer los valores de tiempo de espera para el proceso de mensajes agregados.

Antes de empezar:
Para realizar esta tarea, debe haber completado las tareas siguientes:
Hay dos situaciones en las que es posible que requieran que utilice valores de tiempo de espera:
  • La necesidad que recibir un mensaje de respuesta agregado dentro de un periodo de tiempo especificado. Para esta situación, establezca la propiedad Tiempo de espera del nodo AggregateControl.
  • La necesidad de esperar antes de propagar un mensaje no reconocido al terminal Unknown. Para esta situación, establezca la propiedad Tiempo de mensaje desconocido del nodo AggregateReply.
En las secciones siguientes se describe cada una de estas situaciones, de forma más detallada.

Recibir un mensaje de respuesta agregado dentro de un periodo de tiempo especificado.

En algunas situaciones, es posible que necesite recibir un mensaje de respuesta agregado dentro de un periodo de tiempo especificado. Es posible que algunos mensajes tarden en volver o que no lleguen nunca. Para estas situaciones, abra el flujo de mensajes de abanico de salida y establezca el intervalo de tiempo de espera siguiendo uno de estos pasos:
Directamente en el nodo AggregateControl
Establezca la propiedad Tiempo de espera del nodo AggregateControl para especificar cuánto tiempo (en segundos) debe esperar el intermediario a recibir las respuestas. De forma predeterminada, esta propiedad se establece en 0 (cero), lo que significa que no hay un valor de tiempo de espera y el intermediario espera indefinidamente. Para obtener más información, consulte Nodo AggregateControl.
Utilizado un servicio configurable Aggregation
También puede utilizar un servicio configurable Aggregation para especificar el intervalo de tiempo de espera. Puede crear un servicio configurable Aggregation con el mismo nombre que la propiedad Nombre de agregación del nodo AggregateControl y especificar el valor de tiempo de espera en la propiedad timeoutSeconds del servicio configurable. Como alternativa, puede crear un servicio configurable Aggregation con el mismo nombre que el grupo de ejecución. Los valores de los servicios configurables Aggregation se toman en el siguiente orden:
  1. Si existe un servicio configurable de agregación con el mismo nombre que la agregación, que se define en la propiedad Nombre de agregación, se utiliza ese servicio configurable.
  2. Si no existe ningún servicio configurable con el mismo nombre que la agregación, pero existe un servicio configurable con el mismo nombre que el grupo de ejecución, se utiliza ese servicio configurable.

Si un servicio configurable Aggregation existe con el mismo nombre que un grupo de ejecución, puede utilizarse para cada agregación en el grupo de ejecución. No obstante, si un servicio configurable existe con el mismo nombre que una agregación en el grupo de ejecución, se utiliza para esa agregación específica. En cada caso, el valor de la propiedad timeoutSeconds del servicio configurable prevalece sobre la propiedad Tiempo de espera del nodo AggregateControl.

Para obtener más información sobre el servicio configurable Aggregation, consulte Propiedades de servicios configurables.

Dinámicamente desde un mensaje entrante

Puede utilizar la propiedad Ubicación de tiempo de espera del nodo AggregateControl para especificar la ubicación de un valor de tiempo de espera en el mensaje entrante. Cualquier valor de tiempo de espera que se especifique de esta manera prevalece sobre los valores especificados por el nodo AggregateControl y el servicio configurable de agregación.

Para obtener más información, consulte Nodo AggregateControl.

La prioridad del tiempo de espera viene determinada por los valores que se establecen en el mensaje, el servicio configurable, o el nodo, en el siguiente orden:
  1. Si se especifica un valor de tiempo de espera en el mensaje entrante (en la ubicación que se especifica mediante la propiedad Ubicación de tiempo de espera del nodo AggregateControl), se utiliza este valor.
  2. Si no se especifica ninguna ubicación en la propiedad Ubicación de tiempo de espera, o si la ubicación en el mensaje está vacía o no existe, se utiliza el valor especificado por la propiedad timeoutSeconds del servicio configurable de agregación (si existe uno).
  3. Si no se ha definido ningún servicio configurable de agregación, o si la propiedad timeoutSeconds del servicio configurable no está establecida, se utiliza el valor que se ha establecido en la propiedad Tiempo de espera del nodo AggregateControl.

De forma predeterminada, el sondeo de tiempo de espera se lleva a cabo cada 5 segundos. Por tanto, si establece la propiedad Tiempo de espera en un valor que no sea un múltiplo de 5, se provoca un retardo adicional. Por ejemplo, si establece la propiedad Tiempo de espera en 7 segundos, observará un retardo de 3 segundos hasta que se lleve a cabo el sondeo de tiempo de espera siguiente. Puede cambiar el intervalo de sondeo de tiempo de espera predeterminado, mediante la variable de entorno MQSI_AGGR_WAIT_TIMEOUT. Los valores válidos son de 1000 a 5000 milisegundos. Para cambiar el intervalo de sondeo predeterminado, detenga el intermediario y, a continuación, reinicie el intermediario en un entorno en el que haya establecido la variable de entorno MQSI_AGGR_WAIT_TIMEOUT.

Si el intervalo de tiempo de espera pasa sin que lleguen todas las respuestas, el nodo AggregateReply correspondiente convierte las respuestas que lleguen en un mensaje de respuesta agregado que se propaga a su terminal Timeout. Puede procesar este mensaje de respuesta parcial del mismo modo como un mensaje de respuesta agregado completo. Si lo prefiere, puede proporcionar un proceso especial para las respuestas de agregación incompletas.

Esperar antes de propagar un mensaje no reconocido al terminal Unknown

Cuando llega un mensaje al terminal In de un nodo AggregateReply, se analiza para ver si se trata de un mensaje de respuesta esperado. Si no se reconoce, el mensaje se propaga al terminal Unknown. Es posible que desee que el intermediario espere durante un período de tiempo especificado antes de propagar el mensaje, por los motivos siguientes:
  • El mensaje de respuesta puede llegar antes de que el trabajo completado por el nodo AggregateRequest se haya confirmado transaccionalmente. Esta situación puede evitarse configurando la propiedad Modalidad de transacción del nodo de entrada tal como se describe en Crear el flujo de abanico de salida de agregación.
  • El mensaje de respuesta puede llegar antes del mensaje de control. Esta situación puede evitarse dejando desconectado el terminal Control del nodo AggregateControl. Para obtener más información sobre las implicaciones de la conexión del terminal de Control, consulte Utilizar mensajes de control en flujos de agregación.
Estas situaciones suelen suceder si envía los mensajes de petición fuera del punto de sincronismo y pueden dar como resultado que las respuestas válidas se envíen al terminal Unknown. Para reducir la probabilidad de que se genere este suceso, realice los pasos siguientes.
  1. Abra el flujo de mensajes de abanico de entrada.
  2. Establezca la propiedad Tiempo de espera de mensaje desconocido del nodo AggregateReply.

    Cuando establece esta propiedad, no se reconocerá de forma inmediata un mensaje como una respuesta válida que se guarda de forma persistente en el intermediario durante el número de segundos que especifique para esta propiedad.

Si caduca el intervalo de tiempo de espera desconocido y se reconoce el mensaje, se procesará. El nodo también comprueba si este mensaje previamente desconocido es la última respuesta que se necesita para completar una agregación. Si lo es, se crea el mensaje de respuesta y se propaga.

Si caduca el intervalo de tiempo de espera desconocido y todavía no se ha reconocido el mensaje, el mensaje se propaga al terminal Unknown.

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 16:58:24


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