MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Problem using HEWLH096
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 5:11 am    Post subject: Problem using HEWLH096 Reply with quote

i am using the HEWLH096 utility to link-edit. I have a Cobol program which calls a utility (assembler code). i have the load module of the assembler utility. I have sucessfuly comiled the cobol code but in the same JCL, i have a problem in the link-edit step.

FOr link-editing i am using the utility HEWLH096. Can neone tell me in which card should i specify the PDS where my load module ( of the assembler code) is and how to wite that card in the JCL. Actually this JCL has been generated by a tool. For the LKED step i already have a SYSLIN card //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,PASS). Now how shld i specify the PDS where my load module.

Actually the compile and Link edit jcl runs sucsessfuly with a MAXCC=4. But when the run jcl is submitted it gives an s806 abend.

PLZ REPLY THIS IS VERY URGENT FOR ME.
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 5:15 am    Post subject: Reply with quote

There are two ways of looking at this problem.

One, SYSLMOD is the DD name where the load module is created. You need to find a means to pass the PDS name for the load module to SYSLMOD DD name.

Two, since you are getting a S806 abend, find out for exactly which program you are getting that ABEND. Maybe, you have to specify some other PDS (CEE.SCEERUN for example).

PLEASE curtail the note for urgency.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 5:18 am    Post subject: Reply with quote

BTW, HEWLH096, IEWL, HEWL are aliases for the program IEWBLINK.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 5:25 am    Post subject: Reply with quote

THANKS Cogito-Ergo-Sum FOR THE PROMPT REPLY.
1. tHE S806 ABEND IS FOR THE ASSEMBLER UTILITY THAT I AM TRYING TO CALL. THE EXACT ERROR MESSAGE IS
**
FIND FOR MODULE IFCONV FAILED BECAUSE DIRECTORY ENTRY IS NOT VALID FOR A LOAD MODULE.
**

2. tHIS IS WAT the lked step of MY jcl LOOKS LIKE :

//LKED EXEC PGM=HEWLH096,REGION=0M,
000039 // PARM=('LIST',
000040 // 'RMODE=ANY,AMODE=31',
000041 // '&LNKOPT'),
000042 // COND=(4,LT,COB)
000043 //SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
000044 //SYSUT1 DD DSN=&SYSUT1,UNIT=TEMPDA,SPACE=(6000,(190,76))
000045 //SYSPRINT DD SYSOUT=&CLASS
000046 //SYSLMOD DD DSN=&LOADLIB(&MEM),DISP=SHR
000047 //LOADIFC DD DSN=<pds where the load module for ass code is available>,DISP=SHR
000048 //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,PASS)
000050 //*SYSABEND DD SYSOUT=&CLASS
000051 //DEL1 EXEC PGM=IEFBR14,COND=EVEN
000052 //DD1 DD DSN=&&LOADSET,DISP=(OLD,DELETE)

Can u sight any problem with the JCL. Plz tell me the corrections/additions i shld make !!
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 5:35 am    Post subject: Reply with quote

For S806:

Is IFCONV the Assembler utility?
Is it available in any of the PDS concatenated to STEPLIB ?

Is the COBOL program calling the Assembler module statically/dynamically? If it is dynamic, then you need not bother with the link step for COBOL program. Just compile, lin-edit the Assembler program and place the load module in some other PDS (or, the same). Ensure that the same PDS is available in the STEPLIB.

If the call is static, you will have to modify the link step to have the SYSLIN something like this:
Code:

//SYSLIN DD DSN=&&LOADSET,
//                 DISP=(OLD,PASS)
//            DD *
 INCLUDE OBJ(assembler object code)
  NAME CobolProgramName(R)
