View previous topic :: View next topic
|
Author |
Message |
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
hi
I am replacing a cobol program as db2-cobol program. In older one no sql statements . Now I included sql stmts in new one. I compiled and run. when I run this new program by creating a seperate jcl, It is successful. But when I run thru proc, i am getting S806 load module not found error. It is giving this error in that step(new program) alone. |
|
Back to top |
|
|
the_gautam
Active User
Joined: 05 Jun 2005 Posts: 165 Location: Bangalore
|
|
|
|
can you plz post the JCL |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
806 just means you have not allocated to PDS that contains your load module.
you need a joblib or steplib statement to address your load library. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
could also mean that you have not included the db2 load lib.
no idea, you did not bother to mention which loadmodule triggered the 806 |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
Sorry i am not able to post the jcl. I am using IKJEFT1B. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
i have included the load lib. both steplib and db2 loadlib included. please note that jcl is working fine while running seperately. but when i include that same jcl in proc it is not running. How to override that step which is running simple cobol pgm as db2 program in my test proc. In my test proc i am overriding that step which is in production |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
I don't really care how hard/easy it is to override a proc.
the complete step needs to be rewritten to invoke IKJEFTnn.
we are wasting time here. 806 means only that the library containing the load module is not referenced.
update you jcl (change the step) and then get back to us.
otherwise someone else can spin their wheels debugging your jcl. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
I am getting the messgae "the moduleDSNHLI not found" in sysout . Can anyone give me the suggestion. I updated the jcl. I am using the same step stmts in proc used in seperate jcl. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
birdy,
if you were using the same jcl in both, then it would work. it does not work, so you are not using the same jcl.
take a look at the expanded jcl; you are missing a db2 load library. |
|
Back to top |
|
|
agkshirsagar
Active Member
Joined: 27 Feb 2007 Posts: 691 Location: Earth
|
|
|
|
Talk to your peers to know about standard library names in your shop. It seems you havent added DB2 Libs in your SYSLIB concatenation. |
|
Back to top |
|
|
yogeshwar_ade
Active User
Joined: 31 Aug 2006 Posts: 103 Location: INDIA
|
|
|
|
Go to your STEPLIB & find DSNHLI module there. It will be not there, thats why you are getting 806.
I think you are missing DB2 Load lib there. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
I looked in JESJCL. It is not replacing that step. It is running the older step. So I am getting this S806. How to solve it . It is not overriding the oder step.
birdy |
|
Back to top |
|
|
yogeshwar_ade
Active User
Joined: 31 Aug 2006 Posts: 103 Location: INDIA
|
|
|
|
dbzTHEdinosauer wrote: |
we are wasting time here. 806 means only that the library containing the load module is not referenced.
update you jcl (change the step) and then get back to us.
|
Hope you update your JCL, if still you get problem, then get back to Forum. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
HI everyone I updated the jcl. It is not replacing the older step. In my production proc there are four steps. I am replacing the fourth step which was cobol pgm as cobol db2 pgm. So when i run the proc. It is not replacing the step. Instead it is running the first four steps and included my replaced step as fifth step. As it is running the fourth step i am getting S806 ERROR. Give me a suggestion how to replace the fourth step. I am using "procname. stepname" to replace the fourth step. |
|
Back to top |
|
|
vv
New User
Joined: 06 Jan 2008 Posts: 10 Location: bangalore
|
|
|
|
I think you gave the wrong library as '// jcllib order=(pds) is correct library for procedure or you gave the wrong proc name for the procedure. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello birdy,
As has been mentioned multiple times, you have done something wrong.
You can continue to post generalaties and show no specifics and you will continue to get some guesses that may or may not help. Your exact problem is in the output and diagnostic info from your execution. If you post your execution and the diagnostic info (do not "tell us" what it says - post it) we can probably help.
Is there some reason that you have not asked others on your project, your dba(s), or someone in system support? |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
Code: |
[b]my old step [/b]
S501025 EXEC PGM=pgmname,COND=(0,NE),PARM='12'
STEPLIB DD DSN=&LOADLIB2,DISP=SHR
DD DSN=&LOADLIB3,DISP=SHR
*
FILE1 DD DSN=dsnname,
DISP=SHR
RPT DD SYSOUT=&PRT1
SYSOUT DD SYSOUT=*
SYSPRINT DD SYSOUT=*
SYSTSPRT DD SYSOUT=*
SYSABOUT DD SYSOUT=Y
SYSDBOUT DD SYSOUT=Y
SYSUDUMP DD SYSOUT=Y
[b]new step[/b]
S5010.S501025 EXEC PGM=IKJEFT1B,DYNAMNBR=100
S501025.STEPLIB DD DSN=SYSDB2.DB2.SSPGM,DISP=SHR
DD DSN=MMAS.TEST.LOADLIB,DISP=SHR
FILE1 DD DSN=DSNNAME,
DISP=SHR
RPT DD SYSOUT=*
SYSOUT DD SYSOUT=*
SYSPRINT DD SYSOUT=*
S501025.SYSTSPRT DD SYSOUT=*
SYSABOUT DD SYSOUT=Y
SYSDBOUT DD SYSOUT=Y
SYSUDUMP DD SYSOUT=Y
SYSTSIN DD DSN=MMAS.TEST.TSYSLIB(DSNBEGIN),DISP=SHR
DD DSN=MMAS.TEST.TSYSLIB(PGMNAME),DISP=SHR
DD DSN=MMAS.TEST.TSYSLIB(DSNEND),DISP=SHR
there are some steps which is executing successfully.
In JESJCL I am getting this(part of it)
48 XXS501025 EXEC PGM=PGMNAME,COND=(0,NE),PARM='DAILY '
49 XXSTEPLIB DD DSN=&LOADLIB2,DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=MMAS.TEST.LOADLIB,DISP=SHR
50 XX DD DSN=&LOADLIB3,DISP=SHR
XX*
IEFC653I SUBSTITUTION JCL - DSN=MMAS.TEST.LOADLIB,DISP=SHR
51 XXINFILE DD DSN=MMA&P..S50D010.S501020.CLAIMEXT.SRT,
XX DISP=SHR
IEFC653I SUBSTITUTION JCL - DSN=MMAS.S50D010.S501020.CLAIMEXT.SRT,DISP
52 XXCLMRPT DD SYSOUT=&PRT1
IEFC653I SUBSTITUTION JCL - SYSOUT=P
53 XXSYSOUT DD SYSOUT=*
54 XXSYSPRINT DD SYSOUT=*
55 XXSYSTSPRT DD SYSOUT=*
56 XXSYSABOUT DD SYSOUT=Y
57 XXSYSDBOUT DD SYSOUT=Y
58 XXSYSUDUMP DD SYSOUT=Y
XX*
XX*---------------------------------------------------------
XX* END OF PROCEDURE S5010
XX*---------------------------------------------------------
59 //S501025 EXEC PGM=IKJEFT1B,DYNAMNBR=100
60 //STEPLIB DD DSN=MMAS.TEST.LOADLIB,DISP=SHR
61 // DD DSN=SYSDB2.DB2.SSPGM,DISP=SHR
62 //INFILE DD DSN=MMAS.S50D010.S501020.CLAIMEXT.SRT,
// DISP=SHR
63 //CLMRPT DD SYSOUT=*
64 //SYSOUT DD SYSOUT=*
65 //SYSPRINT DD SYSOUT=*
66 //SYSTSPRT DD SYSOUT=*
67 //SYSABOUT DD SYSOUT=Y
68 //SYSDBOUT DD SYSOUT=Y
69 //SYSUDUMP DD SYSOUT=Y
70 //SYSTSIN DD DSN=MMAS.TEST.TSYSLIB(DSNBEGIN),DISP=SHR
I have given my code if there is anything wrong. Please tell me.
|
|
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
you cannot override the PGM parm.
Suggest:
1. modify the cond parm in the existing step (the one you do not want to run) so that it never executes.
2. Add your new step. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
Thank you Dick. I will try that. So "Cond" is the only way to not to execute that step. Is there anyother way to not to execute that step? |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
I have given my code if there is anything wrong. Please tell me. |
You have only given part of the jcl and you have not posted the error information at all.
While it is important that the old way works, we need to focus on what is failing.
I'm confused as to how COND= comes into consideration. Clarification might help.
And (as DBZ mentioned) you cannot override the pgm=. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
Dick, the cond code confusion is due to me.
he keeps getting an 806 because the job will always have a step that invokes the old program - which is no longer available.
i suggested the condition code so the original step would not be executed, since he won't change his proc's or jcl.
since he can not change the pgm of a step he needs to skip this step and then allow the new step (with the ikjeft ) to be added to the proc with his overrides.
as far as the op's last question:
Quote: |
So "Cond" is the only way to not to execute that step. Is there anyother way to not to execute that step?
|
that still is an open question. I don't have (or want to look for) any other suggestions.
why the op does not create a new proc is beyond me. he will need to when he migrates to production. but that is just me being picky. |
|
Back to top |
|
|
birdy K
New User
Joined: 05 Mar 2008 Posts: 72 Location: chennai
|
|
|
|
hai d.sch
I have given the entire jcl for that step. My problem also I have specified. Please look at the jesjcl. As it is executing the step s501025 which is not a db2 cobol pgm. I am getting s806 load module not found abend and the message "The module DSNHLI was not found". I have compiled as db2 cobol pgm. But that step is calling simple cobol pgm. Then it added the new step as cobol-db2 pgm. |
|
Back to top |
|
|
|