Error while Compiling calling program



JES, JES2, JCL utilities, IDCAMS, Compile & Run JCLs, PROCs etc...

Error while Compiling calling program

Postby mohbaig » Thu Nov 14, 2013 9:28 am

Hi, i have a program COBOL1 which is calling COBOL2 and it is calling COBOL3. I want to statically link these programs. getting error while compiling.
IEW2456E 9207 SYMBOL COBOL3 UNRESOLVED. MEMBER COULD NOT BE INCLUDED FROM THE DESIGNATED CALL LIBRARY.
My jcl:
//CL1 EXEC IGYWCL
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL3),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL3),DISP=OLD
//SYSPRINT DD SYSOUT=*
//CL2 EXEC IGYWCL
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL2),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL2),DISP=OLD
//SYSPRINT DD SYSOUT=*
//
//CL3 EXEC IGYWCL
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL1),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL1),DISP=OLD
//SYSPRINT DD SYSOUT=*
mohbaig
 
Posts: 28
Joined: Sun Nov 10, 2013 10:55 pm
Has thanked: 7 times
Been thanked: 0 time

Re: Error while Compiling calling program

Postby BillyBoyo » Thu Nov 14, 2013 1:05 pm

It failed in the Linkage Editor/Binder (IEW message, not IGY).

You only need to run one Linkedit. You only need to linkedit the first time after all three are successfully compiled and are on an object library, Thereafter, you linkedit as logically the last thing before attempting to run.

If you do an internet search for IBM LookAt and then paste in the message you received, you'll get the full message description. If you can't get there with that, we'll need to see the expanded JCL, not the cards which execute the PROC.
BillyBoyo
Global moderator
 
Posts: 3804
Joined: Tue Jan 25, 2011 12:02 am
Has thanked: 22 times
Been thanked: 265 times

Re: Error while Compiling calling program

Postby NicC » Thu Nov 14, 2013 2:35 pm

Your CL3 step will not execute as it comes after the end-of-job "marker" (//)
The problem I have is that people can explain things quickly but I can only comprehend slowly.
Regards
Nic
NicC
Global moderator
 
Posts: 3025
Joined: Sun Jul 04, 2010 12:13 am
Location: Pushing up the daisies (almost)
Has thanked: 4 times
Been thanked: 136 times

Re: Error while Compiling calling program

Postby mohbaig » Fri Nov 15, 2013 12:07 am

this job ran succesful with maxcc=0 but when i executed the program COBOL1 its only showing the display data from COBOL3. i have displays in COBOL1 and COBOL2 before the call.

//MATE04D JOB MSGLEVEL=(1,1),NOTIFY=&SYSUID
//CL1 EXEC IGYWCL
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL3),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL3),DISP=OLD
//SYSPRINT DD SYSOUT=*
//CL2 EXEC IGYWCL
//STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL2),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL3),DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL2),DISP=OLD
//SYSPRINT DD SYSOUT=*
//CL3 EXEC IGYWCL
//STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL1),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL2),DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL1),DISP=OLD
//SYSPRINT DD SYSOUT=*




