PMJI, I think the problem is the way in which the START command is processed. 
In the MSTJCL, there an STCINRDR DD. The START command (in the CONSOLE address 
space?) creates a "job" which it "submits" to JES by doing a "put" to this DD. 
The code in the START command processor does not READ the JCL for the started 
task. JES does that using its normal JCL processing. Which means the JCL may or 
may not code from SYS1.PROCLIB. It can come from other PDSes. About which the 
START command processor knows absolutely __nothing__. Now, the START command 
processor has the DD sub-parameters "hard coded" in it, I would guess. So what 
it does when it sees one is generate the DD statement:

//IEFPROC.IEFRDER DD ..dd parms from the START command ..

The START command also knows about some of the JOB keywords as well. For 
example, try S BUBBA,CLASS=A and you'll get:

IEE401I START BUBBA   , JOB STATEMENT KEYWORD CLASS    IGNORED

So it's not just DD parameters which are invalid in a START command. If the 
START command processor does not recognize the parameter, it __assumes__ it is 
to be passed to the STC on the EXEC for an STC or via // SET commands for a 
started JOB.

This leads me to believe that it would be impossible for IBM to modify the 
START command processor so that it would not generate the //IEFPROC.IEFRDER DD 
when it sees a possible DD subparameter. There is simply no way for it to know 
if the parameter is used in the JCL or not. Now for a started JOB, one could 
argue that the START command processor should only use // SET parm=value 
generated cards. The thing is that the START command processor __does__ know 
the PDSes from which the started job's JCL is read because it read the JCL 
itself from the //IEFJOBS DD in the MSTRJCL. This is totally unlike a started 
TASK, whose JCL is read from the JES defined PROCLIB.

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone * 
john.mck...@healthmarkets.com * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM

 

> -----Original Message-----
> From: IBM Mainframe Discussion List 
> [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Chris Mason
> Sent: Monday, January 24, 2011 1:56 PM
> To: IBM-MAIN@bama.ua.edu
> Subject: Re: Cataloged procedure misunderstanding
> 
> Charles
> 
> I'm trying here to keep up with something in which I only 
> dabbled some years 
> ago now.
> 
> I was going to say the "curtailed post" to Paul until I 
> realised this is what you 
> meant in it's essence by
> 
> > "declare a variable" inside your PROC 
> 
> Since this didn't jump out at me - not necessarily the 
> brightest knife in the 
> drawer! - straight away and there may be other "dullards", I 
> may as well use it 
> anyway, it having been typed already!
> 
> <curtailed post>
> 
> Shouldn't the "trick" which processing of the START command 
> needs to learn 
> be the appearance of the potentially clashing token as a 
> variable - introduced 
> with an "&" - in the body of the procedure? That could then elevate 
> the "explicit" use over the "implicit" use within the "scope" 
> of the procedure.
> 
> </curtailed post>
> 
> All we need now is a "requirement"!
> 
> Chris Mason
> 
> On Mon, 24 Jan 2011 09:35:29 -0800, Charles Mills <charl...@mcn.org> 
> wrote:
> 
> >Gil's right. It's a scoping issue. Once you "declare a 
> variable" inside your
> >PROC it should be yours forever no matter what else happens 
> outside of that
> >scope.
> >
> >In sympathy to IBM, this stuff was set in stone back in 
> about 1964 when (a.)
> >scoping was not so well-established a principle as it is 
> now; (b.) we were
> >doing it all in assembler; and (c.) it had to be done in 44K.
> >
> >As Gil points out, IBM could now give us a warning. Or even 
> implement the
> >scoping we describe. It would not break any existing PROCs 
> (hopefully --
> >well it WOULD break any that were depending on a declared 
> symbol being
> >ineffective) to say "if you declare a symbol it's yours, no 
> matter what
> >happens now or in the future in JCL."
> >
> >Charles
> >
> >-----Original Message-----
> >From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
> Behalf
> >Of Paul Gilmartin
> >Sent: Monday, January 24, 2011 6:15 AM
> >To: IBM-MAIN@bama.ua.edu
> >Subject: Re: Cataloged procedure misunderstanding
> >
> >On Sun, 23 Jan 2011 19:05:32 -0600, Chris Mason wrote:
> >>
> >>> Poor design IMHO.
> >>
> >+1
> >
> >>In other words - in principle - I agree. There is an excuse 
> in that the
> >poor
> >>developers have had constantly to try to deal with the fact 
> that there is a
> >>continuum of JCL including procedure override capabilities 
> and started task
> >>tricks which didn't have 40 years plus of thinking through 
> when the green
> >>shoots appeared in the mid-60s.
> >>
> >Regardless, the explicit appearance of MODE on the PROC statement
> >should override its implicit declaration as a posslble subparameter
> >of a possible parameter of a putative DD statement.  The excuse is
> >insufficient.
> >
> >>> If you have a PROC with &FOO in it and IBM decides to add 
> FOO= to the 
> DD
> >>statement then your PROC will break. There is no "safe" 
> PROC variable
> >symbol.
> >>
> >>You are right that each JCL symbol you invent for your 
> procedure is a
> >hostage
> >>to fortune. I expect the only reliable way to deal with the 
> problem is to
> >run
> >>each locally-created procedure in a test environment for 
> each release
> >change.
> >>Also in principle, I would expect IBM-supplied procedures 
> to be kept free
> >of
> >>any clashes but I reserve the right not to have to put any 
> money on it!
> >>
> >At the very least, IBM should assist the customer by reporting a
> >JCL error for the conflicting (ineffective explicit and effective
> >implicit) declarations of MODE.
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
> Search the archives at http://bama.ua.edu/archives/ibm-main.html
> 
> 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to