View previous topic :: View next topic
|
Author |
Message |
rohin
New User
Joined: 29 Apr 2005 Posts: 21 Location: Gurgaon, India
|
|
|
|
Hi,
I want to override DD parameter in my proc.
Following is the statement. This statement provides DSN SYSTEM(DB2A), which is DB2 system name and 2nd statement gives program name, plan name and PARMS data.
//SYSTSIN DD DSN=&DWL..PARMLIB(PTSDBSYS),
// DISP=SHR
// DD DSN=&DWL..PARMLIB(PTSSTMIG),
// DISP=SHR
I want to override the PARMS data only. So, in the job, I am using following override statement:
//S010.SYSTSIN DD
// DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/*
When I do JJ (kind of prep), it gives no error. But on submitting, I am get
error:
IEF655I INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT SPECIFIED
Please let me if I am missing out on something.
Thanks,
Rohin |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
You need to post actual data from the job, not just what you think is going on. From the manual:
Quote: |
IEF655I
INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT SPECIFIED
Explanation:
In a JCL statement for a job step, the system found a DD statement containing a SYSIN or SYSOUT specification that had a DSNAME parameter value that was not valid.
System action:
The DSNAME parameter is ignored. Processing continues. The system issues messages about the job to the job log.
Application Programmer Response:
If the job is to be run again, correct the statement by either removing the DSNAME or SYSIN or SYSOUT keywords, or modify the DSNAME parameter to a valid name for use with a SYSIN or SYSOUT data set. Resubmit the job.
System programmer response:
Look at the messages in the job log. If the JOB statement did not specify MSGLEVEL=(1,1), specify it and run the job again. If the problem persists, search problem reporting data bases for a fix for the problem. If no fix exists, contact the IBM Support Center. Provide the SYSOUT output for the job.
Source:
Interpreter |
If you had posted actual statements it might be possible to identify the SYSIN or SYSOUT statement. Since you didn't, you need to look for them yourself in the actual job output. |
|
Back to top |
|
|
genesis786
Active User
Joined: 28 Sep 2005 Posts: 210 Location: St Katherine's Dock London
|
|
|
|
Not sure, but what's this instream data:
Code: |
// DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/*
|
and how are u calling the PROC. is it an inline PROC or external PROC ? because inline PROC cannot have instream data in it, it must be passed through a member. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
possibly it has to do with:
when you override a dd statement, you are replacing the existing.
so, maybe you have to include the concatenation in the override,
otherwise it resolves to only what you provided in the override,
which is only the RUN parms. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
sorry, this is more basic than I thought.
you can not override with instream data.
you need to override both dd statements:
DD DSN=&DWL..PARMLIB(PTSDBSYS),
// DISP=SHR
// DD DSN=&DWL..PARMLIB(PTSSTMIG),
// DISP=SHR
with
DD DSN=&DWL..PARMLIB(PTSDBSYS),
// DISP=SHR
// DD DSN=&DWL..PARMLIB(new-parm-member-name),
// DISP=SHR |
|
Back to top |
|
|
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2481 Location: @my desk
|
|
|
|
Quote: |
you need to override both dd statements |
AFAIK, one override like this will do.
Code: |
//SYSTSIN DD
// DD DSN=&DWL..PARMLIB(PTSSTMIG) |
Thanks,
Arun |
|
Back to top |
|
|
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 1702 Location: Australia
|
|
|
|
Hi,
I disagree that you cannot override with instream data, Rohin's code looks OK to me, I think Rohin should post all of the output in Code format.
You cannot have instream data in a proc but my understanding is Rohin is overriding a proc.
Gerry |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
Hello Rohin,
With the discussion so far, I believe, you have two DSNs associated (comcatenate Datasets) to a single DDname (SYSTIN here) and you want to override the second DSN (second, in the hierarchy).
If so, would suggest to "copy" these
Code: |
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/* |
in a seprate DSN. Give override of "this" DSN in your JCL as shown by Arun, Hopefully that should work.
I can not check the code posted by you just now - not having the access to mainframes..however give a try to the above suggestion. |
|
Back to top |
|
|
hemanth.nandas
Active User
Joined: 18 Aug 2007 Posts: 120 Location: India
|
|
|
|
Hi,
Quote: |
//S010.SYSTSIN DD
// DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/*
|
Above override seems like incorrect.
Try Like this,
//S010.SYSTSIN DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/* |
|
Back to top |
|
|
rohin
New User
Joined: 29 Apr 2005 Posts: 21 Location: Gurgaon, India
|
|
|
|
Thanks guys, but there is still no solution to this. Here are some details:
1. I am overriding parameters in a catalogued/external procedure. This is the exact step from my job.
//PPTSMG01 EXEC PPTSRMIG
//S010.SYSTSIN DD
// DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000C')
END
/*
2. We can override with instream data. no problems.
Could anyone please share thoughts now? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Can you show the JES substitutions with the XX and X/ to show the overrides? Without this information, we can only guess about your problem. |
|
Back to top |
|
|
rohin
New User
Joined: 29 Apr 2005 Posts: 21 Location: Gurgaon, India
|
|
|
|
Hi,
I tried something different and it worked, although I have no explanation for it.
I changed the accounting information in the job card and now it works! I do not know if it is possible to disble overrides based on certain accounts in job card....
Could anyone please give a better explanation on this?
Thanks. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
Could anyone please give a better explanation on this? |
If you had posted the "whole story" as was requested earlier, maybe.
The accounting info change was probably incidental and other changes along the way made the difference. |
|
Back to top |
|
|
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 1702 Location: Australia
|
|
|
|
Hi Hemantha,
why do you say the below is incorrect.
Quote: |
//S010.SYSTSIN DD
// DD *
RUN PROGRAM(PTSSTMIG) PLAN(PTSSTMIG) PARMS('000000000C')
END
/*
|
If you want to override the second DD name in the concatenation, then the above is quite correct.
If you want to overide only the first DD name then
Code: |
//S010.SYSTSIN DD *
|
is correct.
Gerry |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
rohin wrote: |
I tried something different and it worked, although I have no explanation for it. |
you tried something it didn't work..you tried something it worked..& the question is why it happens..well, i'm stumped.. |
|
Back to top |
|
|
|