Re: Example of what a very small JCL Interpreter can do to your installation.

2008-08-04 Thread Paul Gilmartin
On Wed, 30 Jul 2008 08:57:49 -0500, Jeff Holst wrote:

Problem came when the 370 arrived and we upgraded to a new COBOL
compiler. Now, a character moveof more that 256 characters were compiled
as a MVCL. For MVCL, when source and target fields overlap, a condition code
is set and no data movement occurs. The new COBOL did not check the
return code, the COBOL move statement effectively became a NO-OP. No
error statments in the COMPILE and the program would either abend when it
later found some field uninitialized or it would produce incorrect results.

I once dealt with a compiler from a vendor I mentioned here recently
(but didn't name then, either).  I looked at the code it generated
for a character move.  If the leftmost character of the target lay
within the source (same criterion as MVCL), it moved character-by-
character in a loop, starting at the right of both operands.  Otherwise
it moved left-to-right, perhaps with MVC or MVCL.  The effect was
that the final content of the target was identical to the initial
content of the source, although the source might be obliterated in
the process.

How did the RM specify the effect of this painstaking effort?  It
stated that if the operands overlapped the result was unpredictable.

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-31 Thread Paul Gilmartin
On Wed, 30 Jul 2008 09:02:48 -0500, Jeff Holst wrote:

On Tue, 29 Jul 2008 09:45:44 -0500, Paul Gilmartin wrote:

Hmmm.  I wonder what happens when there are two (or more) overriding
DD statements referring to the same DDNAME in the PROC.  Absent any
explicit exclusion, I'd expect from the general description both (all)
to be effective, and parameters on them to be merged into the PROC DD.
But in what order?

Actually, this is covered in the reference manual, as it states that all but 
the
first will be processed for allocation purposes (new data sets will be 
allocated
and the DISP parameter will be honored) but only the first will actually be
merged into the PROC DD.

Empirically, that seems to be true.  But I don't see where
it says so in the RM.  The governing section would seem to
be:

5.2.1.2 z/OS V1R9.0 MVS JCL Reference

 
   Coding an Overriding OUTPUT JCL or DD Statement

   To override, nullify, or add parameters to a procedure OUTPUT JCL or DD
   statement, code in the name field of the overriding OUTPUT JCL or DD
   statement the name of the procedure step containing the overridden
   statement, followed by a period, followed by the name of the procedure
   OUTPUT JCL statement or the ddname of the procedure DD statement.

 //pstepname.name   OUTPUT parameters
//pstepname.ddname DD parameters

I don't see an explicit only the first here, so it might
equally be read that all overriding DD statements with the
name of an overriden statement will be merged with that
statement.  Likewise, I see nothing in 12.1.2 or 12.1.6 that
states that only the first will override.  I take the
statement:

12.1.2 z/OS V1R9.0 MVS JCL Reference

 
  12.1.2 Name Field 
 

 
   When specified, code a ddname as follows:
 
 * Each ddname should be unique within the job step. If duplicate   
 
   ddnames appear in a job step, processing is as follows:  
 
  + In a JES2 system: The system performs device and space  
 
allocation and disposition processing for both DD statements;   
 
however, it directs all references to the first DD statement in 
 
the step. 

to govern the use of DD statements appearing in the step, not the
overriding dd statements.

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-31 Thread Paul Gilmartin
On Wed, 30 Jul 2008 08:57:49 -0500, Jeff Holst wrote:

IBM's out was that they had said that the results of the overlappping MOVE
were unpredictable, so this did not violate their compatablity statement that
programs would be source level compatable if they were coded according to
the language reference. As we commented at the time, the results were
predictable (the compiler does not take random actions), but the results might
change with future releases.

I dealt once with a compiler vendor when I had a program that
got an error trap which vanished when I enabled debugging/tracing
(which then generated unoptimized code).  The vendor shrugged and
pointed out (accurately) that the construct I misused was documented
as having unpredictable (perhaps undefined) effect.  Didn't help
me much with my debugging.

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-30 Thread Jeff Holst
On Tue, 29 Jul 2008 10:05:15 -0500, Paul Gilmartin [EMAIL PROTECTED] 
wrote:


Copout!  This is irresponsible language design.  If the JCL developers
had any pride of craftsmanship, they would remove all references to
unpredictable and unsupported from the language specification
by variously either:

o Specifying clearly the predictable behavior of supported constructs

o Reporting as JCL errors all remaining (unsupported) constructs.

As for the compatibility implications of reporting as errors use
of constructs that might not work in the future, better that
progammers foolishly exploiting such constructs be informed today
rather than in the future.

I quite agree. I have been in IT for a long time. (We didn't call it IT when I 
started.) My first job was on an IBM 360, coding in COBOL. I haven't looked at 
a COBOL reference manual lately, but back at that time it stated that if the 
source and target fields of a MOVE statement overlapped, the results were 
unpredictable. However, the compiler did not generate an error - it simply 
compiled any character move statement (numerics were another matter) as 
one or more MVC commands. (More than one would be needed if the move 
involved more than 256 characters.) Programmers would routinely initialize 
large arrays by initializing the first row and doing an overlapping move. 

Problem came when the 370 arrived and we upgraded to a new COBOL 
compiler. Now, a character moveof more that 256 characters were compiled 
as a MVCL. For MVCL, when source and target fields overlap, a condition code 
is set and no data movement occurs. The new COBOL did not check the 
return code, the COBOL move statement effectively became a NO-OP. No 
error statments in the COMPILE and the program would either abend when it 
later found some field uninitialized or it would produce incorrect results.

IBM's out was that they had said that the results of the overlappping MOVE 
were unpredictable, so this did not violate their compatablity statement that 
programs would be source level compatable if they were coded according to 
the language reference. As we commented at the time, the results were 
predictable (the compiler does not take random actions), but the results might 
change with future releases.

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-30 Thread Jeff Holst
On Tue, 29 Jul 2008 09:45:44 -0500, Paul Gilmartin [EMAIL PROTECTED] 
wrote:

Hmmm.  I wonder what happens when there are two (or more) overriding
DD statements referring to the same DDNAME in the PROC.  Absent any
explicit exclusion, I'd expect from the general description both (all)
to be effective, and parameters on them to be merged into the PROC DD.
But in what order?

Actually, this is covered in the reference manual, as it states that all but 
the 
first will be processed for allocation purposes (new data sets will be 
allocated 
and the DISP parameter will be honored) but only the first will actually be 
merged into the PROC DD. 

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-29 Thread Paul Gilmartin
On Mon, 28 Jul 2008 15:58:53 EDT, IBM Mainframe Discussion List wrote:



In a message dated 7/28/2008 10:55:50 A.M. Central Daylight Time,
PaulG writes:
I certainly remember (though obviously not as clearly as Mr. Blair)
a  day and age when overriding DD statements were required to appear
in the same  order as the overridden DDNAMEs in the proc.  I was
delighted to see the  constraint relaxed.

Suppose someone who does not know that proc X is used by 10 other jobs with
overriding DDs in them decides to rearrange the DD statements within proc  X.

Why ever would anyone do that?

Which mode of processing by IBM would be better?  Another  possibility is
that beaucoup jobs use overrides for a universally available  vendor proc like
ASM, LKED, FDRxxx, CAwhatever, etc., and then the vendor  decides to rearrange
the DD statements within the distributed machine-readable  PROCLIB containing
that proc.  Yes, I know, we can blame change control  when the inevitable
errors are found.  But it would be better to avoid the  errors than to find 
someone

I believe that the recent behavior where overriding DDNAMEs are associated
regardless of order would be more robust under such a change than the
older behavior where DDNAMEs newly out-of-order would be treated as
added rather than overriding.

to blame when they occur.  This situation seems  to me to be analogous to
users' building job streams that use output from  utilities like IDCAMS as 
their
input and require data set names to begin in  column X and volser in column Y,
e.g.  Then IBM changes the format of the  utility's output.  And it's not
limited to IBM.  Data centers also  have locally developed programs that 
generate
SYSOUT which is then used as input  for other programs, and the developer in
charge of a utility cannot be expected  to know all the downstream users of
his SYSOUT.

We have a program that postprocesses assember and binder SYSOUT.  It was
broken by HLASM and we adapted it.  It is further broken by Tachyon, so
that to use that postprocessor we revert to HLASM.  But it's unthinkable
that HLASM wouldn't support 31-bit addressing.  Perhaps in some distant
future it will even be 64-bit savvy.  And there will be LPA above-the-bar.

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-29 Thread (IBM Mainframe Discussion List)
 
 
In a message dated 7/29/2008 3:25:25 A.M. Central Daylight Time,  
[EMAIL PROTECTED] writes:
Suppose someone who does not know that proc X is used by 10 other  jobs with
overriding DDs in them decides to rearrange the DD  statements within proc  
X.
 
Why ever would anyone do that?
 
Possible reasons:
1.  When I create JCL, I put my DD statements in alphabetic order by  ddname 
within each step.  It helps me find one later if I need to.  My  JCL is not 
used by others, so I am free to reorder my own DD statements  according to 
whim. 
 Someone with the same desire to alphabetize everything  may cluelessly 
reorder a proc that others use without understanding the  repercussions of what 
he 
is doing.
2.  People make mistakes regardless of how clueless or anal retentive  they 
are.  Maybe somebody is editing a proc, accidentally deletes a DD  statement, 
then realizes his mistake, recreates the now missing DD statement,  and puts it 
in the wrong place because he doesn't remember exactly where it was  in 
relation to the 20 or 30 other DD statements and he doesn't know that exact  
placement may be critically important.
3.  Why would anyone ever do anything stupid?  Never.  Does  that mean that 
stupid things never happen?
4.  My program can never get to this point in the logic, so I don't  need any 
code here to handle this situation.
5.  As Donald Rumsfeld said, Stuff happens.
 
Bottom line:  software and procedures should be bullet-proof enough to  
survive situations that occur for reasons that make no sense to those of us who 
 
are rational, competent, wise, and blessed with huge amounts of  experience.
 
Bill  Fairchild
Rocket Software





**Get fantasy football with free live scoring. Sign up for 
FanHouse Fantasy Football today.  
(http://www.fanhouse.com/fantasyaffair?ncid=aolspr000520)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-29 Thread Jeff Holst
On Mon, 28 Jul 2008 10:55:40 -0500, Paul Gilmartin [EMAIL PROTECTED] 
wrote:

I'll sometimes disable a lot of JCL with IF.  Which is why I regret
that IF FALSE is documented as not supported and unpredictable
in behavior (although no error is reported and the construct has
(almost) the intuitive effect).

If one takes the JCL reference literally, most of the examples they give are in 
fact not supported and unpredictable. Why? The manual states;

A relational-expression consists of: 
Comparison operators 
Logical operators 
NOT (¬) operators 
Relational-expression keywords.

A value, such as 8 in the relationship-expression RC = 8 is none of these. 

I recently opened an ETR to clarify this, and was told that what they test is 
relationship-expressions of the form keyword comparison-operator value, in 
that order. Yet value is not listed as one of the allowed components of a 
relationship expression. While the documentation does not rule out such 
expressions as STEP1.RC = STEP2.RC (and it does work), I was told that this 
was not something that it is not in fact supported and might not work in the 
future. 

What prompted my ETR was that I had encontered some installation JCL from 
CA that contained a construct something like
//  SET VAR1 = 1
intervening JCL
// IF VAR1 = 1 THEN
more JCL
// ENDIF
which works, but CA-JCLCHECK flagged this as an error. 

After some arguement with CA-JCLCHECK support, where I argued VAR1 is 
not a keyword (by the time the system evaluates the truth of the expression, 
it has been replaced by the value 1), and that the JCL Reference was clearly 
incomplete in its definition, I expressed my observations to IBM in an ETR.

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-29 Thread Paul Gilmartin
On Thu, 24 Jul 2008 15:56:17 -0500, Jeff Holst wrote:

However, on page 5-4 of that same manual it says:

Place modifying OUTPUT JCL and DD statements in the following order, after
the EXEC statement that calls the procedure:
  For each procedure step in the invoked procedure:
   1. Overriding statements can appear in any order when they explicitly
   specify the step that is being overridden. Added statements can appear
  in any order when they specify the step explicitly.

Hmmm.  I wonder what happens when there are two (or more) overriding
DD statements referring to the same DDNAME in the PROC.  Absent any
explicit exclusion, I'd expect from the general description both (all)
to be effective, and parameters on them to be merged into the PROC DD.
But in what order?

Also, in:

 5.2.1.2 z/OS V1R9.0 MVS JCL Reference
 ___

5.2.1.2 Modifying OUTPUT JCL and DD Statements
   ...
   Supplying In-stream Data for a Procedure

   To supply a procedure step with data from the input stream, code a DD * or 
DD DATA
   statement in the calling step after the last overriding and added DD 
statement.  ...

This appears to say that SYSIN DD statements must appear last among overrides.
Has this ever been enforced?

I hate JCL!

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-29 Thread Paul Gilmartin
On Tue, 29 Jul 2008 09:18:54 -0500, Jeff Holst wrote:

On Mon, 28 Jul 2008 10:55:40 -0500, Paul Gilmartin wrote:

I'll sometimes disable a lot of JCL with IF.  Which is why I regret
that IF FALSE is documented as not supported and unpredictable
in behavior (although no error is reported and the construct has
(almost) the intuitive effect).

If one takes the JCL reference literally, most of the examples they give are in
fact not supported and unpredictable. Why? The manual states;

A relational-expression consists of:
Comparison operators
Logical operators
NOT (¬) operators
Relational-expression keywords.

A value, such as 8 in the relationship-expression RC = 8 is none of these.

I recently opened an ETR to clarify this, and was told that what they test is
relationship-expressions of the form keyword comparison-operator value, in

And even this doesn't cover IF KEYWORD, which is tolerated, whatever
its effect.  It appears almost as if the developer was considerably
more skilled at language design than the tech writer.

that order. Yet value is not listed as one of the allowed components of a
relationship expression. While the documentation does not rule out such
expressions as STEP1.RC = STEP2.RC (and it does work), I was told that this
was not something that it is not in fact supported and might not work in the
future.

Copout!  This is irresponsible language design.  If the JCL developers
had any pride of craftsmanship, they would remove all references to
unpredictable and unsupported from the language specification
by variously either:

o Specifying clearly the predictable behavior of supported constructs

o Reporting as JCL errors all remaining (unsupported) constructs.

As for the compatibility implications of reporting as errors use
of constructs that might not work in the future, better that
progammers foolishly exploiting such constructs be informed today
rather than in the future.

I hate JCL!

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-28 Thread Jeff Holst
On Fri, 25 Jul 2008 17:56:35 -0500, William H. Blair 
[EMAIL PROTECTED] wrote:

Jeff Holst noted that an IBM SRL states:

 1. Overriding statements can appear in any order when
they explicitly specify the step that is being
overridden.

This is apparently the missing documentation. However,
it is not completely technically correct, because it is
obviously not, in fact, necessary that they explicitly
specify the step that is being overridden.

Thanks for the heads-up.

--
WB

If you go on to read the next paragraph it explains what happens when the 
step is not specified (it uses the step name from the last DD statement that 
did specify a step name, and if none exists the first step in the proc is 
overridden.) The paragraph that follows further clarifies things by stating 
that 
overriding DD statements must appear in the order of the steps in the proc. 

It is misleading to take one paragraph in isolation.

jh

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-28 Thread Paul Gilmartin
On Mon, 28 Jul 2008 09:22:03 -0500, Jeff Holst wrote:

On Fri, 25 Jul 2008 17:56:35 -0500, William H. Blair wrote:

Jeff Holst noted that an IBM SRL states:

 1. Overriding statements can appear in any order when
they explicitly specify the step that is being
overridden.

If you go on to read the next paragraph it explains what happens when the
step is not specified (it uses the step name from the last DD statement that
did specify a step name, and if none exists the first step in the proc is
overridden.) The paragraph that follows further clarifies things by stating 
that
overriding DD statements must appear in the order of the steps in the proc.

It is misleading to take one paragraph in isolation.

I certainly remember (though obviously not as clearly as Mr. Blair)
a day and age when overriding DD statements were required to appear
in the same order as the overridden DDNAMEs in the proc.  I was
delighted to see the constraint relaxed.  It makes JCL coding
easier and more robust because it's easier to spot coding errors
because of the decreased likelihood that the coded overriding SYSIN
would have no effect.

I don't know how long ago the ordering constraint was removed -- it's
documented in 5.2.1.2 z/OS V1R1.0 MVS JCL Reference, but surely
that's the source of most of the objections in this thread, so I'm
puzzled that there was no shrill outcry back then -- it should have
created major incompatibilities.

But the reordering occurs only when both DDNAMES match DDNAMES
in the overridden PROC; else at least one is an added DD statement.
Prior to the reordering facility, a misordering would have
resulted in a duplicate DDNAME within a step, and I read in
12.1.2 z/OS V1R1.0 MVS JCL Reference:

  12.1.2 Name Field

   When specified, code a ddname as follows:

 * Each ddname should be unique within the job step. ...

(yes, it then goes on to specify (partially) the effect of duplicate
DDNAMES within a step, including different behavior for JES3 and
JES3).  So programmers who relied on the duplicate SYSIN introduced
by the GENERATE STATEMENT were at least ignoring a should and
should have recognized their behavior as risky and perhaps not
portable between JES2 and JES3.

I find the whining about APAR OA05951 simply incredible.  As I read
it, prior to the fix, contents of various instream data sets were
treated positionally, ignoring the specific DDNAMES.  With the fix,
the content matches the DDNAMEs.  I can see this only as repair of
a blatant Programming ERror.

Finally, I mostly concur with Tom Marchant's reply to Mark Zelden's
What's wrong with comments?  I use the bogus DDNAME largely to
select among different versions of SYSIN for development and
testing.  One exception is when I have a large header comment.
Then I may use:

//DOC   EXEC  PGM=IEFBR14
//COMMENTS  DD  *

Text that I can easily reflow and reformat.

I suppose that if I were more proficient with ISPF's
facilities for limiting column ranges and reformatting
text, I would use those instead.  But yet, it avoids
the distraction of the //* for the reader.

I'll sometimes disable a lot of JCL with IF.  Which is why I regret
that IF FALSE is documented as not supported and unpredictable
in behavior (although no error is reported and the construct has
(almost) the intuitive effect).

-- gil

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-28 Thread (IBM Mainframe Discussion List)
 
 
In a message dated 7/28/2008 10:55:50 A.M. Central Daylight Time,  
[EMAIL PROTECTED] writes:
I certainly remember (though obviously not as clearly as Mr. Blair)
a  day and age when overriding DD statements were required to appear
in the same  order as the overridden DDNAMEs in the proc.  I was
delighted to see the  constraint relaxed.
 
Suppose someone who does not know that proc X is used by 10 other jobs with  
overriding DDs in them decides to rearrange the DD statements within proc  X.  
Which mode of processing by IBM would be better?  Another  possibility is 
that beaucoup jobs use overrides for a universally available  vendor proc like 
ASM, LKED, FDRxxx, CAwhatever, etc., and then the vendor  decides to rearrange 
the DD statements within the distributed machine-readable  PROCLIB containing 
that proc.  Yes, I know, we can blame change control  when the inevitable 
errors are found.  But it would be better to avoid the  errors than to find 
someone 
to blame when they occur.  This situation seems  to me to be analogous to 
users' building job streams that use output from  utilities like IDCAMS as 
their 
input and require data set names to begin in  column X and volser in column Y, 
e.g.  Then IBM changes the format of the  utility's output.  And it's not 
limited to IBM.  Data centers also  have locally developed programs that 
generate 
SYSOUT which is then used as input  for other programs, and the developer in 
charge of a utility cannot be expected  to know all the downstream users of 
his SYSOUT.
 
Bill  Fairchild
Rocket Software





**Get fantasy football with free live scoring. Sign up for 
FanHouse Fantasy Football today.  
(http://www.fanhouse.com/fantasyaffair?ncid=aolspr000520)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-25 Thread William H. Blair
Jeff Holst noted that an IBM SRL states:

 1. Overriding statements can appear in any order when 
they explicitly specify the step that is being 
overridden.

This is apparently the missing documentation. However,
it is not completely technically correct, because it is
obviously not, in fact, necessary that they explicitly 
specify the step that is being overridden. 

Thanks for the heads-up.

--
WB

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Shmuel Metz (Seymour J.)
In
[EMAIL PROTECTED],
on 07/16/2008
   at 08:43 PM, John Mattson [EMAIL PROTECTED] said:

Perfect example of a program being TOO HELPFUL. 

If it's changing the order then it's not helpful, just wrong.

So, is this a bug or working as designed? 

Did you report it? It sure sounds like a bug. Even if someone deliberately
broke it.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 07/17/2008
   at 03:54 PM, Matthew Stitt [EMAIL PROTECTED] said:

The confusing issue was begun a very long time ago.  If there is apparent
input data with no specific DD statement to match it up with, there was a
SYSIN dd statement generated above it.  Until recently, that extraneous
SYSIN dd statement had no effect on the JCL except to prevent either a
JCL error or an invalid jcl error as this SYSIN was ignored since it
was out of sequence (in most cases) with the specification of SYSIN (if
there was one) in the procedure.

WTF? There are plenty of cataloged procedures with no SYSIN DD, and the
generated SYSIN DD most definitely has an effect with those. In
particular, the compiler procs typically have no SYSIN DD in the compile
step.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on
07/17/2008
   at 12:05 PM, Gibney, Dave [EMAIL PROTECTED] said:

  I guess this shouldn't have changed for the sake of backass
compatibility. But, I've always been bothered (and debugged application
JCL) when overrides didn't match the order in procs (and the messages
there were almost non-existent).

IBM distributed procs that depended on the old behavior four decades ago.
The change is just dumb.

  Folks relying in //SYSIN DD * GENERATED STATEMENT are getting what
they deserve.  :) 

