Programs that are eligible to reside above 16MB, and are read-only, can reside in the CICS® extended read-only DSA (ERDSA). Therefore, to be eligible for the ERDSA, programs must be:
Programs that are not eligible to reside above 16MB, and are read-only, can reside in the CICS read-only DSA (RDSA) below 16MB. Therefore, to be eligible for the RDSA, programs must be:
Programs link-edited with RENT and RMODE(ANY) are automatically loaded by CICS into the ERDSA.
ERDSA requirements for the specific languages are described as follows.
If you want CICS to load your assembler programs in the ERDSA, assemble and link-edit them with the following options:
The CICS-supplied procedure, DFHEITAL, has a LNKPARM parameter that specifies the XREF and LIST options only. To link-edit an ERDSA-eligible program, override LNKPARM from the calling job, specifying the RENT and RMODE(ANY) options in addition to any others you require.
For example:
//ASMPROG JOB 1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//EITAL EXEC DFHEITAL,
.
(other parameters as necessary)
.
// LNKPARM='LIST,XREF,RMODE(ANY),RENT'
If you want your application program link-edited as AMODE(31) and RMODE(ANY), you are recommended to use appropriate statements in your assembler program. For example:
MYPROG CSECT
MYPROG AMODE 31
MYPROG RMODE ANY
There are two ways of setting AMODE and RMODE:
//EITAL EXEC DFHEITAL,
LNKPARM='LIST,XREF,RENT,AMODE(31),RMODE(ANY)'
When using the binder, you may see unexpected warning messages about conflicting AMODE and RMODE specifications.
If you want CICS to load your C and C++ programs into the ERDSA, compile and link-edit them with:
The CICS-supplied procedures DFHYITDL or DFHYITFL
(for
C) and DFHYITEL
or DFHYITGL
(for C++) have a LNKPARM
parameter that specifies a number of link-edit options. To link-edit an ERDSA-eligible
program, override this parameter from the calling job, and add RENT to the
other options you require. You do not need to add the RMODE(ANY ) option,
because the CICS EXEC interface module for C (DFHELII) is link-edited with
AMODE(31) and RMODE(ANY). Therefore, your program is link-edited as AMODE(31)
and RMODE(ANY) automatically when you include the CICS EXEC interface stub, see The CICS-supplied interface modules.
The following sample job statements show the LNKPARM parameter with the RENT option added:
//CPROG JOB 1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//YITDL EXEC DFHYITDL,
.
(other parameters as necessary)
.
// LNKPARM='LIST,MAP,LET,XREF,RENT'
If you use the integrated CICS translator then the compile requires the RENT compiler option, so no CBL card needs to be added during translation. COBOL programs that use a separate translation step are automatically eligible for the ERDSA, because:
You also need to specify the reentrant attribute to link-edit. The CICS-supplied procedure, DFHYITVL, has a LNKPARM parameter that specifies a number of link-edit options. To link-edit an ERDSA-eligible program, override this parameter from the calling job, and add RENT to any other options you require. For example:
//COBPROG JOB 1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//YITVL EXEC DFHYITVL,
.
(other parameters as necessary)
.
// LNKPARM='LIST,XREF,RENT'
CICS PL/I programs are generally eligible for the ERDSA, provided they do not change static storage. The following requirements are enforced, either by CICS or PL/I:
You also need to specify the reentrant attribute to the link-edit. The CICS-supplied procedure, DFHYITPL, has a LNKPARM parameter that specifies a number of link-edit options. To link-edit an ERDSA-eligible program, override this parameter from the calling job, and add RENT to any other options you require. For example:
//PLIPROG JOB 1,user_name,MSGCLASS=A,CLASS=A,NOTIFY=userid
//YITPL EXEC DFHYITPL,
.
(other parameters as necessary)
.
// LNKPARM='LIST,XREF,RENT'