Como o CICS compartilhou memória funciona?
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.
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