1 //MATE04D JOB MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//* COMPILE A COBOL PROGRAM
//*
//*
IEFC653I SUBSTITUTION JCL - MSGLEVEL=(1,1),NOTIFY=MATE04
2 //CL1 EXEC IGYWCL
3 XXIGYWCL PROC LNGPRFX='IGY410',SYSLBLK=3200,
XX LIBPRFX='CEE',
XX PGMLIB='&&GOSET',GOPGM=GO
XX*
XX*******************************************************************
XX*
XX* Enterprise COBOL for z/OS
XX* Version 4 Release 1 Modification 0
XX*
XX* LICENSED MATERIALS - PROPERTY OF IBM.
XX*
XX* 5655-S71 © COPYRIGHT IBM CORP. 1991, 2007
XX* ALL RIGHTS RESERVED
XX*
XX* US GOVERNMENT USERS RESTRICTED RIGHTS - USE,
XX* DUPLICATION OR DISCLOSURE RESTRICTED BY GSA
XX* ADP SCHEDULE CONTRACT WITH IBM CORP.
XX*
XX*******************************************************************
XX*
XX* COMPILE AND LINK EDIT A COBOL PROGRAM
XX*
XX* PARAMETER DEFAULT VALUE USAGE
XX* LNGPRFX IGY.V4R1M0 PREFIX FOR LANGUAGE DATA SET NAMES
XX* SYSLBLK 3200 BLOCKSIZE FOR OBJECT DATA SET
XX* LIBPRFX CEE PREFIX FOR LIBRARY DATA SET NAMES
XX* PGMLIB &&GOSET DATA SET NAME FOR LOAD MODULE
XX* GOPGM GO MEMBER NAME FOR LOAD MODULE
XX*
XX* CALLER MUST SUPPLY //COBOL.SYSIN DD ...
XX*
XX* CALLER MUST ALSO SUPPLY //COBOL.SYSLIB DD ... for COPY statement
XX*
4 XXCOBOL EXEC PGM=IGYCRCTL,REGION=0M,PARM=('LIB')
5 XXSTEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=IGY410.SIGYCOMP,DISP=SHR
6 XXSYSPRINT DD SYSOUT=*
7 XXSYSLIN DD DSNAME=&&LOADSET,UNIT=SYSALLDA,
XX DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
XX DCB=(BLKSIZE=&SYSLBLK)
IEFC653I SUBSTITUTION JCL - DSNAME=&&LOADSET,UNIT=SYSALLDA,DISP=(MOD,
DCB=(BLKSIZE=3200)
8 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
9 XXSYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
10 XXSYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
11 XXSYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
12 XXSYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
13 XXSYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
14 XXSYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
15 //COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL3),DISP=SHR
16 //COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
17 XXLKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=0M
18 XXSYSLIB DD DSNAME=&LIBPRFX..SCEELKED,
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEELKED,DISP=SHR
19 //SYSPRINT DD SYSOUT=*
X/SYSPRINT DD SYSOUT=*
20 XXSYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)
21 XX DD DDNAME=SYSIN
22 //LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL3),DISP=OLD
X/SYSLMOD DD DSNAME=&PGMLIB(&GOPGM),
X/ SPACE=(TRK,(10,10,1)),
X/ UNIT=SYSALLDA,DISP=(MOD,PASS)
IEFC653I SUBSTITUTION JCL - DSNAME=&&GOSET(GO),SPACE=(TRK,(10,10,1)),
23 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
24 //CL2 EXEC IGYWCL
25 XXIGYWCL PROC LNGPRFX='IGY410',SYSLBLK=3200,
XX LIBPRFX='CEE',
XX PGMLIB='&&GOSET',GOPGM=GO
XX*
XX*******************************************************************
XX*
XX* Enterprise COBOL for z/OS
XX* Version 4 Release 1 Modification 0
XX*
XX* LICENSED MATERIALS - PROPERTY OF IBM.
XX*
XX* 5655-S71 © COPYRIGHT IBM CORP. 1991, 2007
XX* ALL RIGHTS RESERVED
XX*
XX* US GOVERNMENT USERS RESTRICTED RIGHTS - USE,
XX* DUPLICATION OR DISCLOSURE RESTRICTED BY GSA
XX* ADP SCHEDULE CONTRACT WITH IBM CORP.
XX*
XX*******************************************************************
XX*
XX* COMPILE AND LINK EDIT A COBOL PROGRAM
XX*
XX* PARAMETER DEFAULT VALUE USAGE
XX* LNGPRFX IGY.V4R1M0 PREFIX FOR LANGUAGE DATA SET NAMES
XX* SYSLBLK 3200 BLOCKSIZE FOR OBJECT DATA SET
XX* LIBPRFX CEE PREFIX FOR LIBRARY DATA SET NAMES
XX* PGMLIB &&GOSET DATA SET NAME FOR LOAD MODULE
XX* GOPGM GO MEMBER NAME FOR LOAD MODULE
XX*
XX* CALLER MUST SUPPLY //COBOL.SYSIN DD ...
XX*
XX* CALLER MUST ALSO SUPPLY //COBOL.SYSLIB DD ... for COPY statement
XX*
26 XXCOBOL EXEC PGM=IGYCRCTL,REGION=0M,PARM=('LIB')
27 //STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
X/STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=IGY410.SIGYCOMP,DISP=SHR
28 XXSYSPRINT DD SYSOUT=*
29 XXSYSLIN DD DSNAME=&&LOADSET,UNIT=SYSALLDA,
XX DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
XX DCB=(BLKSIZE=&SYSLBLK)
IEFC653I SUBSTITUTION JCL - DSNAME=&&LOADSET,UNIT=SYSALLDA,DISP=(MOD,
DCB=(BLKSIZE=3200)
30 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
31 XXSYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
32 XXSYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
33 XXSYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
34 XXSYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
35 XXSYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
36 XXSYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
37 //COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL2),DISP=SHR
38 //COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
39 XXLKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=0M
40 XXSYSLIB DD DSNAME=&LIBPRFX..SCEELKED,
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEELKED,DISP=SHR
41 //SYSPRINT DD SYSOUT=*
X/SYSPRINT DD SYSOUT=*
42 //LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL3),DISP=SHR
X/SYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)
43 XX DD DDNAME=SYSIN
44 //LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL2),DISP=OLD
X/SYSLMOD DD DSNAME=&PGMLIB(&GOPGM),
X/ SPACE=(TRK,(10,10,1)),
X/ UNIT=SYSALLDA,DISP=(MOD,PASS)
IEFC653I SUBSTITUTION JCL - DSNAME=&&GOSET(GO),SPACE=(TRK,(10,10,1)),
45 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
46 //CL3 EXEC IGYWCL
47 XXIGYWCL PROC LNGPRFX='IGY410',SYSLBLK=3200,
XX LIBPRFX='CEE',
XX PGMLIB='&&GOSET',GOPGM=GO
XX*
XX*******************************************************************
XX*
XX* Enterprise COBOL for z/OS
XX* Version 4 Release 1 Modification 0
XX*
XX* LICENSED MATERIALS - PROPERTY OF IBM.
XX*
XX* 5655-S71 © COPYRIGHT IBM CORP. 1991, 2007
XX* ALL RIGHTS RESERVED
XX*
XX* US GOVERNMENT USERS RESTRICTED RIGHTS - USE,
XX* DUPLICATION OR DISCLOSURE RESTRICTED BY GSA
XX* ADP SCHEDULE CONTRACT WITH IBM CORP.
XX*
XX*******************************************************************
XX*
XX* COMPILE AND LINK EDIT A COBOL PROGRAM
XX*
XX* PARAMETER DEFAULT VALUE USAGE
XX* LNGPRFX IGY.V4R1M0 PREFIX FOR LANGUAGE DATA SET NAMES
XX* SYSLBLK 3200 BLOCKSIZE FOR OBJECT DATA SET
XX* LIBPRFX CEE PREFIX FOR LIBRARY DATA SET NAMES
XX* PGMLIB &&GOSET DATA SET NAME FOR LOAD MODULE
XX* GOPGM GO MEMBER NAME FOR LOAD MODULE
XX*
XX* CALLER MUST SUPPLY //COBOL.SYSIN DD ...
XX*
XX* CALLER MUST ALSO SUPPLY //COBOL.SYSLIB DD ... for COPY statement
XX*
48 XXCOBOL EXEC PGM=IGYCRCTL,REGION=0M,PARM=('LIB')
49 //STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
X/STEPLIB DD DSNAME=&LNGPRFX..SIGYCOMP,
X/ DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=IGY410.SIGYCOMP,DISP=SHR
50 XXSYSPRINT DD SYSOUT=*
51 XXSYSLIN DD DSNAME=&&LOADSET,UNIT=SYSALLDA,
XX DISP=(MOD,PASS),SPACE=(TRK,(3,3)),
XX DCB=(BLKSIZE=&SYSLBLK)
IEFC653I SUBSTITUTION JCL - DSNAME=&&LOADSET,UNIT=SYSALLDA,DISP=(MOD,
DCB=(BLKSIZE=3200)
52 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
53 XXSYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
54 XXSYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
55 XXSYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
56 XXSYSUT5 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
57 XXSYSUT6 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
58 XXSYSUT7 DD UNIT=SYSALLDA,SPACE=(CYL,(1,1))
59 //COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL1),DISP=SHR
60 //COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
61 XXLKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=0M
62 XXSYSLIB DD DSNAME=&LIBPRFX..SCEELKED,
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSNAME=CEE.SCEELKED,DISP=SHR
63 //SYSPRINT DD SYSOUT=*
X/SYSPRINT DD SYSOUT=*
64 //LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL2),DISP=SHR
X/SYSLIN DD DSNAME=&&LOADSET,DISP=(OLD,DELETE)
65 XX DD DDNAME=SYSIN
66 //LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL1),DISP=OLD
X/SYSLMOD DD DSNAME=&PGMLIB(&GOPGM),
X/ SPACE=(TRK,(10,10,1)),
X/ UNIT=SYSALLDA,DISP=(MOD,PASS)
IEFC653I SUBSTITUTION JCL - DSNAME=&&GOSET(GO),SPACE=(TRK,(10,10,1)),
67 XXSYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
mohbaig
 
Posts: 28
Joined: Sun Nov 10, 2013 10:55 pm
Has thanked: 7 times
Been thanked: 0 time

Re: Error while Compiling calling program

Postby Robert Sample » Fri Nov 15, 2013 1:05 am

//MATE04D JOB MSGLEVEL=(1,1),NOTIFY=&SYSUID
//CL1 EXEC IGYWCL
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL3),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL3),DISP=OLD
//SYSPRINT DD SYSOUT=*
//CL2 EXEC IGYWCL
//STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL2),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL3),DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL2),DISP=OLD
//SYSPRINT DD SYSOUT=*
//CL3 EXEC IGYWCL
//STEPLIB DD DSN=MATE04.LOADLIB,DISP=SHR
//COBOL.SYSIN DD DSN=MATE04.COBOL.SRCLIB(COBOL1),DISP=SHR
//COBOL.SYSLIB DD DSN=MATE04.COPYLIB,DISP=SHR
//LKED.SYSLIN DD DSN=MATE04.LOADLIB(COBOL2),DISP=SHR
//LKED.SYSLMOD DD DSN=MATE04.LOADLIB(COBOL1),DISP=OLD
//SYSPRINT DD SYSOUT=*
You compile COBOL3 successfully. You then compile COBOL2, but your input to the linkage editor is the COBOL3 compiler output, so you now have a load module for COBOL3 that is COBOL3 and a load module for COBOL2 that is COBOL3. You repeat the same error with COBOL1 -- so you wind up with three load modules, ALL of which are nothing but COBOL3.

