Как работает общая память CICS? - PullRequest
1 голос
/ 25 января 2012

Я использую команды управления программой EXEC CICS, LINK, XCTL и RETURN для передачи данных между программой Cobol.Общая память CICS повреждается во время одного из моих сеансов.Похоже, что переданные COMMAREA перезаписывают память, не принадлежащую CICS.Чтобы выяснить, почему возникла эта проблема, мне нужно лучше понять, как CICS управляет общей памятью, когда я использую команды управления программой EXEC CICS.Копирует ли COMMAREA или использует указатель?Используя вложенную EXEC CICS, сколько COMMAREA хранится в общей памяти?

Конфигурация: Я использую компилятор Microfocus Net Express, а среда UniKix.

PS: Проверитьэтот вопрос Что может вызвать запись транзакции CICS из выделенной памяти CICS? , если вы знаете больше о перезаписи с использованием EXEC CICS.

1 Ответ

2 голосов
/ 27 января 2012

Не уверен насчет Net Express, но в CICS доступ к запятой осуществляется с помощью указателя.

Таким образом, если программа x СВЯЗАНА с программой y, любые обновления, внесенные в запятую в y, будут видны в x.

Мне становится хуже, если определение Commarea в y больше, чем определение в x - вы можете обновить переменные после commarea.

Для XCTL запятая будет скопирована в область управления CICS, и указатель будет передан программе

...