Others have reported that the bug occurs even if the DD * is explicit, and
the APAR text confirms that.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 07/17/2008
   at 02:21 AM, William H. Blair [EMAIL PROTECTED] said:

Regardless, IT'S STILL DOCUMENTED TO WORK THE OLD WAY. Since it is hard
for me to believe that this behavior is not intentional, you probably
have as your only recourse a Readers' Comments form submission

His proper recourse is to open a PMR.

This is clearly an intentional change in behavior,

Perhaps, but that doesn't guaranty that IBM will reject an APAR. It's
broken as designed (BAD).
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 07/17/2008
   at 08:55 PM, Paul Gilmartin [EMAIL PROTECTED] said:

Now advancing technology has relieved those
constraints and IBM is DTRT in making JCL infinitesimally closer to what
it should have been from the beginning.

Not all change is progress. This change was ill conceived.

I'd be glad to see more changes for robustness and clear reporting of
user errors. 

This was not such a change. Nor are the other changes you suggest.
 
-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 ISO position; see http://patriot.net/~shmuel/resume/brief.html 
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-24 Thread Jeff Holst
On Thu, 17 Jul 2008 02:21:29 -0500, William H. Blair 
[EMAIL PROTECTED] wrote:


Note that page 12-14 of the z/OS V1R9.0 MVS JCL Reference SRL
_still_ states:

 To override more than one DD statement in a procedure, place the
 overriding DD statements in the same order as the overridden DD
 statements in the procedure.

