Cobolのプログラム間でデータをやりとりするために、EXEC CICSプログラム制御コマンド、LINK、XCTL、およびRETURNを使用します。 CICS共有メモリーは、私の治療中に壊れてしまいます。 CICSに属していないCOMMAREA上書きメモリーが渡されたようです。 この問題が発生した理由を調べるには、EXEC CICSプログラム制御コマンドを使用するときにCICSが共有メモリーをどのように管理するかを知る必要があります。 COMMAREAをコピーするか、ポインタを使用しますか?ネストされたEXEC CICSを使用して、共有メモリにいくつのCOMMAREAが格納されていますか?CICS共有メモリーの仕組みは?
設定:私はMicrofocus Net Expressコンパイラを使用しており、環境はUniKixです。
PS:EXEC CICSを使用して上書きする方法の詳細については、What can cause CICS transaction to write out of CICS allocated memory?を参照してください。
に渡されたポインタにコピーされます。歴史的には、はい、それは大丈夫でした。しかしIBMは、その地域を何十年もの間、特定の機能に分割することに大きな力を注いできました。したがって、共有メモリへのポインタはLINKed/RETURNed/XCTLed PROGRAMが同じAORである限り大きな効果を発揮しますが、ダイナミックなトランザクションルーティングが行われていれば恐ろしく失敗します。 –
ほとんどの絶対的なルールは、共有メモリと決して決してcommareaにポインタを置くことはありません。それはMicrofocusのテストベッドではうまくいくかもしれませんが、彼の制作時には悲惨に失敗します。 –