PL/I

CICS® PL/I programs are generally eligible for the ERDSA, provided that they do not change static storage.

The following requirements are enforced, either by CICS or PL/I:
  • The PL/I compilation procedure must specify the RENT compiler option. The CICS-supplied procedures for compiling PL/I, for example DFHYITPL, automatically include this option.
  • The PL/I compiler automatically generates code that conforms to 31-bit addressing standards.
  • The CICS EXEC interface module for PL/I (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.
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'

Do not specify the RENT attribute on the link-edit step unless you have ensured the program is truly read-only (for example, it does not write to static storage), otherwise storage exceptions occur. For possible causes of storage protection exceptions in programs that are resident in the ERDSA, see Causes of protection exceptions.