However, on page 5-4 of that same manual it says:

Place modifying OUTPUT JCL and DD statements in the following order, after 
the EXEC statement that calls the procedure: 
  For each procedure step in the invoked procedure: 
   1. Overriding statements can appear in any order when they explicitly
   specify the step that is being overridden. Added statements can appear
  in any order when they specify the step explicitly.
   2. Overriding and added statements that do not explicitly specify the step
   are applied to the step named in the previous overriding or added
  OUTPUT JCL or DD statement. If no previous override statement named a
  step, then they are applied to the first step in the procedure.
  For all procedure steps in the invoked procedure, place the modifying
  statements for each procedure step in the same order in which the 
  procedure steps are specified.

The 1.7 version of the manual reads the same. I have not looked to see how 
far back this section of the manual has read this way.

It appears to me that the change brought about in z/OS 1.8 in response to 
APAR OA05951 (which was accepted in 2004 for inclusion in a future release) 
brings the behavior of the JCL interpreter in compliance with page 5-4. IMO 
page 5-4 describes the syntax for overrides in the JCL and page 12-14 
describes the best practive for coding overrides. 

Note that APAR OA05951 gave as a local fix coding the JCL as described on 
page 12-14.

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-22 Thread Don Leahy
On Mon, Jul 21, 2008 at 3:18 PM, McKown, John
[EMAIL PROTECTED] wrote:

 I agree, in part. I tried to use DisplayWrite/370. shudder. But the
 main problem, as usual, is management. The mainframe has been around a
 long time. We have a lot of policies and procedures. Some of which are
 good and necessary. Some of which make no sense (to me). At least around
 here, in the past, the Windows environment could change quickly to
 demands. Why? Because they were allowed to. There was little change
 control. There was almost no review of what was going on. Now that
 management here is implementing this, two things have happened: (1) the
 cowboys has gone on to greener pastures where they are allowed to
 get work done, not fill out paper and (2) change has slowed down to
 almost mainframe-likeness.

 John McKown

