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.
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.
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.
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.
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.