Re: PARM=

2011-01-01 Thread Steve Comstock

[Note the date:

On 5/23/2005 1:06 PM, Don Ault wrote:

Well I did ask for comments, so I got what I deserved.  I do
appreciate the time you have all spent.  If I do use some of your
great ideas, please do me a favor and don't sue IBM for taking your
intellectual property.  I hate talking to lawyers.
I'll try to address some (hopefully all) of the issues:

1. Hitching your cart to the wagon.  That is, adding on marginally
relevant (however worthwhile) enhancements to the PARM=100
line item.  So far:
a. The START command should support more than 61 characters
   on a passed parm string.  I've let the Console folks know
   about the requirement.
b. The ASIS issue.  Quotes in JCL, who knows on CALL, TEST, etc.
   I will not likely be changing this, due to enough compatibility
   concerns already.  Would make a good SHARE requirement.
c. Support for inline DD * within procedures.  I want it too.

2. Length 32K or 64K.
I've flip-flopped on this one and agree 32K is safer and likely
big enough for anything reasonable.  This will avoid the issue of
a negative length and I hope to retire before I see JCL with
more than 32K of parms.  Note that long parms are diced into SWA
block sized pieces (x'B0') bytes in length.  Long parm processing
will be slow.

3. PARMLIB option to activate PARM100
This is needed, not just for the compatibility issue.  Even if we
forced a binder attribute, we still need a control to allow a
customer to get all systems in a JES plex to a level that supports
long parms before it is activated.
Once you accept that, then if we don't support a command to change
the setting, then we potentially force a sysplex wide IPL.
z/OS developers get demerits for these.
I believe we could do away with the DISPLAY support, in particular
if we add the message to JCL output when long parms are active.

4. Compatibility issue.  Everyone is right.  We shouldn't have to
worry about it, since it will unlikely be a problem, yet it will
break somewhere and cause lots of yelling and screaming.  To do it
safe, we need a binder attribute.  I am working on getting that
sized.  If we can't contain the cost, then I would likely go with
only unauthorized programs getting long parms and if you don't want
to take the chance, then turn off the system wide option.
Since LE already supports long parms, we would want the C compiler
to automatically specify the long parm binder option.
As for a separate option for whether authorized programs can have
long parms, I would rather go with the binder attribute, since it
would be hard to verify that all authorized programs had been
checked.

5. As for TSO commands, CALL, TEST, TESTAUTH.
This has increased in complexity due to the untimely death of
Martin Gally.  I will need to find someone else to take up where
Martin left off.  We will all miss him.

6. SWA changes.  Any program which cares about viewing or modifying
the parms in SWA will be exposed to an incompatible change.  Once
this gets settled and targeted to a release, we will give as much
warning as possible.  The SCTX would be unchanged.  The SCT would
have a new field anchoring the chain of parm blocks.  All parm
blocks would be above the line.

7. As for user exits, I imagine that one could code IEFUSI to look at
the SCT and make a determination as to whether to fail a job with
parms  100.  This assumes we don't have the binder option.  With
the binder option, I would see no point in having any exit care
about this.

8. As for allowing the parmlib option to specify the max size parm
string to support, instead of just an on/off switch.  Sounds like a
good idea. The default would be 100.  Customers could set it to 256
and get some benefit out of it.  I will look into this further.
The message we add to JCL output when the
length is anything but 100 could be something like this:
IEF777I PARAMETER LENGTH n DETECTED OUT OF POSSIBLE mm
SUPPORTED.

9. The other solutions involving a different JCL keyword (e.g. PARMX=)
or a PARMDD type solution were rejected due to cost and
incompatibility with exiting batch job streams.  We would need to
implement the symbolic substitution in the specified file.

Ding/Ding - Round 2



Don Ault, 8-295-1750, 845-435-1750



Don, found this while going through old emails. Whatever happened
with this?


--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment

* Try our new tool for calculating your Return On Investment
for training dollars at
  http://www.trainersfriend.com/ROI/roi.html

--
For IBM-MAIN subscribe / signoff / 

Re: PARM=

2011-01-01 Thread Robert A. Rosenberg

At 18:23 -0700 on 01/01/2011, Steve Comstock wrote about Re: PARM=:


[Note the date:

On 5/23/2005 1:06 PM, Don Ault wrote:

 Well I did ask for comments, so I got what I deserved.  I do
 appreciate the time you have all spent.  If I do use some of your
 great ideas, please do me a favor and don't sue IBM for taking your
 intellectual property.  I hate talking to lawyers.
 I'll try to address some (hopefully all) of the issues:

 
  [snip]
 


 Don Ault, 8-295-1750, 845-435-1750



Don, found this while going through old emails. Whatever happened
with this?


--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.



It resumed as A Modest PARM Proposal and An Alternate Modest PARM 
Proposal in October 2009.


--
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


Re: PARM problem - HELP

2008-08-06 Thread Chris Mason
John

Not understanding why you still have a problem after all the suggestions you 
have had!

Here is the precise solution for you according to the reference given by Bob 
Rutledge.

 1 2 3 4 5 6 7 8
123456789012345678901234567890123456789012345678901234567890123456
78901234567890

// PARM='SH echo sftp -b /u/bpxbatch/mccheckftpfis-depot-test.ucdavis.e
// du |su -s bpxbtch'

When I positioned your example I see you had somehow taken on board the 
idea that the continuation of the text on the second card image might need 
to start in column 16.

Here is the example from Bob's reference for comparison with the solution:

 1 2 3 4 5 6 7 8
123456789012345678901234567890123456789012345678901234567890123456
78901234567890

//STEP1 EXEC PGM=IEFBR14,PARM=(PARM1,'/DIR1/DIR2
//  /DIR3/DIR4/DIR5/DIR6/DIR7/DIR8/DIR9/DIR10/DIR11/DIR12/DI
//  R13/FILENM')

Ha!, now I position it under the column template I see the manual is wrong!

It should be - according to the text and in some sort of conformance with the 
ancient original rules of JCL - as follows:

 1 2 3 4 5 6 7 8
123456789012345678901234567890123456789012345678901234567890123456
78901234567890

//STEP1 EXECPGM=IEFBR14,PARM=(PARM1,'/DIR1/DIR2
// /DIR3/DIR4/DIR5/DIR6/DIR7/DIR8/DIR9/DIR10/DIR11/DIR12/DI
// R13/FILENM')

I have repositioned all the text following EXEC on all three card images 
one position to the left.

10 marks for the author and 0 marks for the type-setter.

I went back in order to check the redbook example and whoever typed that 
up got the positioning correct.

You should make sure you read this post with a nonproportional font such 
as Courier New. You may need to copy and paste in something like Notepad 
and set the font with Format-Font.

Although it lacks readability, I believe that this is the simplest solution.

I hope you are now in a position (sic) to move on.

Chris Mason

On Tue, 5 Aug 2008 14:28:09 -0700, John Norgauer 
[EMAIL PROTECTED] wrote:

Lizette -

//  SET P1='abc/def/ghi  -sh'
//  SET P2='continue away'
//STEP1 EXEC  PGM=IEFBR14,PARM=(PARM1,'P1P1')

 not  understanding your  statement : PARM=(PARM1,'P1P2')
Where does PARM1 get defined?

John Norgauer
University of California Davis Medical Center
2315 Stockton Blvd
ASB 1300
Sacramento, Ca 95817
916-734-0536

--
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: PARM problem - HELP

2008-08-05 Thread Chris Mason
Bob Rutledge provided the answer - even if it obliged those interested to 
locate the manual reference.

But it's very short so here goes:

quote

3.4.1.2 Continuing Parameter Fields Enclosed in Apostrophes

To continue a parameter that is enclosed in apostrophes: 

Extend the parameter to column 71. Do not code an apostrophe in column 71 
of a JCL statement that is continued. 

The system interprets the apostrophe in column 71 as the final character in 
the statement and ignores the continuation.

Code // in columns 1 and 2 of the following statement.

Continue the parameter in column 16 of the following statement even if this 
splits the parameter. Trailing blanks or commas within the apostrophes do not 
indicate a continued statement; the system treats them as part of the 
parameter.

The following example shows the specification of a long file name in the PARM 
field:

 //STEP1 EXEC PGM=IEFBR14,PARM=(PARM1,'/DIR1/DIR2
 //  /DIR3/DIR4/DIR5/DIR6/DIR7/DIR8/DIR9/DIR10/DIR11/DIR12/DI
 //  R13/FILENM')

/quote

The example is a bit artificial so here's an example I found just about a 
quarter 
of an hour before spotting this thread[1] in a redbook and then wondered 
whether I should post it as a heads-up having had to deal with something like 
the same problem a little while ago where I used one of the alternative 
techniques.[2]

quote

//NAMED9B PROC PARMS='-d 0'
//NAMED9B EXEC PGM=BPXBATCH,REGION=0K,TIME=NOLIMIT,
// PARM=('PGM /usr/lpp/tcpip/sbin/named -V v9 -c /etc/dnsdatbSYSCLONE.X
// /named9b.conf PARMS')

/quote

This example indicates that the column 71/column 16 technique can handle 
use of lower case which was the particular problem I had a while ago.

What is fascinating about this technique - and shows that it is not a trick 
which is how I would normally describe it - is that it looks very much as if it 
dates from JCL as I first used it (see [3]). Then, apart from the // in 
columns 
1 and 2, assembler rules were followed meaning that text had to be extended 
to column 71 and had to be continued in column 16. I seem to remember that 
you needed to put a continuation punch in column 72 but that requirement 
seems to have been dropped - in terms of column 72 being ignored I suppose.

It had not occurred to me until I saw that example in the redbook today that 
that old syntax could still apply. However there is that old IBM rule - nearly 
always valid - that what once worked will continue to work - e'en to the 
edge of doom.

 As a consequence, I don't think you will be able to specify this type and 
length of PARM field for this program via JCL.

Well, of course, you can. Nevertheless there is still the 100 character length 
limit for the PARM field which Steve has confirmed still exists.

Chris Mason
 
[1] A genuine coincidence!

[2] Many years ago[3] I wrote a little program to take PARM data and create 
small files to use in utilities so that I could run utilities - say, LISTVTOC 
and 
the like - purely from a 3270 on which I was running my MVS test system 
console, that is, I avoided having to mess about creating little files in a 
data 
set and then submitting. I had not supposed that the code to 71 (put a 
continuation punch in 72) and continue from 16 technique would still work 
and so I had a convention that one of three special characters killed the 
next character as a way of dealing with those pesky commas using the William 
Blair technique. Strangely enough, one of my other special characters was to 
arrange to have a continuation punch in column 72 and continue from column 
16.
 
[3] Many years before that, actually 1967, shortly before I started working 
with IBM 360s full time but knowing I would soon, I decided to prepare myself 
by doing some programming. The facilities offered by the organisation where I 
worked, a research laboratory, were the old-fashoined RJE which required 
leaving cards at a hatch so that the work could be taken by van to the HQ 
location and returned the next day with the printout to the same hatch. The 
program cards needed to be wrapped in some other cards and those cards had 
to be punched up from some coding sheets handed out by a particular office. 
Before I could say What (expletive deleted) is all this rubbish!, the lady 
said Don't ask, just do it!. Furthermore I particularly remember the warnings 
about how to handle columns 1/2, columns 71/72 and column 16!

On Mon, 4 Aug 2008 19:09:11 -0400, Bob Rutledge 
[EMAIL PROTECTED] wrote:

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B670/3.4.1.2?
SHELF=EZ2ZO10KDT=20070427231644CASE=

Bob

John Norgauer wrote:
 Here's my error:

 10 //PS082   EXEC PGM=BPXBATCH,
  //**
**
// PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
// fis-depot-test.ucdavis.edu |su -s bpxbtch'
 11 //SYSPRINT  DD SYSOUT=*
 12 //STDOUTDD 

Re: PARM problem - HELP

2008-08-05 Thread Lizette Koehler
Sorry am I late into this thread and this may have already been offered.


Would the use of the SET Statement in JCL also be a solution?

//  SET P1='abc/def/ghi  -sh'
//  SET P2='continue away'
//STEP1 EXEC  PGM=IEFBR14,PARM=(PARM1,'P1P1')


I would think that so long as the concatenated P1P2 etc...  does not
exceed 100 characters, that this also might work.

I use this technique with BPXBATCH because I like simple solutions.  It also
makes it easier when I have redundancy in the parms for multiple executions.

Lizette



 -Original Message-
 From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
 Behalf Of Chris Mason
 Sent: Tuesday, August 05, 2008 8:37 AM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Re: PARM problem - HELP
 
 Bob Rutledge provided the answer - even if it obliged those interested
 to
 locate the manual reference.
 
 But it's very short so here goes:
 
 quote
 
 3.4.1.2 Continuing Parameter Fields Enclosed in Apostrophes
 
 To continue a parameter that is enclosed in apostrophes:
 
 Extend the parameter to column 71. Do not code an apostrophe in column
 71
 of a JCL statement that is continued.
 
 The system interprets the apostrophe in column 71 as the final
 character in
 the statement and ignores the continuation.
 
 Code // in columns 1 and 2 of the following statement.
 
 Continue the parameter in column 16 of the following statement even if
 this
 splits the parameter. Trailing blanks or commas within the apostrophes
 do not
 indicate a continued statement; the system treats them as part of the
 parameter.
 
 The following example shows the specification of a long file name in
 the PARM
 field:
 
  //STEP1 EXEC
 PGM=IEFBR14,PARM=(PARM1,'/DIR1/DIR2
  //   
 /DIR3/DIR4/DIR5/DIR6/DIR7/DIR8/DIR9/DIR10/DIR11/DIR12/DI
  //  R13/FILENM')
 
 /quote
 
 The example is a bit artificial so here's an example I found just about
 a quarter
 of an hour before spotting this thread[1] in a redbook and then
 wondered
 whether I should post it as a heads-up having had to deal with
 something like
 the same problem a little while ago where I used one of the alternative
 techniques.[2]
 
 quote
 
 //NAMED9B PROC PARMS='-d 0'
 //NAMED9B EXEC PGM=BPXBATCH,REGION=0K,TIME=NOLIMIT,
 // PARM=('PGM /usr/lpp/tcpip/sbin/named -V v9 -c
 /etc/dnsdatbSYSCLONE.X
 // /named9b.conf PARMS')
 
 /quote
 
 This example indicates that the column 71/column 16 technique can
 handle
 use of lower case which was the particular problem I had a while ago.
 
 What is fascinating about this technique - and shows that it is not a
 trick
 which is how I would normally describe it - is that it looks very much
 as if it
 dates from JCL as I first used it (see [3]). Then, apart from the //
 in columns
 1 and 2, assembler rules were followed meaning that text had to be
 extended
 to column 71 and had to be continued in column 16. I seem to remember
 that
 you needed to put a continuation punch in column 72 but that
 requirement
 seems to have been dropped - in terms of column 72 being ignored I
 suppose.
 
 It had not occurred to me until I saw that example in the redbook today
 that
 that old syntax could still apply. However there is that old IBM rule -
 nearly
 always valid - that what once worked will continue to work - e'en to
 the
 edge of doom.
 
  As a consequence, I don't think you will be able to specify this type
 and
 length of PARM field for this program via JCL.
 
 Well, of course, you can. Nevertheless there is still the 100 character
 length
 limit for the PARM field which Steve has confirmed still exists.
 
 Chris Mason
 
 On Mon, 4 Aug 2008 19:09:11 -0400, Bob Rutledge
 [EMAIL PROTECTED] wrote:
 
 http://publibz.boulder.ibm.com/cgi-
 bin/bookmgr_OS390/BOOKS/IEA2B670/3.4.1.2?
 SHELF=EZ2ZO10KDT=20070427231644CASE=
 
 Bob
 
 John Norgauer wrote:
  Here's my error:
 
  10 //PS082   EXEC PGM=BPXBATCH,
   //**
 **
 // PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
 // fis-depot-test.ucdavis.edu |su -s bpxbtch'
  11 //SYSPRINT  DD SYSOUT=*
  12 //STDOUTDD SYSOUT=*
  13 //STDERRDD SYSOUT=*
  MT NO. MESSAGE
 
  10 IEF642I EXCESSIVE PARAMETER LENGTH IN THE PARM FIELD
 
  Thanks.
 

--
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: PARM problem - HELP

2008-08-05 Thread John Norgauer
Lizette -

//  SET P1='abc/def/ghi  -sh'
//  SET P2='continue away'
//STEP1 EXEC  PGM=IEFBR14,PARM=(PARM1,'P1P1')

 not  understanding your  statement : PARM=(PARM1,'P1P2')
Where does PARM1 get defined?

John Norgauer
University of California Davis Medical Center
2315 Stockton Blvd
ASB 1300
Sacramento, Ca 95817
916-734-0536

 SYSTEMS PROGRAMMING..  Guilty, until proven innocent !! JN  2004

Hardware eventually breaks - Software eventually works  anon


--
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: PARM problem - HELP

2008-08-05 Thread Lizette Koehler
I was just using the supplied JCL in the post I was responding to.  So PARM1
has no play in my example of the use of SET statement

However, You could do the same thing with BPXBATCH JCL

//  SET P1=' echo sftp -b /u/bpxbatch/mccheckftp'
//  SET P2=' fis-depot-test.ucdavis.edu |su -s bpxbtch'
//*
//PS082   EXEC PGM=BPXBATCH,PARM='P1P2'   
//* 
//SYSPRINT  DD SYSOUT=*
//STDOUTDD SYSOUT=*
//STDERRDD SYSOUT=*

Lizette

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
 Behalf Of John Norgauer
 Sent: Tuesday, August 05, 2008 5:28 PM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Re: PARM problem - HELP
 
 Lizette -
 
 //  SET P1='abc/def/ghi  -sh'
 //  SET P2='continue away'
 //STEP1 EXEC  PGM=IEFBR14,PARM=(PARM1,'P1P1')
 
  not  understanding your  statement : PARM=(PARM1,'P1P2')
 Where does PARM1 get defined?
 

--
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: PARM problem - HELP

2008-08-04 Thread William H. Blair
Your PARM field is too long to fit on one card:

   // PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
   // fis-depot-test.ucdavis.edu |su -s bpxbtch'

The rules of continuation for the PARM field would ostensibly
require that you specify it as follows (that is, the correct
syntax for continuation would be):

   // PARM=('SH echo sftp -b /u/bpxbatch/mccheckftp',
   // 'fis-depot-test.ucdavis.edu |su -s bpxbtch')

where each piece is enclosed in apostrophes, and all
but the last piece is followed by a comma, and all of
the pieces are enclosed in parentheses.

However, doing so will cause a comma to be included in the 
actual PARM information that will be passed to the program.
The JCL will work, and the long PARM will be passed to the
program, but I suspect that the program will not accept the
resulting embedded comma, or do something else undesirable.

As a consequence, I don't think you will be able to 
specify this type and length of PARM field for this
program via JCL.

--
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: PARM problem - HELP

2008-08-04 Thread Steve Comstock

John Norgauer wrote:

Here's my error:

10 //PS082   EXEC PGM=BPXBATCH,
 //
   // PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
   // fis-depot-test.ucdavis.edu |su -s bpxbtch'
11 //SYSPRINT  DD SYSOUT=*
12 //STDOUTDD SYSOUT=*
13 //STDERRDD SYSOUT=*
MT NO. MESSAGE

10 IEF642I EXCESSIVE PARAMETER LENGTH IN THE PARM FIELD

Thanks.


John Norgauer
University of California Davis Medical Center
2315 Stockton Blvd
ASB 1300
Sacramento, Ca 95817
916-734-0536

 SYSTEMS PROGRAMMING..  Guilty, until proven innocent !! JN  2004

Hardware eventually breaks - Software eventually works  anon



Try without any excess spaces in the first PARM line, maybe:

// PARM='SH echo sftp -b /u/bpxbatch/mccheck ftpfis-depot-test.ucdavis.edu |su
// -s bpxbtch'

Those trailing spaces you had in the first line count against your
100 limit. You can even break up a parameter in mid-string if your
data needs it; but the above should work.

Alternatively, you can define SET symbols and concatenate them.


//   SET  PART1='/u/bpxbatch/mccheck'
//   SET  PART2=' ftpfis-depot-test.ucdavis.edu '
//   SET  PART3=' | su -s bpxbtch'
//PS082   EXEC PGM=BPXBATCH,PARM=PART1PART2PART3



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

  z/OS Application development made easier
* Our classes include
   + How things work
   + Programming examples with realistic applications
   + Starter / skeleton code
   + Complete working programs
   + Useful utilities and subroutines
   + Tips and techniques

== Check out the Trainer's Friend Store to purchase z/OS  ==
== application developer toolkits. Sample code in four==
== programming languages, JCL to Assemble or compile, ==
== bind and test. ==
==   http://www.trainersfriend.com/TTFStore/index.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: PARM problem - HELP

2008-08-04 Thread Bob Rutledge

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IEA2B670/3.4.1.2?SHELF=EZ2ZO10KDT=20070427231644CASE=

Bob

John Norgauer wrote:

Here's my error:

10 //PS082   EXEC PGM=BPXBATCH,
 //
   // PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
   // fis-depot-test.ucdavis.edu |su -s bpxbtch'
11 //SYSPRINT  DD SYSOUT=*
12 //STDOUTDD SYSOUT=*
13 //STDERRDD SYSOUT=*
MT NO. MESSAGE

10 IEF642I EXCESSIVE PARAMETER LENGTH IN THE PARM FIELD

Thanks.


--
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: PARM problem - HELP

2008-08-04 Thread Dooley, Robert
How about moving those into a shell script?

PARM='SH /u/user/my.sh'

/u/user/my.sh would contain the stmts currently on your PARM stmt.

-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of John Norgauer
Sent: Monday, August 04, 2008 5:49 PM
To: IBM-MAIN@BAMA.UA.EDU
Subject: PARM problem - HELP

Here's my error:

10 //PS082   EXEC PGM=BPXBATCH,
 //
   // PARM='SH echo sftp -b /u/bpxbatch/mccheckftp
   // fis-depot-test.ucdavis.edu |su -s bpxbtch'
11 //SYSPRINT  DD SYSOUT=*
12 //STDOUTDD SYSOUT=*
13 //STDERRDD SYSOUT=*
MT NO. MESSAGE

10 IEF642I EXCESSIVE PARAMETER LENGTH IN THE PARM FIELD

Thanks.


John Norgauer
University of California Davis Medical Center
2315 Stockton Blvd
ASB 1300
Sacramento, Ca 95817
916-734-0536

 SYSTEMS PROGRAMMING..  Guilty, until proven innocent !! JN
2004

Hardware eventually breaks - Software eventually works  anon


--
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: PARM problem - HELP

2008-08-04 Thread Paul Gilmartin
On Mon, 4 Aug 2008 18:06:56 -0500, William H. Blair wrote:

The rules of continuation for the PARM field would ostensibly
require that you specify it as follows (that is, the correct
syntax for continuation would be):

   // PARM=('SH echo sftp -b /u/bpxbatch/mccheckftp',
   // 'fis-depot-test.ucdavis.edu |su -s bpxbtch')

where each piece is enclosed in apostrophes, and all
but the last piece is followed by a comma, and all of
the pieces are enclosed in parentheses.

However, doing so will cause a comma to be included in the
actual PARM information that will be passed to the program.
The JCL will work, and the long PARM will be passed to the
program, but I suspect that the program will not accept the
resulting embedded comma, or do something else undesirable.

As a consequence, I don't think you will be able to
specify this type and length of PARM field for this
program via JCL.

This misconception is so prevalent that I wonder whether it
reflects a syntactic rule from days of yore.  I know that's
what I was taught in my first brush with JCL decades ago,
and I never learned better until long pathnames in MVS-OE
impelled me to seek a better answer.

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Staller, Allan
It is what it is! Deal with it or submit a requirement!

snip
On Fri, 25 Jan 2008 10:40:43 -0600, Paul Gilmartin wrote:
 On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin wrote:
 I HATE JCL!

I invite any IBM representative participating on this list to
defend such divergence of conventions; I expect a conspicuous
silence, much less an apology to customers.
 
/snip
 

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Paul Gilmartin
On Fri, 25 Jan 2008 00:30:07 -0600, Bruce Hewson wrote:

normally I have seen a null parm coded as adjacent comma's.
//OUT01OUTPUT USERDATA=('A',,'C')

On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin
 wrote:
snip
I HATE JCL!

Nope.  Same error:

 3 //  SET SYMBOL=''
 4 //  SET SYMBOL=
 5 //STEP0EXEC  PGM=IEFBR14,PARM=
   //*
 6 //STEP EXEC  PGM=IEFBR14,PARM=''
   //*
 7 //OUT00OUTPUT USERDATA=('A','B','C')
   //*
 8 //OUT01OUTPUT USERDATA=('A',,'C')
   //*
 9 //OUT02OUTPUT USERDATA=('A','','C')
   //*
   //*  :w ! submit lstc3mvs
  STMT NO. MESSAGE
 -
 8 IEF641I IMPROPER SUBPARAMETER LIST IN THE USERDATA FIELD
 9 IEF641I IMPROPER SUBPARAMETER LIST IN THE USERDATA FIELD

Note that in SET and PARM (which surprised me) either nothing
or '' is accepted as a representation of the null string.  One
major flaw of JCL is its inconsistency.  Conway's Law.  It seems
that each feature of JCL was assigned to a different coder, and
they didn't coordinate on conventions.

In fact, since:

 22.70 z/OS V1R7.0 MVS JCL Reference
 
__
22.70 USERDATA Parameter

   Purpose

   The purpose and use of this keyword is defined by the installation.

... I.e. anything the user wants, there's strong reason not to impose
frivolous lexical restrictions on its values.  In fact, limitation
of each subparameter value to 60 chararcters (even less than 100)
may be an imposition on some intended uses.  And the prohibition
of empty strings has an unpleasant astonishment factor for users
who assign the empty string to a JCL symbol, then attempt to use
that symbol's value in USERDATA.

Would any IBM representative care to supply a rationale for
the restriction?

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Paul Gilmartin
 
 On Fri, 25 Jan 2008 00:30:07 -0600, Bruce Hewson wrote:
 
 On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin
  wrote:
 snip
 I HATE JCL!
 
 It gets worse:
 
 22.1.4.1 z/OS V1R7.0 MVS JCL Reference
  
 __
 
 22.1.4.1 Using enclosing apostrophes in OUTPUT parameters
 
 [ ... ]
 
Symbolic Parameters: Do not enclose symbolic parameters 
 within apostrophes
. Symbolic parameters enclosed in apostrophes are not 
 resolved for this keyword.
 
 C'mon, guys:  Why!

More often than not, things enclosed in apostrophes are treated as
literals rather than variables.

-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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Paul Gilmartin
On Fri, 25 Jan 2008 00:30:07 -0600, Bruce Hewson wrote:

On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin
 wrote:
snip
I HATE JCL!

It gets worse:

22.1.4.1 z/OS V1R7.0 MVS JCL Reference
 
__
22.1.4.1 Using enclosing apostrophes in OUTPUT parameters

[ ... ]

   Symbolic Parameters: Do not enclose symbolic parameters within apostrophes
   . Symbolic parameters enclosed in apostrophes are not resolved for this 
keyword.

C'mon, guys:  Why!

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Paul Gilmartin
On Fri, 25 Jan 2008 10:17:55 -0600, Chase, John wrote:
 On Fri, 25 Jan 2008 00:30:07 -0600, Bruce Hewson wrote:
 
 On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin
  wrote:
 snip
 I HATE JCL!

More often than not, things enclosed in apostrophes are treated as
literals rather than variables.

Why, then, is it ever otherwise?  Why isn't it Always, rather
than More often than not?

Why are not the same rules used for parsing strings in all contexts?

Why are symbols within apostrophes resolved for the PATH keyword
of the DD statement, but not for for the USERPATH keyword of the
OUTPUT statement when the two are so notionally similar?

It's not as if Development were struggling to get Release 1.0
of OS/360 out the door, as 40+ years ago.  Both PATH and USERPATH
are relatively recent enhancements to a mature product; designers
should have had time to consider the need for uniformity.  Heck,
the parser code could even have been reused, saving development
resource while providing such uniformity.

I invite any IBM representative participating on this list to
defend such divergence of conventions; I expect a conspicuous
silence, much less an apology to customers.

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread Tom Schmidt
On Fri, 25 Jan 2008 10:40:43 -0600, Paul Gilmartin wrote:
 On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin wrote:
 I HATE JCL!

I invite any IBM representative participating on this list to
defend such divergence of conventions; I expect a conspicuous
silence, much less an apology to customers.
 
 
Why not end your constant ranting and submit a requirement to IBM Marketing 
or SHARE (or your favorite other user group, if any) so that you are using the 
official channels and NOT wasting everyone's bandwidth on ibm-main???
  
Seriously!
 
-- 
Tom Schmidt 
 

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-25 Thread GAVIN Darren * OPS EAS
Paul,

If you think IBM JCL is bad you would go completely mental over how
DPS-8 systems JCL was done.

As Tom mentioned, submit a requirement to IBM if the Parm length limit
bugs you too much.  They will not change anything based on ranting on a
forum or a listserv.  This isn't the gaming industry where the loudest
rant gets the changes.  If you want IBM to do something about it,
contact them!

I have a few times in the past and they are always helpful and even
fixed an issue for our shop once.

Darren

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-24 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 01/23/2008
   at 03:22 PM, Ed Gould [EMAIL PROTECTED] said:

We have discussed on IBM-MAIN plenty of times about the restriction   of
100 characters in the parm field. The PSF proc is an example what   IBM
had to go through in order to get around the 100 character max.

I see no such circumvention.

This is the interesting as it shows how far IBM had to go to get 
 around the restriction. They basically had to add fields and change 
the convertor/interpreter to allow for the options.

The OUTPUT statement is not an extension of the EXEC statement and has
nothing to do with PARM.

While I am not saying increasing the length  
would *NOT* have necessitated the changes (its probably a tossup) it  
would have made implementation, IMO a LOT easier.

No. IBM would still have needed to add the OUTPUT statement and nothing in
the code for the extended PARM could have been pirated for us in OUTPUT.

As a side issue are these new JCL parameters supported in dynamic  
allocation?

Yes.
 
-- 
 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-24 Thread Kirk Talman
I have yet to find a way to access the information on an output statement. 
 Can you give a hint as to where to find it?

curious pup

IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU wrote on 01/23/2008 
05:11:23 PM:

 And you just came up with a bit of a methodology that could be used
 (with some difficulty) in our own application programs. In a step which
 wants a PARM value  100 characters, use something like: // PARM='abcd '
 where abcd is the label of an // OUTPUT statement available to the
 application. You can then use many of the parameters on the OUTPUT
 statement for passing parameter information. For example, ADDRESS= can
 contain up to 4 subparameters, each of which can be up to 60 bytes.
.
.
.
 Retrieving this
 data is left as an exercise for the user. But it would likely be done in
 an assembler subroutine.

 John McKown



-
The information contained in this communication (including any
attachments hereto) is confidential and is intended solely for the
personal and confidential use of the individual or entity to whom
it is addressed. The information may also constitute a legally
privileged confidential communication. If the reader of this
message is not the intended recipient or an agent responsible for
delivering it to the intended recipient, you are hereby notified
that you have received this communication in error and that any
review, dissemination, copying, or unauthorized use of this
information, or the taking of any action in reliance on the
contents of this information is strictly prohibited. If you have
received this communication in error, please notify us immediately
by e-mail, and delete the original message. 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-24 Thread Ed Gould

On Jan 24, 2008, at 8:39 AM, Shmuel Metz (Seymour J.) wrote:


In [EMAIL PROTECTED], on 01/23/2008
   at 03:22 PM, Ed Gould [EMAIL PROTECTED] said:

We have discussed on IBM-MAIN plenty of times about the  
restriction   of
100 characters in the parm field. The PSF proc is an example  
what   IBM

had to go through in order to get around the 100 character max.


I see no such circumvention.


This is the interesting as it shows how far IBM had to go to get
around the restriction. They basically had to add fields and change
the convertor/interpreter to allow for the options.


The OUTPUT statement is not an extension of the EXEC statement and has
nothing to do with PARM.


While I am not saying increasing the length
would *NOT* have necessitated the changes (its probably a tossup) it
would have made implementation, IMO a LOT easier.


No. IBM would still have needed to add the OUTPUT statement and  
nothing in
the code for the extended PARM could have been pirated for us in  
OUTPUT.



As a side issue are these new JCL parameters supported in dynamic
allocation?


Yes.



Shmuel:

I guess we differ in what you see and what I see.  However its not  
worth disagreeing about. Yes it is simpler to do it the way (adding  
new JCL statements ), but from my understanding about the last re- 
write if there had been no rewrite, the code that would have been  
needed would have been quite a bit, as it was originally written it  
had turned into a monster to add new JCL statements. Now it was a  
minor addition (from what I heard). If there had been no restriction  
of parm length I believe the new JCL statements could have been  
created using dynamic allocation.

But its not worth talking about have it your way.

Ed

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-24 Thread Paul Gilmartin
On Wed, 23 Jan 2008 16:11:23 -0600, McKown, John wrote:

And you just came up with a bit of a methodology that could be used
(with some difficulty) in our own application programs. In a step which
wants a PARM value  100 characters, use something like: // PARM='abcd '
where abcd is the label of an // OUTPUT statement available to the
application. You can then use many of the parameters on the OUTPUT
statement for passing parameter information. ...

I HATE JCL!

3 //STEP EXEC  PGM=IEFBR14   
  //*
4 //OUT00OUTPUT USERDATA=('A','B','C')   
  //*
5 //OUT01OUTPUT USERDATA=('A','','C')
  //*
  //*  :w ! submit lstc3mvs  
 STMT NO. MESSAGE
-
5 IEF641I IMPROPER SUBPARAMETER LIST IN THE USERDATA FIELD   

Yes, it's documented that way.

No, there's no reason they had to do it that way, other
than to deprive the customer of some flexibility.  (Well,
maybe in some of their processing loops they use a null
subparameter as a list terminator.  But that could have
been done otherwise.  Or did they want the subparameter
values to be MVC-eligible?  Still, that coding shortcut
doesn't justify the abandoning of generality.)

Would any IBM representative care to supply a rationale for
the restriction?

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-24 Thread Bruce Hewson
Hi Gil,

I wonder if your null parameter is misinterpreting your quotes...something like 
the rule that to support imbedded quote, you must code two in sequence, the 
first as an escape character..

normally I have seen a null parm coded as adjacent comma's.
//OUT01OUTPUT USERDATA=('A',,'C')


On Thu, 24 Jan 2008 18:07:41 -0600, Paul Gilmartin 
[EMAIL PROTECTED] wrote:
snip
I HATE JCL!

3 //STEP EXEC  PGM=IEFBR14
  //*
4 //OUT00OUTPUT USERDATA=('A','B','C')
  //*
5 //OUT01OUTPUT USERDATA=('A','','C')
  //*
  //*  :w ! submit lstc3mvs
 STMT NO. MESSAGE
-
5 IEF641I IMPROPER SUBPARAMETER LIST IN THE USERDATA FIELD

Yes, it's documented that way.

No, there's no reason they had to do it that way, other
than to deprive the customer of some flexibility.  (Well,
maybe in some of their processing loops they use a null
subparameter as a list terminator.  But that could have
been done otherwise.  Or did they want the subparameter
values to be MVC-eligible?  Still, that coding shortcut
doesn't justify the abandoning of generality.)

Would any IBM representative care to supply a rationale for
the restriction?

-- gil



Regards
Bruce Hewson

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-23 Thread Howard Brazee
On 23 Jan 2008 13:22:31 -0800, [EMAIL PROTECTED] (Ed Gould)
wrote:

We have discussed on IBM-MAIN plenty of times about the restriction  
of 100 characters in the parm field. The PSF proc is an example what  
IBM had to go through in order to get around the 100 character max. I  
am *NOT* complaining but just showing those who have complained how  
IBM got around its own 100 character max length restriction.  This is  
the interesting as it shows how far IBM had to go to get around the  
restriction.

Getting around a restriction often requires more hoops to jump through
than removing the restriction.

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-23 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Ed Gould
 Sent: Wednesday, January 23, 2008 3:22 PM
 To: IBM-MAIN@BAMA.UA.EDU
 Subject: Parm Length restriction was Re: Using an InfoPrint 
 6500 with PSF
 
 
 We have discussed on IBM-MAIN plenty of times about the restriction  
 of 100 characters in the parm field. The PSF proc is an example what  
 IBM had to go through in order to get around the 100 
 character max. I  
 am *NOT* complaining but just showing those who have complained how  
 IBM got around its own 100 character max length restriction.  
 This is  
 the interesting as it shows how far IBM had to go to get around the  
 restriction. They basically had to add fields and change the  
 convertor/interpreter to allow for the options. I'll bet a beer  
 that this cost IBM a fair amount of change in order to implement  
 these new JCL fields. While I am not saying increasing the length  
 would *NOT* have necessitated the changes (its probably a tossup) it  
 would have made implementation, IMO a LOT easier. Yes I know it was  
 re-written (and probably is for the best) but in any case it would  
 have been less costly.
 
 As a side issue are these new JCL parameters supported in dynamic  
 allocation? If not has anyone tried putting in a Share requirement  
 and if so what was the outcome?
 
 
 Ed

And you just came up with a bit of a methodology that could be used
(with some difficulty) in our own application programs. In a step which
wants a PARM value  100 characters, use something like: // PARM='abcd '
where abcd is the label of an // OUTPUT statement available to the
application. You can then use many of the parameters on the OUTPUT
statement for passing parameter information. For example, ADDRESS= can
contain up to 4 subparameters, each of which can be up to 60 bytes. That
is 240 characters. BUILDING gives another 60 characters (300 so far).
DEPT gives yet another 60 (now 360 bytes). MAILBCC can be up to 32
addresses of 60 characters each, or 1920 bytes (now at 2280 bytes).
MAILCC gives the same as MAILBCC (now up to 4200 bytes). MAILFILE gives
another 60 bytes (4260 total). MAILFROM another 60 (4320 bytes). MAILTO
another 32 by 60 characters (1920 more for 6240 bytes). NAME= for 60
more (6300 types). PRTATTRS for 127 characters (6427 bytes). PRTOPTNS
for 16 characters (6443 bytes). PRTQUEUE for 127 bytes (6570 bytes).
REPLYTO for 60 bytes (6630 bytes total, so far). ROOM gives another 60
bytes (6690 bytes). TITLE, another 60 bytes (6750 bytes). USERDATA gives
16 times 60 or 960 bytes (7710 bytes). USERPATH for 8 times 254 bytes or
2032 bytes (9742 bytes). WRITER give a final 8 bytes for a grand total
of 9750 bytes, assuming I haven't misadded anywhere. Retrieving this
data is left as an exercise for the user. But it would likely be done in
an assembler subroutine.

Oh, and that 9750 bytes is per OUTPUT statement. Now, going even
crazier, you could architect your main program to only accept OUTPUT
statement names in the PARM=. A PARM is 100 bytes. Assuming that you'd
need a space as a separator, what is the maximum number of possible
labels which could be given to the main routine? The first characters
must be alphabetic or national. That's 29 values. The second through 6th
can also be numeric. That's 39 values. So, there are 29 single character
labels, taking 2 characters (trailing blank). That's 58 characters,
leaving 42. In that, you can put 14 more 2 character labels. That's a
total of 43 possible labels of OUTPUT statements, each possibly having
9750 bytes of parameter information, for a super grand total of
419,250 bytes of parameter information. WOW! I exceeded the magic 64K!

--
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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-23 Thread Patrick O'Keefe
On Wed, 23 Jan 2008 16:11:23 -0600, McKown, John 
[EMAIL PROTECTED] wrote:

...
And you just came up with a bit of a methodology that could be used
(with some difficulty) in our own application programs. In a step which
wants a PARM value  100 characters, use something like: // 
PARM='abcd '
where abcd is the label of an // OUTPUT statement ...
Oh, and that 9750 bytes is per OUTPUT statement. Now, going even
crazier,  ...  WOW! I exceeded the magic 64K!
...

Yes, that is a clever technique.
But document it very carefully if you choose to use it because it 
is very non-standard, and very unintuitive.  

People may not remember that ROOM contains a list of userids, 
or that the freeform text started in PRTQUEUE is continued in 
USERDATA, etc.

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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-23 Thread Paul Gilmartin
sigh  I was struggling desperately to resist contributing
to this (again) thread.  I lost.  I suppose we all lost.

On Wed, 23 Jan 2008 17:27:47 -0600, Patrick O'Keefe wrote:

On Wed, 23 Jan 2008 16:11:23 -0600, McKown, John
 wrote:

...
And you just came up with a bit of a methodology that could be used
(with some difficulty) in our own application programs. In a step which
wants a PARM value  100 characters, use something like: //
PARM='abcd '

Or a wildcard?  PARM='abcd*', representing abcd00, abcd01, ...?

where abcd is the label of an // OUTPUT statement ...
Oh, and that 9750 bytes is per OUTPUT statement. Now, going even
crazier,  ...  WOW! I exceeded the magic 64K!
...

Yes, that is a clever technique.
But document it very carefully if you choose to use it because it
is very non-standard, and very unintuitive.

And it isn't conformant to the expectations of unmodified
existing load modules.  But a wrapper program:

//STEP EXEC PGM=CATPARM,PARM='LOADMOD/ABCD*'

... that could string together the USERDATA fields, point
R1 ... at the result and XCTL LOADMOD?  Would there need to
be both an authorized and an unauthorized version?  I suppose
one could force unauthorized with a STEPLIB catenation.

And symbolic substitution would work, wouldn't it?

-- 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: Parm Length restriction was Re: Using an InfoPrint 6500 with PSF

2008-01-23 Thread Ed Gould

On Jan 23, 2008, at 4:11 PM, McKown, John wrote:

---SNIP---
Oh, and that 9750 bytes is per OUTPUT statement. Now, going even
crazier, you could architect your main program to only accept OUTPUT
statement names in the PARM=. A PARM is 100 bytes. Assuming that you'd
need a space as a separator, what is the maximum number of possible
labels which could be given to the main routine? The first characters
must be alphabetic or national. That's 29 values. The second  
through 6th
can also be numeric. That's 39 values. So, there are 29 single  
character

labels, taking 2 characters (trailing blank). That's 58 characters,
leaving 42. In that, you can put 14 more 2 character labels. That's a
total of 43 possible labels of OUTPUT statements, each possibly having
9750 bytes of parameter information, for a super grand total of
419,250 bytes of parameter information. WOW! I exceeded the magic  
64K!


---SNIP--


Chuckle that is why I suggested the length be permitted up to an  
address space size. I did that partly in jest but so there wouldn't  
be any real restrictions per se in the future. Looks like the future  
is coming at us a lot faster than we realized.


Ed

--
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: PARM= C compiler Options

2007-01-09 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 01/07/2007
   at 11:23 AM, Paul Gilmartin [EMAIL PROTECTED] said:

It was explained to me on this list many months ago that instream
data are stripped out of the JCL stream early in conversion, perhaps
in a separate pass, before much other parsing is done.

Not even early in conversion; JES2 and JES3 handle instream data well
before they call the Converter.
 
-- 
 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: PARM= C compiler Options

2007-01-07 Thread Paul Gilmartin
In a recent note, Jan MOEYERSONS said:

 Date: Thu, 4 Jan 2007 03:21:32 -0600
 
 I never really understood why one can not have instream data in a PROC.
 Surely, it must not be complicated for IBM to solve that one...
 
It was explained to me on this list many months ago that instream
data are stripped out of the JCL stream early in conversion, perhaps
in a separate pass, before much other parsing is done.  At that
point, the converter likely doesn't even understand that it's
processing a PROC.  Likewise, SET symbols are not yet available
for substitution.  This accounts for the former failure of:

//  SET X='DATA'
//  SET Y='YY'
...
//SYSIN  DD  X,DLM='Y'
...
YY

... sometimes with an OC7 in HASCDSAL (this 0C7 _was_ a system
issue), sometimes with IEF465I - UNABLE TO ALLOCATE SUBSYSTEM
DATA SET; never with a meaningful diagnostic.  APAR OA03554
provided better reporting; it did not repair the underlying
problem.  35 years ago, this fragmented design may have been a
necessary accommodation to inconveniently small storage sizes;
nowadays the only excuse for its persistence is inertia.

 o Supporting symbol substitution within the OPTFILE instream
   data
 Now, that would be tricky, no?
 
Given the multi-pass (at least to external appearance) design
of the C/I , yes, tricky.  If the C/I were rewritten in a
rational structure suited for the times, substitution in
instream data sets would be SMOP.  Some thought would need
to be given to the constraints of FB80 records, however JES3
supports RECFM=V and longer LRECL in instream data sets (as
does JES2 if a certain secret switch is set.)

 The list has had this discussion before. Let's not start it over. Just
 enter your requirements with Share or any other official way of
 communicating your needs to IBM.
 
I had assumed that a Requirement for longer PARM support had long
existed.  How do I confirm or refute this?  And if confirmed, how
can I be added to an Interested Parties list?

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM= C compiler Options

2007-01-04 Thread Jan MOEYERSONS
 BTW: I know *existing* OS/390 application using more than 256 bytes in
 PARM.
 I really would like to see a (working!) example of such a gismo...

I do it regularly with HLASM called from Rexx (not from JCL).  Or,
OK, if it is not from PARM= in JCL, then I can see that one can do that.

you really need an example?
No.
 You can use PARM='/OPTFILE(DD:COPT)' and then put all the parms in
 //COPT DD *

o If this doesn't support symbol substitution, it falls short of
  many people's needs.
One can combine the OPTFILE with other parameters in the PARM= in the JCL. 
Provided one can cram the parameters, requiring symbol substitution in the 
100 bytes, that might just do the job.


o If this can't be used with an instream data set in a library
  PROC, it falls short of many people's needs.  (No, it's not
  satisfactory to provide the COPT with an overriding DD.)
I never really understood why one can not have instream data in a PROC. 
Surely, it must not be complicated for IBM to solve that one...


The OPTFILE circumvention is a stopgap with functional restrictions
(above), which is implemented haphazardly in some, not all,
utilities, likely with inconsistent syntax.
True. 


If the Convertor/Interpreter/Initiator were to automate the
process by:

o Automatically reading the OPTFILE DD and converting to the
  traditional R1 points to halfword length followed by PARM
  text.
Or much simpler: just allow and cater for more than 100 bytes PARM= field...


o Supporting OPTFILE as an instream data set in library PROCs
Or indeed any DD with instream data in PROCs!


o Supporting symbol substitution within the OPTFILE instream
  data
Now, that would be tricky, no?


... it would be closer to the requirement.  But why not merely
relax the 100-character limit on PARM?  It makes no sense to
retain a limit motivated by storage prices which have since
dropped by five(?) orders of magnitude.

The list has had this discussion before. Let's not start it over. Just 
enter your requirements with Share or any other official way of 
communicating your needs to IBM.

Cheers,

Jantje.

--
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: PARM= C compiler Options

2007-01-04 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 01/02/2007
   at 08:44 PM, Paul Gilmartin [EMAIL PROTECTED] said:

Not obvious, apparently, to IBM (nor to many contributors to this
list (I am not among them), who would prefer to see the restriction
remain).

FSVO many.

I've seen messages criticizing specific implementation suggestions,
discussing costs and suggesting that those who need the support submit
formal requirements. I don't recall many posters saying that they
preferred to see the restriction remain.
 
-- 
 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: PARM= C compiler Options

2007-01-03 Thread Jan MOEYERSONS

BTW: I know *existing* OS/390 application using more than 256 bytes in
PARM. 
I really would like to see a (working!) example of such a gismo...


I was given a whole C library full of functios to recompile. the number of
parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without
editting indvidual functions what's the best work-around?
You can use PARM='/OPTFILE(DD:COPT)' and then put all the parms in
//COPT DD *

Have a look at z/OS C/C++ User's Guide Document Number SC09-4767-03

Cheers,

Jantje.

--
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: PARM= C compiler Options

2007-01-03 Thread wtrovijo
OPTFILE does it. From C/C++ User's Guide: 

...
//DOCLGEXEC  CBCCBG,
// INFILE='PETE.TEST.C(CBC3UBRC)',
// CPARM='OPTFILE(DD:CCOPT)'
//COMPILE.CCOPT DD *
LSEARCH('PETE.TESTHDR.H')
SEARCH('CEE.SCEEH.+','CBC.SCLBH.+
/*
...

rtFm

Walter Trovijo Jr.

--
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: PARM= C compiler Options

2007-01-03 Thread Paul Gilmartin
In a recent note, Jan MOEYERSONS said:

 Date: Wed, 3 Jan 2007 02:43:50 -0600
 
 BTW: I know *existing* OS/390 application using more than 256 bytes in
 PARM.
 I really would like to see a (working!) example of such a gismo...
 
I do it regularly with HLASM called from Rexx (not from JCL).  Or,
at least I used to before we mostly converted to Tachyon.  Do
you really need an example?

 I was given a whole C library full of functios to recompile. the number of
 parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without
 editting indvidual functions what's the best work-around?
 You can use PARM='/OPTFILE(DD:COPT)' and then put all the parms in
 //COPT DD *
 
o If this doesn't support symbol substitution, it falls short of
  many people's needs.

o If this can't be used with an instream data set in a library
  PROC, it falls short of many people's needs.  (No, it's not
  satisfactory to provide the COPT with an overriding DD.)

The OPTFILE circumvention is a stopgap with functional restrictions
(above), which is implemented haphazardly in some, not all,
utilities, likely with inconsistent syntax.

If the Convertor/Interpreter/Initiator were to automate the
process by:

o Automatically reading the OPTFILE DD and converting to the
  traditional R1 points to halfword length followed by PARM
  text.

o Supporting OPTFILE as an instream data set in library PROCs

o Supporting symbol substitution within the OPTFILE instream
  data

... it would be closer to the requirement.  But why not merely
relax the 100-character limit on PARM?  It makes no sense to
retain a limit motivated by storage prices which have since
dropped by five(?) orders of magnitude.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM= C compiler Options

2007-01-02 Thread Andreas F. Geissbuehler
On Fri, 13 May 2005 14:49:53 +0200, R.S. [EMAIL PROTECTED] 
wrote:

BTW: I know *existing* OS/390 application using more than 256 bytes in
PARM. It is c89 compiler. I vaguely recollect, it creates pseudo job
for compilation, this job looks like regular JCL, but all the compiler
options are in PARM field (many LINES of PARM) and that's why it is
circumvented in some way. I don't remember details, but the need is 
obvious...

I was given a whole C library full of functios to recompile. the number of 
parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without 
editting indvidual functions what's the best work-around?

Andreas F. Geissbuehler
AFG Consultants Inc.
http://www.afgc-inc.com/

--
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: PARM= C compiler Options

2007-01-02 Thread Jeffrey D. Smith
Greetings,

The Systems/C compiler from http://www.dignus.com/ supports indirect
compiler options. In the PARM= or command line, you can point to a data set
name or dd name that has the options.

Check your compiler documentation to see if it has similar capabilities.

Jeffrey D. Smith
Principal Product Architect
Farsight Systems Corporation
700 KEN PRATT BLVD. #204-159
LONGMONT, CO 80501-6452
303-774-9381 direct
303-484-6170 FAX
http://www.farsight-systems.com/


 -Original Message-
 On Fri, 13 May 2005 14:49:53 +0200, R.S. [EMAIL PROTECTED]
 wrote:
 
 BTW: I know *existing* OS/390 application using more than 256 bytes in
 PARM. It is c89 compiler. I vaguely recollect, it creates pseudo job
 for compilation, this job looks like regular JCL, but all the compiler
 options are in PARM field (many LINES of PARM) and that's why it is
 circumvented in some way. I don't remember details, but the need is
 obvious...
 
 I was given a whole C library full of functios to recompile. the number of
 parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without
 editting indvidual functions what's the best work-around?
 
 Andreas F. Geissbuehler

--
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: PARM= C compiler Options

2007-01-02 Thread Paul Gilmartin
On Tue, 2 Jan 2007 17:09:06 -0600, Andreas F. Geissbuehler wrote:
 
 On Fri, 13 May 2005 14:49:53 +0200, R.S. wrote:
 
 BTW: I know *existing* OS/390 application using more than 256 bytes in
 PARM. It is c89 compiler. I vaguely recollect, it creates pseudo job
 for compilation, this job looks like regular JCL, but all the compiler
 options are in PARM field (many LINES of PARM) and that's why it is
 circumvented in some way. I don't remember details, but the need is
 obvious...
 
Not obvious, apparently, to IBM (nor to many contributors to this list
(I am not among them), who would prefer to see the restriction remain).
But a pat in the back for a good archive search.

 I was given a whole C library full of functios to recompile. the number of
 parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without
 editting indvidual functions what's the best work-around?
 
o Invoke CCNDRVR from a Rexx EXEC.

o Invoke c89 from make.  This seems like a natural for make.

Take your pick.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM= C compiler Options

2007-01-02 Thread R.S.
First, I would cut my email address from the message you posted. I don't 
like spam-mail. Default behavior of your mail program is no excuse.


Second, AFAIR, parameters can be provided using DD.

--
Radoslaw Skorupka
Lodz, Poland



Andreas F. Geissbuehler wrote:

On Fri, 13 May 2005 14:49:53 +0200, R.S.
[EMAIL PROTECTED] address.PL 
wrote:



BTW: I know *existing* OS/390 application using more than 256 bytes in
PARM. It is c89 compiler. I vaguely recollect, it creates pseudo job
for compilation, this job looks like regular JCL, but all the compiler
options are in PARM field (many LINES of PARM) and that's why it is
circumvented in some way. I don't remember details, but the need is 

obvious...

I was given a whole C library full of functios to recompile. the number
of 
parms on EXEC PGM=CCNDRVR exceed the PARM field length limit. Without 
editting indvidual functions what's the best work-around?


Andreas F. Geissbuehler
AFG Consultants Inc.
http://www.afgc-inc.com/

.



--
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: PARM ALLDATA(*) - DFDSS

2006-06-07 Thread John Dawes
Thanks to all for your advice.  I will listen to your suggestions and code the 
parm.  
   
  Thanks

 Send instant messages to your online friends http://au.messenger.yahoo.com 

--
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: PARM ALLDATA(*) - DFDSS

2006-06-07 Thread Jon Brock
Another potential issue is that if you use DFDSS to copy a load library PDS and 
do not specify ALLDATA(*) the new file will have only the amount of space 
currently in use.  If it is defined with no secondary extent space, you will 
not be able to add any new members to it.

I always use ALLDATA.

Jon



snip
Given the consequences of failing to capture all the data, I'd say it's 
imprudent not to code it.
/snip

--
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: PARM ALLDATA(*) - DFDSS

2006-06-06 Thread Mark Zelden
On Wed, 7 Jun 2006 01:32:35 +1000, John Dawes [EMAIL PROTECTED] wrote:

I was told that it is prudent to code the ALLDATA(*) when I am doing
a selective DFDSSbackup. I don't share that opinion.  Am I right?


It's prudent to code it if you need it.  Did you read the description?

In my experience it was only needed for SYS1.DUMPxx datasets (but
I'm sure there are others).  My ROT is to use it for system packs and
backups, but not for applications.

Mark
--
Mark Zelden
Sr. Software and Systems Architect - z/OS Team Lead
Zurich North America / Farmers Insurance Group
mailto: [EMAIL PROTECTED]
z/OS and OS390 expert at http://searchDataCenter.com/ateExperts/
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: PARM ALLDATA(*) - DFDSS

2006-06-06 Thread Skip Robinson
The classic use for ALLDATA(*) in my recollection was JES SPOOL, which is 
always 100% full but shows as '0% used' externally. There may be others. 

As for whether it's 'prudent' to code the parm for a selective backup, 
that depends on what you're selecting. Given the consequences of failing 
to capture all the data, I'd say it's imprudent not to code it. 





Mark Zelden [EMAIL PROTECTED] 
Sent by: IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU
06/06/2006 08:42 AM
Please respond to
IBM Mainframe Discussion List IBM-MAIN@BAMA.UA.EDU


To
IBM-MAIN@BAMA.UA.EDU
cc

Subject
Re: PARM ALLDATA(*) - DFDSS






On Wed, 7 Jun 2006 01:32:35 +1000, John Dawes [EMAIL PROTECTED] 
wrote:

I was told that it is prudent to code the ALLDATA(*) when I am doing
a selective DFDSSbackup. I don't share that opinion.  Am I right?


It's prudent to code it if you need it.  Did you read the description?

In my experience it was only needed for SYS1.DUMPxx datasets (but
I'm sure there are others).  My ROT is to use it for system packs and
backups, but not for applications.

Mark
--
Mark Zelden



--
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: PARM ALLDATA(*) - DFDSS

2006-06-06 Thread Brian Peterson
I agree with Skip - we ALWAYS code

ALLDATA(*) ALLEXCP

on every DFDSS dump or copy job, for both application and system data 
sets.  Yes - it's not needed in most circumstances, but it is in SOME, and 
once you find out you need it for a good RESTORE, it's too late (becuase 
you had to have specified it on the DUMP command).

If you don't back up all the tracks, they certainly won't be there when you 
run the RESTORE job.  Better safe than sorry.  Or that's my opinion, anyway.

Brian

On Tue, 6 Jun 2006 16:02:16 -0700, Skip Robinson [EMAIL PROTECTED] 
wrote:

The classic use for ALLDATA(*) in my recollection was JES SPOOL, which is
always 100% full but shows as '0% used' externally. There may be others.

As for whether it's 'prudent' to code the parm for a selective backup,
that depends on what you're selecting. Given the consequences of failing
to capture all the data, I'd say it's imprudent not to code 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: PARM ALLDATA(*) - DFDSS

2006-06-06 Thread Thomas Conley
- Original Message - 
From: Brian Peterson

I agree with Skip - we ALWAYS code

ALLDATA(*) ALLEXCP

on every DFDSS dump or copy job, for both application and system data
sets.  Yes - it's not needed in most circumstances, but it is in SOME, and
once you find out you need it for a good RESTORE, it's too late (becuase
you had to have specified it on the DUMP command).

If you don't back up all the tracks, they certainly won't be there when
you
run the RESTORE job.  Better safe than sorry.  Or that's my opinion,
anyway.

Brian

On Tue, 6 Jun 2006 16:02:16 -0700, Skip Robinson  wrote:


The classic use for ALLDATA(*) in my recollection was JES SPOOL, which is
always 100% full but shows as '0% used' externally. There may be others.

As for whether it's 'prudent' to code the parm for a selective backup,
that depends on what you're selecting. Given the consequences of failing
to capture all the data, I'd say it's imprudent not to code it.






What they said.

Regards,
Tom Conley

--
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


(COBOL) Re: PARM=

2005-05-25 Thread Bill Klein
I haven't PERSONALLY heard of anyone using it, but this is discussed in
the LE customization guide at:

 http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/ceea5150/2.7.3 

2.7.3 Modifying the COBOL Parameter List Exit

[EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...
 In a recent note, Norbert Friemel said:
 
snip
 Is this still in effect?
 
 Does it specify, or does experiment show what happens if the program
 is invoked (by LINK, ATTACH, CALL, XCTL, or address ATTCHMVS) with
 a PARM100 characters?  Plausible actions:
 
snip

--
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: PARM=

2005-05-25 Thread Joe Zitzelberger

On May 25, 2005, at 1:59 AM, Paul Gilmartin wrote:

In a recent note, Joe Zitzelberger said:


Date: Wed, 25 May 2005 00:56:23 -0400


The original point was that an application programmer writing in
COBOL...should not know it is possible for programs to be invoked by
anything other than EXEC PGM=.  Considering the prevalence of the 
CALL
statement in common COBOL usage, that claim cannot be valid.  There 
are

may ways, other than EXEC PGM=, for a program to receive control --
and programmers know it.

I can't really answer your 'main program' comment because there is no
such thing in the z/OS COBOL world.  There is nothing special that
distinguishes a main program from any other program.  If a program
can be invoked via JCL it can be invoked via call.  The parms, as 
shown

above, can easily be identical for either JCL or call, and there is no
special way for a callee to know how it was invoked.


Does COBOL's CALL, like TSO's CALL limit the PARM passed to 100
characters?


No, the current limit is 16M when calling another COBOL program.  But 
multiple parms can always be passed, nor must they be JCL parm style 
pstrings.


[EMAIL PROTECTED]

There's no place like ~
There's no place like ~

--
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: (COBOL) Re: PARM=

2005-05-25 Thread Joe Zitzelberger

On May 25, 2005, at 1:21 AM, Paul Gilmartin wrote:

In a recent note, Norbert Friemel said:


Date: Tue, 24 May 2005 17:00:02 -0500

Yes. From the dusty IBM OS Full American National Standard COBOL,
GC28-6396-5, Revised 12/1/75 by TNL GN26-0808, p. 234:
...
At execution time, the USING option may be used to pass parameters 
from the
EXEC job control statement to a main COBOL program. In this case, a 
USING

option on the Procedure Division header of a main program may contain
identifier-1 as its only operand. Information from the PARM field of 
the
EXEC statement is then available in the Linkage Section at the 
location
specified as identifier-1. The first two bytes of identifier-1 
contain a
count of the number of bytes of information in the PARM field; the 
two bytes
are set to zero if the PARM field was omitted. This two-byte field is 
binary
and should be defined with PIC S9(4) COMP. Immediately following 
these two
bytes is the information in the PARM field. The maximum length of the 
field

to be passed is 100 bytes.
...

Is this still in effect?

Does it specify, or does experiment show what happens if the program
is invoked (by LINK, ATTACH, CALL, XCTL, or address ATTCHMVS) with
a PARM100 characters?  Plausible actions:

o Runtime initialization terminates execution with an error indication.
  This is as benign as JCL error.

o The PARM overlays adjacent data.

o Runtime initialization truncates the PARM.  (I consider this
  an integrity violation.)

o The identifier-1 is opaquely based on the content of GR1 at
  program initiation.  It is then the programmer's responsibility
  to do his own truncation or overlaying.

Has anyone done the experiment?


There is nothing to experiment -- the 100 byte limit referred to is 
from the JCL parm only.  For that version of COBOL the limit on an 
individual data item should have been 32K -- but those were the days of 
BLL cells and managing your own based addressing -- parms could have 
had some sort of practical limit of 4K.


However, if you passed MORE data into said program you would receive no 
error, the COBOL program would only map the first 100 bytes or whatever 
was defined.  If you use the length to attempt a move that exceeded the 
size of the item current versions of COBOL will abend with a U4038 and 
a message that you attempted to reference an area outside of a defined 
data item.


No truncation will occur.

[EMAIL PROTECTED]

Web Servers Do It With Cookies

--
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: PARM=

2005-05-25 Thread Jon Brock
I'll see what I can do; things tend to be busy enough around here that trying 
to get someone to take time to play probably won't fly.  In any case, I need to 
restate what I was trying to say, because I think I got two posts from the 
PARM thread mixed up.  I don't doubt that most of our programmers can invoke 
a COBOL program via a CALL statement, but I do doubt that most of them know 
they can run a batch COBOL program through TSO.

I'm not trying to denigrate the abilities of our programmers, either; most of 
them simply have too much to do to be able to take time to do anything beyond 
simply getting their assignments done.

Jon


snip
Humor me.  Take this snippet to some of your COBOL programmers, good 
and bad, and ask them if they can write a program that will invoke it.
/snip

--
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: PARM=

2005-05-25 Thread Patrick O'Keefe
On Wed, 25 May 2005 09:52:56 -0400, Jon Brock [EMAIL PROTECTED] wrote:

...
I'm not trying to denigrate the abilities of our programmers, either;
most of them simply have too much to do to be able to take time to do
anything beyond simply getting their assignments done.
...

More to the point, if the design specs were for a program to run as a step
in a batch job, that's probably what the programmer wrote.  And that has
meant a parm of 100 bytes max.  It doesn't matter what the programmer or
what MVS could do with a different environment.  It certainly does not
denigrate a programmer to suggest he/she paid attention to the requested
design.

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: PARM=

2005-05-25 Thread Clark Morris
On 25 May 2005 06:53:08 -0700, in bit.listserv.ibm-main you wrote:

I'll see what I can do; things tend to be busy enough around here that trying 
to get someone to take time to play probably won't fly.  In any case, I need 
to restate what I was trying to say, because I think I got two posts from the 
PARM thread mixed up.  I don't doubt that most of our programmers can invoke 
a COBOL program via a CALL statement, but I do doubt that most of them know 
they can run a batch COBOL program through TSO.

I'm not trying to denigrate the abilities of our programmers, either; most of 
them simply have too much to do to be able to take time to do anything beyond 
simply getting their assignments done.

Jon


snip
Humor me.  Take this snippet to some of your COBOL programmers, good 
and bad, and ask them if they can write a program that will invoke it.
/snip

I was aware both as an applications programmer and as a systems
programmer that one COBOL program could call another one.  I also
thought that the limit was 144 bytes and the new limit of 100 bytes
was due to LE.  I also was paranoid and made sure that the parm length
was within the expected set of values, normally less than 144.  

--
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: PARM Survey in Text Format

2005-05-24 Thread Ed Finnell
 
In a message dated 5/23/2005 10:21:27 P.M. Central Standard Time,  
[EMAIL PROTECTED] writes:

However,  it worked.  *I can read it*.  Thank you!

I noticed an anomaly:
We need this feature:  66% agree or strongly  agree
This should be a Share req:  43% ditto

Either some people use a different meaning of need 
than I do, or  they are (or I am) confused about the reasons 
for Share  requirements.




Yipee! I sent the RTF format to Don Ault, but haven't
heard back one way or the other.
 
As I was fighting with zoomerrang composing the Survey, the
thought just crossed my mind that this should really be a
SHARE requirement so just hung it on at the last minute to
kinda see what the group thought. Afraid I aided to the  confusion
in the manner and sequence of posing the questions.
 
Guess if we do this again, I'll ask for volunteers for a test
questionnaire. 

--
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: PARM=

2005-05-24 Thread Joe Zitzelberger
What bank would allow people to change JCL without control?  Or to 
implement a 'typeo' in production without testing?  Certainly not the 
bank I work for.


If every z/OS machine in the world had this option installed next 
Tuesday, absolutely nothing would break until someone changed 
something, code or JCL.


In stable environments where nothing changes, well, nothing would 
change -- no worries.


In more dynamic environments you again have two possibilities -- 
changes are tested for correctness or they are not.  Only in the final 
case is there even a risk of error.  A SOC4 or a harmless overlay might 
occur -- no worries and an easy fix or a dont-care.  Or the program 
might not recognize the 'typeo' on the JCL parm and offer a Unknown 
Parameter error.


In the final case -- untested changes with a harmful parm overlay -- 
well, you were already playing Russian roulette by not testing your 
changes -- you just shot yourself in the foot.  Of course, if you make 
a habit of not testing changes your feet are full of holes already.


[EMAIL PROTECTED]

I'm a guru, not a god.  That is a completely different career path.


On May 23, 2005, at 6:33 PM, John Krew wrote:
I have to agree with Patrick and Peter on this.  I am a bit bewildered 
by the attitude of those on
the list that have pooh-poohed their down-to-earth objections with 
such academic-sounding
observations as well, there would be an insignificant number of 
programs showing that kind of

behavior.

I guess they have never worked for a bank ...

John Krew

- Original Message -
From: Patrick O'Keefe [EMAIL PROTECTED]
Newsgroups: bit.listserv.ibm-main
To: IBM-MAIN@BAMA.UA.EDU
Sent: Monday, May 23, 2005 9:47 PM
Subject: Re: PARM=


On Sat, 21 May 2005 00:13:14 -0400, Joe Zitzelberger 
[EMAIL PROTECTED]

wrote:


On May 20, 2005, at 5:16 PM, Peter Hunkeler wrote:

How many of the programs designed to run in batch are coded to cope
with longer than 100 byte parms? ...


Many programs are.  ...


Ok.  So Peter asked the wrong question.  Forget about those that are
designed for the long parms.  What about all the gazillion programs 
that

are not?  All the accounting programs, manufacturing support programs,
time accounting programs, etc.; the home grown life-blood of industry 
(or

at least that part still on MVS).




Imagine some typo in the JCL makes the PARM longer than 100, say 102
bytes. ...


You have put the cart before the horse.  None of your existing,
functional, JCL passes a parm longer than 100 bytes ...
...
The fix is simple.  Just don't pass more than a program is expecting.
Today, that is a certain error (JCL error), tomorrow it will still be
an error (program not expecting error).  Either way it is an error.
Nothing in this change can break a program that is currently working
correctly today.



He said ... typo   Passing the additional data is unintentional.
Fine.  It's an error.  Only in one case you get a JCL error.  In the
other case you get in incorrectly executing problem that may or may 
not
abend.  It may meerly produce a totally bollixed General Ledger for 
the

month.  No problem unless your company cares about money.

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: PARM=

2005-05-24 Thread Joe Zitzelberger

On May 24, 2005, at 3:16 AM, Vernooy, C.P. - SPLXM wrote:


[EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...

In a recent note, Vernooy, C.P. - SPLXM said:


Date: Mon, 23 May 2005 15:33:12 +0200

You don't have to change the JCL to change the PARM if it is 
specified

by

the operator on the Start-command, or is built from symbolics.


How can you change a symbolic without changing JCL?



By specifying in the JCL:
//  INCLUDE MEMBER=xxx
where xxx is filled externally regularly with new values. We use is to
include e.g. all sorts of date variables in our production JCL.

Kees.


That one routinely makes the rounds under the guise of using system 
symbols in JCL.


So what you are saying is you have something today, perhaps this:

SET LDATE='Tuesday, the 24th of May, 2005'
SET SDATE='24-05-2005'

And you are worried that when the date rolls to something longer, 
perhaps:


SET LDATE='Tuesday, the 24th of December, 2005'
SET SDATE='24-12-2005'

That LDATE is going to push a parm past 100-bytes?

This is possible, but if it could happen, your system today would 
provide you with JCL errors on the long named months.


If your program freaks out one morning and starts putting in the 
include member:


SET SDATE='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

Then you have a valid point -- but I would say, you need to go back to 
the oft asked question: 'what changed'?



[EMAIL PROTECTED]

Web Servers Do It With Cookies

--
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: PARM=

2005-05-24 Thread Vernooy, C.P. - SPLXM
Joe Zitzelberger [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...
 On May 24, 2005, at 3:16 AM, Vernooy, C.P. - SPLXM wrote:
 
  [EMAIL PROTECTED] wrote in message
  news:[EMAIL PROTECTED]...
  In a recent note, Vernooy, C.P. - SPLXM said:
 
  Date: Mon, 23 May 2005 15:33:12 +0200
 
  You don't have to change the JCL to change the PARM if it is 
  specified
  by
  the operator on the Start-command, or is built from symbolics.
 
  How can you change a symbolic without changing JCL?
 
 
  By specifying in the JCL:
  //  INCLUDE MEMBER=xxx
  where xxx is filled externally regularly with new values. We use is to
  include e.g. all sorts of date variables in our production JCL.
 
  Kees.
 
 That one routinely makes the rounds under the guise of using system 
 symbols in JCL.
 
 So what you are saying is you have something today, perhaps this:
 
   SET LDATE='Tuesday, the 24th of May, 2005'
   SET SDATE='24-05-2005'
 
 And you are worried that when the date rolls to something longer, 
 perhaps:
 
   SET LDATE='Tuesday, the 24th of December, 2005'
   SET SDATE='24-12-2005'
   
 That LDATE is going to push a parm past 100-bytes?
 
 This is possible, but if it could happen, your system today would 
 provide you with JCL errors on the long named months.
 
 If your program freaks out one morning and starts putting in the 
 include member:
 
   SET
SDATE='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
 
 Then you have a valid point -- but I would say, you need to go back to 
 the oft asked question: 'what changed'?
 

Yes, this an example of what I meant.

I reacted to the statement that you cannot extend the parm over 100 bytes
without changing the JCL. You can with INCLUDEd SET statements.

The date variables are an example of how they are used today. Tomorrow they
might be used for companynames, productcodes etc. etc. that can be
reorganized overnigth from short cryptic to long explanatory names.

Kees.


**
For information, services and offers, please visit our web site: 
http://www.klm.com. This e-mail and any attachment may contain confidential and 
privileged material intended for the addressee only. If you are not the 
addressee, you are notified that no part of the e-mail or any attachment may be 
disclosed, copied or distributed, and that any other action related to this 
e-mail or attachment is strictly prohibited, and may be unlawful. If you have 
received this e-mail by error, please notify the sender immediately by return 
e-mail, and delete this message. Koninklijke Luchtvaart Maatschappij NV (KLM), 
its subsidiaries and/or its employees shall not be liable for the incorrect or 
incomplete transmission of this e-mail or any attachments, nor responsible for 
any delay in receipt.
**

--
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: PARM=

2005-05-24 Thread Bruce Black



And why would you expect an application programmer writing in COBOL to even
know that manual exists?  Why should he/she even know it's possible for
the programs to be invoked by anything other than EXEC PGM=... )where a
100-byte parm limit has existed forever)?

And why do you expect that COBOL programmer is even aware of the 
100-byte JCL limitation?  The JCL Reference is a big manual


--
Bruce A. Black
Senior Software Developer for FDR
Innovation Data Processing 973-890-7300
personal: [EMAIL PROTECTED]
sales info: [EMAIL PROTECTED]
tech support: [EMAIL PROTECTED]
web: www.innovationdp.fdr.com

--
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: PARM=

2005-05-24 Thread Steve Comstock

Paul Gilmartin wrote:

In a recent note, Bruce Black said:



Date: Tue, 24 May 2005 09:49:27 -0400

And why do you expect that COBOL programmer is even aware of the
100-byte JCL limitation?  The JCL Reference is a big manual



I believe Bill Klein provided the correct answer from the COBOL
perspective in:

http://bama.ua.edu/cgi-bin/wa?A2=ind0505L=ibm-mainD=1O=DP=152693

I yield to his expertise and dutiful research.  Apparently an LE
manual example presumes the 100-character limit for COBOL and PL/I.

-- gil


What's really wierd is that LE has a callable service for
obtaining the JCL parm value and it limits the return
string to 80 characters!

Kind regards,

-Steve Comstock

--
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: PARM=

2005-05-24 Thread john gilmore
For PL/I there is a simple circumvention of the 100-character limit 
available.



From the current Programming Guide:




Specifying options in the EXEC statement using an options file

Another way to specify options in the EXEC statement is by declaring all 
your options in an
options file and coding the following: //STEP1 EXEC 
PGM=IBMZPLI,PARM=Â’+DD:OPTIONSÂ’ This
method allows you to provide a consistent set of options that you 
frequently use. This is
especially effective if you want other programmers to use a common set of 
options. It also gets

you past the 100-character limit.



John Gilmore
Ashland, MA 01721
U.S.A.

_
DonÂ’t just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/


--
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: PARM=

2005-05-24 Thread Ray Mullins
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:[EMAIL PROTECTED] On Behalf Of Steve Comstock
 Sent: Tuesday 24 May 2005 07:51
 
 What's really wierd is that LE has a callable service for 
 obtaining the JCL parm value and it limits the return string 
 to 80 characters!

If the lengthening of PARM does go through, then I hope that all of IBM MF
is tasked to check for restrictions like this.

I wonder what LE for z/VSE does in this area.  z/VSE has had PARMs  100
characters for a long time.

Later,
Ray

-- 
M. Ray Mullins 
Roseville, CA, USA 
http://www.catherdersoftware.com/
http://www.mrmullins.big-bear-city.ca.us/ 
http://www.the-bus-stops-here.org/ 

 

--
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: PARM=

2005-05-24 Thread Steve Comstock

Joe Zitzelberger wrote:

On May 24, 2005, at 10:40 AM, Jon Brock wrote:

I can guarantee that the majority of our application programmers would 
not know it is possible.  And that includes the good ones.



[snip]


I find that amazingly unbelievable.

Learning how to invoke separate compile units is usually taught in 
basic-intro-to-programming-101 classes  somewhere after providing output 
to the user (hello world, my name is variable) and before opening a file.


Humor me.  Take this snippet to some of your COBOL programmers, good and 
bad, and ask them if they can write a program that will invoke it.



IDENTIFICATION DIVISION.
PROGRAM-ID. PGMRTEST.
ENVIRONMENT DIVISION.
DATA DIVISION.
LINKAGE SECTION.
01 INPUT-PARMS.
05 INPUT-PARM-LEN BINARY PIC S9(4).
05 INPUT-PARM-DATAOCCURS 0 TO 100 DEPENDING INPUT-PARM-LEN 
PIC X.


PROCEDURE DIVISION USING INPUT-PARMS.
IF INPUT-PARM-LEN  0
DISPLAY 'Application programmers are not really that stupid 
after all.'

ELSE
DISPLAY 'OK, maybe they are really stupid.'
END-IF
GOBACK.
-

You might find yourself surprised at how capable they can be.

I suspect that even the 'bad' ones will be able to invoke this with 
ease, without using 'EXEC PGM='.




I doubt it. You get 'em with the word invoke. And besides,
that wasn't the point being made. The point was most COBOL
programmers do not know you can get parm data from a main
program.

Kind regards,

-Steve Comstock

--
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: PARM=

2005-05-24 Thread Paul Gilmartin
In a recent note, Joe Zitzelberger said:

 Date: Wed, 25 May 2005 00:56:23 -0400
 
 
 The original point was that an application programmer writing in
 COBOL...should not know it is possible for programs to be invoked by
 anything other than EXEC PGM=.  Considering the prevalence of the CALL
 statement in common COBOL usage, that claim cannot be valid.  There are
 may ways, other than EXEC PGM=, for a program to receive control --
 and programmers know it.
 
 I can't really answer your 'main program' comment because there is no
 such thing in the z/OS COBOL world.  There is nothing special that
 distinguishes a main program from any other program.  If a program
 can be invoked via JCL it can be invoked via call.  The parms, as shown
 above, can easily be identical for either JCL or call, and there is no
 special way for a callee to know how it was invoked.
 
Does COBOL's CALL, like TSO's CALL limit the PARM passed to 100
characters?

 There is an odd, unusual, COBOL keyword that can force a program never
 to return -- not exactly a 'main', but halfway there in spirit.  If you
 use 'STOP RUN' instead of 'GOBACK' or 'EXIT PROGRAM' you convert the
 effect of a CALL into an XCTL.  The effect isn't noticed when a program
 is invoked via EXEC PGM=.
 
Is this analogous to issuing SVC 3?  (BTW, what RM documents SVC 3?)

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-23 Thread Joe Zitzelberger

On May 23, 2005, at 6:57 AM, Peter Hunkeler wrote:

In order for you to receive the errors you fear, you will need to
change your JCL to pass more bytes than your programs are expecting.
This is always a problem -- for 100 bytes or 65535 bytes.


That's what I said *but* a program will not get control today because
of the JCL error you get. It will, however, get control with the
suggested change.


The fix is simple.  Just don't pass more than a program is expecting.


Sure, don't make a mistake and there will be no error ;-(


Today, that is a certain error (JCL error), tomorrow it will still be
an error (program not expecting error).  Either way it is an error.
Nothing in this change can break a program that is currently working
correctly today.


How about the code sniplet below? Sure it would be better to also
verify the upper bound, i.e. 100 bytes, but is it really necessary,
especially if the program was written when batch was the way to run
programs? I would not count on the fact it was always done.

And before someone else points at it: Yes, this program will not
correctly handle the case when it is ATTACHed, LINKed, called from
TSO, etc., etc. with a PARM longer than 100 bytes. The program was
defined to run in batch.

GetParm  DS0H
 L R1,0(,R1) Get address of PARM field
 LHR5,0(,R1) Get length of PARM data specified
 LTR   R5,R5 Anything specified?
 BZNoParmNone received
 BCTR  R5,0  Adjust length for MVC
 EXR5,MoveParm   Move PARM data to internal field
 ...
 ...
MoveParm MVC   ParmData(0),2(R1)
 ...
 ...
ParmDataDS CL100
AjustmentFactor DC H'17' Used in converting X to Y


According to the principle of least astonishment, we should not
incompatibly change the rules to benefit a few programs.


What is the purpose of moving the parm to an internal field?  That just 
strikes me as broken as designed (BAD).  You cannot change the value, 
it is truly input only.  It also strikes me as more effort than just 
using the parm inplace in this age of reentrent and reusable code 
styles.


All I'm saying is that it takes two objects to create this error.  Your 
production program must do things incorrectly today AND your production 
JCL must change.  If it works today, then only a change to one of these 
two (hopefully) controlled objects can break it.


Unless you just let your production JCL be changed willy-nilly you are 
at no risk of exposure.



[EMAIL PROTECTED]

The most effective type of birth control is learning Cobol.  -DT

--
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: PARM=

2005-05-23 Thread Vernooy, C.P. - SPLXM
Joe Zitzelberger [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...
 On May 23, 2005, at 6:57 AM, Peter Hunkeler wrote:
 
 
 All I'm saying is that it takes two objects to create this error.  Your 
 production program must do things incorrectly today AND your production 
 JCL must change.  If it works today, then only a change to one of these 
 two (hopefully) controlled objects can break it.
 
 Unless you just let your production JCL be changed willy-nilly you are 
 at no risk of exposure.
 

You don't have to change the JCL to change the PARM if it is specified by
the operator on the Start-command, or is built from symbolics.

S TOOL,PARM='A NUMBER OF COMMANDS AND PARAMETER GIVEN TO THE TOOL'

//T EXEC PGM=TOOL,PARM='VALUE1,VALUE2,VALUE3'


Kees.


**
For information, services and offers, please visit our web site: 
http://www.klm.com. This e-mail and any attachment may contain confidential and 
privileged material intended for the addressee only. If you are not the 
addressee, you are notified that no part of the e-mail or any attachment may be 
disclosed, copied or distributed, and that any other action related to this 
e-mail or attachment is strictly prohibited, and may be unlawful. If you have 
received this e-mail by error, please notify the sender immediately by return 
e-mail, and delete this message. Koninklijke Luchtvaart Maatschappij NV (KLM), 
its subsidiaries and/or its employees shall not be liable for the incorrect or 
incomplete transmission of this e-mail or any attachments, nor responsible for 
any delay in receipt.
**

--
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: PARM=

2005-05-23 Thread Paul Gilmartin
In a recent note, Vernooy, C.P. - SPLXM said:

 Date: Mon, 23 May 2005 15:33:12 +0200
 
 You don't have to change the JCL to change the PARM if it is specified by
 the operator on the Start-command, or is built from symbolics.
 
How can you change a symbolic without changing JCL?

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-23 Thread Peter Hunkeler
I did a quick scan on the sources of our tools and found several that 
move the parmarea, using its length field, to a 100 byte area.

Glad to read I'm not the only one :-)

Peter Hunkeler
Senior IT Specialist, IBM zSeries Technical Sales Support, Switzerland

--
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: PARM=

2005-05-23 Thread john gilmore

Peter Hunkeler quotes someone as posting the query


can you cite a source for programs are expected to reserve 100
bytes for the PARM?


I hope no such source can be found in an IBM publication.  It would be 
wrong.  The PARM= storage is NOT of the form exhibited in the PL/I 
declaration


declare PARM character varying(100) ;

for which 100 bytes preceded by a halfword current-length indicator is used.

It is instead of the self-defining (again PL/I) form

declare 1 PB based,
 2 cpvl binary fixed(15,0),  /* current-length prefix */
 2 PARM character(0 refer(PB.cpvl)) ;  /* PARM value */

with the side condition that the value of PB.cpvl may not exceed 100.

Since the halfword prefix can be examined before, exceptionally, a copy of a 
particular PARM value is made, there is never any need to allocate more 
storage than that PARM value occupies for such a copy.


John Gilmore
Ashland, MA 01721
U.S.A.

_
DonÂ’t just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/


--
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: PARM=

2005-05-23 Thread Tom Schmidt
On Mon, 23 May 2005 10:25:17 -0300, Shmuel Metz (Seymour J.) wrote:
Yes, because all the way back to the early days of OS/360, a main
program was just another subroutine with a specific type of PLIST. I
know of no IBM documentation that ever suggested a limit of 100
characters for the program. If a batch program calls a second program,
that second program is still running batch.

The program was defined to run in batch.

And when a program running in batch calls it, then it *is* running in
batch, even if the parm string is longer than 100 characters.


This brings up a counterargument I had considered a couple of weeks ago for
providing simulated OS support for such an APAR-liable change:  Why not,
instead, create a single simple program that can (and does) read from a
parameterized file, pulling the contents into storage as the downstream
program's XPARM= data, setting R1 to point to the newly engorged PARM
string?

I see fewer APARs as an immediate result.

The obvious bad thing is that the SMF type 30's would not show the XCTL-
ed to program name... and one might offer a handy fix to that, too, if
pressed.  (Maybe CSRL16J would be better than XCTL here; I don't have clear
specs for the program.)

The only remaining sniggle is that those programs that Gil is so interested
in getting vendor support of PARM100 would still claim it is via unnatural
conditions.  So maybe if Don, Greg, Jim (et al) would just state that it
must be so this whole argument could become moot?

A single, simple program front-end could offer the parm length granularity,
provide for any file type source for the parm data, and even be shipped in
a PTF.  (Why wait?)

--
Tom Schmidt
Madison, WI
(Who really says moot anyway?)

--
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: PARM Survey in Text Format

2005-05-23 Thread Ed Finnell
 
In a message dated 5/23/2005 1:44:24 P.M. Central Standard Time,  
[EMAIL PROTECTED] writes:

Management  Concerns
12   3   4   5  
Strongly Disagree Neutral Agree  Strongly
Disagree  Agree  




Sorry don't know what I'm doing(wrong). All lines up in
Courier New 10. Guess AOL is RTFing it and LISTSERV is
parsing it back w/o the tabs and spaces.
 
 

--
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: PARM=

2005-05-23 Thread Patrick O'Keefe
On Sat, 21 May 2005 00:13:14 -0400, Joe Zitzelberger [EMAIL PROTECTED]
wrote:

On May 20, 2005, at 5:16 PM, Peter Hunkeler wrote:
 How many of the programs designed to run in batch are coded to cope
 with longer than 100 byte parms? ...

Many programs are.  ...

Ok.  So Peter asked the wrong question.  Forget about those that are
designed for the long parms.  What about all the gazillion programs that
are not?  All the accounting programs, manufacturing support programs,
time accounting programs, etc.; the home grown life-blood of industry (or
at least that part still on MVS).


 Imagine some typo in the JCL makes the PARM longer than 100, say 102
 bytes. ...

You have put the cart before the horse.  None of your existing,
functional, JCL passes a parm longer than 100 bytes ...
...
The fix is simple.  Just don't pass more than a program is expecting.
Today, that is a certain error (JCL error), tomorrow it will still be
an error (program not expecting error).  Either way it is an error.
Nothing in this change can break a program that is currently working
correctly today.


He said ... typo   Passing the additional data is unintentional.
Fine.  It's an error.  Only in one case you get a JCL error.  In the
other case you get in incorrectly executing problem that may or may not
abend.  It may meerly produce a totally bollixed General Ledger for the
month.  No problem unless your company cares about money.

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: PARM=

2005-05-23 Thread Ed Finnell
 
In a message dated 5/23/2005 2:07:34 P.M. Central Standard Time,  
[EMAIL PROTECTED] writes:

Well I  did ask for comments, so I got what I deserved.  I do
appreciate the  time you have all spent.  If I do use some of your
great ideas, please  do me a favor and don't sue IBM for taking your
intellectual  property.  I hate talking to lawyers.



You want I should close the PARM survey and send you the
results? I can spread sheet or WORD RTF whatever's your  preference. 

--
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: PARM=

2005-05-23 Thread Patrick O'Keefe
On Mon, 23 May 2005 06:31:02 -0600, Paul Gilmartin
[EMAIL PROTECTED] wrote:

...
Title: z/OS V1R4.0 MVS Assembler Services Guide
Document Number: SA22-7605-04

...,

And why would you expect an application programmer writing in COBOL to even
know that manual exists?  Why should he/she even know it's possible for
the programs to be invoked by anything other than EXEC PGM=... )where a
100-byte parm limit has existed forever)?

You seem to be thinking in system programming mode, but that's not where
the problems will surface.

Pat O'Keeefe

--
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: PARM=

2005-05-23 Thread Leonard Woren
On Mon, May 23, 2005 at 04:13:20PM +0200, Peter Hunkeler ([EMAIL PROTECTED]) 
wrote:
[snip]
 However, leaving utilities aside, I think that application programs
 are designed for a specific environment: MVS Batch, CICS transaction,
 IMS transaction, etc. You don't call a day-end-processing batch 
 program from TSO forground, do you?

So you've never run a batch program under TSO TEST?


/Leonard

--
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: PARM=

2005-05-23 Thread John Krew
I have to agree with Patrick and Peter on this.  I am a bit bewildered by the 
attitude of those on
the list that have pooh-poohed their down-to-earth objections with such 
academic-sounding
observations as well, there would be an insignificant number of programs 
showing that kind of
behavior.

I guess they have never worked for a bank ...

John Krew

- Original Message - 
From: Patrick O'Keefe [EMAIL PROTECTED]
Newsgroups: bit.listserv.ibm-main
To: IBM-MAIN@BAMA.UA.EDU
Sent: Monday, May 23, 2005 9:47 PM
Subject: Re: PARM=


 On Sat, 21 May 2005 00:13:14 -0400, Joe Zitzelberger [EMAIL PROTECTED]
 wrote:

 On May 20, 2005, at 5:16 PM, Peter Hunkeler wrote:
  How many of the programs designed to run in batch are coded to cope
  with longer than 100 byte parms? ...
 
 Many programs are.  ...

 Ok.  So Peter asked the wrong question.  Forget about those that are
 designed for the long parms.  What about all the gazillion programs that
 are not?  All the accounting programs, manufacturing support programs,
 time accounting programs, etc.; the home grown life-blood of industry (or
 at least that part still on MVS).

 
  Imagine some typo in the JCL makes the PARM longer than 100, say 102
  bytes. ...
 
 You have put the cart before the horse.  None of your existing,
 functional, JCL passes a parm longer than 100 bytes ...
 ...
 The fix is simple.  Just don't pass more than a program is expecting.
 Today, that is a certain error (JCL error), tomorrow it will still be
 an error (program not expecting error).  Either way it is an error.
 Nothing in this change can break a program that is currently working
 correctly today.


 He said ... typo   Passing the additional data is unintentional.
 Fine.  It's an error.  Only in one case you get a JCL error.  In the
 other case you get in incorrectly executing problem that may or may not
 abend.  It may meerly produce a totally bollixed General Ledger for the
 month.  No problem unless your company cares about money.

 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


--
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: PARM Survey in Text Format

2005-05-23 Thread Ed Finnell
 
In a message dated 5/23/2005 8:59:10 P.M. Central Standard Time,  
[EMAIL PROTECTED] writes:

program).  You could possibly save another problem by  
e-mailing it to yourself and trying the procedure.  




That was the first of many attempt(since early yesterday morning).
I know what the rules are I just don't know who follows them and
correspondingly who doesn't.
 
As ungainly as .csv seems it's easy enough to do.
---CSV  Follows:---
Management Concerns,
,1,2,3,4,5
,Strongly  Disagree,Disagree,Neutral,Agree,Strongly Agree
1. We need this  feature,0%,7%,27%,27%,39%
,0,3,12,12,17
2. Current programs and  systems should continue to run  
unaltered,2%,0%,5%,11%,82%
,1,0,2,5,36
3. This feature should not  open integrity exposure;i.e. buffer  
overrun,2%,2%,2%,23%,70%
,1,1,1,10,31
4. This option should be  customizable by site.,16%,9%,25%,36%,14%
,7,4,11,16,6
5. This option  should be OPER setable.,20%,14%,34%,23%,9%
,9,6,15,10,4
6. This  should be a SHARE requirement,0%,9%,48%,25%,18%
,0,4,21,11,8
 
Implementation preferences,
,1,2,3,4,5
,Strongly  Disagree,Disagree,Neutral,Agree,Strongly Agree
,
1. Add DDNAME  support, leave length alone.,41%,34%,14%,5%,7%
,18,15,6,2,3
2. Add  DDNAME support and extend  length.,34%,16%,30%,14%,7%
,15,7,13,6,3
3. Extend length without  DDNAME.,0%,12%,21%,26%,42%
,0,5,9,11,18
4. Add a syntax scanner for  PARM files.,9%,14%,58%,16%,2%
,4,6,25,7,1
 
Sysprog concerns,
,1,2,3,4,5
,Strongly  Disagree,Disagree,Neutral,Agree,Strongly Agree
,
1. New PARM in  IAESYS to set.,9%,16%,25%,43%,7%
,4,7,11,19,3
2. New system command  to toggle.,14%,20%,34%,23%,9%
,6,9,15,10,4
3. Implemented in future  release,2%,2%,30%,45%,20%
,1,1,13,20,9
4. Not retro'd to previous  releases,2%,14%,39%,39%,7%
,1,6,17,17,3
5. New bit to query for PARM  length,11%,18%,23%,39%,9%
,5,8,10,17,4
6. Backout scenarios should be  documented,5%,0%,28%,51%,16%
,2,0,12,22,7
This  Survey,
,1,2,3,4,5
,Strongly Disagree,Disagree,Neutral,Agree,Strongly  Agree
,
Would like to see  more,0%,3%,50%,35%,13%
,0,1,20,14,5
Wish it were more  detailed,0%,8%,67%,17%,8%
,0,3,24,6,3
---End  CSV-

--
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: PARM Survey in Text Format

2005-05-23 Thread Arthur T.
On 23 May 2005 19:34:42 -0700, in bit.listserv.ibm-main 
(Message-ID:[EMAIL PROTECTED]) 
[EMAIL PROTECTED] wrote:



As ungainly as .csv seems it's easy enough to do.
---CSV  Follows:---


 That looked even uglier than I expected.  I thought 
for sure that line-wrap had done something horrible to 
it.  However, it worked.  *I can read it*.  Thank you!


 I noticed an anomaly:
We need this feature:  66% agree or strongly agree
This should be a Share req:  43% ditto

 Either some people use a different meaning of need 
than I do, or they are (or I am) confused about the reasons 
for Share requirements.


--
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: PARM=

2005-05-23 Thread Peter Hunkeler
The program was defined to run in batch.

And when a program running in batch calls it, then it *is* running in
batch, even if the parm string is longer than 100 characters.

Sorry about that, should have been more specific:
 The program was designed to run as the job step task in a batch
 job, i.e. the one being called because it is named in the PGM=
 parameter on the EXEC statement.

Peter Hunkeler
Senior IT Specialist, IBM zSeries Technical Sales Support, Switzerland

--
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: PARM=

2005-05-21 Thread Greg Price
I'd like to cast a vote for JCL PARMs longer than 100 bytes,
using the current scheme simply (?) by increasing the upper
limit.

I agree with protecting APF authorised programs from inadvertent
parameter overrun.

I don't think non-APF authorised programs need this protection,
although I would expect IBM to check its IEB/IEH utilities,
and other common programs like service aids for problems in
this area.

Assuming a program is expecting a parm length no more than 50,
code like
  LH R2,0(,R1)
  CH R2,=H'50'
  BH PARMLONG
will not trap a 40,000 byte parm, but the JCL deck size may be
a bit of a giveaway, so no big deal IMHO.

I think computers can count data bytes better than humans, so I
liked someone's idea (much earlier in this thread) of a JCL info
message reporting the PARM length for each step which has one.
This may provide a very handy diagnostic for long PARMs.

Further, I think this message should be issued no matter what the
PARM length (ie. even for very short PARMs) whenever the system
has long PARMs enabled, as an obvious flag to all that long PARMs
are currently allowed by the system.  (Dispense with the DISPLAY
command, perhaps?)

Cheers,
Greg P.

--
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: PARM=

2005-05-20 Thread Steve Comstock
Don Ault wrote:
I would like to thank all of you for the posts on PARM=.  I had asked
Peter to make the initial posting, since I was not currently connected
to the IBM-MAIN forum.  It is my job to come up with an acceptable
solution for long parms.  I'm currently leaning towards the following
set of externals:
[snip very nice list of well-thought-out features]
Don, it would be nice if no forcing to uppercase
occurred in all situations, but at least when
PARM is passed to TSO, REXX, or CLIST. Don't know
if that was implicitly covered in your descriptions
or not, but I saw a fair number of people with this
concern, especially if you want to pass HFS path
names or simply mixed-case strings.
Kind regards,
-Steve Comstock
The Trainer's Friend, Inc.
--
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: PARM=

2005-05-20 Thread Todd Burch
Tom, your argument doesn't hold water.

First, you want your s/360 program to run unchanged.  I do too.  So does
Don.

 Don,

 If you limit the long parms to 32K instead of 64K I have little issue, but
 by raising your limit to unauthorized programs to 64K you create an
 architectural problem:  Old programs loading the halfword length on a
 halfword boundary length value using the LH instruction will receive
 negative values for such long parameters.  They are unlikely to
 successfully handle such arithmetic values as they would have been very
 unanticipated when they were written some 30-35 years ago.

 If a 32K PARM string isn't long enough I hold out little hope that a 64K
 string is going to always satisfy the user's requirements.

 --
 Tom Schmidt
 Madison, WI
 (Yes, old programs will be using LH instead of ICM since they may well
have
 been written using the 360 instruction set.  IBM promised not to break old
 programs with incompatible changes, remember?)


I voted for 32K too, but hey, 64K is even better.

IBM, by implementing this, will not have broken anything.  Your s/360
program that is runing today from JCL is expecting no more than 100 bytes.
Fine.  Why would you pass 64K bytes to a program that is expecting a max of
100?  If you do, you've broken it, not IBM.

Todd Burch

--
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: PARM=

2005-05-20 Thread Schiradin,Roland HG-Dir itb-db/dc
And I still would like to see the first JCL with a 64K PARM statement. 
Hopefully 
all application using a parser vs. a fix mapping structure for such a huge 
PARM. 

In the past it was difficult for our operating people to even set a 100 bytes 
parm corretly
because of some mapping issue.

I agree 100 Bytes is not that much but 64K or 32K will be pain without a 
parser. 

Roland

--
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: PARM=

2005-05-20 Thread Patrick O'Keefe
On Fri, 20 May 2005 13:51:55 -0500, Todd Burch [EMAIL PROTECTED]
wrote:

...
IBM, by implementing this, will not have broken anything.  Your s/360
program that is runing today from JCL is expecting no more than 100 bytes.
Fine.  Why would you pass 64K bytes to a program that is expecting a max
of
100?  If you do, you've broken it, not IBM.
...

Technically true but effectively false.
It doesn't much matter who was right when production applications die.

I assume a JCL error is produced if you create a parm larger than 100
bytes.  (Either that or the data is just struncated.)  Change the parm
behavior and instead of a JCL error you get abends or incorrect execution
of some programs.  A change in program behavior with no change to the
program (whose source may have been lost 13 years ago).

Late night phone calls to support people who've never heard of the dying
programs.  Late night phone calls to the system programmers supporting the
recently upgraded MVS.  Lots of finger pointing.  Everything is someone
else's problem.  All parts are Broken As Designed because nothing
prevented the problem.

All because of a finger check no longer causes a JCL error.

IBM should be praised for approaching this cautiously, and is looking
for a solution with the least negative effect.

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: PARM=

2005-05-20 Thread Todd Burch
Hey Tom.

Nothing personal implied - I, you, them, whoever.

I think IBM has done a pretty good job over the years of protecting our
investments in developed technology.   And now, they are doing a good job of
satisfying end user requirements.  I would give them an A+ on this issue for
involving their user community for feedback.

I'm sure there are lots of ways that programs could have been written 30
years ago and they won't work today because of architecture changes.  There
are new instruction op codes for one.  If a 360 program would have forced a
program check (0C1)* for whatever reason that they wanted to run inside a
recovery environment, perhaps that original invalid op code chosen is now
valid?  Who's to blame there?IBM made an architecture change, because
their customers asked it.  Perhaps CHANGE is to blame.

I'm not a sysprog, but I would bet there is an exit somewhere that could be
customized to make sure that a program can't be passed more than 100 bytes
if a shop doesn't want that to happen.

Todd

*I started in the industry in '80, not in the '60s.  I'm making an
assumption that some form of ESTAE/ESTAI was available back then.


- Original Message - 
From: Tom Schmidt [EMAIL PROTECTED]
Newsgroups: bit.listserv.ibm-main
To: IBM-MAIN@BAMA.UA.EDU
Sent: Friday, May 20, 2005 2:43 PM
Subject: Re: PARM=


 Todd,

 First, lets not make this personal.  *I* didn't pass 64K bytes to a
program
 not expecting it, someone else did.  (I know better.)  The result could be
 a program failure.  Some sites will launch a witch hunt to assess guilt,
 etc.  But the architecture in place when the program was written
completely
 precluded that possibility... so it really was IBM who broke the program.
 Especially since the rules in place even TODAY continue to preclude the
 possibility.


--
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: PARM=

2005-05-20 Thread Dan
I suppose there will be a new field/pointer in the SCTX for this larger 
parm?
Anyone accessing SCTXPARM will have to update their code.

Dan
 Original Message 
From: [EMAIL PROTECTED]
Sent: Friday, May 20, 2005 11:07 AM
So minimally have to reassemble all PGMs examining SCT and
conditionally testing a new control block if length greater than
100?
--
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: PARM=

2005-05-20 Thread Paul Gilmartin
In a recent note, Patrick O'Keefe said:

 Date: Fri, 20 May 2005 14:49:21 -0500
 
 I assume a JCL error is produced if you create a parm larger than 100
 bytes.  (Either that or the data is just struncated.)  Change the parm
 behavior and instead of a JCL error you get abends or incorrect execution
 of some programs.  A change in program behavior with no change to the
 program (whose source may have been lost 13 years ago).
 
 IBM should be praised for approaching this cautiously, and is looking
 for a solution with the least negative effect.
 
I believe Don Ault's proposal:

   Linkname: IBM-MAIN archives -- May 2005 (#1235)
URL: 
http://bama.ua.edu/cgi-bin/wa?A2=ind0505L=ibm-mainD=1O=DP=135818

- There will be a system wide option to turn on/off the ability of the
system to process long parms.  If the option is off, then a JCL error
will occur with parms  100.

... pretty well addresses this requirement.  But I might make the
option a numeric value: 65535, 32767, 256, 100, or any value in
between, or even smaller, at the site's option.  Any site can elect
to remain in the twentieth century, or to come to the twenty-first
progressively, one byte of PARM length at a time.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-20 Thread Paul Gilmartin
In a recent note, Peter Hunkeler said:

 Date: Fri, 20 May 2005 23:16:19 +0200
 
 How many of the programs designed to run in batch are coded to cope
 with longer than 100 byte parms? Not too many probably.
 
I suspect a greater number than you believe.  First, ASMA90.
Well, that's only a single program, but it's heavily used.

Likewise, the C compiler.  And I suspect that load modules
output from C suffer no 100-byte restriction.

 I'd strongly suggest the binder attribute is declared an absolute
 must to allow passing longer than 100 byte PARMS to the program. APF
 or not doesn't matter.
 
 The benefit: No need for a system wide option, no need for a system
 command, cheaper to implement, and most importantly, no unnecessary
 incompatibility.
 
One of Don's concerns was for an NJE- or JES- plex.  Hosts supporting
readers shouldn't pass long PARMs to execution hosts that can't
deal with them.  a systemS wide option can enforce this.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-20 Thread Shmuel Metz (Seymour J.)
In
[EMAIL PROTECTED],
on 05/20/2005
   at 08:47 AM, Don Ault [EMAIL PROTECTED] said:

- To address the integrity issue, programs linked with AC=1, coming
from APF authorized libraries, will require a new Binder attribute in
order to get past the converter/interpreter with parms  100. 
Non-APF authorized programs will not require the new attribute in
order to process parms 100.

Have you considered a PARMLIB option to control whether unauthorized
programs require the new attribute in order to process parms 100? How
about a second flag for PARM  32767? And don't you mean Initiator
rather than C/I?

All comments appreciated.

What about mixed case?
 
-- 
 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: PARM=

2005-05-14 Thread Paul Gilmartin
In a recent note, Ray Mullins said:

 Date: Thu, 12 May 2005 16:03:50 -0700
 
 Because...PARM was originally intended for passing of small values of data.
 If you needed to pass more data than 100 bytes, that was a job for a control
 card data set.  Only the C/C++ compiler (from what I've seen in my
 experience) has that capability.
 
 I wouldn't care if it was 32767 or 65535 or 1024 or 4094 - just get off of
 100.
 
A real-life example that happened to me just today:

96 *-*address 'TSO' 'call *(BPXWDYN) '''T1 'msg(1)'''
 call *(BPXWDYN) 'alloc dd(SYSTSIN) PATHOPTS(ORDONLY)
recfm(F,B) lrecl(255) blksize(510) path(''/dev/fd0'') filedata(TEXT)
reuse msg(1)'
IKJ56003I PARM FIELD TRUNCATED TO 100 CHARACTERS

I wasn't trying to generate an example; merely following a
sincere recommendation of an IBM developer in another forum:

   Linkname: [EMAIL PROTECTED] post from [EMAIL PROTECTED] :
URL: http://www2.marist.edu/htbin/wlvtype?MVS-OE.41231

It was colossal stupidity of TSO developers to emulate an inane
restriction in JCL when ATTACH has no such limit.  Does anyone
happen to know their names?

Is it also proposed to relax the restriction for TSO CALL, as
well as for JCL?

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-14 Thread Gerhard Postpischil
- Original Message - 
From: Leonard Woren [EMAIL PROTECTED]
I've never understood why the exec parm needs to be copied somewhere
by the receiving program, except for printing in which case you
probably need to check the length anyway.  I don't feel like groveling
through my source libs right now, but I'd be surprised if any of my
programs, going back to the 1970s, would break with long parms.

Two obvious reasons for moving the PARM to a data field are conversion to 
upper case (which could be done for the EXEC PARM in situ), and to have a 
known terminator character (e.g., X'00') that would make it easier to use 
TRT relying on an ending character without also repeatedly checking the 
length. And obviously any good programmer would check the input length.

Gerhard Postpischil
Bradford, VT 

--
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: PARM=

2005-05-13 Thread Robin Murray
Skip Robinson wrote:
[snip]
Let's just KISS: increase the allowable string length to 256. That should
be plenty for any well-designed application. 
[snip]

I would say 4K would be a better number. If you wanted to pass two path 
names, an input and an output for instance, that would easily use up your 
256 limit even though the parm strings themselves would be easy to read 
and understand. If someone is going to take the time, money and trouble to 
fix this, they may as well make the buffer so large that only extremely 
badly designed programs will run into the limitation. As you point out, 
abuse of the large parm string may occur, but that's shouldn't be JCLs 
concern, it should be the program designer's.

Robin Murray
Tel: (902) 453-7300 x4177
Cell: (902) 430-0637

--
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: PARM=

2005-05-13 Thread Jay Maynard
On Fri, May 13, 2005 at 08:13:39AM -0400, Bob Shannon wrote:
 Seriously, we're talking about a parameter. I agree that 256 bytes ought
 to be sufficient.  

Indeed. I can't recall where I read it, but someone suggested that program
designers avoid constraints that are powers of ten, for they are likely to
be seen as artificial constraints rather than legitimate limits imposed by
the design. There are good technical reasons for a 256-byte limit on parm
length (MVC), and that would seem to be a good dividing line between what
belongs on a PARM statement and what belongs elsewhere just for the sake of
manageability.

What would be a real advance is being able to provide SYSIN to a started
task or other JCL proc without having to go through the gyrations of having
a separate dataset...

--
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: PARM=

2005-05-13 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Miklos Szigetvari
 
 Hi
 
 I would vote for the DD solution.
 A reserved (maybe changeable)  DD name for the long PARM's

That is already available.  See, e.g., CICS:

//STEPNAME EXEC PGM=DFHSIP,PARM=(START=INITIAL,SIT=6$,SYSIN)

Although CICS uses the reserved name SYSIN, an application could be coded
to accept literally any DDNAME.  E.g., CICS could have been coded to use
DFHSYSIN.

-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: PARM=

2005-05-13 Thread Wayne Driscoll
Raymond,
That was my thought as well.  It will not have a negative impact on older
programs, and will clearly require a change to both the called program, and
the caller.  
Wayne Driscoll
Product Developer
Western Metal Supply
NOTE: All opinions are strictly my own.
  

-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of Raymond Noal
Sent: Thursday, May 12, 2005 6:10 PM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: PARM=

Have you ever heard the old adage - if it ain't broke, ..

Instead of messing around with the PARM= field, how about adding a new one
like zPARM= (since these are the days of z/OS, z/VM, z/Linux and (soon to
be) z/TPF on our new z/Series processors). Have zPARM= specify a DDNAME,
like, zPARM=ZPARMS, then code a //ZPARMS DD * file for the job. Now you
can have 15PB (random number for the sake of the example) of data for your
parameters. 

Maybe 15PB won't be enough, though, have you seen some of the parameters on
an RPM command for Linux or some of the other open system commands?

HITACHI
 DATA SYSTEMS

Raymond E. Noal
Lab Manager, San Diego Facility
Office: (858) 537 - 3268
Cell:   (858) 248 - 1172


-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of Peter Relson
Sent: Thursday, May 12, 2005 2:36 PM
To: IBM-MAIN@BAMA.UA.EDU
Subject: PARM=

We all know and love (well, at least know) that the limitation in JCL for
PARM= is 100 total characters. We are thinking (again) about expanding this,
and would like to hear your thoughts.

Some of the possibilities include
- just extending, in JCL processing, so that the target routine gets what it
does today (halfword length followed by string, only the string would
potentially be 100). This is obviously the nicest from the target routine's
perspective if it can handle the extended length
- a service that the target routine can call to give me my parameters.
Obviously the target routine would have to change in order to utilize that
service, and likely would have to dual-path for systems that do not have the
service

One choice that proved not feasible was using a second parameter.
Various utilities already take advantage of the known structure and pass
additional data as additional parameters.

Some of the potential problems an existing target routine might have with an
extended length parameter are
- It provided an area via DS of 100 characters, knowing that the limit was
100, and then did an EX (execute) of an MVC to move the parameter string,
using the length in the halfword. Unfortunately, if the length is (for
example), 256, this would overlay the next 156 bytes
- It did some operation (MVC, TRT, whatever) that is limited to 256
characters which works fine when the limit is 100, but if the routine was
passed 257 characters of data, it might process that as 257 mod 256
characters in some ways.

What do you think?

Peter Relson
z/OS Core Technology Design

--
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

--
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: PARM=

2005-05-13 Thread Paul Gilmartin
In a recent note, Chase, John said:

 Date: Fri, 13 May 2005 08:05:55 -0500
 
  -Original Message-
  From: IBM Mainframe Discussion List On Behalf Of Taddei, Cathy
 
  I agree with Gil and Charles.  IMO, a DD statement would be pointless.
 
Thanks for all the fish (but, not goodbye.)

  If a programmer wanted to receive a parm via DD, they could have done
  it already.  One of the advantages of PARM= is that you can stick it
  in a proc, where DD * will not work.
 
 //A  PROC
 //.
 //SYSIN  DD DDNAME=SYSIN
 //   PEND
 //BB EXEC A
 //.
 //BB.SYSIN  DD *
 ...
 ...
 /*
 
 Works here
 
But not here:

  //A  PROC OPT1=DEFAULT1,OPT2=DEFAULT2,OPT3=DEFAULT3
  //.
  //   PEND
  //BB EXEC A,OPT2='Overriding value 2'
  ...
  /*

... You'd require the programmer to reassert the default
values of PARM options not overridden.

Supplying as examples any number of specific instances in which
the 100-character limit is not constraining does not serve to
refute those cases in which it is burdensome.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

--
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: PARM=

2005-05-13 Thread Chase, John
 -Original Message-
 From: IBM Mainframe Discussion List On Behalf Of Taddei, Cathy
 
 Thank you, Eric, that is indeed what I meant -- you cannot 
 place DD * before the PEND statement, or anywhere in a 
 proclib member.  And it is still a restriction in z/OS 1.4, 
 producing error message:
 
 IEFC601I INVALID JCL STATEMENT
 
 if you put DD * in a proc.  And I agree with everyone that 
 said they should get rid of that restriction, in addition to 
 increasing the PARM length.

Seems to me that allowing instream data within a PROC would add little value
unless it was accompanied by allowing variable substitution to occur within
the instream data.  Without substitution, any change desired in the instream
data would require editing the PROC, which would affect all jobs that invoke
it.  I'm assuming that in the general sense, each job would require
something unique in the instream data; that's why the DDNAME keyword is
available on the DD statement.

-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: PARM=

2005-05-13 Thread Kenneth . W . Leidner
I like most have had to deal with the strange limit of 100 characters on the
PARM statement.  I would support raising the limit in any way that would not
break the old programs still running.  That is the passing of the PARM value
should be done in the same way as today. This way, current programs would
not need to even be aware of the change.  (Yes some person could change the
JCL to pass more than 100 characters to a program that would not handle it,
but then that person needs to change the program first. IE 255 as a max. 

Now as for breaking the 8 bit limit, I would say a new parameter in the JCL
that can not be used if PARM is. The only thing with the keyword name is;
one should look down the line when the current PARM is not used / supported,
if ever, and only the new keyword is in use.  Use XPARM, PARMX ... whatever
as the keyword; but the way the parameter is passed would seem to be the
important thing.  

RR1 = full word length followed by value, program would have to know that
the new keyword was used. 

RR1 = 2 full words.  One being the length of the value, the other pointing
to the value.  So the address of the value is not necessary in storage right
next to the length of the value.  

Use R0 to contain the length and R1 point to the 8 bits of zeros followed by
the value, so an old program thinks the length is zero and no PARM was
passed.  

Use a macro to get the length of the PARM and its location, returned in R0
and R1.  Let MVS deal with the where the PARM and address are hidden in some
control block.  R1 on entry would look as if no PARM was passed.  

Or any of a number of other ways to get a long parameter list to a program. 

The second thing IBM should provide is a macro that would convert the new
PARM format, back to the old one, when the length is 100 characters or less.
This way the JCL could be changed to the new way and with a small change,
insert MACRO x in the program, all will be well. 

 

Kenneth Leidner
Imagination is more important than knowledge.

-Original Message-
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of Paul Gilmartin
Sent: Friday, May 13, 2005 11:07 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: PARM=

In a recent note, R.S. said:

 Date: Fri, 13 May 2005 14:49:53 +0200
 
 256 bytes ?
 IMHO it is not worth to change from 100 to 256. Many should be enough
 limits occured much too short.
 BTW: I know *existing* OS/390 application using more than 256 bytes in
 PARM. It is c89 compiler. I vaguely recollect, it creates pseudo job
 for compilation, this job looks like regular JCL, but all the compiler
 options are in PARM field (many LINES of PARM) and that's why it is
 circumvented in some way. I don't remember details, but the need is
obvious.
 
As you note, it's a pseudo job, so no circumvention is necessary.
The compiler is invoked by an ATTACH macro; the JCL is never executed.

 Personally I vote for
 //STEP   EXEC ... PARMX=ddname
 //DDNAME DD *
 put here as much as you want (i.e. 64k)
 /*
 
 Or (good for PROCLIB)
 PARMX1='   ',
 PARMX2=''
 etc.
 
Then what?  EXEC whatever,PARM=(PARMX1,PARMX2)?  The constructed
PARM string is still subject to the 100 character limit.

Thinking on the idea of a Binder option to declare the ability
of a program to accept a long PARM, there are a couple alternatives:

o A PARMLIB option, allowing each installation to select what
  the JCL and TSO CALL PARM string limit should be.  Any site
  could specify, 100, 255, 65535, or even a value less than 100
  if that suited them.

o A RACF privilege class identifying the set of users (none, some,
  or all) permitted to use long PARM strings in JCL or in TSO CALL.

Otherwise, I wonder how the PARM is represented while a job is in
the input queue?  Does it reside in a control block?  Is the
structure of that block documented as a programming interface?
Is there a hazard of other breakage if it changes?

-- 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: PARM=

2005-05-13 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED],
on 05/12/2005
   at 04:09 PM, Raymond Noal [EMAIL PROTECTED] said:

Instead of messing around with the PARM= field, how about adding a
new one like zPARM= (since these are the days of z/OS, z/VM, z/Linux
and (soon to be) z/TPF on our new z/Series processors). Have zPARM=
specify a DDNAME, like, zPARM=ZPARMS, then code a 
//ZPARMS DD * file for the job. Now you can have 15PB (random
number for the sake of the example) of data for your parameters.

That makes sense only if they also support symbolic parameters and
static system symbols for instream data. Personally, I'd prefer just
raising the limits on PARM. Either way you face the issues that Peter
mentioned.
 
-- 
 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: PARM=

2005-05-13 Thread Shmuel (Seymour J.) Metz
In [EMAIL PROTECTED], on 05/13/2005
   at 09:57 AM, David Andrews [EMAIL PROTECTED] said:

Please also remember the START command processor: convince it to pass
parameters bigger than... what, 61 bytes?  (Whatever fits on a single
generated // PARM='...' card image.)

S MYSTC,A=long,B=long,C=long

//   EXEC  PGM=IEBIBALL,PARM=('A','B','C')

-- 
 Shmuel (Seymour J.) Metz, SysProg and JOAT
 Atid/2http://patriot.net/~shmuel
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: PARM=

2005-05-13 Thread Shmuel Metz (Seymour J.)
In [EMAIL PROTECTED], on 05/13/2005
   at 01:08 AM, Leonard Woren [EMAIL PROTECTED] said:

I think you had the right idea and then missed:  I propose that the
solution should be // PARM and make it mutually exclusive with the
PARM= keyword on EXEC.  Why complicate things?

That question applies as much to your proposal as to anything else.
Adding a new statement is much more complicated than raising the limit
on an existing keyword.

Well, actually it does make things easier.  Since // PARM would be
all-new, it can be thoughtfully implemented to make it easy to code
long continuations correctly.

Having different continuation rules for different statements would be
a complication for the user.  Why complicate things?
 
-- 
 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: PARM=

2005-05-13 Thread Eric Chevalier
On 13 May 2005 09:53:23 -0700,
[EMAIL PROTECTED] (Chase, John) wrote:

Seems to me that allowing instream data within a PROC would add little value
unless it was accompanied by allowing variable substitution to occur within
the instream data.  Without substitution, any change desired in the instream
data would require editing the PROC, which would affect all jobs that invoke
it.  I'm assuming that in the general sense, each job would require
something unique in the instream data; that's why the DDNAME keyword is
available on the DD statement.

You're right in a general sense, of course. But in my personal
experiences, the parameters that I was passing to a program via a control
file were fairly static and usually didn't change very often. So, for me
at least, having a sysin dataset embedded within a cataloged proc is
valuable, even if no symbolic substitution was performed on the data.
(Although it would definitely be a very nice feature to have.)

Eric

--
Eric Chevalier  E-mail: [EMAIL PROTECTED]
   Web: www.tulsagrammer.com
Is that call really worth your child's life?  HANG UP AND DRIVE!

--
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


  1   2   >