|
View previous topic :: View next topic
|
| Author |
Message |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
hello I am not speaking ingles very much, but I have one problem with my program cobol batch and jcl, please help me thanks
-I have one zos 1.6 with ispf
-I create two datasets
1.- to cobol
2.- to my jcl
this is the first dataset for cobol
this is my probram cobol
| Code: |
IDENTIFICATION DIVISION.
PROGRAM-ID. TAND3997.
*AUTHOR. BCION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WE-SALUDO PIC X(15) VALUE 'HELLO WORLD....'.
PROCEDURE DIVISION.
*------------------*
DISPLAY '...HOLA MUNDO.....'.
DISPLAY WE-SALUDO.
DISPLAY WE-SALUDO '...HOLA MUNDO.....'
STOP RUN. |
now I am compile the program
and this the result
| Code: |
PP 5655-G53 IBM Enterprise COBOL for z/OS 3.3.1 Date 08
ZWB
PP 5655-G53 IBM Enterprise COBOL for z/OS 3.3.1 TAND3997 Date 08
LineID PL SL ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6---
/* TAND3997
000001 000100 IDENTIFICATION DIVISION.
000002 000200 PROGRAM-ID. TAND3997.
000003 000300*AUTHOR. BCION.
000004 000400 ENVIRONMENT DIVISION.
000005 000500 DATA DIVISION.
000006 000600 WORKING-STORAGE SECTION.
000007 000700 01 WE-SALUDO PIC X(15) VALUE 'HELLO WORLD....'.
000008 000800 PROCEDURE DIVISION.
000009 000900*------------------*
000010 001200 DISPLAY '...HOLA MUNDO.....'.
000011 001400 DISPLAY WE-SALUDO.
000012 001500 DISPLAY WE-SALUDO '...HOLA MUNDO.....'
000013 001600 STOP RUN.
*/ TAND3997
PP 5655-G53 IBM Enterprise COBOL for z/OS 3.3.1 TAND3997 Date 08
An "M" preceding a data-name reference indicates that the data-name is modified
Defined Cross-reference of data names References
7 WE-SALUDO. . . . . . . . . . . 11 12
PP 5655-G53 IBM Enterprise COBOL for z/OS 3.3.1 TAND3997 Date 08
Defined Cross-reference of programs References
2 TAND3997
* Statistics for COBOL program TAND3997:
* Source records = 13
* Data Division statements = 1
* Procedure Division statements = 4
End of compilation 1, program TAND3997, no statements flagged.
Return code 0
******************************** Bottom of Data ******************************** |
good when I compile the probrama x 1.6 limits me creates a dataset where the compiled program is called
USERID.CLASS.OBJ
so this is my program jcl in my dataset
userid.class.cntl
| Code: |
//OSW1 JOB (034D),'OSW',CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A
//JOBLIB DD DSN=USERID.CLASS.OBJ,DISP=SHR
//TAND3997 EXEC PGM=TAND3997
//OUT1 OUTPUT OUTDISP=(KEEP,KEEP)
//SYSPRINT DD SYSOUT=*,OUTPUT=*.OUT1
//SYSDBOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
/* |
as well as run with this JCL and sends me the same mistake
| Code: |
//OSW1 JOB (034D),'OSW',CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A
//JOBLIB DD DSN=USERID.CLASS.OBJ,DISP=SHR
//STEP1 EXEC PGM=TAND3997
//OUT1 OUTPUT OUTDISP=(KEEP,KEEP)
//SYSPRINT DD SYSOUT=*,OUTPUT=*.OUT1
//SYSDBOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
/*
|
when I run submit the limits notified me this error
in the sdsf - status jobs
| Code: |
00.35.11 JOB00034 $HASP373 OSW1 STARTED - INIT 1 - CLASS A - SYS SYS1
00.35.11 JOB00034 IEF403I OSW1 - STARTED - TIME=00.35.11
00.35.11 JOB00034 IEW4007I FIND FOR MODULE TAND3997 FAILED BECAUSE DIRECTORY ENTRY IS NOT VALID FOR A LOAD MODULE.
00.35.11 JOB00034 CSV003I REQUESTED MODULE TAND3997 NOT FOUND
00.35.11 JOB00034 CSV028I ABEND806-04 JOBNAME=OSW1 STEPNAME=TAND3997
00.35.11 JOB00034 IEA995I SYMPTOM DUMP OUTPUT 581
581 SYSTEM COMPLETION CODE=806 REASON CODE=00000004
581 TIME=00.35.11 SEQ=00012 CPU=0000 ASID=0017
581 PSW AT TIME OF ERROR 070C1000 812C010E ILC 2 INTC 0D
581 NO ACTIVE MODULE FOUND
581 NAME=UNKNOWN
581 DATA AT PSW 012C0108 - 9024181E 0A0D18FB 180C181D |
and
| Code: |
IEF236I ALLOC. FOR OSW1 TAND3997
IEF237I 0A82 ALLOCATED TO JOBLIB
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSDBOUT
IEF237I JES2 ALLOCATED TO SYSOUT
IEW4007I FIND FOR MODULE TAND3997 FAILED BECAUSE DIRECTORY ENTRY IS NOT VALID FOR A LOAD MODULE.
CSV003I REQUESTED MODULE TAND3997 NOT FOUND
CSV028I ABEND806-04 JOBNAME=OSW1 STEPNAME=TAND3997
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=806 REASON CODE=00000004
TIME=00.35.11 SEQ=00012 CPU=0000 ASID=0017
PSW AT TIME OF ERROR 070C1000 812C010E ILC 2 INTC 0D
NO ACTIVE MODULE FOUND
NAME=UNKNOWN
DATA AT PSW 012C0108 - 9024181E 0A0D18FB 180C181D |
|
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Batusai,
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.
There are many LINK JCL's available (IEWL etc ). |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
thanks for you response.
and
| Quote: |
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?
|
this is true.
I thought that compiling the program
that was my library
| Code: |
//OSW1 JOB (034D),'OSW',CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A
//JOBLIB DD DSN=USERID.CLASS.OBJ,DISP=SHR
//STEP1 EXEC PGM=TAND3997
//OUT1 OUTPUT OUTDISP=(KEEP,KEEP)
//SYSPRINT DD SYSOUT=*,OUTPUT=*.OUT1
//SYSDBOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
/* |
but
| Quote: |
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.
There are many LINK JCL's available (IEWL etc ). |
I not how create a LOAD module
please ayudame to create my Load module with the link-edit  |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Batusai,
| Quote: |
I not how create a LOAD module
please ayudame to create my Load module with the link-edit |
Please take a look at the LINK JCL's available as a sticky in the JCL forum.
Also Check the step LKED in the below link
LINK JCL
You can find other JCL's in the below link
JCL
Also check if there are any LINK Jcl's available in your shop. Speak to your peers for a LINK JCL. |
|
| Back to top |
|
 |
Anuj Dhawan
Superior Member

Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Hi,
Couple of things...
1. Here in this JCL:
| Code: |
//OSW1 JOB (034D),'OSW',CLASS=A,MSGLEVEL=(1,1),MSGCLASS=A
//JOBLIB DD DSN=USERID.CLASS.OBJ,DISP=SHR
//STEP1 EXEC PGM=TAND3997
//OUT1 OUTPUT OUTDISP=(KEEP,KEEP)
//SYSPRINT DD SYSOUT=*,OUTPUT=*.OUT1
//SYSDBOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
/* |
when you code
| Code: |
| //STEP1 EXEC PGM=TAND3997 |
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.. |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
hello thaks for your response
Aaru,Anuj D.
I write this code for lked my program obj to load module but return this error
| Code: |
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP',COND=(5,LT,COBOL),
// REGION=512K
//SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
// UNIT=SYSDA,SPACE=(CYL,(1,1,1))
//SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
/*
|
error :
| Code: |
------------------------------------------
2 IEFC621I EXPECTED CONTINUATION NOT RECEIVED
3 IEFC605I UNIDENTIFIED OPERATION FIELD
6 IEFC621I EXPECTED CONTINUATION NOT RECEIVED
7 IEFC605I UNIDENTIFIED OPERATION FIELD
------------------------------------------
|
10.22.15 JOB00045 $HASP165 BATUSAIL ENDED AT N1 - JCL ERROR CN(INTERNAL)
IKJ56250I JOB IBMUSERL(JOB00045) SUBMITTED
IKJ56254I USERID PLUS JOBNAME CHARACTERS CANNOT EXCEED MAXIMUM JOBNAME LENGTH OF
F EIGHT
***
THANKS FOUR YOUR HELP |
|
| Back to top |
|
 |
Anuj Dhawan
Superior Member

Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Hi,
I can see many errors -
| Quote: |
JOBNAME CHARACTERS CANNOT EXCEED MAXIMUM JOBNAME LENGTH OF
F EIGHT |
1.You have not shown the JOB card for the JOB, it has a wrong JOB name, make it max. of 8 characters.
2. I don't underrstnd this DD statement..
This is not a valid DD name.
3. Again, did you try looking some other JCL available at your end..? |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
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. |
|
| Back to top |
|
 |
Anuj Dhawan
Superior Member

Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Hi Robet,
Thanks...
| Robert Sample wrote: |
| 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. |
Aaargh...me poor guy..hmm..this is one of the ill effect of using Version Contoller tools..  |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
| Code: |
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP',COND=(5,LT,COBOL),
// REGION=512K
//SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
// UNIT=SYSDA,SPACE=(CYL,(1,1,1))
//SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
/* |
This will get rid of your JCL error and crate a load module from the OBJ code. |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
| Quote: |
| this is one of the ill effect of using Version Contoller tools |
I write a lot of the tools we use here, so I get familiar with all sorts of weird constructs. |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
execute code
| Quote: |
//LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP',COND=(5,LT,COBOL),
// REGION=512K
//SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
// UNIT=SYSDA,SPACE=(CYL,(1,1,1))
//SYSUDUMP DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
/* |
tso respons me
| Quote: |
STMT NO. MESSAGE
-
2 IEF645I INVALID REFERBACK IN THE COND FIELD |
6250I JOB IBMUSERL(JOB00051) SUBMITTED
10.55.41 JOB00051 $HASP165 BATUSAIL ENDED AT N1 - JCL ERROR CN(INTERNAL)
IKJ56254I USERID PLUS JOBNAME CHARACTERS CANNOT EXCEED MAXIMUM JOBNAME LENGTH O
F EIGHT
*** |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
| Take the COND=(5,LT,COBOL) off the first line ... the JCL is written to be run as one long job and you're only doing part of it so you have to remove the condition code check. |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
| Code: |
000001 //LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP',COND=(5,LT,COBOL),
000002 // REGION=512K
000003 //SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
000004 // DD DDNAME=SYSIN
000005 //SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
000006 // UNIT=SYSDA,SPACE=(CYL,(1,1,1))
000007 //SYSUDUMP DD SYSOUT=*
000008 //SYSPRINT DD SYSOUT=*
000009 //SYSIN DD DUMMY
000010 /* |
|
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
| Code: |
000001 //LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP'
000002 // COND=(5,LT,COBOL),REGION=512K
000003 //SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
000004 // DD DDNAME=SYSIN
000005 //SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
000006 // UNIT=SYSDA,SPACE=(CYL,(1,1,1))
000007 //SYSUDUMP DD SYSOUT=*
000008 //SYSPRINT DD SYSOUT=*
000009 //SYSIN DD DUMMY
000010 /*
|
| Code: |
IEFC605I UNIDENTIFIED OPERATION FIELD |
|
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
thanks all four your help
I excecute
| Code: |
000001 //LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET,MAP',
000002 // REGION=512K
000003 //SYSLIN DD DSNAME=USERID.CLASS.OBJ,DISP=(OLD,DELETE)
000004 // DD DDNAME=SYSIN
000005 //SYSLMOD DD DSNAME=USERID.CLASS.LOAD(TAND3997),DISP=(,PASS),
000006 // UNIT=SYSDA,SPACE=(CYL,(1,1,1))
000007 //SYSUDUMP DD SYSOUT=*
000008 //SYSPRINT DD SYSOUT=*
000009 //SYSIN DD DUMMY
000010 /* |
and yes,, correct , not me reponse error the sintaxis
but zos response me
| Code: |
11.05.36 JOB00057 ---- FRIDAY, 22 AUG 2008 ----
11.05.36 JOB00057 IRR010I USERID IBMUSER IS ASSIGNED TO THIS JOB.
11.05.36 JOB00057 ICH70001I IBMUSER LAST ACCESS AT 11:04:52 ON FRIDAY, AUGUST
11.05.36 JOB00057 $HASP373 IBMUSERL STARTED - INIT 1 - CLASS A - SYS SYS1
11.05.36 JOB00057 IEF403I IBMUSERL - STARTED - TIME=11.05.36
11.05.37 JOB00057 IEF404I IBMUSERL - ENDED - TIME=11.05.37
11.05.37 JOB00057 $HASP395 IBMUSERL ENDED
------ JES2 JOB STATISTICS ------
22 AUG 2008 JOB EXECUTION DATE
14 CARDS READ
86 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
4 SYSOUT SPOOL KBYTES
0.01 MINUTES EXECUTION TIME
******************************** BOTTOM OF DATA ********************************
z/OS V1 R6 BINDER 11:05:36 FRIDAY AUGUST 22, 2008
BATCH EMULATOR JOB(IBMUSERL) STEP(LKED ) PGM= IEWL
IEW2278I B352 INVOCATION PARAMETERS - LIST,XREF,LET,MAP
IEW2724S D909 SYNCHRONOUS I/O ERROR OCCURRED FOR DDNAME SYSLIN AND DATA SET NAME
FOLLOW.
IEW2718S D90A IBMUSERL,LKED ,0A82,D,SYSLIN ,GET ,WRNG.LEN.RECORD,000005140
IEW2230S 0414 MODULE HAS NO TEXT.
IEW2677S 5130 A VALID ENTRY POINT COULD NOT BE DETERMINED.
IEW2008I 0F03 PROCESSING COMPLETED. RETURN CODE = 12.
----------------------
MESSAGE SUMMARY REPORT
----------------------
TERMINAL MESSAGES (SEVERITY = 16)
NONE
SEVERE MESSAGES (SEVERITY = 12)
2230 2677 2718 2724
ERROR MESSAGES (SEVERITY = 08)
NONE
WARNING MESSAGES (SEVERITY = 04)
NONE
INFORMATIONAL MESSAGES (SEVERITY = 00)
2008 2278
**** END OF MESSAGE SUMMARY REPORT ****
|
|
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
| 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. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello batusai,
Are there other programmers who work with cobol on the same computer you are using?
If so, there should be standard compile&link jcl on the system and i would recommend (strongly) that you use the system standard compile jcl rather than some custom jcl.
If not, i'd suggest you talk with your system programmers to make sure that what you set up is proper for the system you are using. |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
you're right,
this zoxs 1.6 installed on my personal computer, I want to learn cobol and JCL,
I just want to make a hello world, using cobol batch + JCL
that's all
thanks for your help
to all |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
| Quote: |
| this zoxs 1.6 installed on my personal computer |
Well, that surely makes a difference
Are you running Hercules on your pc?
You might find something useful here:
ibmmainframes.com/viewtopic.php?t=6297 |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
Hi
yes I configured zos 1.6 , on my personal computer
but I not how link-edit or bind the coboll program and call with jcl
 |
|
| Back to top |
|
 |
CICS Guy
Senior Member

Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
| batusai wrote: |
yes I configured zos 1.6 , on my personal computer
|
That sounds (slightly) illegal to me???? |
|
| Back to top |
|
 |
batusai
New User
Joined: 21 Aug 2008 Posts: 15 Location: lima peru
|
|
|
|
sorry, the client is instaled on my pc,
I do not read well, the question
| Quote: |
Well, that surely makes a difference
Are you running Hercules on your pc?
You might find something useful here: |
|
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
You need to allocate a "permanent" load library to store the executable created by the "bind" (USERID.CLASS.LOAD).
Find another load library on your system and "clone" it so it will have the proper attributes for a loadlib. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|