And in some cases even slower

Last year we created a *new* mainframe application because the
distributed platform guys could not commit to the project's delivery
dates (which were legislation-driven and could not be changed).

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread Rick Fochtman

---snip
... or a DC-3. But like them, it still works.
--unsnip
The durability of the DC-3 saved my a** in Viet Nam three times; I'd 
really hate to see anyone bash it. It's old and slow, but it still 
works very well.


The same holds true of an awful lot of programs; they're old and slow 
but THEY WORK.


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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Rick Fochtman
 Sent: Monday, July 21, 2008 1:16 PM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Re: Example of what a very small JCL Interpreter can 
 do to your installation.
 
 ---snip
 ... or a DC-3. But like them, it still works.
 --unsnip
 The durability of the DC-3 saved my a** in Viet Nam three times; I'd 
 really hate to see anyone bash it. It's old and slow, but it still 
 works very well.
 
 The same holds true of an awful lot of programs; they're old and slow 
 but THEY WORK.

Unlikely today's programs which tend to crash quickly and often. Not
mentioning any particular OS, but you can see through that, can't you?


--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology

The information contained in this e-mail message may be privileged
and/or confidential.  It is for intended addressee(s) only.  If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense.  If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it.  

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread Rick Fochtman

snip
Unlikely today's programs which tend to crash quickly and often. Not 
mentioning any particular OS, but you can see through that, can't you?

---unsnip--
Bet your sweet bippy... :-))

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread Clark Morris
On 21 Jul 2008 11:32:07 -0700, in bit.listserv.ibm-main you wrote:

snip
Unlikely today's programs which tend to crash quickly and often. Not 
mentioning any particular OS, but you can see through that, can't you?
---unsnip--
Bet your sweet bippy... :-))

Given the user surly nature of some of the systems that I have seen
and some of the interesting abend situations, I don't know that the
mainframe platform is much better.  One of the main reasons that many
using departments went to non-mainframe was the perceived lack of
support and cooperation from IT.  Getting problems fixed in some
organizations was worse than dealing with Microsoft.   Having used
PROFs and the CICS based replacement for e-mail, I find even Outlook
far superior (I use Agent 4.x).  

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Clark Morris
 Sent: Monday, July 21, 2008 2:00 PM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Re: Example of what a very small JCL Interpreter can 
 do to your installation.
 
 On 21 Jul 2008 11:32:07 -0700, in bit.listserv.ibm-main you wrote:
 
 snip
 Unlikely today's programs which tend to crash quickly and often. Not 
 mentioning any particular OS, but you can see through 
 that, can't you?
 ---unsnip--
 Bet your sweet bippy... :-))
 
 Given the user surly nature of some of the systems that I have seen
 and some of the interesting abend situations, I don't know that the
 mainframe platform is much better.  One of the main reasons that many
 using departments went to non-mainframe was the perceived lack of
 support and cooperation from IT.  Getting problems fixed in some
 organizations was worse than dealing with Microsoft.   Having used
 PROFs and the CICS based replacement for e-mail, I find even Outlook
 far superior (I use Agent 4.x).  

I agree, in part. I tried to use DisplayWrite/370. shudder. But the
main problem, as usual, is management. The mainframe has been around a
long time. We have a lot of policies and procedures. Some of which are
good and necessary. Some of which make no sense (to me). At least around
here, in the past, the Windows environment could change quickly to
demands. Why? Because they were allowed to. There was little change
control. There was almost no review of what was going on. Now that
management here is implementing this, two things have happened: (1) the
cowboys has gone on to greener pastures where they are allowed to
get work done, not fill out paper and (2) change has slowed down to
almost mainframe-likeness.

--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology

The information contained in this e-mail message may be privileged
and/or confidential.  It is for intended addressee(s) only.  If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense.  If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it.  

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-21 Thread Howard Brazee
On 21 Jul 2008 11:26:40 -0700, [EMAIL PROTECTED] (McKown,
John) wrote:

 The durability of the DC-3 saved my a** in Viet Nam three times; I'd 
 really hate to see anyone bash it. It's old and slow, but it still 
 works very well.
 
 The same holds true of an awful lot of programs; they're old and slow 
 but THEY WORK.

Unlikely today's programs which tend to crash quickly and often. Not
mentioning any particular OS, but you can see through that, can't you?

There was a DC-3 that crashed into a mountain - without stopping its
flight.   It was pretty messed up, but finished its mission.

Software crashes can be like that DC-3 crash as well.

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread Mark Zelden
On Thu, 17 Jul 2008 20:55:10 -0500, Paul Gilmartin [EMAIL PROTECTED] wrote:



