Maximum value to specify for NUMENTRY in In TPX user exit TPXUGACB
search cancel

Maximum value to specify for NUMENTRY in In TPX user exit TPXUGACB

book

Article ID: 39861

calendar_today

Updated On:

Products

TPX - Session Management Vman Session Management for z/OS

Issue/Introduction

In TPX user exit TPXUGACB, what is the maximum value to specify for NUMENTRY, the number of table entries in the ACB assignment table?

The production system is using the TPXUGACB exit with NYMNTRY=3000.  If the system is up for more than about 50 days, the incore table is full and we start having abends:

TPXUGACB - INCORE SAVED ACB TABLE FULL 
DUMP TITLE=TPX990E ABEND S0C1 - MODULE=TPXUGACB, TASK=EXITTASK 

Recycling TPX resolves this.  

I tried to increase the table, first to 4000 and then to 3500, using the test system.   When I start TPX in test using these higher values, it will not come up.  It fails with U0031: 

IEA995I SYMPTOM DUMP OUTPUT  184                                  
  USER COMPLETION CODE=0031                                       
 TIME=13.41.49  SEQ=00230  CPU=0000  ASID=0021                    
 PSW AT TIME OF ERROR  070C1000   8003A52C  ILC 2  INTC 0D        
   ACTIVE LOAD MODULE           ADDRESS=0003A3E0  OFFSET=0000014C 
   NAME=TPXGTSTR
   DATA AT PSW  0003A526 - 00181610  0A0D9104  049F47E0           
   AR/GR 0: 00000000/80000000   1: 00000004/8000001F              
         2: 00000000/00019000   3: 00000000/00000000              
         4: 00000000/00000000   5: 00000000/21764000              
         6: 00000000/008D6FC8   7: 00000000/00000000              
         8: 00000000/80000000   9: 00000000/00000000              
         A: 00000000/80010712   B: 00000000/00022038              
         C: 00000000/0003A420   D: 00000000/006B8F48              
         E: 00000000/80030870   F: 00000000/006B8EB8              
 END OF SYMPTOM DUMP                                              

 

Environment

TPX® Session Management for z/OS

Cause

From the delivered TPXUGACB SRC:

GETSTOR BYTES=AATLEN
...
AATENT   DSECT                                            
AATUID   DS    CL8                                        
AATSID   DS    CL8                                        
AATAPID  DS    CL8                                        
AATACB   DS    CL8                                        
AATENT#  EQU   *-AATENT             LENGTH OF SINGLE ENTRY
NUMENTRY EQU   500                  NUMBER OF TABLE ENTRIES
AATLEN   EQU   AATENT#*NUMENTRY     TABLE SIZE            

So each of the 4 fields in AATENT (ACB assignment table) has a character length of 8 bytes for a total of 32 bytes.

 AATLEN = 32 * NUMENTRY

32 x 4000 = 128000 bytes 

32 x 3500 = 112000 bytes 

The problem with these values is that TPXUGACB exit is doing a GETSTOR call for 128000 bytes of storage.

The U031 abend occurs because the maximum request allowed by z/OS is for 100,000 bytes.

Resolution

The maximum value that should work for NUMENTRY is 100,000/32 = 3125. 

If you find that 3125 is not sufficient then you need to identify why you are using this exit.

Additional Information

TPX 5.4 documentation: ACB Selection Exit