1

Cobolプログラム間でデータを渡すために、EXEC CICSプログラム制御コマンド、LINK、XCTL、およびRETURNを使用します。私の治療中にCICS共有メモリーが破損しました。渡されたCOMMAREAは、CICSに属していないメモリーを上書きしているようです。この問題が発生した理由を見つけるには、EXECCICSプログラム制御コマンドを使用するときにCICSが共有メモリーを管理する方法をよく知る必要があります。COMMAREAをコピーしますか、それともポインターを使用しますか?ネストされたEXECCICSを使用して、共有メモリに格納されているCOMMAREAの数はいくつですか。

構成: Microfocus Net Expressコンパイラーを使用しており、環境はUniKixです。

PS:この質問を確認してくださいCICSトランザクションがCICSに割り当てられたメモリーから書き出す原因は何ですか?EXECCICSを使用した上書きについて詳しく知っている場合。

4

1 に答える 1

2

Net Expressについてはわかりませんが、CICSでは、ポインターを使用してコンマレアにアクセスします。

したがって、プログラムxがプログラムyにリンクしている場合、yのコンマレアに対して行われた更新はすべてxに表示されます。

yのCommarea定義がxの定義よりも大きい場合、さらに悪化します。commareaの後に変数を更新できます。

XCTLの場合、コンマレアはCICS制御域にコピーされ、ポインターがプログラムに渡されます。

于 2012-01-26T20:05:30.627 に答える