If you are wanting to statically link them together, compile COBOL3, compile COBOL2 (taking out the //LKED.SYSLIN DD statement), then compile COBOL1 (taking out the //LKED.SYSLIN DD statement) with added statements:
//LKED.SYSIN DD *
  INCLUDE SYSLMOD(COBOL3)
  INCLUDE SYSLMOD(COBOL2)
  ENTRY COBOL1
  NAME COBOL1(R)
/*

These users thanked the author Robert Sample for the post (total 2):
Dietmar (Wed May 29, 2019 5:22 pm) • mohbaig (Fri Nov 15, 2013 2:47 pm)
Robert Sample
Global moderator
 
Posts: 3719
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: Error while Compiling calling program

Postby mohbaig » Fri Nov 15, 2013 9:22 am

Thank u so much Robert,you made my day.Now they are statically linked and displays are showing up. :) :) :)
mohbaig
 
Posts: 28
Joined: Sun Nov 10, 2013 10:55 pm
Has thanked: 7 times
Been thanked: 0 time

Re: Error while Compiling calling program

Postby Robert Sample » Fri Nov 15, 2013 9:52 am

Glad to hear it is working.
Robert Sample
Global moderator
 
Posts: 3719
Joined: Sat Dec 19, 2009 8:32 pm
Location: Dubuque, Iowa, USA
Has thanked: 1 time
Been thanked: 279 times

Re: Error while Compiling calling program

Postby Dietmar » Wed May 29, 2019 5:25 pm

Robert Sample wrote:
//MATE04D JOB MSGLEVEL=(1,1),NOTIFY=&SYSUID
//CL1 EXEC IGYWCL

...

//SYSPRINT DD SYSOUT=*
 
You compile COBOL3 successfully. You then compile COBOL2, but your input to the linkage editor is the COBOL3 compiler output, so you now have a load module for COBOL3 that is COBOL3 and a load module for COBOL2 that is COBOL3. You repeat the same error with COBOL1 -- so you wind up with three load modules, ALL of which are nothing but COBOL3.

If you are wanting to statically link them together, compile COBOL3, compile COBOL2 (taking out the //LKED.SYSLIN DD statement), then compile COBOL1 (taking out the //LKED.SYSLIN DD statement) with added statements:
//LKED.SYSIN DD *
  INCLUDE SYSLMOD(COBOL3)
  INCLUDE SYSLMOD(COBOL2)
  ENTRY COBOL1
  NAME COBOL1(R)
/*


That just saved also my day :-)
Dietmar
 
Posts: 7
Joined: Tue Apr 30, 2019 1:42 pm
Has thanked: 3 times
Been thanked: 0 time


Return to JCL

 


  • Related topics
    Replies
    Views
    Last post