Jon Kudos to you even Peter Relson wasn’t sure if this correct
-----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Jon Perryman Sent: Wednesday, September 27, 2023 10:00 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: SCHEDIRB On Tue, 19 Sep 2023 20:29:52 -0400, Joseph Reichman <reichman...@gmail.com> wrote: > Source code below. Sorry for chiming in so late but I've had other priorities. I think you're being led down the wrong path. A 30 second glance at your code shows obvious coding errors. SRB and IRB are the the real danger. Running key 0 and sup makes you the destroyer of worlds. Always make this code obvious. 1. Labels IRBPTR and STIMER are not preceded by a "DROP ,". As exit routines, prior USINGs are not guaranteed. They may be using a bad reg. 2. IRBLST and TIMERLST are in a DSECT that is not obvious they have been initialized correctly. It's not obvious that generated eye catchers and default values were copied or if the area was simply zeroed. 3. Use "save (R14,R12),'exit eyecatcher' will simplify debugging when looking at a dump for the PSW address. 4. I believe that LOAD will abend if the module is not linked with the AC=1 attribute when running authorized. 5. TSO does SVC screening to protect itself from SUP and non-KEY8 security exposures. Does TSO allow an unknown LOAD from the job step TCB. 6. Is there a reason you haven't tried IDENTIFY for the module? I've never tested this situation but I suspect it increments the use count to ensure the alternate name remains available when the TCB goes away. 7. Another possibility is STORAGE OBTAIN and LOAD to the obtained area. 8. If you need to refresh the module, using LOAD from the IKJEFT01 TCB will require logoff / logon or the implementation of another IRB to refresh the LOAD module. I suspect there are other problems. With so many possible problems, you need to get familiar with IPCS because analyzing the dump would tell you quickly where and what abended. Since you don't have XDC, you may find IPCS useful when looking at the active system with the SAF BLSACTV resource permitted because you can view all address spaces. Alternatively, insert WTO's in you code to see where you are failing. > > STIMERM SET, X > ID=TIMER, X > BINTVL=NOW, X > ERRET=ERROR, X > EXIT=STIMER, X > PARM=TIMER_PLIST, X > WAIT=NO,MF=(E,TIMERLST) > > >STIMER DS 0D > STM R14,R12,12(R13) > * > LR R4,R15 > DROP R3 > USING STIMER,R4 > LR R10,R13 > L R13,4(,R1) Get Save area > DROP R13 > USING TIMERSVE,R13 > ST R10,4(R13) > * > SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND,REGS=SAVE > * > * > * Chain rb pointer to put this IRB as next > * > LA R5,IRBPTR > O R5,=X'80000000' > ST R5,IRBADD > L R6,PSATOLD > USING TCB,R6 > L R6,TCBJSTCB Get the Job Step tcb > ST R6,JSTCB > SCHEDIRB EPPTR=IRBADD, X > TCBPTR=JSTCB, X > SVAREA=YES, X > MODE=SUPR, X > KEY=SUPR, X > PARAMPTR=PLIST, X > MF=(E,IRBLST) > SETLOCK RELEASE,TYPE=LOCAL,REGS=SAVE > * > * > L R13,4(,R13) > XR R15,R14 > L R14,12(R13) > LM R0,R12,20(R13) > BR R14 > DROP R13 > USING WORKAREA,R13 > DROP R4 > IRBPTR DS 0D > * > STM R14,R12,12(R13) > LR R5,R15 > USING IRBPTR,R5 > LR R10,R1 Save Plist pointer > LOAD EP=GETVECT > ST R0,0(R10) Store Pointer > XR R15,R15 > L R14,12(R13) > LM R0,R12,20(R13) > BR R14 > DROP R5 > > > WORKAREA DSECT > SAVEAREA DS 18F > TIMERSVE DS 18F > DS 0D > TIMER DS F > PARMPTR DS A > FADDR DS A > DEPARM DESERV MF=L > CSVLMPEA DS CL(LPMEA_LEN) > DELEN EQU *-DEPARM > SCHEDIRB MF=(L,IRBLST) > CSVQUERY MF=(L,CSVQUERY) > TIMERLST STIMERM SET,MF=L > PLIST DS 0A > DS A > TIMER_PLIST DS A > DESPTR DS A > IRBADD DS A >JSTCB DS A ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN