Limit Allocations to 4 GB

Document ID : KB000049757
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

How to reduce very large allocation amounts for non-LARGE data sets so that the 4GB limit per volume is not exceeded. Additional benefit is that storage groups are not "swamped" with multiple large allocation amounts?

Solution:

4 GB is the MVS space limit for non-LARGE data sets per volume. 4 GB computes to 65,535 tracks or 4,369 cylinders.

When the total size of a non-LARGE data set on a volume will exceed the 4GB limit, CA Allocate has to close the allocation on that volume and extend to another volume with the ASR logic in the EOV or EOV_VSAM environments.

When the PRI and SEC values are very large, such as CYL,(1500,1000), these large allocation amounts - especially multiples of them in a step or multiple jobs - can "swamp" a storage group.

Large PRI-SEC amounts can also cause that the full 4GB limit per volume will not be utilized so the data set(s) will span more volumes than needed. The Reduce To Fit variables listed in these ASR examples (SET &RB and SET &MP) will help improve volume utilization. (See the Knowledge Doc, "KD - DIF-RTF Variables - How To Use" for more details on using the RTF statements.)

The following ASR code can be added in the ALLOC environment that will adjust the size of PRI and SEC to more manageable sizes if the potential size would exceed the 4GB limit per volume.

/* ---------------------------------------------------------------- */
/*  THIS WILL SET PRI AND SEC TO 1/16 OF MVS LIMIT (4GB)            */
/* ---------------------------------------------------------------- */
    IF &DSNTYPE NE 'LARGE' AND &MAXSIZE > 65535 AND                   
       &SPACTYPE = 'TRK' THEN                                         
     DO                                                               
      SET &PRIMARY   = 4095                                           
      SET &SECONDARY = 4095                                           
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PRI  SEC = &SEC'          
     END                                                              
    IF &DSNTYPE NE 'LARGE' AND &MAXSIZE > 4369 AND                    
       &SPACTYPE = 'CYL' THEN                                         
     DO                                                               
      SET &PRIMARY   = 273                                            
      SET &SECONDARY = 273                                            
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PRI  SEC = &SEC'          
     END                                                              
      SET &RB = 10                                                    
      SET &MP = 25                                                    
/* ---------------------------------------------------------------- */

The following ASR code can be added in the DEFINE environment that will adjust the size of PRI & SEC or PDC & SDC to more manageable sizes if the potential size would exceed the 4GB limit per volume.

/* ---------------------------------------------------------------- */
/*  THIS WILL SET PRI AND SEC TO 1/16 OF MVS LIMIT (4GB)            */
/* ---------------------------------------------------------------- */
    IF &DSNTYPE NE 'LARGE' AND &PRI > 0 AND &SPACTYPE = 'TRK' AND     
       &PRI + (&SEC * 15) > 65535 THEN                                
     DO                                                               
      SET &PRI  = 4095                                                
      SET &SEC  = 4095                                                
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PRI  SEC = &SEC'          
     END                                                              
    IF &DSNTYPE NE 'LARGE' AND &PDC > 0 AND &SPACTYPED = 'TRK' AND    
       &PDC + (&SDC * 15) > 65535 THEN                                
     DO                                                               
      SET &PDC  = 4095                                                
      SET &SDC  = 4095                                                
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PDC  SEC = &SDC'          
     END                                                              
/* -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - */
    IF &DSNTYPE NE 'LARGE' AND &PRI > 0 AND &SPACTYPE = 'CYL' AND     
       &PRI + (&SEC * 15) > 4369 THEN                                 
     DO                                                               
      SET &PRI  = 273                                                 
      SET &SEC  = 273                                                 
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PRI  SEC = &SEC'          
     END                                                              
    IF &DSNTYPE NE 'LARGE' AND &PDC > 0 AND &SPACTYPED = 'CYL' AND    
       &PDC + (&SDC * 15) > 4369 THEN                                 
     DO                                                               
      SET &PDC  = 273                                                 
      SET &SDC  = 273                                                 
      WRITE 'TOTAL ALLOCATION AMOUNT COULD EXCEED 4GB LIMIT'          
      WRITE 'ALLOCATION CHANGED TO:  PRI = &PDC  SEC = &SDC'          
     END                                                              
      SET &RB = 10                                                    
      SET &MP = 25                                                    
/* ---------------------------------------------------------------- */

If you have any questions, please contact CA Allocate Technical Support.