| IBM MAINFRAME HELP & SUPPORT FORUMS Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
|
| View previous topic :: View next topic |
| Author |
Message |
batusai
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 11:14 am Post subject: please help me, with my program cobol + jcl in zos 1.6+ispf |
|
|
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
Joined: 03 Jul 2007
Posts: 1148
Location: Mumbai - India
|
| Posted: Fri Aug 22, 2008 11:35 am Post subject: Reply to: please help me, with my program cobol + jcl in zos |
|
|
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
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 12:00 pm Post subject: Reply to: please help me, with my program cobol + jcl in zos |
|
|
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
Joined: 03 Jul 2007
Posts: 1148
Location: Mumbai - India
|
| Posted: Fri Aug 22, 2008 12:43 pm Post subject: Reply to: please help me, with my program cobol + jcl in zos |
|
|
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 D.
Joined: 22 Apr 2006
Posts: 2229
Location: Phoenix, AZ
|
| Posted: Fri Aug 22, 2008 3:48 pm Post subject: |
|
|
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
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 8:52 pm Post subject: Reply to: please help me, with my program cobol + jcl in zos |
|
|
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 D.
Joined: 22 Apr 2006
Posts: 2229
Location: Phoenix, AZ
|
| Posted: Fri Aug 22, 2008 8:58 pm Post subject: |
|
|
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.. :?
Code: DD DDNAME=SYSIN 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
Joined: 06 Jun 2008
Posts: 943
Location: Atlanta, GA
|
| Posted: Fri Aug 22, 2008 9:08 pm Post subject: |
|
|
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 D.
Joined: 22 Apr 2006
Posts: 2229
Location: Phoenix, AZ
|
| Posted: Fri Aug 22, 2008 9:12 pm Post subject: |
|
|
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.. :cry: |
|
| Back to top |
|
batusai
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 9:13 pm Post subject: Hi |
|
|
bueno mi problema es este
1 ) I write one cobol program in zos 1.6
2 ) I compile the cobol program and zos create for me a on OBJ
but I not how create load module ,So please help
So as not to create,
why me guíe of this page
http://publib.boulder.ibm.com/infocenter/zoslnctr/v1r7/index.jsp?topic=/com.ibm.zappldev.doc/zappldev_122.html
excuse my English is not very good |
|
| Back to top |
|
Robert Sample
Joined: 06 Jun 2008
Posts: 943
Location: Atlanta, GA
|
| Posted: Fri Aug 22, 2008 9:20 pm Post subject: |
|
|
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
Joined: 06 Jun 2008
Posts: 943
Location: Atlanta, GA
|
| Posted: Fri Aug 22, 2008 9:22 pm Post subject: |
|
|
| 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
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 9:26 pm Post subject: Hi |
|
|
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
Joined: 06 Jun 2008
Posts: 943
Location: Atlanta, GA
|
| Posted: Fri Aug 22, 2008 9:27 pm Post subject: |
|
|
| 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
Joined: 21 Aug 2008
Posts: 14
Location: lima peru
|
| Posted: Fri Aug 22, 2008 9:28 pm Post subject: |
|
|
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 |
|
| |
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM
|