Pergunta

Eu uso comandos de controle do programa Exec CICS, link, XCTL e return para passar dados entre o Programm.A memória compartilhada CICS é corrompida durante um dos meus tratamentos.Parece que Passado Commarea sobrescrever memória que não pertence ao CICS. Para descobrir por que esse problema ocorreu, preciso saber melhor como o CICS gerencia a memória compartilhada quando uso os comandos do Exec CICS Program.Copia a Commarea ou o ponteiro de uso?Usando o Exec CSICs aninhado, quantos Commarea são armazenados na memória compartilhada?

Configuração: Eu uso o compilador MicroFocus Net Express e o ambiente é Unikix.

ps: verificar esta pergunta O que pode fazer com que a transação do CICS escreva fora da memória alocada do CICS? Se você souber mais sobre a substituição do uso do EXEC CICS.

Foi útil?

Solução

Não tenho certeza sobre o Net Express, mas no CICS, a Commarea é acessada usando um ponteiro.

Então, se programa x links para programar y, todas as atualizações feitas para a Commaréia em Y serão visíveis em x.

Eu fico pior se a definição da Commarea em Y é maior que a definição no X - você pode atualizar variáveis após a Commarea.

para xctl, a Comaerra seria copiada em uma área de controle do CICS e um ponteiro passado para o programa

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top