I have long been in the habit of using:

//HIDDEN  DD  *  (text to be ignored)
 All the unprocessed text
 that I want.

I think this makes my intent far more clear than relying on your

What's wrong with comments?

//* 
//*  All the unprocessed text   
//*  that I want.   
//*

 --
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Gibney, Dave
 Sent: Thursday, July 17, 2008 2:05 PM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Re: Example of what a very small JCL Interpreter can 
 do to your installation.
 
   I guess this shouldn't have changed for the sake of backass
 compatibility. But, I've always been bothered (and debugged 
 application
 JCL) when overrides didn't match the order in procs (and the messages
 there were almost non-existent).
   Folks relying in //SYSIN DD * GENERATED STATEMENT are getting what
 they deserve.  :) 

I agree with that. If I had been the coder, and allowed to by
management, I would have made it:

//IDIOT DD * GENERATED STATEMENT

Of course, back in the day, most utilities used SYSIN for their control
statements. And they were usually on physical punched cards. So
generating the SYSIN automagically could be argued as being a good
design point. It saved the user from punching a card. And saved having
to read said card. And you didn't need to worry about the card becoming
damaged. OK, so maybe it was a good idea. Back in the day.

--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology

The information contained in this e-mail message may be privileged
and/or confidential.  It is for intended addressee(s) only.  If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense.  If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it.  

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Mark Zelden
 
 On Thu, 17 Jul 2008 20:55:10 -0500, Paul Gilmartin wrote:
 
 
 
 I have long been in the habit of using:
 
 //HIDDEN  DD  *  (text to be ignored)
  All the unprocessed text
  that I want.
 
 I think this makes my intent far more clear than relying on your
 
 What's wrong with comments?
 
 //* 
 //*  All the unprocessed text   
 //*  that I want.   
 //*

Too obvious.  :-)

-jc-

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread J R
 Date: Fri, 18 Jul 2008 09:47:14 -0500
 From: [EMAIL PROTECTED]
 Subject: Re: Example of what a very small JCL Interpreter can do to your 
 installation.
 To: IBM-MAIN@BAMA.UA.EDU
 
  -Original Message-
  From: IBM Mainframe Discussion List On Behalf Of Mark Zelden
  
  On Thu, 17 Jul 2008 20:55:10 -0500, Paul Gilmartin wrote:
  
  
  
  I have long been in the habit of using:
  
   //HIDDEN DD * (text to be ignored)
   All the unprocessed text
   that I want.
  
  I think this makes my intent far more clear than relying on your
  
  What's wrong with comments?
  
  //* 
  //* All the unprocessed text 
  //* that I want. 
  //* 
 
 Too obvious. :-)
 
 -jc-
 
 
Nothing to whine about.  ;-)  
 
 
_
Stay in touch when you're away with Windows Live Messenger.
http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_messenger2_072008
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread Tom Marchant
On Fri, 18 Jul 2008 07:47:20 -0500, Mark Zelden wrote:

On Thu, 17 Jul 2008 20:55:10 -0500, Paul Gilmartin wrote:



I have long been in the habit of using:

//HIDDEN  DD  *  (text to be ignored)
 All the unprocessed text
 that I want.

I think this makes my intent far more clear than relying on your

What's wrong with comments?

//*
//*  All the unprocessed text
//*  that I want.
//*

Comments are good.  But for effectively deleting in-stream data temporarily,
I prefer to use Paul's approach.  It's easier if there are more than a very
few statements, especially in cases where all 80 columns are used.  If I
want to temporarily delete a lot of JCL, I might code a DD DATA.  That one
needs to be used with greater care though because it can be very confusing.

-- 
Tom Marchant

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-18 Thread Patrick O'Keefe
On Thu, 17 Jul 2008 20:55:10 -0500, Paul Gilmartin 
[EMAIL PROTECTED] wrote:

...
o Duplicate DDNAMEs within a step should be treated as a JCL error.
  (I understand JES3 already does this.)  This itself would have
  blocked the pitfall described in this thread.
...

