In JCL, Region is an Optional Keyword Parameter which can be specified at JOB and/or Step Level. Region Parameter in JCL indicates that the amount of storage (Virtual or Real) that the JOB or step can use to execute. It specifies an upper limit of memory to be used and thus the job/step can use the memory till that point. It does not really acquires any storage for the job execution but sets an upper limit.
- If it is specified at job level ===> Applies to all the steps in that JOB.
- If specified at STEP level ===> Applies only to that step.
- If specified both at JOB and STEP level ===> STEP level parameter gets overridden and JOB level parameter would be in effect.
How region parameter knows whether the JOB/STEP needs Real or Virtual storage?
Storage type is taken from the ADDRSPC parameter specified in that JOB. If ADDRSPC is specified with REAL, then the region parameter allocates that Requested storage form Real Memory. If specified as VIRT or no ADDRSPC parameter is specified then system allocates the requested storage from Virtual memory.
- n–> n is any number value
- K–> Indicates that the storage to be provided in Kilo Bytes. In this case n value can be 1 thru 2096128.
- M–> Indicates that the storage to be provided in Mega bytes. N value can be from 1 thru 2047.
//PRDJ01 JOB MSGLEVEL=1,NOTIFY=&SYSUID,
Example for Step Level:
//STEP50 EXEC PGM=ACTPRG,COND=(0,NE),REGION=5M
REGION = 0K
REGION = 0M
0K & 0M are the special parameters where we leave the decision of allocating the storage to OS so it allocates the available storage below and above 16 Megabytes.
If this is not coded then the installation default value would be taken in to consideration.
- If any one of the programs in that JOB uses the GETMAIN to acquire some storage then this memory is also part of the REGION that is specified. So while specifying a value to region all these things should be taken in to consideration.
- If we are not sure how much storage is needed for all the steps to run, then it is best way to code either 0K or 0M where OS would takes care of storage.
- Coding 0K or 0M might result in storage issues as it allocates all the available storage so use it according to your guidelines.
- It has a relationship with MEMLIMIT where a specification of 0K/0M will result in a MEMLIMIT value being set to NOLIMIT.
- Using region for production environment needs an extra care so better to consult with storage people before giving any.
Abends Related to Region:
S822 is common abend which arises for insufficient region