IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

JCL DD override


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
rohin

New User


Joined: 29 Apr 2005
Posts: 21
Location: Gurgaon, India

PostPosted: Sun Sep 07, 2008 7:29 am
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8700
Location: Dubuque, Iowa, USA

PostPosted: Sun Sep 07, 2008 7:46 am
Reply with quote

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
View user's profile Send private message
genesis786

Active User


Joined: 28 Sep 2005
Posts: 210
Location: St Katherine's Dock London

PostPosted: Sun Sep 07, 2008 1:26 pm
Reply with quote

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
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Sun Sep 07, 2008 2:12 pm
Reply with quote

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
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Sun Sep 07, 2008 2:17 pm
Reply with quote

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
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Sun Sep 07, 2008 3:32 pm
Reply with quote

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
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Mon Sep 08, 2008 9:10 am
Reply with quote

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
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6248
Location: Mumbai, India

PostPosted: Mon Sep 08, 2008 1:35 pm
Reply with quote

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
View user's profile Send private message
hemanth.nandas

Active User


Joined: 18 Aug 2007
Posts: 120
Location: India

PostPosted: Mon Sep 08, 2008 4:16 pm
Reply with quote

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
View user's profile Send private message
rohin

New User


Joined: 29 Apr 2005
Posts: 21
Location: Gurgaon, India

PostPosted: Mon Sep 08, 2008 8:26 pm
Reply with quote

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
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8700
Location: Dubuque, Iowa, USA

PostPosted: Mon Sep 08, 2008 8:35 pm
Reply with quote

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
View user's profile Send private message
rohin

New User


Joined: 29 Apr 2005
Posts: 21
Location: Gurgaon, India

PostPosted: Mon Sep 08, 2008 9:04 pm
Reply with quote

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
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19243
Location: Inside the Matrix

PostPosted: Mon Sep 08, 2008 9:20 pm
Reply with quote

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
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Tue Sep 09, 2008 3:34 am
Reply with quote

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
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6248
Location: Mumbai, India

PostPosted: Tue Sep 09, 2008 8:34 am
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts AN OVERRIDE MAY NOT TARGET OVERRIDING... JCL & VSAM 1
No new posts Compare Two datasets and Override Mat... DFSORT/ICETOOL 7
No new posts proc step return code to override in ... JCL & VSAM 3
No new posts IEHPROGM ENQUEUE OVERRIDE JCL & VSAM 4
No new posts Can DFSPARM override SORTKEYS paramet... DB2 2
Search our Forums:

Back to Top