Charles

> It's supported by IBM.

It's possible - or it was in the early 1970s - to specify that whatever MVS was 
called in those days could be defined to read a blocked tape backwards so 
that logically each GET should yield a record in the implied order. 

Did it work? It most certainly did not.

Could it have worked? Well, yes it could and, in effect, I created access 
method logic comparable to QSAM which did just that.

Was it really necessary to have created that "access method logic"? Well, I 
never found out that it was. In other words, I never encountered a case of a 
program from the conversions to "MVS" of the 360-like systems which ever 
called upon what this foreign operating system implied - just like "MVS" - was 
possible, namely unblocking tape data backwards.

Moral: just because the coding appears to be accepted, it doesn't mean what 
function it implies is actually supported.

-

> BTW, which one is poor coding practice, NEW or MOD?

I thought Gerhard made that quite clear:

>...> In fact, a DISP=MOD doesn't make logical sense for a PDS, ...

Chris Mason


On Fri, 4 Mar 2011 17:13:32 -0800, Charles Mills <[email protected]> wrote:

>That could be. JCL apparently converts DISP=MOD to DISP=NEW internally
>(x'C0' is what ends up in JFCBIND2 for either one).
>
>That's why I was asking. They are both supported -- why, I wondered -- is
>there a difference?
>
>I'm not just playing with JCL variations in my spare time. I have
>responsibility for a "virtualization" product that does a lot of varied
>processing depending on many details of its execution environment. I have a
>bug involving the treatment of PDS members DISP=NEW/MOD. I'm trying to
>figure out what the distinctions are, if any. Face it, the MVS documentation
>tends to be very scattered. It's tough to know whether the discussion you
>have found is the only relevant discussion. And it's tough to run an
>experiment when you don't know what exactly you are looking for.
>
>It may be a poor practice in actual coding, but customers/users do what they
>do. It's supported by IBM. Not good form for a product to fail. And "it's
>supported by IBM but it's a poor coding practice" is not an argument I want
>to have with a customer or prospect.
>
>BTW, which one is poor coding practice, NEW or MOD?
>
>Geez! Why do I have to defend asking a question on IBMMAIN?
>
>Charles
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf
>Of Gerhard Adam
>Sent: Friday, March 04, 2011 4:57 PM
>To: [email protected]
>Subject: Re: Difference between DISP=NEW and MOD for a PDS member?
>
>Why should it make a distinction?  DISP=MOD and DISP=NEW behave exactly 
the
>same way for a new data set also.
>
>In fact, a DISP=MOD doesn't make logical sense for a PDS, since it isn't
>sequential data that is being appended, nor does it make sense for a
>directory.  While the manual indicates that both forms work, they seem like
>a poor practice in actual coding.
>
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf
>Of Charles Mills
>Sent: Friday, March 04, 2011 4:34 PM
>To: [email protected]
>Subject: Re: Difference between DISP=NEW and MOD for a PDS member?
>
>Yes. Notice that it makes no distinction between MOD and NEW for a member.
>That is exactly why I asked the question.
>
>Charles
>
>-----Original Message-----
>From: IBM Mainframe Discussion List [mailto:[email protected]] On 
Behalf
>Of Gerhard Adam
>Sent: Friday, March 04, 2011 4:08 PM
>To: [email protected]
>Subject: Re: Difference between DISP=NEW and MOD for a PDS member?
>
>Has it occurred to anyone to just look at the JCL Reference manual?
>
>" When you specify DISP=MOD or DISP=NEW for a partitioned data set (PDS) 
or
>partitioned data set extended (PDSE), and you also specify a member name in
>the DSNAME parameter, the member name must not already exist. If the 
member
>name already exists, the system terminates the job.
>
>When you specify DISP=OLD for a PDS or a PDSE, and you also specify a 
member
>name in the DSNAME parameter, the data set must already exist. If the 
member
>name already exists and the data set is opened for output, the system
>replaces the existing member with the new member. If the member name does
>not already exist and the data set is opened for output, the system adds the
>member to the data set.
>
>When you specify DISP=MOD for a PDS or a PDSE, and you do not specify a
>member name, the system positions the read/write mechanism at the end of 
the
>data set. The system does not make an automatic entry into the directory.
>
>When you specify DISP=MOD for a PDS or a PDSE, and you do specify a 
member
>name, the system positions the read/write mechanism at the end of the data
>set. If the member name already exists, the system terminates the job.
>
>When you specify DISP=SHR for a partitioned data set extended (PDSE) and
>also specify a member name, then:
>
>    * If the member name exists, the member can have one writer or be 
shared
>by multiple readers, or
>
>    * If the member name does not exist, the member can be added to the 
data
>set. Thus, multiple jobs can access different members of the data set and
>add new members to the data set concurrently -- but concurrent update 
access
>to a specific member (or update and read by other jobs) is not valid.

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

Reply via email to