There are 2 ways to end a job: return code (RC) or ABEND.
The type of termination depends on what the programmer decides. For example: If i write some Assembler program (to be run from job using EXEC PGM), I can decide that in some situations I want to end the flow with return code=nn, or to end it with ABEND.
Same with all other utilities - utilities are actually programs, written by IBM or other vendors in some programming language.
For each utility, there should be a nice documentation regarding when you get a return code, and when it might issue an ABEND.
actually,after the completion of each jcl steps, system will return a condition code,whether it has been successful or not.this varies from 0 to 4035.but,normally we the program or job will terminate if any of the step return 12.this means further we cant execute the pgm.so, in normal case we r getting the errors like 0,4,8,12,16 and 24.
but ABEND is abnormal termination and may be due to user abend or system abend,like S322 in TIMEOUT and U808 load module is not found(i have a little bit doubt on tis ,pls check).see,in both cases if if we talk about the first one there may not be any program interruption,but the available system time is not enough to run the job.so, that belongs to system abend.but in latter,the load module has not found to for the specified program,so that is due to user discrepancy.eventhough there maynot be any problem in syntax,things can happen like this also.so,if the EXEC statement will come in operand field instead of operation field,system will stuck there and show the error or what the condition code that has been produced by that step.
so,pls let me know th at am i correct or not.