Ao executar um encadeamento de fluxo de mensagens, ele exige armazenamento para executar as instruções que estão definidas na lógica de seus nós conectados. Esse armazenamento vem do tamanho de heap e de pilha do grupo de execução. O tamanho padrão da pilha alocado para um encadeamento de fluxos de mensagens depende da plataforma utilizada.
Cada encadeamento de fluxos de mensagens é alocado em 1 MB de espaço da pilha.
Para cada encadeamento do fluxo de mensagens são alocados 8 MB de espaço da pilha.
Cada encadeamento de fluxos de mensagens é alocado em 1 MB de espaço da pilha.
Cada encadeamento de fluxos de mensagens é alocado em 512 KB de espaço da pilha descendente e 50 KB de espaço da pilha ascendente.
Em um fluxo de mensagens, um nó geralmente utiliza aproximadamente 2 KB do espaço da pilha. Um fluxo de mensagens típico pode, portanto, incluir aproximadamente 250 nós no z/OS, 500 nós nas plataformas UNIX e 500 nós no Windows. Esse valor pode ser maior ou menor, dependendo do tipo de nós utilizado e do processamento executado.
É possível aumentar o tamanho de pilha configurando a variável de ambiente MQSI_THREAD_STACK_SIZE para um valor apropriado. Ao reiniciar intermediários em execução no sistema, eles utilizarão o novo valor.
O valor de MQSI_THREAD_STACK_SIZE definido é utilizado para todos os encadeamentos criados em um processo DataFlowEngine. Se o grupo de execução tiver muitos fluxos de mensagens designados a ele e um MQSI_THREAD_STACK_SIZE de valor grande for definido, isso pode fazer com que o processo DataFlowEngine exija uma grande quantidade de armazenamento para a pilha.
Os componentes do integrador no z/OS são compilados utilizando o novo XPLINKage (vínculo de desempenho extra), que inclui a otimização para o código de tempo de execução. No entanto, se o tamanho de pilha inicial não for grande suficiente, então, as extensões de pilha serão utilizadas. 128 KB é utilizado em cada extensão. É muito importante que um tamanho de pilha decrescente grande suficiente seja escolhido, pois XPLINK não é executado adequadamente ao utilizar extensões de pilha.
export _CEE_RUNOPTS=XPLINK\(ON\),RPTSTG(ON)É possível, então, substituir os valores padrão dos tamanhos de pilha no z/OS alterando ou incluindo a variável de ambiente LE_CEE_RUNOPTS no perfil do componente.
Ao atualizar o perfil do componente, você deve parar o componente, fazer as alterações necessárias no perfil, enviar BIPGEN para recriar ENVFILE e reiniciar o componente.
export _CEE_RUNOPTS=XPLINK(ON),THREADSTACK(ON,50K,15K,ANYWHERE,KEEP,512K,128K)
Utilizar o RPTSTG aumenta o tempo que o aplicativo leva para a execução. Você deve, portanto, utilizá-lo como um auxílio apenas para desenvolvimento de fluxos de mensagens e do ambiente de produção final. Após determinar os tamanhos corretos de pilha necessários, você deve remover essa opção da variável de ambiente _CEE_RUNOPTS.