Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
IEALIMIT — User Region Size Limit Exit z/OS MVS Installation Exits SA23-1381-00 |
||||||||||||||||
Topics for This Exit Appear as Follows:
An installation can limit application programs' access to nonextended private area storage (subpools 0-127, 129-132, 244, 251 and 252) by writing IEALIMIT. This exit routine is invoked before each job step is started. IEALIMIT can be used under MVS™ to set nonextended region size and nonextended region limit only. The values set by IEALIMIT should be less than the size of the nonextended private area. If they are not, the control program uses the size of the nonextended private area. The values set by IEALIMIT have no effect on establishing the extended region size and extended region limit. It is recommended that the exit routine IEFUSI be used in place of IEALIMIT when possible, especially when jobs are expected to specify a region value greater than 16 megabytes. IEFUSI can include region limit processing for the private area for both less than and greater than 16 megabytes. See IEFUSI — Step Initiation Exit for a comparison of these two exit routines. Limiting Region Size Consideration: If you want to use the IEALIMIT exit to control region size, and you have the IEFUSI exit available, ensure that the flag to bypass the IEALIMIT exit is not set in the IEFUSI parameter list. Installing the Exit RoutineThe IBM-supplied IEALIMIT exit routine is linkedited with the nucleus. To replace the IBM-supplied routine with your own IEALIMIT, you must linkedit your own version into the nucleus prior to an initial program load. For general instructions on installing an exit routine, see Link editing an Installation Exit Routine into a Library. Exit Routine EnvironmentIEALIMIT
receives control in the following environment:
Exit Recovery: The exit routine runs under an ESTAE. The VSM recovery routine that gets control should an error occur in the IEALIMIT exit will (1) fill in the SDWA (with IEALIMIT as the module name) and take an SVC dump, and then (2) either (a) retry the operation (including another call to the IEALIMIT exit) or (b) percolate, which could eventually result in an ABEND. Because IEALIMIT is an authorized routine that runs in key 0, it can provide its own recovery routine, which would have the same capabilities as the IEALIMIT routine itself. The recovery routine would be subject to the limitations on all recovery routines, which are documented in the topic "Providing Recovery" of z/OS MVS Programming: Authorized Assembler Services Guide. Exit Routine ProcessingIEALIMIT gets control after an existing region has been freed, and before a new region is initialized. On entry, the IEALIMIT routine receives in register 0 the number of bytes requested by the application program for its region, as specified through the JCL REGION parameter. If this REGION value is less than 16 megabytes, the value in register 0 is the same as the REGION value. If this REGION value is greater than 16 megabytes, the value in register 0 is equal to the size of the nonextended private area minus 64K. Register 1 contains the same value as register 0. If the JCL REGION parameter value is zero or if the parameter is absent, then the installation JES default value is used. If the JES default is zero, the IEALIMIT routine receives a zero in register 1. After processing, the IEALIMIT routine returns values in both registers 0 and 1. Register 0 contains the number of bytes to be used as the region size which should be less than the size of the nonextended private area. Register 1 contains the number of bytes to be used as the region limit. Both registers 0 and 1 should be rounded to a multiple of 4K. These values in registers 0 and 1 determine how much space is allocated in the user's region, in response to GETMAIN and STORAGE requests. IEALIMIT Default Values: If your installation does not supply an IEFUSI exit routine to control region size, and does not override the default values in the IBM-supplied IEALIMIT exit routine, users obtain the results shown in Table 1 when specifying various values for the region size on the REGION parameter.
See z/OS MVS Initialization and Tuning Guide for further information on the effect of the region limit and region size on requests for storage. Programming ConsiderationsCode IEALIMIT to be reentrant. If this exit routine uses dynamic storage, use subpool 229, 230, or 249 for that storage. Do not use 0-127, as this will determine the key of the subpool for the duration of the jobstep. Common storage and LSQA are not recommended. When using IEALIMIT to limit region size, the region size should be less than the region limit. This provides protection against programs that issue variable length GETMAINs with very large maximums and then do not immediately free part of that space, or free such a small amount that a subsequent GETMAIN (possibly issued by a system service) fails. Entry SpecificationsEither the value specified by the REGION parameter on the JOB or EXEC statement or the value of the JES default is passed to the IEALIMIT routine so that the exit can determine whether it is acceptable. Registers at Entry: The contents of the registers on entry to the exit are as follows.
Return SpecificationsThe IEALIMIT routine returns a region size and region limit. Registers at Exit: Upon return from the exit processing, the register contents must be as follows.
Coded Example of the Exit RoutineFigure 1 is
a coded example of the IEALIMIT
exit routine.
Figure 1. Example: IEALIMIT exit routine
The IBM-supplied
IEALIMIT routine as
described in this topic does the following
processing:
|
Copyright IBM Corporation 1990, 2014
|