Page 1 of 2

Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 6:24 pm
by AMAR2016
Hi Everyone.

This is my first post after lurking around for many years. I am facing following error while executing the rexx script.
As per the requirement we need to extract all member details and load module details from PDS along with date and time stamp in all environment.
For each PDS qualifier in input1 (from jcl), we have multiple qualifier in input 2 (from jcl) & For each qualifier in input2 (from jcl), we have multiple qualifier in input 3 (from jcl)
Code is running fine except when we select COBOL in input 3.
All selection are marked by ' * ' in sysin card of jcl.
Could you please guide me to fix the issue. Thank you.

Error Description-
READY                                                                
  ISPSTART CMD(REXXPGM)                                              
System abend code 878, reason code 00000016.                          
Recovery retry to module IRXEEXEC failed.                            
Abend in host command AMBLIST or address environment routine LINKMVS.
    99 *-*          ADDRESS LINKMVS "AMBLIST"                        
       +++ RC(-2168) +++                                              
System abend code 878, reason code 00000016.                          
Recovery retry to module IRXEEXEC failed.                            
Abend in host command AMBLIST or address environment routine LINKMVS.
       *-*          ADDRESS LINKMVS "AMBLIST"                        
       +++ RC(-2168) +++                                              
System abend code 878, reason code 00000016.                          
Recovery retry to module IRXEEXEC failed.                            
Abend in host command AMBLIST or address environment routine LINKMVS.
       *-*          ADDRESS LINKMVS "AMBLIST"                        
       +++ RC(-2168) +++                                              
       *-*          ADDRESS LINKMVS "AMBLIST"                
       +++ RC(-3) +++                                        
 FILE LOAD NOT FREED, DATA SET IS OPEN                        
 FILE SYSIN NOT FREED, DATA SET IS OPEN                      
 FILE SYSPRINT NOT FREED, DATA SET IS OPEN                    
    84 +++     MEM = LEFT(STRIP(SUBSTR(VAR.L,3,8)),8,' ')    
Error running REXXPGM, line 84: Machine storage exhausted    
ISPD117                                                      
The initially invoked CLIST ended with a return code = 20005  
READY                                                        
END                                                          
 


