From what i understood, you have written a COBOL program and has compiled and tried to run the program.

You had created an object module for your program which is in USERID.CLASS.OBJ .

Then you try to run the program using a RUN jcl but finding problems. Am i right?

My observations:

In your RUN JCL you had given the OBJ across the JOBLIB DD which is not correct. You will have to first LINK-EDIT your OBJ and create a LOAD module which should then be used in the RUN JCL across the JOBLIB/STEPLIB DD.

You are supposed to provide the "path" for the "load module" of the program. This is usually provided by STEPLIB; when system encounters the statement

Code:

//STEP1 EXEC PGM=TAND3997

OS tries to find the load module for your program TAND3997 & for this is why it is needed to provide the Library (PDS) path for the program's load module. If you dont provide this JCL will typically abend with S806- which means Load Module not found, & this is visible in Your SYSOYT (SDSF) -

Code:

SYSTEM COMPLETION CODE=806 REASON CODE=00000004

2. When you say..

Quote:

now I am compile the program

How do you do it- using some vsersion control tool such Change Man, or the way Aaru mentioned. Usually these days sites make use of vsersion control tools.

And if you are using vsersion control tools then

Quote:

I not how create a LOAD module

load modules are "saved" in "predefined" PDSs.

BTW, there sould be some other program, written by some one else, in working condition at your shop- please check the JCL for that program, will give you a better insighs about such things..

Anuj: DDNAME=SYSIN is perfectly valid. It indicates that the statement is to be resolved by referencing the SYSIN DD statement. It's used -- a lot -- in IBM compile procedures.

batusai: your continuation lines are starting too far into the line. Line up the R of REGION=512K with the first E of the EXEC statement before it. Line up the U of UNIT= with the first D of the DD statement above it. This is why all 4 errors occurred -- you ended two statements with commas but there was no continuation by column 16 of the following line.

The wrong length record probably means you defined the OBJ wrong -- set it to RECFM=FB,LRECL=80. The module has no text means the binder couldn't find the object deck -- probably why the first problem occurred, too. Redefine the OBJ file and rerun the compile AND the binder steps together to get the load module. No valid entry point could be found because there was no object deck.