You can extend dynamic storage to provide extra storage for user variables.
You do this by defining these variables in your source program in a DSECT
called DFHEISTG. The maximum amount of dynamic storage obtainable using the
DFHEISTG DSECT is 65 264 bytes. (Note that DFHEISTG is a reserved name.) This
storage is initialized to X'00'. At translation, the translator inserts the
DFHEISTG macro immediately following your DFHEISTG DSECT instruction. In this
way the DSECT describes dynamic storage needed for the parameter list, for
the command-level interface, and for any user variables. At link-edit
time, use the STORAGE option of the CEEXOPT macro to ensure that the DFHEISTG
storage is initialized to x'00', for example CEEXOPT STORAGE=(,,00).
Make sure that your application propagates or initializes
any constants that are defined in the user DFHEISTG area.
Source program
DFHEISTG DSECT
COPY DFH$AGA INPUT MAP DSECT
COPY DFH$AGB OUTPUT MAP DSECT
MESSAGE DS CL39
INQUIRY CSECT
EXEC CICS RECEIVE MAP('DFH$AGA')
MVC NUMBO,KEYI
MVC MESSAGE,=CL(L'MESSAGE)'THIS IS A MESSAGE'
EXEC CICS SEND MAP('DFH$AGB') ERASE
END
The above source program is translated to:
DFHEIGBL , INSERTED BY TRANSLATOR
DFHEISTG DSECT
DFHEISTG INSERTED BY TRANSLATOR
COPY DFH$AGA INPUT MAP DSECT
COPY DFH$AGB OUTPUT MAP DSECT
MESSAGE DS CL39
INQUIRY CSECT
DFHEIENT INSERTED BY TRANSLATOR
* EXEC CICS RECEIVE MAP('DFH$AGA')
DFHECALL =X'1802C0000800000000040900000020',
(CHA7,=CL7'DFH$AGA*'),(______RF,DFH$AGAI)
MVC NUMBO,KEYI
MVC MESSAGE,=CL(L'MESSAGE)'THIS IS A MESSAGE'
* EXEC CICS SEND MAP('DFH$AGB') ERASE
DFHECALL =X'1804C000080000000004E204000020',
(CHA7,=CL7'DFH$AGB*'),(______RF,DFH$AGBO)
DFHEIRET INSERTED BY TRANSLATOR
DFHEISTG INSERTED BY TRANSLATOR
DFHEIEND INSERTED BY TRANSLATOR
END