Discussion:
cobuclg and example - symbol not found - tk3upd
Harold Bell
2010-12-01 02:04:07 UTC
Permalink
I am trying an example cobol program I found on Jay Moseley's site and get the
following message in the printout when it fails to execute.

1 //COBUCLG JOB (001),'COB HELLO
WORLD', JOB 19
//
CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) 00020000
2 //HELOWRLD EXEC
COBUCLG,CPARM1='LIST,LOAD,NODECK' 00030000
3 XXCOBUCLG PROC SOUT='*',
XX UNT=SYSDA,
XX CBLPARM='SUPMAP'
4 XXCOB EXEC PGM=IKFCBL00,
XX REGION=4096K,
XX PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,&CBLPARM'
5 XXSYSPRINT DD SYSOUT=&SOUT
6 XXSYSLIN DD DISP=(,PASS),UNIT=&UNT,SPACE=(80,(500,100))
7 XXSYSUT1 DD UNIT=&UNT,SPACE=(460,(700,100))
8 XXSYSUT2 DD UNIT=&UNT,SPACE=(460,(700,100))
9 XXSYSUT3 DD UNIT=&UNT,SPACE=(460,(700,100))
10 XXSYSUT4 DD UNIT=&UNT,SPACE=(460,(700,100))
11 XXSYSPUNCH DD DUMMY
12 //COB.SYSIN DD
* 00040000
13 XXLKED EXEC PGM=IEWL,
XX COND=(4,LT,COB),
XX PARM='XREF,LIST,LET,MAP',
XX REGION=1024K
14 XXSYSLIN DD DISP=(OLD,DELETE),DSN=*.COB.SYSLIN
15 XX DD DDNAME=SYSIN
16 XXSYSLMOD DD DISP=(,PASS),DSN=&G(GO),
XX UNIT=&UNT,
XX SPACE=(1024,(50,20,1))
17 //LKED.SYSLIB DD
DSNAME=SYS1.COBLIB,DISP=SHR 00200000
X/SYSLIB DD DISP=SHR,DSN=SYS1.COBLIB
18 // DD
DSNAME=SYS1.LINKLIB,DISP=SHR 00210000
19 XXSYSUT1 DD UNIT=&UNT,SPACE=(1024,(50,20))
20 XXSYSPRINT DD SYSOUT=&SOUT
21 XXGO EXEC PGM=*.LKED.SYSLMOD,
XX REGION=2048K,
XX COND=((5,LT,COB),(5,LT,LKED))
22 //GO.SYSPRINT DD
SYSOUT=A 00220000
STMT NO. MESSAGE
-
4 IEF653I SUBSTITUTION JCL -
PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,SUPMAP'
5 IEF653I SUBSTITUTION JCL - SYSOUT=*
6 IEF653I SUBSTITUTION JCL -
DISP=(,PASS),UNIT=SYSDA,SPACE=(80,(500,100))
7 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
8 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
9 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
10 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
16 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,
19 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(1024,(50,20))
20 IEF653I SUBSTITUTION JCL - SYSOUT=*
21 IEF657I SYMBOL NOT DEFINED IN PROCEDURE


by hacking the original sys2.proclib(cobuclg) to pieces I think it's the
*.lked.syslmod that it is choking on but I'm a jcl newbie and cannot figure out
how to fix it. Thanks for any help.

Buddy
scott
2010-12-01 02:12:22 UTC
Permalink
CPARM1 is not used in the procedure. From the options you listed for
it, it looks like it should go to the link-edit step. However the parm
for the link-edit step parms does not reference cparm1.

