Code: |
"ALLOC F(JOBSUB) SYSOUT(A) WRITER(INTRDR) RECFM(F) LRECL(80)" "EXECIO * DISKW JOBSUB (STEM myjob. FINIS" Do Forever If SYSDSN(xfrdsn) = "OK" Then leave x = REXXWAIT("F00:01:00.00") End Say "Dataset has been transferred" |
Code: |
S2 RUN JOB(DSN=YOUR.JCL(NDMDONE)) |
Code: |
ADDRESS SYSCALL 'SLEEP 2' |
Code: |
MJTNDMD PROCESS SNODE=PPRD HOLD=YES S1 COPY FROM (SNODE DSN=&DSN1) TO (PNODE DSN=&DSN2 DISP=(,CATLG)) S2 RUN JOB (DSN=&JCLLIB) PNODE |
Code: |
TITLE 'REXXWAIT - REXX CALLABLE WAIT ROUTINE' *=====================================================================* * * * OPERATIONS MANAGEMENT REXX WAIT ROUTINE * * ======================================= * * * * FUNCTION : WAIT FOR A SEPECIFIED AMOUNT OF TIME OR WAIT UNTIL A * * SPECIFIED TIME. THE TYPE OF WAIT IS DETERMINED BY THE * * PARAMETER. * * THE FIRST CHARACTER OF THE PARAMETER IS THE TYPE OF * * WAIT. IF IT IS F THEN THE WAIT IS FOR A TIME. IF IT IS * * U THEN THE WAIT IS UNTIL THE SPECIFIED TIME. * * THE NEXT 11 CHARACTERS SPECIFY THE TIME TO WAIT IN THE * * FORMAT HH:MM:SS.TH (HH=HOURS MM=MINUTES SS=SECONDS * * T=TENTHS OF A SECOND H=HUNDREDTHS OF A SECOND) * * E.G. TO WAIT FOR TEN SECONDS THEN THE PARAMETER SHOULD * * BE F00:00:10.00 * * E.G. TO WAIT UNTIL 10 O'CLOCK THEN THE PARAMETER SHOULD * * BE U10:00:00.00 * * * * EXAMPLE : X = REXXWAIT('F00:10:00.00') * * * * THE ABOVE EXAMPLE WILL WAIT FOR A PERIOD OF 10 MINUTES * * * * * * -***- NOTE THIS IS WRITTEN AS A REXX FUNCTION AND MUST * * ONLY BE INVOKED FROM REXX. * * * * AUTHOR : M.TYALOR * * DATE : 11/14/96 * * * *=====================================================================* PRINT NOGEN EJECT ALOFFSET EQU 16 EBOFFSET EQU 20 REXXWAIT INIT REGNUM=5 ST 0,ENVBLK00 SAVE THE ENVIRONMENT BLOCK ADDR ST 1,EFPL00 SAVE THE EFPL ADDRESS L 2,ALOFFSET(1) ADDRESS OF ARGUMENT LIST ST 2,ARGLST00 SAVE IT L 3,EBOFFSET(1) ADDRESS OF THE EVALUATION BLOCK ST 3,EVLBLK00 SAVE IT *---------------------------------------------------------------------* * CALCULATE THE NUMBER OF ARGUMENTS PASSED TO ROUTINE * *---------------------------------------------------------------------* CALCARGN L 2,ARGLST00 GET THE ARG LIST ADDRESS SR 3,3 0 ARGUMENTS CA_001 CLC ARGEND(8),0(2) END OF ARG LIST ? BE CA_999 YES THEN FINISH LA 2,8(2) NEXT ENTRY LA 3,1(3) INCREMENT COUNT B CA_001 CA_999 ST 3,ARGNUM00 STORE ARGUMNET COUNT C 3,ARGNUM ONLY 1 WANTED BE PCNTOK OK ERRRET L 13,4(13) INVALID LENGTH RETURN (14,12),RC=8 ERRRET_2 L 13,4(13) INVALID SEPRATOR RETURN (14,12),RC=9 ERRRET_3 L 13,4(13) INVALID TYPE RETURN (14,12),RC=10 ERRRET_4 L 13,4(13) NON NUMERIC FIELD RETURN (14,12),RC=11 *---------------------------------------------------------------------* * MAKE SURE THE LENGTH OF THE PARAMETER IS OK * *---------------------------------------------------------------------* PCNTOK L 2,ARGLST00 GET ARGUMENT LIST ADDRESS L 3,0(2) GET THE ADDRESS OF THE PARAMETER L 4,4(2) GET THE LENGTH OF THE PARAMETER C 4,MINLEN MUST BE 2 OR GREATER BL ERRRET WHOOPS C 4,MAXLEN MUST BE 16 OR LESS BH ERRRET WHOOPS *---------------------------------------------------------------------* * CHECK THE PARAMETER FOR VALIDITY * *---------------------------------------------------------------------* CHK_2_00 CLC 3(1,3),TSEP CHECK 4TH CHARACTER IS : BNE ERRRET_2 CLC 6(1,3),TSEP CHECK 7TH CHARACTER IS : BNE ERRRET_2 CLC 9(1,3),SSEP CHECK 10TH CHARACTER IS . BNE ERRRET_2 CLC 0(1,3),TYPFOR IS TYPE F ? BE CHK_3_00 YES THEN SKIP TO NUMERIC CHECK CLC 0(1,3),TYPUNTIL IS TYPE U ? BNE ERRRET_3 NO THEN TYPE IS INVALID *---------------------------------------------------------------------* * CHECK THAT THE NUMERIC FIELDS ARE NUMERIC * *---------------------------------------------------------------------* CHK_3_00 CLC 1(2,3),CHAR00 CHECK THE HOUR BL ERRRET_4 CLC 1(2,3),CHAR23 BH ERRRET_4 CLC 4(2,3),CHAR00 CHECK THE MINUTES BL ERRRET_4 CLC 4(2,3),CHAR59 BH ERRRET_4 CLC 7(2,3),CHAR00 CHECK THE SECONDS BL ERRRET_4 CLC 7(2,3),CHAR59 BH ERRRET_4 CLC 10(2,3),CHAR00 CHECK THE TENTHS & HUNDREDTHS BL ERRRET_4 CLC 10(2,3),CHAR99 BH ERRRET_4 *---------------------------------------------------------------------* * READY THE VALUES FOR THE STIMER INVOCATION * *---------------------------------------------------------------------* MVE_TIME MVC HOURS(2),1(3) STORE THE HOURS MVC MINUTES(2),4(3) STORE THE MINUTES MVC SECONDS(2),7(3) STORE THE SECONDS MVC TENTHS(1),10(3) STORE THE TENTHS MVC HUNDREDS(1),11(3) STORE THE HUNDREDTHS ST 3,REG3STR STORE REGISTER 3 *---------------------------------------------------------------------* * ATTACH THE SUBTASK WAITCON SO THAT THE PROCESS DOES NOT TIMEOUT * *---------------------------------------------------------------------* ATTACH ATTACH EP=WAITCON HAVE SUBTASK SO THAT NO TIMEOUT ST 1,TASKCB *---------------------------------------------------------------------* * CALL THE RESPECTIVE STIMER * *---------------------------------------------------------------------* L 3,REG3STR RESTORE REGISTER 3 CLC 0(1,3),TYPUNTIL BE W_UNTIL W_FOR STIMER WAIT,DINTVL=ALARMT,ERRET=STOP_TSK B STOP_TSK W_UNTIL STIMER WAIT,TOD=ALARMT,ERRET=STOP_TSK *---------------------------------------------------------------------* * RETURN * *---------------------------------------------------------------------* STOP_TSK L 1,TASKCB DETACH TASKCB RET_PRM LA 1,RETPLIST ADDRESS OF PARAMETER LIST LINK EP=IRXRLT CALL GET RESULT ROUTINE L 2,RPARM2 GET EVAL BLOCK ADDRESS MVC 16(1,2),RETPARM LA 3,1 ST 3,8(2) PGM_END FINISH EJECT TASKCB DS 1F REG3STR DS 1F *---------------------------------------------------------------------* * REXX ENVIRONMENT STORAGE AREAS * *---------------------------------------------------------------------* ENVBLK00 DS 1F REXX ENVIRONMENT BLOCK ADDRESS EFPL00 DS 1F REXX EXTERNAL FUNCTION PARAMETER * LIST ADDRESS ARGLST00 DS 1F ARGNUM00 DS 1F NUMBER OF ARGUMENTS EVLBLK00 DS 1F EVALUTION BLOCK ARGEND DC X'FFFFFFFFFFFFFFFF' END OF ARGUMENT ADDRESS ARGNUM DC 1F'1' MINLEN DC 1F'12' MAXLEN DC 1F'12' CHAR00 DC CL2'00' CHAR23 DC CL2'23' CHAR59 DC CL2'59' CHAR99 DC CL2'99' TYPUNTIL DC CL1'U' TYPFOR DC CL1'F' SSEP DC CL1'.' TSEP DC CL1':' ALARMT DS 0CL8 HOURS DS CL2 MINUTES DS CL2 SECONDS DS CL2 TENTHS DS CL1 HUNDREDS DS CL1 RETPLIST DS 0D PARAMETER LIST FOR IRXRLT CALL DC A(RPARM1) ADDRESS OF CALL TYPE (GETBLOCK) DC A(RPARM2) ADDRESS OF EVAL BLOCK ADDRESS DC X'80' END OF PARAMETER LIST DC AL3(RPARM3) ADDRESS OF PARAMETER LENGTH RPARM1 DC CL8'GETBLOCK' CALL TYPE RPARM2 DS A ADDRESS OF EVAL BLOCK RPARM3 DC F'1' LENGTH OF RETURN PARAMETER RETPARM DS 0D RETURN PARAMETER APPL_ID DC CL1'Z' EJECT END |
Code: |
TITLE 'CONTINUAL WAIT' PRINT NOGEN WAITCON CSECT *---------------------------------------------------------------------- * * THIS PROGRAM SHOULD ONLY BE USED AS A SUBTASK. THE FUNCTION * OF THIS PROGRAM IS TO LOOP ONCE FOR A SET PERIOD AS DETERMINED * BY DOUBLEWORD AT ADDRESS ALARMT. THEREFORE IT CAN BE USED TO * ENSURE THAT THE OWNING TASK WILL NOT FAIL WITH A 522. THE * PROGRAM WILL USE HARDLY ANY CPU AND COULD THEREFORE PROBABLY * RUN FOR A SUBSTANTIAL TIME BEFORE ABENDING WITH A 322. * *---------------------------------------------------------------------- EJECT *---------------------------------------------------------------------- * CREATE SAVE AREA FOR RETURN TO CONTROL PROGRAM *---------------------------------------------------------------------- SPACE 1 SAVE (14,12) SAVE REGISTERS BALR 12,0 LOAD R12 WITH CURRENT ADDR USING *,12 USE R12 AS BASE REGISTER ST 13,SAVEAREA+4 STORE R13 AT SAVEAREA + 4 LR 9,13 R9=R13 LA 13,SAVEAREA R13=SAVEAREA ADDR ST 13,8(9) STORE SAVE AREA FOR COMP EJECT *---------------------------------------------------------------------- * OPTIONS *---------------------------------------------------------------------- SPACE 1 DINTVL STIMER WAIT,DINTVL=ALARMT,ERRET=TERROR B DINTVL EJECT FINOK L 13,4(13) RETURN (14,12),RC=0 TERROR WTO '-*****- ERROR DETECTED IN SYSTEM CLOCK',ROUTCDE=1 L 13,4(13) RETURN (14,12),RC=2001 *---------------------------------------------------------------------- * STORAGE AREA *---------------------------------------------------------------------- SPACE 1 SAVEAREA DS 18F ALARMT DS 0CL8 HOURS DC CL2'00' HOURS MINUTES DC CL2'00' MINUTES SECONDS DC CL2'10' SECONDS TENTHS DC CL1'0' TENTHS HUNDREDS DC CL1'0' HUNDREDTHS BUFFER1 DS CL80 END |
Code: |
MACRO &CSECT INIT ®NUM=1 AIF (®NUM GT 5).MAXREG MAXIMUM OF 5 BASE REGISTERS LCLA &BREG,&PREG,&CNT1,&CNT2 LCLC &BLIST &BLIST SETC '*,12' &BREG SETA 12 STARTING BASE REGISTER &CNT1 SETA ®NUM SAVE NUMBER OF REGISTERS &CNT2 SETA ®NUM &CSECT CSECT SAVE (14,12) SAVE REGISTERS BALR 12,0 .NXTLST ANOP &BREG SETA &BREG-1 &CNT2 SETA &CNT2-1 AIF (&CNT2 EQ 0).LSTDONE &BLIST SETC '&BLIST,&BREG' AGO .NXTLST .LSTDONE USING &BLIST &BREG SETA 12 STARTING BASE REGISTER .NXTREG ANOP &PREG SETA &BREG PREVIOUS REGISTER &CNT1 SETA &CNT1-1 DECREMENT NUMBER OF REGISTERS &BREG SETA &BREG-1 DECREMENT CURRENT REGISTER AIF (&CNT1 EQ 0).DOUSING END IF NO MORE TO DO LA &BREG,4095(&PREG) LA &BREG,1(&BREG) AGO .NXTREG GO AND DO NEXT REGISTER .DOUSING ANOP B SMAIN SAVEAREA DS 18F COMPDATE DC C'&SYSDATE.' COMPTIME DC C'&SYSTIME.' DS 0F SMAIN ST 13,SAVEAREA+4 LR 9,13 LA 13,SAVEAREA ST 13,8(9) AGO .ENDBASE .MAXREG MNOTE 8,'®NUM BASE REGISTERS SPECIFIED ONLY 5 ALLOWED' .ENDBASE MEXIT MEND |
Code: |
MACRO &LABEL FINISH &RC=0 &LABEL L 13,4(13) RETURN (14,12),RC=&RC MEND |
Code: |
//DMI021ND JOB (U,NM),'MIT NDM JOB',CLASS=2,MSGCLASS=Q,TIME=180 /*XEQ PPRD //*------------------------------------------------------------------- //CRTPDS EXEC PGM=IEFBR14 //CRT01 DD DSN=&&PDS,DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1,1)), // DCB=TS99G.TSC.NDMPROCS //*------------------------------------------------------------------- //CPYPDS EXEC PGM=IEBGENER //SYSUT1 DD DATA,DLM='{{' MITICT PROCESS PNODE=&PNODE SNODE=&SNODE COPY FROM(PNODE DSN=DMI021.USER.JCL) - TO (SNODE DSN=DMI021.FROMPPRD.JCL - DISP=(,CATLG)) {{ //SYSUT2 DD DSN=&&PDS(MITICT),DISP=(SHR,PASS) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //*------------------------------------------------------------------- //STEP001 EXEC PGM=DMBATCH,REGION=0M //DMNETMAP DD DSN=SYSS.NDM.NETMAP,DISP=SHR //DMPUBLIB DD DSN=&&PDS,DISP=(SHR,DELETE) //DMMSGFIL DD DSN=SYSS.NDM.MSG,DISP=SHR //DMPRINT DD SYSOUT=* //SYSIN DD * SIGNON SUBMIT PROC=MITICT &PNODE=PPRD &SNODE=PDEV SIGNOFF /* |
Code: |
NDMTEST PROCESS PNODE=&PNODE SNODE=&SNODE &NAME COPY FROM(SNODE DSN=&DSN1 DISP=SHR) - TO(PNODE DSN=&DSN2 DISP=SHR - DCB=(DSORG=PS,RECFM=FB,LRECL=&LRECL, - BLKSIZE=&BLKSIZE) - DISP=(NEW,CATLG,DELETE) - SPACE=(&SPUNITS,(&PRIM,1),RLSE) - STORCLAS=&STORCLAS - UNIT=SYSDA) - CKPT=&CKPTVAL IF (&NAME EQ 0) THEN &NAME1 RUN JOB (DSN=T.CRD.A427541.TEST.SOURCE(COMPILE)) PNODE EIF |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours