After an abort, restarting a CL batch job with multiple steps can sometimes be a headache. You could restart the job from the beginning after you correct the problem. However, if each step is long running that takes time. To solve that problem I have created a data area and after each job step I update the data area to indicate successful completion of each step. The data area then can help you find out at what step a problem occurred. Also, when you rerun the job, the steps that have completed successfully would not get rerun. The job would pick up at the step the abort occurred.
PGM
/* Declarations area */
DCL &JOBSTATUS TYPE(*CHAR) LEN(8)
/* Get data area */
RTVDTAARA DTAARA(JOBDATAREA) RTNVAR(&JOBSTATUS)
/* Check job completion steps */
IF (&JOBSTATUS *EQ 'STEP1OK') THEN(DO)
GOTO STEP2
ENDDO
ELSE IF (&JOBSTATUS *EQ 'STEP2OK') (DO)
GOTO STEP3
ENDDO
ELSE IF (&JOBSTATUS *EQ 'STEP3OK') (DO)
GOTO EOJ
ENDDO
STEP1:
CALL PGM(PGM1)
MONOMSG MSGID(CPF0000) EXEC(GOTO SEND_ERR)
CHGDTAARA DTAARA(JOBDATAREA) VALUE('STEP1OK')
STEP2:
CALL PGM(PGM2)
MONOMSG MSGID(CPF0000) EXEC(GOTO SEND_ERR)
CHGDTAARA DTAARA(JOBDATAREA) VALUE('STEP2OK')
STEP3:
CALL PGM(PGM3)
MONOMSG MSGID(CPF0000) EXEC(GOTO SEND_ERR)
CHGDTAARA DTAARA(JOBDATAREA) VALUE('STEP3OK')
GOTO EOJ:
SEND_ERR:
/* Place your error routine here */
GOTO
Requires Free Membership to View
Register today to access targeted resources from our editorial writers and independent industry experts including news, tips, and advice to help you do your job more efficiently and effectively. Stay informed on the hottest topics and biggest challenges faced by IT professionals working with iSeries products and services.
END
EOJ:
/* RESET DATA AREA FOR NEXT TIME */
CHGDTAARA DTAARA(JOBDATAREA) VALUE(' ')
END: ENDPGM ==================================
MORE INFORMATION ON THIS TOPIC
==================================
The Best Web Links: tips, tutorials and more.
Ask your programming questions--or help out your peers by answering them--in our live discussion forums.
Ask the Experts yourself: Our application development gurus are waiting to answer your programming questions.
This was first published in November 2001