Scott
Post by Harold Bell
I am trying an example cobol program I found on Jay Moseley's site and
get the following message in the printout when it fails to execute.
1 //COBUCLG JOB (001),'COB HELLO
WORLD', JOB 19
//
CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) 00020000
2 //HELOWRLD EXEC
COBUCLG,CPARM1='LIST,LOAD,NODECK' 00030000
3 XXCOBUCLG PROC SOUT='*',
XX UNT=SYSDA,
XX CBLPARM='SUPMAP'
4 XXCOB EXEC PGM=IKFCBL00,
XX REGION=4096K,
XX PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,&CBLPARM'
5 XXSYSPRINT DD SYSOUT=&SOUT
6 XXSYSLIN DD DISP=(,PASS),UNIT=&UNT,SPACE=(80,(500,100))
7 XXSYSUT1 DD UNIT=&UNT,SPACE=(460,(700,100))
8 XXSYSUT2 DD UNIT=&UNT,SPACE=(460,(700,100))
9 XXSYSUT3 DD UNIT=&UNT,SPACE=(460,(700,100))
10 XXSYSUT4 DD UNIT=&UNT,SPACE=(460,(700,100))
11 XXSYSPUNCH DD DUMMY
12 //COB.SYSIN DD
* 00040000
13 XXLKED EXEC PGM=IEWL,
XX COND=(4,LT,COB),
XX PARM='XREF,LIST,LET,MAP',
XX REGION=1024K
14 XXSYSLIN DD DISP=(OLD,DELETE),DSN=*.COB.SYSLIN
15 XX DD DDNAME=SYSIN
16 XXSYSLMOD DD DISP=(,PASS),DSN=&G(GO),
XX UNIT=&UNT,
XX SPACE=(1024,(50,20,1))
17 //LKED.SYSLIB DD
DSNAME=SYS1.COBLIB,DISP=SHR 00200000
X/SYSLIB DD DISP=SHR,DSN=SYS1.COBLIB
18 // DD
DSNAME=SYS1.LINKLIB,DISP=SHR 00210000
19 XXSYSUT1 DD UNIT=&UNT,SPACE=(1024,(50,20))
20 XXSYSPRINT DD SYSOUT=&SOUT
21 XXGO EXEC PGM=*.LKED.SYSLMOD,
XX REGION=2048K,
XX COND=((5,LT,COB),(5,LT,LKED))
22 //GO.SYSPRINT DD
SYSOUT=A 00220000
STMT NO. MESSAGE
-
4 IEF653I SUBSTITUTION JCL -
PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,SUPMAP'
5 IEF653I SUBSTITUTION JCL - SYSOUT=*
6 IEF653I SUBSTITUTION JCL -
DISP=(,PASS),UNIT=SYSDA,SPACE=(80,(500,100))
7 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
8 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
9 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
10 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
16 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,
19 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(1024,(50,20))
20 IEF653I SUBSTITUTION JCL - SYSOUT=*
21 IEF657I SYMBOL NOT DEFINED IN PROCEDURE
by hacking the original sys2.proclib(cobuclg) to pieces I think it's
the *.lked.syslmod that it is choking on but I'm a jcl newbie and
cannot figure out how to fix it. Thanks for any help.
Buddy
Rick Fochtman
2010-12-02 00:40:45 UTC
Permalink
Guess again, Scott.

In the PROC there is not "CPARM1" used, so it can't be specified on the
EXEC statement that executes the PROC. And those are NOT LKED parms.

Harold, I think what you want is CBLPARM='LIST' The other values you've
specified are already on the PARM parameter of the EXEC PGM=IKFCBL00
statement.

The values for the LKED parm are fine and represent the common set,
except that I'd remove "LET" unless you want to test the result after an
unsuccessful link.

Rick

