As I reviewed the differences between IKJEFT01, IKJEFT1A, and IKJEFT1B, I think that the way the entry points return the Return code is not clear. For IKJEFT1A and IKJEFT1B they seem similar. Which may be confusing the issue.
**PGM=IKJEFT01 When a command completes with a non-zero return code, the program goes to the next command. When a command abends, the step ends with a condition code of 12 (X'C'). **PGM=IKJEFT1A If a command or program being processed by IKJEFT1A ends with a system abend, IKJEFT1A causes the job step to terminate with a X'04C' system completion code. IKJEFT1A also returns to the caller the completion code from the command or program in register 15. If a command or program being processed by IKJEFT1A ends with a user abend, IKJEFT1A saves the completion code in register 15 and then terminates. If a command, program or REXX exec being processed by IKJEFT1A returns a non-zero return code to IKJEFT1A, IKJEFT1A saves this return code in register 15 and then terminates. Non-zero return codes to IKJEFT1A from CLISTs will not affect the contents of register 15 and the TMP will continue processing. For a non-zero return code or an abend from a command or program that was not given control directly by IKJEFT1A, no return code is saved in register 15, and IKJEFT1A does not terminate. **PGM=IKJEFT1B If a command or program being processed by IKJEFT1B ends with a system or user abend, IKJEFT1B causes the job step to terminate with a X'04C' system completion code. IKJEFT1B also returns to the caller the completion code from the command or program in register 15. If a command, program, CLIST, or REXX exec being processed by IKJEFT1B returns a non-zero return code to IKJEFT1B, IKJEFT1B saves this return code in register 15 and then terminates. For a non-zero return code or abend completion code from a program or command that was not given control by IKJEFT1B, no return code is saved in register 15, and IKJEFT1B does not terminate. So, is it possible that you are expecting a behavior that is not normal to IKJEFT1B? Or am I mis-understanding your process? I am not sure an ESTAI works with IKJEFT1B like is thought. So how are you setting up the ESTAI and IKJEFT1B? Is control being passed correctly? Or is IKJEFT1B getting an abend from somewhere else and is not in control at the time? Lizette > -----Original Message----- > From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] > On Behalf Of Walt Farrell > Sent: Sunday, April 07, 2013 7:17 AM > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: Re: ESTAI & IKJEfT1B 04C > > On Sat, 6 Apr 2013 11:10:58 -0400, Phil <phil_sid...@hotmail.com> wrote: > > >I'm trying to front-end some existing IKJEFT1B job steps to do some setup & > >checking before and cleanup after. In my testing, any abend generates an > >04C, which is fine, however my ESTAI routine does not seem to get > >control in this case for me do the cleanup (which could be disastrous). > >Anyone have experiences with this? I suppose I could go back to > >IKJEFT01. :( > > I don't know why your ESTAI is not getting control, if it was established correctly. The > explanation of the 04C abend (see > http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2H7C2/SPTM0148 44 > or http://preview.tinyurl.com/cc3fk4l ) clearly indicates that the TMP has its own error > recovery that has trapped the underlying ABEND. > > The TMP expects to run as the one and only jobstep task, so I was a bit surprised at > your mention of ESTAI as my first reaction was "hmm, I didn't think one could ATTACH > the TMP and have things work properly." I know that in my long ago experiments I > always LINKed or XCTLed to the TMP from my jobstep program, and used ESTAE to > catch any abends. > > Clearly if you ATTACH it (even if you ATTACH it as a jobstep TCB) it's not the one and > only jobstep TCB as it expects. See http://publibz.boulder.ibm.com/cgi- > bin/bookmgr_OS390/BOOKS/ikj4b4c0/APPENDIX1.1.3?SHELF=all13be9.bks&DT=201106 > 22122347&CASE= > or http://preview.tinyurl.com/d8krghz for more info on that. But if you did attach it as > a second jobstep task I'm not sure how that would prevent ESTAI from working. > > -- > Walt