Consideraciones acerca del sistema para el despliegue de flujos de mensajes

Tamaño de pila por omisión

Cuando una hebra de flujo de mensajes se ejecuta, necesita almacenamiento para realizar las instrucciones definidas por la lógica de los nodos conectados. Este almacenamiento procede del almacenamiento dinámico y del tamaño de pila del grupo de ejecución. El tamaño de pila por omisión asignado a una hebra de flujo de mensajes depende de la plataforma utilizada.

A cada hebra de flujo de mensajes se le asigna 1 MB de espacio de pila.

A cada hebra de flujo de mensajes se le asignan 8 MB de espacio de pila.

A cada hebra de flujo de mensajes se le asigna 1 MB de espacio de pila.

A cada hebra de flujo de mensajes se le asignan 512 KB de espacio de pila descendente y 50 KB de espacio de pila ascendente.

Normalmente, en un flujo de mensajes un nodo utiliza 2 KB aproximadamente del espacio de pila. Por consiguiente, un flujo de mensajes típico puede incluir aproximadamente 250 nodos en z/OS, 500 nodos en plataformas UNIX y 500 nodos en Windows. Esta cantidad puede ser más alta o más baja en función del tipo de nodos utilizados y del proceso que éstos realizan.

Incremento del tamaño de pila en Windows y plataformas UNIX

Puede incrementar el tamaño de pila estableciendo la variable de entorno MQSI_THREAD_STACK_SIZE a un valor apropiado. Cuando reinicie los intermediarios que se ejecutan en el sistema, éstos utilizarán en valor nuevo.

El valor de MQSI_THREAD_STACK_SIZE que establezca se utilizará para cada hebra creada en un proceso DataFlowEngine. Si el grupo de ejecución tiene asignado un gran número de flujos de mensajes y se establece un valor grande para MQSI_THREAD_STACK_SIZE, el proceso DataFlowEngine necesitará por consiguiente una gran cantidad de almacenamiento para la pila.

Incremento del tamaño de pila en z/OS

Los componentes de Integrator en z/OS se compilan utilizando el nuevo enlace XPLINK (enlace de rendimiento adicional), que añade optimización al código de ejecución. Sin embargo, si el tamaño de pila inicial no es suficiente, se utilizarán extensiones de pila. Se utilizan 128 KB en cada extensión. Es muy importante elegir un tamaño de pila descendente suficientemente grande, porque XPLINK no se ejecuta correctamente cuando se utilizan extensiones de pila.

Para determinar los tamaños de pila adecuados, un administrador de componentes para z/OS puede utilizar la herramienta de almacenamiento de informes LE (Language Environment - Entorno de lenguaje). Para ello, se debe probar un flujo de mensajes utilizando la opción RPTSTG con la variable de entorno _CEE_RUNOPTS. Ésta se debe establecer en el perfil de componente (BIPBPROF para un intermediario) durante el desarrollo y la prueba de flujos de mensajes destinados a producción. Por ejemplo:
export _CEE_RUNOPTS=XPLINK\(ON\),RPTSTG(ON)
A continuación, puede alterar temporalmente los valores por omisión para los tamaños de pila en z/OS modificando o añadiendo la variable de entorno LE_CEE_RUNOPTS en el perfil de componente.

Al actualizar el perfil de componente, debe detener el componente, realizar los cambios necesarios en el perfil, someter BIPGEN para volver a crear ENVFILE y reiniciar el componente.

Por ejemplo, puede cambiar los valores por omisión de 50 K y 512 K de la línea siguiente para que se ajusten a sus necesidades:
export _CEE_RUNOPTS=XPLINK(ON),THREADSTACK(ON,50K,15K,ANYWHERE,KEEP,512K,128K)

Al utilizar RPTSTG se incrementa el tiempo que una aplicación tarda en ejecutarse. Por consiguiente, sólo deberá utilizarlo como ayuda en el desarrollo de flujos de mensajes y en el entorno de producción final. Cuando haya determinado los tamaños de pila correctos necesarios, deberá eliminar esta opción de la variable de entorno _CEE_RUNOPTS.

Nota: Las pilas de XPLINK aumentan hacia abajo en el almacenamiento virtual mientras que el enlace estándar antiguo aumenta hacia arriba. Para evitar un impacto de rendimiento producido por la conmutación entre el espacio de pila hacia abajo y el espacio de pila hacia arriba durante la ejecución, deberá compilar extensiones definidas por el usuario utilizando la opción XPLINK cuando sea posible. Si el flujo de mensajes utiliza extensiones definidas por el usuario que se han compilado con el convenio de enlace estándar, deberá determinar y establecer un valor adecuado para el tamaño de pila hacia arriba.

Determinación del tamaño de pila correcto

En WebSphere Message Broker, cualquier proceso que implique proceso anidado o repetitivo puede producir un uso intenso de la pila. Por ejemplo, en las situaciones siguientes es posible que necesite incrementar el tamaño de pila:
  • Cuando un flujo de mensajes procesa un mensaje que contiene un gran número de repeticiones o anidado complejo.
  • Cuando un flujo de mensajes ejecuta ESQL que llama de forma repetitiva al mismo procedimiento o a la misma función o cuando se utiliza repetidamente un operador, por ejemplo el operador de concatenación, en una sentencia ESQL.
Tareas relacionadas
Optimizar los tiempos de respuesta de los flujos de mensajes
Referencia relacionada
Flujos de mensajes
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac00340_