----------------------------------------<snip>-----------------------------
Post by scott
CPARM1 is not used in the procedure. From the options you listed for
it, it looks like it should go to the link-edit step. However the
parm for the link-edit step parms does not reference cparm1.
Scott
Post by Harold Bell
I am trying an example cobol program I found on Jay Moseley's site
and get the following message in the printout when it fails to execute.
1 //COBUCLG JOB (001),'COB HELLO
WORLD', JOB 19
//
CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) 00020000
2 //HELOWRLD EXEC
COBUCLG,CPARM1='LIST,LOAD,NODECK' 00030000
3 XXCOBUCLG PROC SOUT='*',
XX UNT=SYSDA,
XX CBLPARM='SUPMAP'
4 XXCOB EXEC PGM=IKFCBL00,
XX REGION=4096K,
XX PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,&CBLPARM'
5 XXSYSPRINT DD SYSOUT=&SOUT
6 XXSYSLIN DD DISP=(,PASS),UNIT=&UNT,SPACE=(80,(500,100))
7 XXSYSUT1 DD UNIT=&UNT,SPACE=(460,(700,100))
8 XXSYSUT2 DD UNIT=&UNT,SPACE=(460,(700,100))
9 XXSYSUT3 DD UNIT=&UNT,SPACE=(460,(700,100))
10 XXSYSUT4 DD UNIT=&UNT,SPACE=(460,(700,100))
11 XXSYSPUNCH DD DUMMY
12 //COB.SYSIN DD
* 00040000
13 XXLKED EXEC PGM=IEWL,
XX COND=(4,LT,COB),
XX PARM='XREF,LIST,LET,MAP',
XX REGION=1024K
14 XXSYSLIN DD DISP=(OLD,DELETE),DSN=*.COB.SYSLIN
15 XX DD DDNAME=SYSIN
16 XXSYSLMOD DD DISP=(,PASS),DSN=&G(GO),
XX UNIT=&UNT,
XX SPACE=(1024,(50,20,1))
17 //LKED.SYSLIB DD
DSNAME=SYS1.COBLIB,DISP=SHR 00200000
X/SYSLIB DD DISP=SHR,DSN=SYS1.COBLIB
18 // DD
DSNAME=SYS1.LINKLIB,DISP=SHR 00210000
19 XXSYSUT1 DD UNIT=&UNT,SPACE=(1024,(50,20))
20 XXSYSPRINT DD SYSOUT=&SOUT
21 XXGO EXEC PGM=*.LKED.SYSLMOD,
XX REGION=2048K,
XX COND=((5,LT,COB),(5,LT,LKED))
22 //GO.SYSPRINT DD
SYSOUT=A 00220000
STMT NO. MESSAGE
-
4 IEF653I SUBSTITUTION JCL -
PARM='NODECK,LOAD,SIZE=2048K,BUF=1024K,SUPMAP'
5 IEF653I SUBSTITUTION JCL - SYSOUT=*
6 IEF653I SUBSTITUTION JCL -
DISP=(,PASS),UNIT=SYSDA,SPACE=(80,(500,100))
7 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
8 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
9 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
10 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(460,(700,100))
16 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,
19 IEF653I SUBSTITUTION JCL - UNIT=SYSDA,SPACE=(1024,(50,20))
20 IEF653I SUBSTITUTION JCL - SYSOUT=*
21 IEF657I SYMBOL NOT DEFINED IN PROCEDURE
-----------------------------------------<unsnip>-----------------------------------------
mfisher_ix
2010-12-05 18:58:59 UTC
Permalink
Volker Bandke kindly answered a similar question here, where he points out that a test COBOL job named SYS2.JCLLIB(TESTCOB) exists in Turnkey MVS:

http://osdir.com/ml/emulators.turnkey-mvs/2003-06/msg00022.html

Jay Moseley's COBOL HELLO, WORLD example will also run in Turnkey MVS if you change the EXEC statement from:

//HELOWRLD EXEC COBUCLG,CPARM1='LIST,LOAD,NODECK'

to:

//HELOWRLD EXEC COBUCLG,REGION=1024K

Note that spaces are significant in JCL, and messages posted to Yahoo Groups lose their "extra spaces". So you'll get JCL errors if you try to use the code exactly as formatted above. Make sure that COBUCLG, etc. starts at position 16 -- or have a look at the source code in SYS2.JCLLIB(TESTCOB) if you're unsure about the correct formatting.

The output from these HELLO WORLD jobs will appear on your MVS console(s). You'll see something like:

+HELLO, WORLD

Loading...