/*

Add the DD name OBJ in the link step as
Code:

//OBJ  DD DSN=your Assembler object code PDS,
//             DISP=SHR
 

_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 5:42 am    Post subject: Reply with quote

Yes IFCONV is the assembler utility i am trying to call in the cobol code.

There is no steplib statement in the lked step as shown in the jcl (previous reply)

The call to IFCONV is static ( can be made dynamic if it required)

i am just trying the solution u have given.....will reply soon..please do wait 4 the reply
THANK YOU
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 5:46 am    Post subject: Reply with quote

Quote:
There is no steplib statement in the lked step as shown in the jcl (previous reply)

Of course not.

I was talking about the step that was giving you S806.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 5:48 am    Post subject: Reply with quote

i got a jcl error saying - "27 IEFC601I INVALID JCL STATEMENT"
The 27 line in the listing is :
***
26 ++SYSLIN DD DSN=&&LOADSET,DISP=(OLD,PASS)
27 ++ DD *

***

Is there a mistake in the syntax or am i writing on wrong column numbers i mean when we use the dd * is there a restriction with the column nos.?

The modified jcl - as per your solution- is as follows :

000038 //LKED EXEC PGM=HEWLH096,REGION=0M,
000039 // PARM=('LIST',
000040 // 'RMODE=ANY,AMODE=31',
000041 // '&LNKOPT'),
000042 // COND=(4,LT,COB)
000043 //SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
000044 //SYSUT1 DD DSN=&SYSUT1,UNIT=TEMPDA,SPACE=(6000,(190,76))
000045 //SYSPRINT DD SYSOUT=&CLASS
000046 //OBJ DD DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
000047 //SYSLMOD DD DSN=&LOADLIB(&MEM),DISP=SHR
000048 //LOADIFC DD DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
000049 //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,PASS)
000050 // DD *
000051 INCLUDE OBJ(IFCONV)
000052 NAME AIRMG(R)
000053 /*
000054 //*SYSIN DD DSN=AVI1T.DMTD.SINC,DISP=SHR
000055 //*SYSABEND DD SYSOUT=&CLASS


Whats ur guess at this ??
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 5:52 am    Post subject: Reply with quote

jinesh18,
You should ALWAYS paste your code using code blocks. It will save a lot of your and my time.

Bring the DD * below the DD for LOADSET. I hope, this step is not in a PROC? If yes, then you would have to pass a control card.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 6:10 am    Post subject: Reply with quote

Quote:
You should ALWAYS paste your code using code blocks. It will save a lot of your and my time.

Bring the DD * below the DD for LOADSET. I hope, this step is not in a PROC? If yes, then you would have to pass a control card.


Ok sorry for not putting the code in the right place - i am new to this.
Actuallt the DD * is rite below the dd dsn in the preceding statement. And yes this step is in a proc - really soory abt not letting u know abt this b4-

Can u tell me how exactly should i pass a control card.
Code:
 000011 //COBCL2 PROC MEM=,
 000012 //             SRCELIB='AVI1T.DMTD.PREPROC.SOURCE',
 000013 //             LOADLIB='AVI1T.DMTD.LOAD.CNTL',
 000014 //             COBLIB0='AVI1T.DMTD.COPYLIB',
 000015 //             COBOPT=,
 000016 //             LNKOPT=,
 000017 //             CLASS=X
 000018 //COB      EXEC PGM=IGYCRCTL,REGION=0M,
    ...
    ...
    ...
000038 //LKED     EXEC PGM=HEWLH096,REGION=0M,
 000039 //             PARM=('LIST',
 000040 //             'RMODE=ANY,AMODE=31',
 000041 //             '&LNKOPT'),
 000042 //             COND=(4,LT,COB)
 000043 //SYSLIB   DD   DSN=CEE.SCEELKED,DISP=SHR
 000044 //SYSUT1   DD   DSN=&SYSUT1,UNIT=TEMPDA,SPACE=(6000,(190,76))
 000045 //SYSPRINT DD   SYSOUT=&CLASS
 000046 //OBJ      DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000047 //SYSLMOD  DD   DSN=&LOADLIB(&MEM),DISP=SHR
 000048 //LOADIFC  DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000049 //SYSLIN   DD   DSN=&&LOADSET,DISP=(OLD,PASS)
 000050 //         DD   *
 000051  INCLUDE OBJ(IFCONV)
 000052  NAME AIRMG(R)
 000053 /*


Plz tell me how to pass the control card
The call to the proc is made as follows :
Code:
000059 //STEP02    EXEC COBCL2,MEM=AIRMG
Back to top
View user's profile Send private message
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 6:26 am    Post subject: Reply with quote

Quote:
Can u tell me how exactly should i pass a control card.


You could have asked your co-workers first...

Modify your step LKED in the PROC as follows:
Code:

//SYSLIN   DD   DSN=&&LOADSET,DISP=(OLD,PASS)
//             DD    DDNAME=LKEDIT


Execute your PROC like this...
Code:

//STEP2    EXEC COBCL2,MEM=AIRMG
//LKED.LKEDIT DD DSN=control card   
//LKED.OBJ      DD DSN=Assembler OBJ

_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 7:05 am    Post subject: Reply with quote

Thanks
tHIS IS HOW I HAVE MODIFIED THE JCL

Code:
 000038 //LKED     EXEC PGM=HEWLH096,REGION=0M,
 000039 //             PARM=('LIST',
 000040 //             'RMODE=ANY,AMODE=31',
 000041 //             '&LNKOPT'),
 000042 //             COND=(4,LT,COB)
 000043 //SYSLIB   DD   DSN=CEE.SCEELKED,DISP=SHR
 000044 //SYSUT1   DD   DSN=&SYSUT1,UNIT=TEMPDA,SPACE=(6000,(190,76))
 000045 //SYSPRINT DD   SYSOUT=&CLASS
 000046 //OBJ      DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000047 //SYSLMOD  DD   DSN=&LOADLIB(&MEM),DISP=SHR
 000048 //LOADIFC  DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000049 //SYSLIN   DD   DSN=&&LOADSET,DISP=(OLD,PASS)
 000050 //         DD   DDNAME=LKEDIT
 000051 //*SYSIN    DD   DSN=AVI1T.DMTD.SINC,DISP=SHR
 000052 //*SYSABEND DD   SYSOUT=&CLASS
 000053 //DEL1     EXEC PGM=IEFBR14,COND=EVEN
 000054 //DD1      DD   DSN=&&LOADSET,DISP=(OLD,DELETE)
000055 //         PEND
000056 //STEP02    EXEC COBCL2,MEM=AIRMG
000057 //LKED.OBJ DD DSN=AVI1T.DMTD.SINC,DISP=SHR


i THINK I AM MAKING SOME MISTAKE.
AVI1T.DMTD.SINC IS A PS CONTAINING
Code:
000100 INCLUDE OBJ(IFCONV)
 000200 NAME AIRMG(R)


Is all this correct or have i got it wrong. Waiting for your reply !!
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Fri Oct 21, 2005 7:08 am    Post subject: Reply with quote

jinesh18,

How are you calling the assembler sub-routine from cobol. Is it a dynamic call or a static call. if it is dynamic call, you can simply concatenate that loadlib to your steplib excueting the cobol pgm.
Code:

//STEP0100 EXEC PGM=MYCOBPGM
//STEPLIB  DD DSN=YOUR COBOL LOADLIB,
//            DISP=SHR
//         DD DSN=YOUR ASSEMBLER LOADLIB,
//            DISP=SHR


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Fri Oct 21, 2005 7:08 am    Post subject: Reply with quote

Code:
//LKED.LKEDIT DD DSN=control card   
is missing.

Please go through the thread again.
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
jinesh18
Beginner


Joined: 21 Oct 2005
Posts: 13
Topics: 1

PostPosted: Fri Oct 21, 2005 7:22 am    Post subject: Reply with quote

Code:

000038 //LKED     EXEC PGM=HEWLH096,REGION=0M,
 000039 //             PARM=('LIST',
 000040 //             'RMODE=ANY,AMODE=31',
 000041 //             '&LNKOPT'),
 000042 //             COND=(4,LT,COB)
 000043 //SYSLIB   DD   DSN=CEE.SCEELKED,DISP=SHR
 000044 //SYSUT1   DD   DSN=&SYSUT1,UNIT=TEMPDA,SPACE=(6000,(190,76))
 000045 //SYSPRINT DD   SYSOUT=&CLASS
 000046 //OBJ      DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000047 //SYSLMOD  DD   DSN=&LOADLIB(&MEM),DISP=SHR
 000048 //LOADIFC  DD   DSN=AVI1T.DMTD.LOAD.CNTL,DISP=SHR
 000049 //SYSLIN   DD   DSN=&&LOADSET,DISP=(OLD,PASS)
 000050 //         DD   DDNAME=LKEDIT
 000051 //*SYSIN    DD   DSN=AVI1T.DMTD.SINC,DISP=SHR
 000052 //*SYSABEND DD   SYSOUT=&CLASS
 000053 //DEL1     EXEC PGM=IEFBR14,COND=EVEN
 000054 //DD1      DD   DSN=&&LOADSET,DISP=(OLD,DELETE)
 000055 //         PEND
 000056 //STEP02    EXEC COBCL2,MEM=AIRMG
000057 //LKED.LKEDIT DD DSN=AVI1T.AIRMG.SINC,DISP=SHR
 000058 //LKED.OBJ    DD DSN=IFCONV,DISP=SHR


i THINK I AM MAKING SOME MISTAKE. IS THIS CORRECT. (btw ITS A STATIC CALL)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group