I've seen jobs that actually made use of this.  It certainly gives
nothing that can't be achieved in other (and easier to understand)
ways, but somebody found it useful.  Now it can't be changed 
without breaking something.  (... unless OPEN's behavior has 
changed so that the dup DDnames can't be referenced any more.)

I think I'd rather here some people whine that obtuse techniques 
are allowed than hear others whine that obtuse techniques that 
used to work have been fixed.  Maybe.

Pat O'Keefe

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread William H. Blair
John Mattson wrote:

 Somewhere between OS390 2.10 (our old system) and zos 1.08 (our 
 new system) the JCL interpreter changed.

Funny you should notice that ... was wondering if anybody would.

The change was first introduced in z/OS 1.8. It worked the old way
in z/OS 1.7. When I first found this, I tested it all the way back 
to z/OS 1.4. 

 So, is this a bug or working as designed? 

IBM will have to say, unless someone can find something in the
z/OS 1.8+ SRLs that describes this new behavior. The old behavior
adheres to the rules of JCL in effect since OS/360 Release 13 MVT
(where it was first possible to have multiple in-stream [DD *]
data sets). But I have an opinion: it's a WAD, as I will attempt
to demonstrate.

Regardless, IT'S STILL DOCUMENTED TO WORK THE OLD WAY. Since it
is hard for me to believe that this behavior is not intentional,
you probably have as your only recourse a Readers' Comments form
submission -- but all that will do is just get this new behavior 
documented.

Note that page 12-14 of the z/OS V1R9.0 MVS JCL Reference SRL 
_still_ states:

 To override more than one DD statement in a procedure, place the 
 overriding DD statements in the same order as the overridden DD 
 statements in the procedure.

That is the OLD rule and behavior, not the NEW (as of z/OS 1.8).

This behavior occurs even if you provide a //SYSIN DD * statement
in front of the second in-stream data set. Doing so merely causes
the statement that would be automatically generated had one not 
been provided NOT to be generated (obviously, as you would expect).
So, the fact that you have a missing //SYSIN DD is not relevant,
and does not affect its behavior. The results are identical. Thus, 
if you submit this JCL:

//AFITJLMU JOB CLASS=S,MSGCLASS=X,TYPRUN=SCAN 
//UNVTEST  PROC 
//PS001   EXEC PGM=IEFBR14 
//REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE 
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB 
//MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB 
//SYSPRINT DD  SYSOUT=* 
//PEND - 
//* 
//JS001   EXEC PROC=UNVTEST 
//MYSCRIPT DD  * 
 WHATEVER 
/* 
//SYSIN DD  * 
 WHEREEVER 
/* 

where the overriding DD statements [i.e., MYSCRIPT and SYSIN]
are NOT in the same order as the overridden DD statements in 
the procedure then, starting with z/OS 1.8, both DD statements
in the PROC _are_ overridden, despite the fact that they aren't
explicitly [or implicitly] presented in the same order.

This is clearly an intentional change in behavior, and can only
be explained as someone's unthinking idea of how it should be
working I suspect. The fact that this behavior is not documented
(even in the SRL for the next release after the behavior was first
introduced) indicates to me that it was not thought to be of any
importance. They probably actually thought they were doing us a
big favor. But, wait! It's only going to get worse. Hang on to 
your hats, folks.

I had some job streams where multiple in-stream data sets with
the same DDname are defined (intentionally). So, I tested this
with a few of those jobs. What the converter apparently does is 
to reach down into the JOB's JCL where it finds the first match
on an overriding (it thinks!) DDname and then reorders the JCL
to match that in the PROC! Yes, you read that right. I did not
make that up. It reorders the input JCL! Programs that depend
upon different or matching DDnames in the TIOT in a specific
order will now be broken (but only if they are invoked using
a model [so to speak] PROC). In-stream JCL that does not use
a PROC apparently still works as before (no DD statements are 
reordered). But, I didn't want my existing SYSIN DD statement
in the PROC to be overridden, WHICH IS WHY I PUT IT AFTER A DD
STATEMENT THAT IS IN THE PROC AT THE END, SO THAT THE NEW DD
STATEMENT IN THE INPUT STREAM WOULD GET _ADDED_ TO THE STEP'S
JCL!  (Apparently, whoever made this change did not read, nor
understand, the distinction between OVERRIDING and ADDING JCL
DD statements to a step in a PROC -- a concept that has been
cast in concrete [at least until now] since 1965. 

So, IBM broke the old behavior. Normally, this would make me
consider it to be a bug. But it can't possibly be a bug. Too 
much code had to be written to make it work like this. Thus, 
it must be a feature. 

In fact, further testing reveals that this behavior is general
and ALL overriding DD statements in the instream JCL are just
simply reordered to match those in the PROC. For example, if
you submit this JCL:

//UNVTEST  PROC
//PS001   EXEC PGM=IEFBR14 
//FIRSTDD  DD  DISP=SHR,DSN=SYS1.LPALIB
//REMOTE   DD  DISP=SHR,DSN=SYS1.PROCLIB   
//SYSINDD  DISP=SHR,DSN=SYS1.PARMLIB   
//MYSCRIPT DD  DISP=SHR,DSN=SYS1.LINKLIB   
//SYSPRINT DD  SYSOUT=*
//PEND 

Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Mark Zelden
On Wed, 16 Jul 2008 20:43:03 -0700, John Mattson [EMAIL PROTECTED]
wrote:

There has been some talk about changing JCL interpretation.  Sure
it is old, and ugly, but we are used to it, and it does work.  Here is
what happened going from os390 to zos 1.08

Somewhere between OS390 2.10 (our old system) and zos 1.08 (our
new system) the JCL interpreter changed.  Here is a simplified example of
some JCL we have been running for years.
//AFITJLMU JOB CLASS=S,MSGCLASS=X,TYPRUN=SCAN
//UNVTEST  PROC
//PS001   EXEC PGM=IEFBR14
//REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB
//MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB
//SYSPRINT DD  SYSOUT=*
//PEND -
//*
//JS001   EXEC PROC=UNVTEST
//MYSCRIPT DD  *
 WHATEVER
/*
 WHEREEVER
/*
   Note the Extra sysin which the programmer left there in case he ever
needed it again, soft of self documenting.  Worked just fine... until zOS
1.08

Here is how OS390 2.10 handles the GENERATED SYSIN
//JS001   EXEC PROC=UNVTEST
++UNVTEST  PROC
++PS001   EXEC PGM=IEFBR14
++REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE
++SYSINDD  DISP=SHR,DSN=QALC.UNVLIB
//MYSCRIPT DD  *
+/MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB
++SYSPRINT DD  SYSOUT=*
//SYSIN DD *   GENERATED STATEMENT


Here is how zOS 1.08 handles the GENERATED SYSIN

4 ++UNVTEST  PROC
5 ++PS001   EXEC PGM=IEFBR14
6 ++REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE
7 //SYSIN DD *   GENERATED STATEMENT
  +/SYSINDD  DISP=SHR,DSN=QALC.UNVLIB
8 //MYSCRIPT DD  *
  +/MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB
9 ++SYSPRINT DD  SYSOUT=*

The os390 way, the JCL works.  zOS 1.8 it gets the old WHEREVER
junk in the sysin dd and fails. Sigh.
Notice that zos 1.08 neatly lines up the sysin from way down at
the bottom with the existing SYSIN.  Perfect example of a program being
TOO HELPFUL.  It wasn't broke, why did you fix it.
So, is this a bug or working as designed?  Or maybe there is an
option somewhere that I can change and have it work the way it used to.
MUCH better than changing hundreds of pieces of JCL. Really.




 APAR Identifier .. OA12842  Last Changed  08/06/10
  PROC DD STMTS OVERRIDEN BY DD * INCORROUT CONTENTS OF FILES
  SWAPPED ( OA05951 )
 
  Symptom .. IN INCORROUT Status ... CLOSED  UR3
  Severity ... 2  Date Closed . 06/04/13
  Component .. 5752SC1B9  Duplicate of 
  Reported Release . 709  Fixed Release  708
  Component Name 5752 CNVRTR/INT  Special Notice
  Current Target Date ..06/04/15  Flags
  SCP ...
  Platform 
 
  Status Detail: APARCLOSURE - APAR is being closed.
 
  PE PTF List:
 
  PTF List:
  Release 708   : No PTF planned
  Release 709   : No PTF planned
  Release 720   : No PTF planned
  Release 730   : No PTF planned
 
  Parent APAR:
  Child APAR list:
 
 
  ERROR DESCRIPTION:
   When DD statements within a procedure are overridden with
  instream data (DD * or DD DATA), the data within the data sets
  represented by those input stream DD statements may be swapped
  (exchanged) if the overriding DDs are not in the correct order;
  that is, in the order in which the overridden stmts appear in
  the procedure.
   This can happen because the MVS Converter may reverse the
  sequence of two or more instream DD stmts with respect to each
  other, but the data within the files referenced by those DD
  stmts does not move along with the DD stmts themselves.
   Running the same JCL in R707, the out of sequence instream
  DD statements were simply ignored.
 
   This issue was previously reported in OA05951, which was
  closed SUG.
 
  Additional Symptoms:
   IEF655I INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT
   SPECIFIED (msgIEF655I)
  May occur if a SYSIN DD * statement is GENERATED and now
  properly finds and overrides a SYSIN DD DSN= statement.
 
  Additional Keywords:
   SYSIN reversed reversal, asterisk, instream
 



--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED]
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Scott Rowe
How on earth can IBM make a change as significant as this and not even document 
the change in behavior?  I can imagine this affecting many job streams with 
negative consequences.

 Mark Zelden [EMAIL PROTECTED] 7/17/2008 8:54 AM 
APAR Identifier .. OA12842  Last Changed  08/06/10
  PROC DD STMTS OVERRIDEN BY DD * INCORROUT CONTENTS OF FILES
  SWAPPED ( OA05951 )

  Symptom .. IN INCORROUT Status ... CLOSED  UR3
  Severity ... 2  Date Closed . 06/04/13
  Component .. 5752SC1B9  Duplicate of 
  Reported Release . 709  Fixed Release  708
  Component Name 5752 CNVRTR/INT  Special Notice
  Current Target Date ..06/04/15  Flags
  SCP ...
  Platform 

  Status Detail: APARCLOSURE - APAR is being closed.

  PE PTF List:

  PTF List:
  Release 708   : No PTF planned
  Release 709   : No PTF planned
  Release 720   : No PTF planned
  Release 730   : No PTF planned

  Parent APAR:
  Child APAR list:


  ERROR DESCRIPTION:
   When DD statements within a procedure are overridden with
  instream data (DD * or DD DATA), the data within the data sets
  represented by those input stream DD statements may be swapped
  (exchanged) if the overriding DDs are not in the correct order;
  that is, in the order in which the overridden stmts appear in
  the procedure.
   This can happen because the MVS Converter may reverse the
  sequence of two or more instream DD stmts with respect to each
  other, but the data within the files referenced by those DD
  stmts does not move along with the DD stmts themselves.
   Running the same JCL in R707, the out of sequence instream
  DD statements were simply ignored.

   This issue was previously reported in OA05951, which was
  closed SUG.

  Additional Symptoms:
   IEF655I INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT
   SPECIFIED (msgIEF655I)
  May occur if a SYSIN DD * statement is GENERATED and now
  properly finds and overrides a SYSIN DD DSN= statement.

  Additional Keywords:
   SYSIN reversed reversal, asterisk, instream




--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group - ZFUS G-ITO
mailto:[EMAIL PROTECTED] 
z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/ 
Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html


Note that my email domain has changed from jo-annstores.com to joann.com.  
Please update your address book and other records to reflect this change.

CONFIDENTIALITY/EMAIL NOTICE: The material in this transmission contains 
confidential and privileged information intended only for the addressee.  If 
you are not the intended recipient, please be advised that you have received 
this material in error and that any forwarding, copying, printing, 
distribution, use or disclosure of the material is strictly prohibited.  If you 
have received this material in error, please (i) do not read it, (ii) reply to 
the sender that you received the message in error, and (iii) erase or destroy 
the material. Emails are not secure and can be intercepted, amended, lost or 
destroyed, or contain viruses. You are deemed to have accepted these risks if 
you communicate with us by email. Thank you.

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Bruno Sugliani
On Thu, 17 Jul 2008 10:37:50 -0400, Scott Rowe [EMAIL PROTECTED] wrote:

How on earth can IBM make a change as significant as this and not even
document the change in behavior?  I can imagine this affecting many job
streams with negative consequences.


  May occur if a SYSIN DD * statement is GENERATED and now
  properly finds and overrides a SYSIN DD DSN= statement.

Perhaps because they used MAY occur 
Could be  my english , but i would have expected something like 
will occur 
it is a bit difficult to document a may be 

just wondering
 
Bruno Sugliani 
zxnetconsult(at)free(dot)fr

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Gibney, Dave
  I guess this shouldn't have changed for the sake of backass
compatibility. But, I've always been bothered (and debugged application
JCL) when overrides didn't match the order in procs (and the messages
there were almost non-existent).
  Folks relying in //SYSIN DD * GENERATED STATEMENT are getting what
they deserve.  :) 

-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of Bruno Sugliani
Sent: Thursday, July 17, 2008 7:46 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: Example of what a very small JCL Interpreter can do to your
installation.

On Thu, 17 Jul 2008 10:37:50 -0400, Scott Rowe [EMAIL PROTECTED]
wrote:

How on earth can IBM make a change as significant as this and not even
document the change in behavior?  I can imagine this affecting many job
streams with negative consequences.


  May occur if a SYSIN DD * statement is GENERATED and now
  properly finds and overrides a SYSIN DD DSN= statement.

Perhaps because they used MAY occur 
Could be  my english , but i would have expected something like 
will occur 
it is a bit difficult to document a may be 

just wondering
 
Bruno Sugliani 
zxnetconsult(at)free(dot)fr

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] 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 [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Roger Bolan
I'm confused.  Are you saying that APAR OA12842 broke it? or that it fixed 
it?  It looks to me like they fixed a problem.
It says
The solution for this APAR has been shipped in the base code of 
z/OS 1.8 (HBB7730), JES2 1.8 (HJE7730) and JES3 1.8 (HJS7730). 

If I understood the original poster, he has
//AFITJLMU JOB CLASS=S,MSGCLASS=X,TYPRUN=SCAN 
//UNVTEST  PROC 
//PS001   EXEC PGM=IEFBR14 
//REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE 
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB 
//MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB 
//SYSPRINT DD  SYSOUT=* 
//PEND - 
//* 
//JS001   EXEC PROC=UNVTEST 
//MYSCRIPT DD  * 
 WHATEVER 
/* 
 WHEREEVER 
/* 

and the WHEREEVER causes a system generated //SYSIN which overrides his 
original 
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB 

I also like to leave junk at the bottom of my JCL members as notes.  But I 
always have a // hard end of job card before the junk at the bottom so I 
never see this problem. 

Roger Bolan
infoprint.com

Boulder, Colorado, USA 


P Think before you print 

IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU wrote on 07/17/2008 
08:37:50 AM:

 How on earth can IBM make a change as significant as this and not 
 even document the change in behavior?  I can imagine this affecting 
 many job streams with negative consequences.
 
  Mark Zelden [EMAIL PROTECTED] 7/17/2008 8:54 AM 
 APAR Identifier .. OA12842  Last Changed  08/06/10
   PROC DD STMTS OVERRIDEN BY DD * INCORROUT CONTENTS OF FILES
   SWAPPED ( OA05951 )
 
   Symptom .. IN INCORROUT Status ... CLOSED  UR3
   Severity ... 2  Date Closed . 06/04/13
   Component .. 5752SC1B9  Duplicate of 
   Reported Release . 709  Fixed Release  708
   Component Name 5752 CNVRTR/INT  Special Notice
   Current Target Date ..06/04/15  Flags
   SCP ...
   Platform 
 
   Status Detail: APARCLOSURE - APAR is being closed.
 
   PE PTF List:
 
   PTF List:
   Release 708   : No PTF planned
   Release 709   : No PTF planned
   Release 720   : No PTF planned
   Release 730   : No PTF planned
 
   Parent APAR:
   Child APAR list:
 
 
   ERROR DESCRIPTION:
When DD statements within a procedure are overridden with
   instream data (DD * or DD DATA), the data within the data sets
   represented by those input stream DD statements may be swapped
   (exchanged) if the overriding DDs are not in the correct order;
   that is, in the order in which the overridden stmts appear in
   the procedure.
This can happen because the MVS Converter may reverse the
   sequence of two or more instream DD stmts with respect to each
   other, but the data within the files referenced by those DD
   stmts does not move along with the DD stmts themselves.
Running the same JCL in R707, the out of sequence instream
   DD statements were simply ignored.
 
This issue was previously reported in OA05951, which was
   closed SUG.
 
   Additional Symptoms:
IEF655I INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT
SPECIFIED (msgIEF655I)
   May occur if a SYSIN DD * statement is GENERATED and now
   properly finds and overrides a SYSIN DD DSN= statement.
 
   Additional Keywords:
SYSIN reversed reversal, asterisk, instream
 
 
 
 
 --
 Mark Zelden
 Sr. Software and Systems Architect - z/OS Team Lead
 Zurich North America / Farmers Insurance Group - ZFUS G-ITO
 mailto:[EMAIL PROTECTED] 
 z/OS Systems Programming expert at 
http://expertanswercenter.techtarget.com/ 
 Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html
 
 
 Note that my email domain has changed from jo-annstores.com to 
 joann.com.  Please update your address book and other records to 
 reflect this change.
 
 CONFIDENTIALITY/EMAIL NOTICE: The material in this transmission 
 contains confidential and privileged information intended only for 
 the addressee.  If you are not the intended recipient, please be 
 advised that you have received this material in error and that any 
 forwarding, copying, printing, distribution, use or disclosure of 
 the material is strictly prohibited.  If you have received this 
 material in error, please (i) do not read it, (ii) reply to the 
 sender that you received the message in error, and (iii) erase or 
 destroy the material. Emails are not secure and can be intercepted, 
 amended, lost or destroyed, or contain viruses. You are deemed to 
 have accepted these risks if you communicate with us by email. Thank 
you.
 
 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to [EMAIL PROTECTED] 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 

Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Matthew Stitt
The confusing issue was begun a very long time ago.  If there is apparent
input data with no specific DD statement to match it up with, there was a
SYSIN dd statement generated above it.  Until recently, that extraneous
SYSIN dd statement had no effect on the JCL except to prevent either a JCL
error or an invalid jcl error as this SYSIN was ignored since it was out
of sequence (in most cases) with the specification of SYSIN (if there was
one) in the procedure.

Now with OA12842, (and I have seen other similar changes) the JCL specified
outside of the procedure (mostly for override purposes) does not have to be
in the same sequence as the JCL in the procedure.  The overriding JCL
statements will now be matched up irregardless of the sequence.

APAR OA12842 is fixing the problem where the input data is not moved along
with the matching overriding JCL statement, especially in the case of
multiple sets of input data.  This is where the original poster encountered
the problem.  The internally generated SYSIN dd statement has now been
matched up with the SYSIN dd statement in the procedure, and the input data
following this generated statement was moved along with it.This is where
the original poster encountered the problem.

WAD/BAD?  Depends on whether the end results are what makes you happy.  To
me you were doing something that was puzzling at the least.  Now you are
being forced to follow what was an assumed correct way of doing JCL coding.

On Thu, 17 Jul 2008 13:44:52 -0600, Roger Bolan [EMAIL PROTECTED] wrote:

I'm confused.  Are you saying that APAR OA12842 broke it? or that it fixed
it?  It looks to me like they fixed a problem.
It says
The solution for this APAR has been shipped in the base code of
z/OS 1.8 (HBB7730), JES2 1.8 (HJE7730) and JES3 1.8 (HJS7730).

If I understood the original poster, he has
//AFITJLMU JOB CLASS=S,MSGCLASS=X,TYPRUN=SCAN
//UNVTEST  PROC
//PS001   EXEC PGM=IEFBR14
//REMOTE   DD  DISP=SHR,DSN=MSYS.UCMD.REMOTE
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB
//MYSCRIPT DD  DISP=SHR,DSN=QALC.UNVLIB
//SYSPRINT DD  SYSOUT=*
//PEND -
//*
//JS001   EXEC PROC=UNVTEST
//MYSCRIPT DD  *
 WHATEVER
/*
 WHEREEVER
/*

and the WHEREEVER causes a system generated //SYSIN which overrides his
original
//SYSINDD  DISP=SHR,DSN=QALC.UNVLIB

I also like to leave junk at the bottom of my JCL members as notes.  But I
always have a // hard end of job card before the junk at the bottom so I
never see this problem.

Roger Bolan
infoprint.com

Boulder, Colorado, USA


P Think before you print

IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU wrote on 07/17/2008
08:37:50 AM:

 How on earth can IBM make a change as significant as this and not
 even document the change in behavior?  I can imagine this affecting
 many job streams with negative consequences.

  Mark Zelden [EMAIL PROTECTED] 7/17/2008 8:54 AM 
 APAR Identifier .. OA12842  Last Changed  08/06/10
   PROC DD STMTS OVERRIDEN BY DD * INCORROUT CONTENTS OF FILES
   SWAPPED ( OA05951 )

   Symptom .. IN INCORROUT Status ... CLOSED  UR3
   Severity ... 2  Date Closed . 06/04/13
   Component .. 5752SC1B9  Duplicate of 
   Reported Release . 709  Fixed Release  708
   Component Name 5752 CNVRTR/INT  Special Notice
   Current Target Date ..06/04/15  Flags
   SCP ...
   Platform 

   Status Detail: APARCLOSURE - APAR is being closed.

   PE PTF List:

   PTF List:
   Release 708   : No PTF planned
   Release 709   : No PTF planned
   Release 720   : No PTF planned
   Release 730   : No PTF planned

   Parent APAR:
   Child APAR list:


   ERROR DESCRIPTION:
When DD statements within a procedure are overridden with
   instream data (DD * or DD DATA), the data within the data sets
   represented by those input stream DD statements may be swapped
   (exchanged) if the overriding DDs are not in the correct order;
   that is, in the order in which the overridden stmts appear in
   the procedure.
This can happen because the MVS Converter may reverse the
   sequence of two or more instream DD stmts with respect to each
   other, but the data within the files referenced by those DD
   stmts does not move along with the DD stmts themselves.
Running the same JCL in R707, the out of sequence instream
   DD statements were simply ignored.

This issue was previously reported in OA05951, which was
   closed SUG.

   Additional Symptoms:
IEF655I INVALID DSNAME SPECIFIED WHEN SYSIN OR SYSOUT
SPECIFIED (msgIEF655I)
   May occur if a SYSIN DD * statement is GENERATED and now
   properly finds and overrides a SYSIN DD DSN= statement.

   Additional Keywords:
SYSIN reversed reversal, asterisk, instream




 --
 Mark Zelden
 Sr. Software and Systems Architect - z/OS Team Lead
 Zurich North America / Farmers Insurance Group - ZFUS G-ITO
 

Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread William H. Blair
Dave Gibney wrote:

 Folks relying in //SYSIN DD * GENERATED STATEMENT are getting
 what they deserve.  :)

You didn't read everything I wrote. This has nothing to do with
the automatically-generated //SYSIN DD * statement. Explicit DD
statements are being reordered.  What is happening happens long 
after (and despite) any automatically-generated DD statements. 

--
WB

 

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



Re: Example of what a very small JCL Interpreter can do to your installation.

2008-07-17 Thread Paul Gilmartin
On Thu, 17 Jul 2008 02:21:29 -0500, William H. Blair wrote:

But, 42 years of experience with IBM tells me that this is how
it is going to be, so I'm going to have to find some other way
of hiding in-stream data sets. (You're not the only one to
use this technique. It's not unheard of. I've seen it in many
production JCL streams. Other folks are going to get burned
by this, but I have no clue how many. I would hope not many.)

I have long been in the habit of using:

//HIDDEN  DD  *  (text to be ignored)
 All the unprocessed text
 that I want.

I think this makes my intent far more clear than relying on your
convention of using an undeclared SYSIN as a collateral comment.  I
consider the latter irresponsibly lazy and lacking in referential
transparency.  It's redolent of trying to assure one's job security
by writing incomprehensible code.

I wonder if anybody at IBM even thought about the possibility
that this slick new feature might break existing customer JCL.
Probably not. They probably got an award just for their bright
idea. Oh, well.

Whine, whine, whine!  JCL has sucked for those 42 years.  This
has frequently been attributed in this forum to resource constraints
in those early systems.  Now advancing technology has relieved those
constraints and IBM is DTRT in making JCL infinitesimally closer to
what it should have been from the beginning.  Hooray!  It's similar
to USERKEYCSA -- some things that have to be fixed should be fixed.
I'd be glad to see more changes for robustness and clear reporting
of user errors.  E.g.:

o Duplicate DDNAMEs within a step should be treated as a JCL error.
  (I understand JES3 already does this.)  This itself would have
  blocked the pitfall described in this thread.

o The SYSIN DD * GENERATED STATEMENT behavior should be removed
  from the language.  The last time I encountered this, I had
  inadvertently left a '/' off a JCL statement (perhaps a comment)
  before my actual intended SYSIN.  The utility then saw an empty
  SYSIN.  Took me far too long to spot.  At least there should be
  an option such as GENSYSIN(YES|NO) on the JOB statement.  I'd
  use NO.

o All the usages described in the JCL manual as having unpredictable
  effects should be reported as JCL errors (or those with repeatable
  behaviors documented).

Perhaps a conversion utility should be provided to tidy up legacy
careless JCL.

-- gil

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