JCL-
//STEP01   EXEC PGM=IKJEFT01                              
//ISPPROF  DD DSN=&&ISPPROF,DISP=(,PASS),                
//            UNIT=SYSDA,SPACE=(CYL,(1,1,10),RLSE),      
//            RECFM=FB,LRECL=80                          
//ISPPLIB  DD DSN=SYS1.ISPPLIB,DISP=SHR                  
//ISPMLIB  DD DSN=SYS1.ISPMLIB,DISP=SHR                  
//ISPSLIB  DD DSN=SYS1.ISPSLIB,DISP=SHR                  
//ISPTLIB  DD DSN=SYS1.ISPTLIB,DISP=SHR                  
//ISPLOG   DD SYSOUT=*,DCB=(LRECL=125,RECFM=VBA)          
//SYSTSPRT DD SYSOUT=*,DCB=LRECL=125                      
//SYSTSPRT DD SYSOUT=*                                    
//SYSEXEC  DD DSN=X.Y.Z.REXX,DISP=SHR      
//INPUT1   DD *                                          
*AA                                                      
*BB                                                      
*CC                                                      
*DD                                                      
*EE                                                      
*FF                                                      
*GG                                                      
/*                                                        
//INPUT2   DD *                                                    
*DEV                                                                
*TEST                                                              
*UAT1                                                                
*UAT2                                                               
*PROD                                                             
/*                                                                  
//INPUT3   DD *                                                    
*PL1                                                                
*ASM                                                                
*BND                                                                
*COBOL                                                              
*CPY                                                                
*DBRM                                                              
*LOAD                                                              
*PSB                                                                
/*                                                                  
//OUTPUT1  DD DSN=A.B.C.REXX,DISP=(,CATLG,DELETE),
//            UNIT=SYSDA,SPACE=(CYL,(10,10),RLSE),    
//            DCB=(RECFM=FB,LRECL=150)                
//SYSTSIN  DD *                                      
  ISPSTART CMD(REXXPGM)                              
/*                                                    
//****************************************************
 


Code removed at user request

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 7:07 pm
by NicC
If you cared to look up the messages and codes manual for an S878 abend you would probably have the answer by now.

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 7:20 pm
by AMAR2016
Hi NicC,

Thank you for the reply. i have executed with REGION=0M in job card yet it is running out of virtual memory.
i wanted to take suggestion, if any way i can optimize my existing rexx code before consulting with system admin with respect to Virtual memory.

Thank you.

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 9:26 pm
by prino
AMAR2016 wrote:Thank you for the reply. i have executed with REGION=0M in job card yet it is running out of virtual memory.

Ever thought of doing the obvious?

Like running the program on a single COBOL PDS?

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 10:27 pm
by steve-myers
There may be a program issue. I have a program that analyzes load modules like AMBLIST that does a VRC GETMAIN for 13 meg. I find that if I free storage at the end of the space the GETMAIN allocates I'm less likely to get this kind of trouble than if I free storage at the start of the allocated space. I still have trouble, though, when I run it in ISPF, especially if SDSF is also running.

IMO, AMAR2016 might be better off running AMBLIST in batch, routing the SYSPRINT to a real data set, and then turn his Rexx EXEC loose on the SYSPRINT data set.

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 10:44 pm
by AMAR2016
Hi Prino,
yes, i did check with differnt PDS and it execute succesful but it is only failing for AMBLIST when cobol is selected with all input1. Please find result of below combination.
1. status = succesful
//INPUT1   DD *
OE            
 TJ            
 FK            
*PC            
*TN            
 PD            
 FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
*ARC          
*ASM          
*BND          
*BNP          
*COBOL        
*COL        
*CPY        
*DBRM      
*FBS        
*LNK        
*LOAD      
*PSB        
/*          
 


2. Status = Succesful
//INPUT1   DD *
 OE            
 TJ            
 FK            
 PC            
 TN            
*PD            
*FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
*ARC          
*ASM          
*BND          
*BNP          
*COBOL        
*COL        
*CPY        
*DBRM      
*FBS        
*LNK        
*LOAD      
*PSB        
/*          
 


3.status = succesful
//INPUT1   DD *
*OE            
*TJ            
*FK            
 PC            
 TN            
 PD            
 FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
*ARC          
*ASM          
*BND          
*BNP          
*COBOL        
*COL        
*CPY        
*DBRM      
*FBS        
*LNK        
*LOAD      
*PSB        
/*  
 


4.status = ABEND (selecting maximum possible option)
//INPUT1   DD *
*OE            
*TJ            
*FK            
*PC            
*TN            
*PD            
*FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
*ARC          
*ASM          
*BND          
*BNP          
*COBOL        
*COL        
*CPY        
*DBRM      
*FBS        
*LNK        
*LOAD      
*PSB        
/*          
 


5.STATUS = SUCEESFUL (Selecting all option except COBOL)
//INPUT1   DD *
*OE            
*TJ            
*FK            
*PC            
*TN            
*PD            
*FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
*ARC          
*ASM          
*BND          
*BNP          
  COBOL        
*COL        
*CPY        
*DBRM      
*FBS        
*LNK        
*LOAD      
*PSB        
/*          
 


6. Status = ABEND (Selecting only COBOL for all input1)
//INPUT1   DD *
*OE            
*TJ            
*FK            
*PC            
*TN            
*PD            
*FO            
/*            
//INPUT2   DD *
*DEV          
*TEST          
*KVS          
*ABN          
*PROD          
/*            
//INPUT3   DD *
ARC          
 ASM          
 BND          
 BNP          
*COBOL        
 COL        
 CPY        
 DBRM      
 FBS        
 LNK        
 LOAD      
 PSB        
/*          
 


From above it is clear that for limited INPUT1, code is running succesful even with COBOL.

Thanks.

Re: Error while extracting load module details through REXX

PostPosted: Fri Jun 10, 2016 10:52 pm
by AMAR2016
HI,

A small correction in my rexx code. The outer loop execute till C1 .


/* ALLOCATE PDS AND LIST ALL MEMBERS WITH REQUIRED DETAILS -1ST OWNER*/
DO I=1 TO C1                                                              
 DO J=1 TO C2                                                          
  ENV = LEFT(STRIP(SUBSTR(US2.J,1,4)),4,' ')                          
  DO K=1 TO C3                                                        
....
.....
 



Thank you.

Re: Error while extracting load module details through REXX

PostPosted: Mon Jun 13, 2016 1:06 pm
by NicC
The same topic on the experts' forum has been deleted. As you have been lurking both here and there you should know that the forums are connected and the same people assist on both fora.

Re: Error while extracting load module details through REXX

PostPosted: Mon Jun 13, 2016 1:10 pm
by AMAR2016
sorry i did not know this..

Re: Error while extracting load module details through REXX

PostPosted: Mon Jun 13, 2016 10:38 pm
by enrico-sorichetti
... after lurking around for many years.

odd that after so much lurking You have not realized that the people replying here are the same replying there :o