Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-10 Thread Chris Mason
Radoslaw

 You used many words, citations, quotations, etc. but IMHO you should  just 
say I was wrong.

I don't think trying to make sense of what is written in the manual which is 
*supposed* to describe what the product does hoping that WAC corresponds 
to WAD can be considered wrong.

The manual was guilty of some sort of disingenuity - sorry, words again but 
they are rather appropriate when writing! - in suggesting that DISP=NEW 
could involve an existing data set.

I was going to say I was misled but it's more bemused. If you care to recall, I 
did say that in constructing the diagrams which that section of the manual 
first offered by Gerhard Adam cried out to be so represented, I tried initially 
to 
follow your contention - which is what I had assumed previously without even 
having given it all that much thought. Then I decided that first paragraph 
required what has turned out to be erroneous. If I'd placed more credence on 
what was said about DISP=OLD I would have been guided back to the path of 
righteousness.

 I really don't care what's in the manual, ...

Sadly, not having a sandbox to hand these days, I'm obliged to rely on 
whatever documentation I can find.

But since you *do* have one or more playpen systems to hand, perhaps 
you'd like to verify my revised diagrams. It would, for example, be interesting 
to have plotted out what how the errors which have passed JCL reveal 
themselves. Looking back to your first post in this thread, I see you may have 
already identified PDS with member name specified, data set does exist and 
member does exist, DISP=MOD as *not* a JCL fail but abend SB14 
whether input or output.

 I want the discussion to stay technical one ...

What could be more technical than reporting live experiments!

Chris Mason

On Sun, 6 Mar 2011 20:02:56 +0100, R.S. 
r.skoru...@bremultibank.com.pl wrote:

W dniu 2011-03-06 17:19, Chris Mason pisze:
 Radoslaw

 Yes, DISP=NEW fails if the PDS already exists. Even if nonexistent 
member is
 specified.

 I'm assuming that what you mean to say is the following
[...]
Chris,
You used many words, citations, quotations, etc. but IMHO you should
just say I was wrong.
I really don't care what's in the manual, what somebody said, etc. DISP
in JCL is always for dataset, not the member, DISP=NEW always end with
JCL error when PDS(E) exist, and it it completely irrelevant whether you
specify member name or not or specified member exists or not.

The only (not mentioned) case when DISP=NEW works (does not cause error)
for existing dataset is ...
(I think it wasn't mentioned here yet)
GDG.

GDG dataset with deferred roll in (proper name can be slightly
different, wrote from my poor memory) is simply rolled it when DISP=NEW
is used. But it is very specific case, which precludes usage of PDSE and
membername of PDS. And was (no longer is) unsupported by IBM for PDS.




I want the discussion to stay technical one, not - let's say -
political, like USS meaning or Toronto airports.
Regards
--
Radoslaw Skorupka

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-08 Thread Shmuel Metz (Seymour J.)
In 4d73da60.30...@bremultibank.com.pl, on 03/06/2011
   at 08:02 PM, R.S. r.skoru...@bremultibank.com.pl said:

I really don't care what's in the manual, what somebody said, etc.

ITYM that you simply don't care about facts.

DISP in JCL is always for dataset, not the member,

Yes, there's no difference between getting an S214 and not getting
one.

I want the discussion to stay technical one, not

Then you should look at how the OS works rather than how you believe
that it should work.
 
-- 
 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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-07 Thread Charles Mills
Linda, thanks, yes, that is more or less what I do for the can't pre-create 
cases. I use an internal copy function. (My bug was in not recognizing certain 
can't pre-create cases.)

I'm curious too. The only answer I could get was that IBM supported this and 
that's what they wanted to do. They are creating a temporary PDS and member and 
passing it to a subsequent step. I don't see any reason not to pass a 
sequential file, but I have not seen all of the job, just failing fragments. 

Whatever. I had the logic to test for the can't pre-create cases. I had the 
copy function. I fixed the bug. They can do all the FOO(BAR),DISP=NEW/MOD they 
want now.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of 
Linda Mooney
Sent: Sunday, March 06, 2011 11:09 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Yes, that would be the same.  So, how about  if you preallocated a sequential 
file, then used IEBCOPY (with or without replace - as might be appropriate for 
your product) to copy the new file into the pds or pdse member?  

I am curious as to why a pds or pds/e is needed .  In my shop, we use 
individual sequential , or GDG for ftp datasets. 

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread R.S.

W dniu 2011-03-06 05:41, Chris Mason pisze:

Charles

The bottom line lacks copper.


DISP=NEW fails if the PDS already exists


Not if the name of a non-existent member is specified.


Yes, DISP=NEW fails if the PDS already exists. Even if nonexistent 
member is specified.

At least my poor z/OS claims so. (Read: I just tested it).

And I dare to repeat: DISP is always for dataset, not for the member. 
That's what we observe everyday: DELETE deletes PDS(E), NEW requires 
SPACE and creates new PDS(E) on disk.

--
Radoslaw Skorupka
Lodz, Poland


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Don Williams
When I replied with my simple answer, I had not seen the part of thread
referring to product being written. Over the years, I have had to restore
many PDSes when a naïve user coded DISP=(MOD,DELETE). Sorry, I'm biased with
trying to make sure that most people view, in general, DISP as a dataset
level parameter. However, in this case the nuances of the DISP parameter are
important. 

Don

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Chris Mason
Sent: Saturday, March 05, 2011 11:44 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Don

 The simple answer:

This is not a topic for people who need simple answers!

When I said

... DISP=NEW/MOD insists that the member does not exist irrespective of 
whether or not a partitioned data set exists

obviously I was concentrating on the only on first suboperand of the DISP 
operand.

It seems we must take a different perspective according to whether we are 
dealing with the first suboperand or the second and third suboperands - not
at 
all simple!

 The DISP parameter is for the data set/library and not members.

Apparently not so in the case of the first suboperand.

If a member name is specified, the first suboperand relates to the member
and 
appears not to care about the data set. Otherwise why make a fuss about 
whether a member exists or not in a data set that can't be there to contain 
the member - which may or may not be there - if the data set is not supposed

to exist - in the case of DISP=NEW anyhow. There's something of the 
Cheshire Cat about this!

Here, once again for your delectation, is the first paragraph of the 
section 12.19.8 Disposition of Partitioned Data Sets (PDSs and PDSEs) from

the z/OS V1R12 MVS JCL Reference manual:

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.8

quote

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. 

/quote

If you can explain this away, I'll accept your simple contention also
regarding 
the first suboperand.

 For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the 
library and not just the member.

Assuming you verified your example rather than just composing it in order to

illustrate your point, it appears that the normal and abnormal termination 
disposition suboperands do indeed apply to the data set irrespective of 
whether or not a member name is specified. I checked the z/OS V1R12 MVS 
JCL Reference manual to try to be sure and there is certainly no mention of 
any variation based on whether or not a member name is specified so I guess 
an actual test would have been superfluous.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.2.2
http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.2.3

Indeed, it's all getting a bit complex and the poor systems programmer who 
tried to delete a member using the DISP second suboperand can be forgiven - 
well by those who were not desperately relying on the partitioned data set, 
that is![1]

-

A modification to my previous post with the diagrams:

In the case of a DISP=NEW data set or dataset(member) - and DISP=MOD if 
the entity has had no existence hitherto - it is an error not to write 
something. This makes my error or immediate EOF simply error. 
An immediate EOF would be possible only if the data set - or a member I 
guess - had deliberately been created - written to - with 0 records. 
Alternatively I'll be happy to be corrected.

-

Chris Mason

[1] This reminds me of an occasion when I keyed up a SCRATCH statement 
that was supposed to be coded as 

SCRATCH VTOC,VOL=2314=MYVOLM,SYS

After that traumatic event, I resolved always to use the order

SCRATCH VTOC,SYS,VOL=2314=MYVOLM

because it turns out you can't always be sure that where you intended to key

a comma, a comma actually got keyed!

I remember even better because it was New Year's Eve and the was someone 
from north of the border in the overworked team.


On Sat, 5 Mar 2011 15:12:41 -0500, Don Williams donb...@gmail.com 
wrote:

The simple answer: The DISP parameter is for the data set/library and not
members.

For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the 
library and
not just the member.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 3:03 PM
To: IBM-MAIN@bama.ua.edu
Subject: Difference between DISP=NEW and MOD for a PDS member?

What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?

Charles

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Charles Mills
Linda -

Thanks, yes, I am pre-creating (hope that's what you meant) the dataset. I get 
into trouble if it's DSN(MEMBER),DISP=NEW/MOD because you can't do that twice.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of 
Linda Mooney
Sent: Saturday, March 05, 2011 8:32 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Hi Charles, 



I have read through the thread with some interest, though I do not know you or 
which product you are working on. 



Would it be possible for your code to preallocate the receiving dataset?  

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Charles Mills
 DISP=NEW fails if the PDS already exists

 Not if the name of a non-existent member is specified.

Nay! I just tested exactly that and got
IEF253I TCC00114 BR14 FOO - DUPLICATE NAME ON DIRECT ACCESS VOLUME

The same DD executes if I specify DISP=MOD (but would presumably fail on the
CLOSE).

 I'm still waiting for an explanation of how a member can exist in a
partitioned 
 data set that cannot exist - possibly I'm in the wrong universe!

If you're still waiting you didn't read what you quoted below!

this can only happen if the program creates the member during execution
(OPEN, PUT, CLOSE, OPEN, PUT, CLOSE) because after all the PDS must be brand
new

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Chris Mason
Sent: Saturday, March 05, 2011 8:41 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Charles

The bottom line lacks copper.

 DISP=NEW fails if the PDS already exists

Not if the name of a non-existent member is specified.

 DISP=NEW and MOD both fail if the member already exists.

I'm still waiting for an explanation of how a member can exist in a
partitioned 
data set that cannot exist - possibly I'm in the wrong universe!

Chris Mason

On Sat, 5 Mar 2011 11:28:40 -0800, Charles Mills charl...@mcn.org 
wrote:

And I guess the bottom line on the original technical question is:

- DISP=NEW fails if the PDS already exists (or, if you will, may be used
to
make certain that the PDS does not already exist); DISP=MOD is good either
way.
- DISP=NEW and MOD both fail if the member already exists but fail
differently: NEW fails on the CLOSE with SB14-04 -- this can only happen if
the program creates the member during execution (OPEN, PUT, CLOSE, OPEN,
PUT, CLOSE) because after all the PDS must be brand new; MOD fails on the
OPEN but I am not sure of the exact error.

Comments?

Charles
-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Charles Mills
Sent: Saturday, March 05, 2011 7:26 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

A lot of replies. Thanks all. Let me try to address various comments in a
single response.

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

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Charles Mills
 The FTP LRECL default is 256 for both client and server.
 The FTP RECFM default is VB for both client and server.

That's nice. I just tested

//TESTDD   DD  DSN=userid.FOO.BAR,DISP=(NEW,CATLG),UNIT=SYSDA, 
//  SPACE=(TRK,(1,1))  

GET   TCC.CTNL(IEFBR14) //DD:TESTDD

And got

userid.FOO.BAR  
 --RECFM-LRECL-BLKSIZE-DSORG 
   U **6144PS

 If your problem concerns the way z/OS Communications Server FTP behaves

It does not. It concerns the difference between DISP=NEW and DISP=MOD for a
PDS member.

Did somebody say was a figure of speech.  

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Chris Mason
Sent: Saturday, March 05, 2011 8:52 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Charles

 The underlying problem is that FTP has the world's worst RECFM and LRECL 
defaults, something like RECFM=U, LRECL=1024 (LRECL from recollection).

The FTP LRECL default is 256 for both client and server.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/F1A1B4A0/18.77

The FTP RECFM default is VB for both client and server.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/F1A1B4A0/18.100

 Did somebody say use LOCSITE? Unfortunately LOCSITE is not effective 
with //DD:

Not unless you have been receiving private communications which the rest of 
us have not seen or it's a contributor whose post hasn't appeared in the
IBM-
MAIN archives.

-

If your problem concerns the way z/OS Communications Server FTP behaves, 
you may find the expertise you need in the IBMTCP-L list.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Charles Mills
DISP is always for the dataset and not the member

The problem is that DISP means different things. If you are a JCL coder,
then DISP is a parameter that indicates the current status of the dataset
and what is to become of it after the jobstep completes: DISP=(NEW,CATLG).

If you are using SVC 99 or looking at JFCBs then disposition means only the
latter of those two things, what is to become of the dataset. The current
status is called -- drum roll please -- status.

I think it is safe to say that disposition -- what happens after the
jobstep completes -- DELETE, CATLG, etc. -- is always for the dataset and
not the member. DISP= -- which includes the current status of the dataset
-- NEW, MOD, OLD -- is for both the dataset AND the member.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of R.S.
Sent: Sunday, March 06, 2011 2:16 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

W dniu 2011-03-06 05:41, Chris Mason pisze:
 Charles

 The bottom line lacks copper.

 DISP=NEW fails if the PDS already exists

 Not if the name of a non-existent member is specified.

Yes, DISP=NEW fails if the PDS already exists. Even if nonexistent 
member is specified.
At least my poor z/OS claims so. (Read: I just tested it).

And I dare to repeat: DISP is always for dataset, not for the member. 
That's what we observe everyday: DELETE deletes PDS(E), NEW requires 
SPACE and creates new PDS(E) on disk.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Chris Mason
Radoslaw

 Yes, DISP=NEW fails if the PDS already exists. Even if nonexistent member is 
specified.

I'm assuming that what you mean to say is the following:

Yes, DISP=NEW fails if the PDS already exists and a member name is 
specified, even if a non-existent member is specified.

In fact, the post to which you are actually responding 

- had the virtue of brevity so could appeal to short attention spans - and I'm 
not accusing you of that - it's just that I've tried to make the point in a few 
posts and been ignored

- has the vice of not being properly hedged with the qualification if what is 
implied by the manual is to be believed but then, to have ameliorated that 
vice, would have impinged on the virtue!

Anyhow thanks very much for having demonstrated that what is implied in the 
manual is *not* to be believed with a test.

I hope you noted in an earlier post that I tried to take your route but 
committed the heinous crime of actually believing what the manual implied. Will 
I ever learn? Unfortunately I don't have a sandbox these days so these 
suspect documents are all I have to try to clarify these sorts of matters. 

What this indicates is that the section of the manual to which Gerhard Adam 
directed us is fatally wrong.

Which could be used as an answer to Gerhard's question:

... Has it occurred to anyone to just look at the JCL Reference manual?

Maybe Yes, but I don't trust what the JCL Reference manual tells me so I'm 
asking for help from someone who really knows.

I propose a rewriting as follows:

current text

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. 

/current text

proposed text

When you specify 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, naturally neither the data set nor the member exist.[1] If 
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 PDSE and you also specify a 
member name in the DSNAME parameter, the data set may exist but, if the 
data set already exists, the member must not already exist. (If the member 
already exists, the system terminates the job.) If 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, the system positions the 
read/write mechanism at the end of the data set.

When you specify DISP=MOD for a PDS or a PDSE, and you do not specify a 
member name in the DSNAME parameter and the data set exists, the system 
does not make an automatic entry into the directory.

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. 

[1] Initially. However, if, during execution, a data set is created thereby 
creating a member having the specified name and then there is an attempt to 
create another data which would, if allowed to proceed create a member 
replacing the previous member, that attempt will fail.

/proposed text

I've fixed up not only the first paragraph, the one that is so ridiculously 
wrong, 
but also the rest in order to be just a bit clearer and I have tried to 
maintain a 
pattern which should provide assurance that the description is more 
comprehensive.

The sentence regarding the automatic entry is a bit of a mystery since I find 
no other reference to something like this anywhere else in either of the JCL 
manuals.

Also I'm not sure that the read/write mechanism comment belongs here. I've 
a suspicion that the manual author was asked to slip in a comment like this 
wherever 

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Chris Mason
Don

It turns out there is some amazing sophistry which can explain the grin on the 
non-existent Cheshire Cat!

The copper-bottomed line is that, indeed, all suboperands of DISP relate to 
the data set and, in that case where the DSNAME specifies a member, none of 
the suboperands of DISP relate to the member.

That confusing paragraph which implied that a data set could exist already 
with DISP=NEW - or why was the existence or otherwise of the member 
pertinent - can be explained as follows:

- Let us say the program wants to open and close the data set N times and at 
least the first time one or more records (blocks) are written.

-- If DISP=OLD or DISP=SHR is specified and the data set (pds) exists already, 
this is fine.

-- If DISP=NEW is specified and the data set didn't exist already, the 
first open and close will work, but the second open causes a failure since 
now the member exists.

-- If DISP=MOD is specified and the data set didn't exist already, the 
first open and close will work, but the second open causes a failure since 
now the member exists.

-- If DISP=MOD is specified and the data set existed already but the member 
didn't exist, the first open and close will work, but the second open causes 
a 
failure since now the member exists.

-- If DISP=MOD is specified, the data set existed already and the member 
existed already, the first open causes a failure since the member exists.

For convenience, here's that pesky paragraph again:

quote

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. 

/quote

Charles Mills did hint at this earlier but I'm afraid I missed his point.

Of course, why this should be a problem is not clear - or not to me anyhow - 
and when something like this isn't clear it behoves the developers to explain 
themselves - and sometimes they do, sometimes they don't!

Chris Mason

On Sun, 6 Mar 2011 09:49:03 -0500, Don Williams donb...@gmail.com 
wrote:

When I replied with my simple answer, I had not seen the part of thread
referring to product being written. Over the years, I have had to restore
many PDSes when a naïve user coded DISP=(MOD,DELETE). Sorry, I'm biased 
with
trying to make sure that most people view, in general, DISP as a dataset
level parameter. However, in this case the nuances of the DISP parameter are
important.

Don

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Chris Mason
Sent: Saturday, March 05, 2011 11:44 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

Don

 The simple answer:

This is not a topic for people who need simple answers!

When I said

... DISP=NEW/MOD insists that the member does not exist irrespective of
whether or not a partitioned data set exists

obviously I was concentrating on the only on first suboperand of the DISP
operand.

It seems we must take a different perspective according to whether we are
dealing with the first suboperand or the second and third suboperands - not
at
all simple!

 The DISP parameter is for the data set/library and not members.

Apparently not so in the case of the first suboperand.

If a member name is specified, the first suboperand relates to the member
and
appears not to care about the data set. Otherwise why make a fuss about
whether a member exists or not in a data set that can't be there to contain
the member - which may or may not be there - if the data set is not 
supposed

to exist - in the case of DISP=NEW anyhow. There's something of the
Cheshire Cat about this!

Here, once again for your delectation, is the first paragraph of the
section 12.19.8 Disposition of Partitioned Data Sets (PDSs and PDSEs) from

the z/OS V1R12 MVS JCL Reference manual:

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.8

quote

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.

/quote

If you can explain this away, I'll accept your simple contention also
regarding
the first suboperand.

 For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the
library and not just the member.

Assuming you verified your example rather than just composing it in order to

illustrate your point, it appears that the normal and abnormal termination
disposition suboperands do indeed apply to the data set irrespective of
whether or not a member name is specified. I checked the z/OS V1R12 MVS
JCL Reference manual to try to be sure and there is certainly no mention of
any variation based on whether or not a member name is specified so I guess

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread R.S.

W dniu 2011-03-06 17:19, Chris Mason pisze:

Radoslaw


Yes, DISP=NEW fails if the PDS already exists. Even if nonexistent member is

specified.

I'm assuming that what you mean to say is the following

[...]
Chris,
You used many words, citations, quotations, etc. but IMHO you should 
just say I was wrong.
I really don't care what's in the manual, what somebody said, etc. DISP 
in JCL is always for dataset, not the member, DISP=NEW always end with 
JCL error when PDS(E) exist, and it it completely irrelevant whether you 
specify member name or not or specified member exists or not.


The only (not mentioned) case when DISP=NEW works (does not cause error) 
for existing dataset is ...

(I think it wasn't mentioned here yet)
GDG.

GDG dataset with deferred roll in (proper name can be slightly 
different, wrote from my poor memory) is simply rolled it when DISP=NEW 
is used. But it is very specific case, which precludes usage of PDSE and 
membername of PDS. And was (no longer is) unsupported by IBM for PDS.





I want the discussion to stay technical one, not - let's say - 
political, like USS meaning or Toronto airports.

Regards
--
Radoslaw Skorupka
Lodz, Poland


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Shmuel Metz (Seymour J.)
In 02c601cbdae7$d9103650$8b30a2f0$@net, on 03/04/2011
   at 07:46 PM, Gerhard Adam gada...@charter.net said:

I personally can't see any reason for
coding DISP=MOD or DISP=NEW when maintaining PDS members.

Avoiding an ABEND is a good reason.

My point about poor coding practice, is that the DISP is used to
reflect the state of an entire data set and not individual members. 

Perhaps in some other OS. In z/OS it's used for both. Poor design,
perhaps, but it's not likely to change.

So while DISP=NEW and DISP=MOD are supported, there's no 
practical reason for their use

Not if you don't care aboput the ABEND.
 
-- 
 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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Shmuel Metz (Seymour J.)
In 4d71708d.3000...@bremultibank.com.pl, on 03/05/2011
   at 12:06 AM, R.S. r.skoru...@bremultibank.com.pl said:

DISP is always for dataset, not for member.

Not only is that false, but it contracdicts the remaindeer of your
message. DISP is for both the DS and the member.
 
-- 
 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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-06 Thread Linda Mooney
Yes, that would be the same.  So, how about  if you preallocated a sequential 
file, then used IEBCOPY (with or without replace - as might be appropriate for 
your product) to copy the new file into the pds or pdse member?  



I am curious as to why a pds or pds/e is needed .  In my shop, we use 
individual sequential , or GDG for ftp datasets. 



Linda 


- Original Message - 
From: Charles Mills charl...@mcn.org 
To: IBM-MAIN@bama.ua.edu 
Sent: Sunday, March 6, 2011 6:51:01 AM 
Subject: Re: Difference between DISP=NEW and MOD for a PDS member? 

Linda - 

Thanks, yes, I am pre-creating (hope that's what you meant) the dataset. I get 
into trouble if it's DSN(MEMBER),DISP=NEW/MOD because you can't do that twice. 

Charles 

-Original Message- 
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of 
Linda Mooney 
Sent: Saturday, March 05, 2011 8:32 PM 
To: IBM-MAIN@bama.ua.edu 
Subject: Re: Difference between DISP=NEW and MOD for a PDS member? 

Hi Charles, 



I have read through the thread with some interest, though I do not know you or 
which product you are working on. 



Would it be possible for your code to preallocate the receiving dataset?   

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

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Gerhard and all following this topic

I've tried to develop a complete story in part based on the above extract from 
the z/OS V1R12 MVS JCL Reference, SA22-7597-14, 12.19.8 Disposition of 
Partitioned Data Sets (PDSs and PDSEs):

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.8

I start with the simpler case of a sequential data set and go on to a PDS 
without a member name specified finishing with a PDS with a member name 
specified.

It's very much a requirement that these tables be viewed with a non-
proportional font of course.

Sequential
--

JCL

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| pass | pass | fail | fail | data set does not exist
-
| fail | pass | pass | pass | data set does exist
-

Input

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 1| 1|  |  | data set does not exist
-
|  | 2| 2| 2| data set does exist
-

 1 - error or immediate EOF
 2 - normal with QSAM

Output

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 2| 2|  |  | data set does not exist
-
|  | 3| 2| 2| data set does exist
-

 2 - normal with QSAM
 3 - normal with QSAM and data appended

PDS with no member name specified
-

JCL

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| pass | pass | fail | fail | data set does not exist
-
| fail | pass | pass | pass | data set does exist
-

Note: identical to sequential

Input

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 1| 1|  |  | data set does not exist
-
|  | 4| 4| 4| data set does exist
-

 1 - error or immediate EOF
 4 - programming for PDS structure

Output

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 5| 5|  |  | data set does not exist
-
|  | 6| 5| 5| data set does exist
-

 5 - apparently normal with QSAM but creates a sequential data set - or - 
programming for PDS structure
 6 - apparently normal with QSAM but resulting data set is corrupted

PDS with member name specified
--

JCL

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| pass | pass | fail | fail | data set does not exist
-
| pass | pass | fail | fail | data set does exist but member 
does 
not exist
-
| fail | fail | pass | pass | data set does exist and member 
does 
exist
-

Input

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 1| 1|  |  | data set does not exist
-
| 1| 1|  |  | data set does exist but member 
does 
not exist
-
|  |  | 2| 2| data set does exist and member 
does exist
-

 1 - error or immediate EOF
 2 - normal with QSAM

Output

-
| DISP=NEW | DISP=MOD | DISP=OLD | DISP=SHR |
-
| 2| 2|  |  | data set does not exist
-
| 2| 6|  |  | data set does exist but member 
does 
not exist
-
|  |  | 7| 7| data set does exist and member 
does exist

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
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 charl...@mcn.org 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:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:57 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 4:34 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Gerhard

 ... the DISP is used to reflect the state of an entire data set and not 
individual members.

That's *not* what the section you quoted before says to me!

Try making sense of the following otherwise:

quote

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.

/quote

I tried to work out what the section you quoted meant using the concept that 
a data set specified as just data_set_name and a data set specified as 
data_set_name(member_name) were *not* the same but that the data set 
was just to what the data_set_name referred. This finally didn't work - mainly 
because I had to assume an error in the paragraph above.

Once I had accepted that data set meant data_set_name or data_set_name
(member_name), what I found in the manual made sense. Applying Occam's 
razor, I accepted the latter interpretation.

Of course, I could just be having an incredibly dense Saturday and I should 
desist from making any technical posts this weekend!

Chris Mason

On Fri, 4 Mar 2011 19:46:01 -0800, Gerhard Adam gada...@charter.net 
wrote:

I don't think it's a question of what to reply, but rather if you feel the
product is poorly documented or supported, then it seems the place to be
having this conversation is with IBM.  I personally can't see any reason for
coding DISP=MOD or DISP=NEW when maintaining PDS members.  As for, 
customers
can do what they want ... perhaps so, but not if they expect support.  I had
one programmer code DISP=(OLD,DELETE) to try and remove a member from a
LNKLST library, so I don't accept that argument (fortunately security
prevented him from deleting the entire library).  If they use the DISP
improperly, then you will see this kind of coding.

My point about poor coding practice, is that the DISP is used to reflect the
state of an entire data set and not individual members.  So while DISP=NEW
and DISP=MOD are supported, there's no practical reason for their use and it
creates the erroneous view that DISP processing operates against members.

While it's not my place to tell you what to do, or how your organization
runs, I'm concerned that you've mentioned that you have a bug, but 
haven't
mentioned what IBM's response is to this (perhaps you mentioned it already
and I simply missed it)?

I don't find that the MVS documentation is scattered as much as it is
redundant in numerous placed.  I don't recall seeing conflicting or
contradictory documentation, so I'm not quite sure what you mean by that
statement.  From what I posted, it was found exactly where it should be, so
I'm not sure what you might be referring to.

If you don't mind ... what is the bug you're experiencing?  Is it behaving
in some unusual way or simply failing?

Adam

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread R.S.

W dniu 2011-03-05 00:40, Charles Mills pisze:

I have been performing some tests. There are a lot of variations: not just
JCL but SVC 99, FTP, etc.

People here love to demonstrate their knowledge. What's wrong with asking
them? Discussion of the city of Toronto's airports is okay but a discussion
of PDS DISP= is not?

The problem is not obvious, as you have seen in having re-thought your first
answer.



Charles,
You mis-interpreted my intention. I suggested the tests, because it's 
IMHO good advice. I think you understand it as don't bother us with 
simple questions, you should RTFM or test it!. Yes, it can be 
understood that way, but *it wasn't my intention*.
Please, remember: English is foreign language for me so sometimes some 
nuances or allusions can be unintentional. I answered because not to say 
I know the answer, but because I knew the answer and thought it can be 
helpful. Provided some clue.


Back to technical discussion: it is quite simple IMHO, and can be easily 
tested using JCL and DFSMS utilities. (My self-correction was a result 
of type in a hurry mode.)

Caution: there many test cases, but it doesn't make it complicated.
When you get results for JCL and utilities - I think that ftp, SVC99, 
and whatever will not make it more complex.


Regards
--
Radoslaw Skorupka
Lodz, Poland


P.S. Regarding Toronto: I simply delete whole thread without reading it.


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Charles Mills
A lot of replies. Thanks all. Let me try to address various comments in a
single response.

 You mis-interpreted my intention

Sorry. I took I'd suggest you to simply perform some tests - IMHO it's much
better than asking others about it and Has it occurred to anyone to just
look at the JCL Reference manual? as a rebuke. My apologies if I was
over-paranoid.

 English is foreign language for me

Your English is certainly better than my Polish and I thank you for being so
tolerant of us mono-lingual Americans.

 it seems the place to be having this conversation is with IBM

I am not alleging any bug in any IBM component. I was simply asking how it
worked. I think the whole of MVS could use some vast improvements in
documentation but that's just IMHO and I don't think IBM would be terribly
responsive to my opening a ticket. (And please, save the flames, yes, MVS
is much better documented than some operating systems.)

Ah! I get it. You interpreted my I have a bug involving the treatment of
PDS members as meaning that I was alleging a bug in MVS. Nay! By I have
a bug I meant there is a bug (apparently) in my code. That is, the product
is failing at a customer's site and I have no reason to think the bug is
other than in my code.

I've found the immediate problem. Where my code apparently really should be
testing for NEW or MOD it was testing only for MOD, and as JCL apparently
populates JFCBIND2 with NEW (x'C0') for both NEW and MOD my code was failing
for both cases.

I asked about the differences between NEW and MOD because if I was going to
change the code I wanted to get it right. SHOULD the code be differentiating
between NEW and MOD? (Apparently not.)

 I don't find that the MVS documentation is scattered ...  
 I don't recall seeing conflicting or contradictory documentation ...
 I'm not sure what you might be referring to.

Agreed, on this particular topic, all of the documentation is apparently in
one place. But one does not know that, does one? If one is trying to RTFM
about how feature X works and one finds a paragraph or a chapter devoted to
X, how does one know whether there is additional (or conflicting!)
information elsewhere? Particularly if the keywords in question are DISP or
NEW or MEMBER which occur with such frequency that a simple search is not
useful?

 DISP is always for dataset, not for member.

That statement is a useful principle to keep in mind but it is not exactly
relevant to my question. FOO(BAR),DISP=NEW behaves differently depending on
whether or not FOO(BAR) exists. So DISP is always FOR the dataset, but its
behavior is affected by the member. (And more specifically, *disposition*
(DELETE, CATLG, etc., as opposed to status NEW, MOD, etc.) is always for the
dataset, not the member.)

Finally, I think some of you just don't appreciate the software vendor
sales/support environment. I think many of you if you were dealing with a
vendor you would be quick to say you are asking big bucks for your product.
Like it or not, this is how our shop does things. Fix your product or go
away! But somehow when you put on your advice hats you think a vendor
should be in a position to tell a customer what you are doing is illogical
so fix your logic and THEN buy our product. You may be right -- but you
wouldn't sell much software (i.e., stay in business and pay your
programmers' salaries) if you were a vendor with that approach.

Thanks again. Great resource here.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of R.S.
Sent: Saturday, March 05, 2011 5:10 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?


Charles,
You mis-interpreted my intention. I suggested the tests, because it's 
IMHO good advice. I think you understand it as don't bother us with 
simple questions, you should RTFM or test it!. Yes, it can be 
understood that way, but *it wasn't my intention*.
Please, remember: English is foreign language for me so sometimes some 
nuances or allusions can be unintentional. I answered because not to say 
I know the answer, but because I knew the answer and thought it can be 

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread R.S.

W dniu 2011-03-05 04:46, Gerhard Adam pisze:

I don't think it's a question of what to reply, but rather if you feel the
product is poorly documented or supported, then it seems the place to be
having this conversation is with IBM.  I personally can't see any reason for
coding DISP=MOD or DISP=NEW when maintaining PDS members.  As for, customers
can do what they want ... perhaps so, but not if they expect support.  I had
one programmer code DISP=(OLD,DELETE) to try and remove a member from a
LNKLST library, so I don't accept that argument (fortunately security
prevented him from deleting the entire library).  If they use the DISP
improperly, then you will see this kind of coding.


In normal circumstances there are more protection means. All LNKLST 
datasets are kept by XCFAS and LLA. Both can be switched off, but this 
is really exceptional situation.


BTW: The programmer mentione in the story could use (SHR,DELETE), 
because OLD would cause job is waiting for datasets and not even start 
(the step).



--
Radoslaw Skorupka
Lodz, Poland


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Charles Mills
And I guess the bottom line on the original technical question is:

- DISP=NEW fails if the PDS already exists (or, if you will, may be used to
make certain that the PDS does not already exist); DISP=MOD is good either
way.
- DISP=NEW and MOD both fail if the member already exists but fail
differently: NEW fails on the CLOSE with SB14-04 -- this can only happen if
the program creates the member during execution (OPEN, PUT, CLOSE, OPEN,
PUT, CLOSE) because after all the PDS must be brand new; MOD fails on the
OPEN but I am not sure of the exact error. 

Comments?

Charles
-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Charles Mills
Sent: Saturday, March 05, 2011 7:26 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

A lot of replies. Thanks all. Let me try to address various comments in a
single response.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Don Williams
The simple answer: The DISP parameter is for the data set/library and not
members.

For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the library and
not just the member. 

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 3:03 PM
To: IBM-MAIN@bama.ua.edu
Subject: Difference between DISP=NEW and MOD for a PDS member?

What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?

Charles 

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

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Gerhard Adam
I'm not sure I'm interpreting this properly, but it sounds like you have a
product and want to support what your customers do when accessing a PDS
(even if they code it badly).  My confusion comes from your reference to the
JFCB, since it suggests that you are checking to see what they have coded,
instead of simply overriding whatever they have coded with the proper
disposition.  Since you have the JFCB, just set the DISP and issue an OPEN
TYPE=J and be done with it.  That way it doesn't make any difference what
they have coded (since whatever they have coded shouldn't make any
difference anyway).

You don't have to explain it to them, nor do you have to justify your
actions.  You're simply taking the choice away from them regardless of what
they code and doing it properly.

I've found the immediate problem. Where my code apparently really should be
testing for NEW or MOD it was testing only for MOD, and as JCL apparently
populates JFCBIND2 with NEW (x'C0') for both NEW and MOD my code was
failing
for both cases.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Charles Mills
 want to support what your customers do

You got it!

 issue an OPEN TYPE=J

Unfortunately I'm not doing the OPEN, FTP is.

The problem is not with the DISP per se. The underlying problem is that FTP
has the world's worst RECFM and LRECL defaults, something like RECFM=U,
LRECL=1024 (LRECL from recollection).

I have several strategies for dealing with the problem and the strategy I
choose depends on among other things whether we are in a PDS member
DISP=NEW/MOD situation. The bug was in choosing the wrong strategy due to
the logic error I described. My strategies are good -- I was just choosing
the wrong one.

Did somebody say use LOCSITE? Unfortunately LOCSITE is not effective with
//DD:

As the FTP is z/OS to z/OS a clever FTP client would pick up the dataset
attributes from the server but z/OS FTP is not that clever.

I am contemplating instead the use of IEFQMREQ to modify the JFCB to add
LRECL and RECFM but I have not yet committed to that route.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Saturday, March 05, 2011 2:32 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

I'm not sure I'm interpreting this properly, but it sounds like you have a
product and want to support what your customers do when accessing a PDS
(even if they code it badly).  My confusion comes from your reference to the
JFCB, since it suggests that you are checking to see what they have coded,

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Linda Mooney
Hi Charles, 



I have read through the thread with some interest, though I do not know you or 
which product you are working on. 



Would it be possible for your code to preallocate the receiving dataset?  



HTH, 



Linda 

  
- Original Message - 
From: Charles Mills charl...@mcn.org 
To: IBM-MAIN@bama.ua.edu 
Sent: Friday, March 4, 2011 12:03:14 PM 
Subject: Difference between DISP=NEW and MOD for a PDS member? 

What is the difference between DISP=NEW and DISP=MOD for a PDS member 
(member name specified on the DD statement)? 

Both disallow duplicate member names. Are there any differences? What? 

Charles 

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

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Charles

 DISP is always for dataset, not for member.

 That statement is a useful principle to keep in mind but it is not exactly 
relevant to my question.

The statement is wrong and I think there may actually be a significance for 
your threefold initial question.

For the arguments as to why that statement is wrong, please see, for 
example, my posts in answer to Don Williams and Gerhard Adam.

 (And more specifically, *disposition* (DELETE, CATLG, etc., as opposed to 
status NEW, MOD, etc.) is always for the dataset, not the member.)

A subtlety not to be overlooked.

Chris Mason

On Sat, 5 Mar 2011 07:26:17 -0800, Charles Mills charl...@mcn.org 
wrote:

A lot of replies. Thanks all. Let me try to address various comments in a
single response.

 You mis-interpreted my intention

Sorry. I took I'd suggest you to simply perform some tests - IMHO it's much
better than asking others about it and Has it occurred to anyone to just
look at the JCL Reference manual? as a rebuke. My apologies if I was
over-paranoid.

 English is foreign language for me

Your English is certainly better than my Polish and I thank you for being so
tolerant of us mono-lingual Americans.

 it seems the place to be having this conversation is with IBM

I am not alleging any bug in any IBM component. I was simply asking how it
worked. I think the whole of MVS could use some vast improvements in
documentation but that's just IMHO and I don't think IBM would be terribly
responsive to my opening a ticket. (And please, save the flames, yes, MVS
is much better documented than some operating systems.)

Ah! I get it. You interpreted my I have a bug involving the treatment of
PDS members as meaning that I was alleging a bug in MVS. Nay! By I have
a bug I meant there is a bug (apparently) in my code. That is, the product
is failing at a customer's site and I have no reason to think the bug is
other than in my code.

I've found the immediate problem. Where my code apparently really should be
testing for NEW or MOD it was testing only for MOD, and as JCL apparently
populates JFCBIND2 with NEW (x'C0') for both NEW and MOD my code was 
failing
for both cases.

I asked about the differences between NEW and MOD because if I was going 
to
change the code I wanted to get it right. SHOULD the code be differentiating
between NEW and MOD? (Apparently not.)

 I don't find that the MVS documentation is scattered ...
 I don't recall seeing conflicting or contradictory documentation ...
 I'm not sure what you might be referring to.

Agreed, on this particular topic, all of the documentation is apparently in
one place. But one does not know that, does one? If one is trying to RTFM
about how feature X works and one finds a paragraph or a chapter devoted 
to
X, how does one know whether there is additional (or conflicting!)
information elsewhere? Particularly if the keywords in question are DISP or
NEW or MEMBER which occur with such frequency that a simple search is not
useful?

 DISP is always for dataset, not for member.

That statement is a useful principle to keep in mind but it is not exactly
relevant to my question. FOO(BAR),DISP=NEW behaves differently depending 
on
whether or not FOO(BAR) exists. So DISP is always FOR the dataset, but its
behavior is affected by the member. (And more specifically, *disposition*
(DELETE, CATLG, etc., as opposed to status NEW, MOD, etc.) is always for 
the
dataset, not the member.)

Finally, I think some of you just don't appreciate the software vendor
sales/support environment. I think many of you if you were dealing with a
vendor you would be quick to say you are asking big bucks for your product.
Like it or not, this is how our shop does things. Fix your product or go
away! But somehow when you put on your advice hats you think a vendor
should be in a position to tell a customer what you are doing is illogical
so fix your logic and THEN buy our product. You may be right -- but you
wouldn't sell much software (i.e., stay in business and pay your
programmers' salaries) if you were a vendor with that approach.

Thanks again. Great resource here.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of R.S.
Sent: Saturday, March 05, 2011 5:10 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?


Charles,
You mis-interpreted my intention. I suggested the tests, because it's
IMHO good advice. I think you understand it as don't bother us with
simple questions, you should RTFM or test it!. Yes, it can be
understood that way, but *it wasn't my intention*.
Please, remember: English is foreign language for me so sometimes some
nuances or allusions can be unintentional. I answered because not to say
I know the answer, but because I knew the answer and thought it can be

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Charles

The bottom line lacks copper.

 DISP=NEW fails if the PDS already exists

Not if the name of a non-existent member is specified.

 DISP=NEW and MOD both fail if the member already exists.

I'm still waiting for an explanation of how a member can exist in a partitioned 
data set that cannot exist - possibly I'm in the wrong universe!

Chris Mason

On Sat, 5 Mar 2011 11:28:40 -0800, Charles Mills charl...@mcn.org 
wrote:

And I guess the bottom line on the original technical question is:

- DISP=NEW fails if the PDS already exists (or, if you will, may be used to
make certain that the PDS does not already exist); DISP=MOD is good either
way.
- DISP=NEW and MOD both fail if the member already exists but fail
differently: NEW fails on the CLOSE with SB14-04 -- this can only happen if
the program creates the member during execution (OPEN, PUT, CLOSE, OPEN,
PUT, CLOSE) because after all the PDS must be brand new; MOD fails on the
OPEN but I am not sure of the exact error.

Comments?

Charles
-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Charles Mills
Sent: Saturday, March 05, 2011 7:26 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

A lot of replies. Thanks all. Let me try to address various comments in a
single response.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Don

 The simple answer:

This is not a topic for people who need simple answers!

When I said

... DISP=NEW/MOD insists that the member does not exist irrespective of 
whether or not a partitioned data set exists

obviously I was concentrating on the only on first suboperand of the DISP 
operand.

It seems we must take a different perspective according to whether we are 
dealing with the first suboperand or the second and third suboperands - not at 
all simple!

 The DISP parameter is for the data set/library and not members.

Apparently not so in the case of the first suboperand.

If a member name is specified, the first suboperand relates to the member and 
appears not to care about the data set. Otherwise why make a fuss about 
whether a member exists or not in a data set that can't be there to contain 
the member - which may or may not be there - if the data set is not supposed 
to exist - in the case of DISP=NEW anyhow. There's something of the 
Cheshire Cat about this!

Here, once again for your delectation, is the first paragraph of the 
section 12.19.8 Disposition of Partitioned Data Sets (PDSs and PDSEs) from 
the z/OS V1R12 MVS JCL Reference manual:

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.8

quote

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. 

/quote

If you can explain this away, I'll accept your simple contention also 
regarding 
the first suboperand.

 For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the 
library and not just the member.

Assuming you verified your example rather than just composing it in order to 
illustrate your point, it appears that the normal and abnormal termination 
disposition suboperands do indeed apply to the data set irrespective of 
whether or not a member name is specified. I checked the z/OS V1R12 MVS 
JCL Reference manual to try to be sure and there is certainly no mention of 
any variation based on whether or not a member name is specified so I guess 
an actual test would have been superfluous.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.2.2
http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IEA2B6A0/12.19.2.3

Indeed, it's all getting a bit complex and the poor systems programmer who 
tried to delete a member using the DISP second suboperand can be forgiven - 
well by those who were not desperately relying on the partitioned data set, 
that is![1]

-

A modification to my previous post with the diagrams:

In the case of a DISP=NEW data set or dataset(member) - and DISP=MOD if 
the entity has had no existence hitherto - it is an error not to write 
something. This makes my error or immediate EOF simply error. 
An immediate EOF would be possible only if the data set - or a member I 
guess - had deliberately been created - written to - with 0 records. 
Alternatively I'll be happy to be corrected.

-

Chris Mason

[1] This reminds me of an occasion when I keyed up a SCRATCH statement 
that was supposed to be coded as 

SCRATCH VTOC,VOL=2314=MYVOLM,SYS

After that traumatic event, I resolved always to use the order

SCRATCH VTOC,SYS,VOL=2314=MYVOLM

because it turns out you can't always be sure that where you intended to key 
a comma, a comma actually got keyed!

I remember even better because it was New Year's Eve and the was someone 
from north of the border in the overworked team.


On Sat, 5 Mar 2011 15:12:41 -0500, Don Williams donb...@gmail.com 
wrote:

The simple answer: The DISP parameter is for the data set/library and not
members.

For example, DSN=MY.LIBRARY(MYMEM),DISP=(OLD,DELETE) deletes the 
library and
not just the member.

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On 
Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 3:03 PM
To: IBM-MAIN@bama.ua.edu
Subject: Difference between DISP=NEW and MOD for a PDS member?

What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?

Charles

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


Vendor documentation (Was: Difference between DISP=NEW and MOD for a PDS member?)

2011-03-05 Thread Chris Mason
Gerhard

 You don't have to explain it to them, nor do you have to justify your actions.

Actually, you do - both. The customers are paying for you and your family - 
very likely - to exist on this earth and they deserve every consideration that 
you can offer them.

I have spent a lot - a lot - of time dealing with an arrogant vendor - now 
subsumed into IBM - who would not explain an sequence of logic that - with a 
lot of work - could be deduced but was diametrically at odds with architecture 
and intended and accepted practice. I wasn't even getting to the point where 
I was dealing with someone like Charles Mills who was actually responsible for 
the sequence so that I could pass on what I had discovered. Had I managed 
to make my through the impenetrable supposedly technical bureaucracy, I 
would have made sure that the aberration was understood and, having been 
understood, was at least highlighted very clearly in the documentation so that 
necessary customisation could support it.

What is even more galling is that a lunch on the morning the problem was first 
raised, my principle technical colleague at the customer and I somewhat 
jokingly agreed on the probable cause of the problem. Weeks later we were 
proved to have been right for the wrong reasons but it took the intervening 
weeks to be sure of the unthinkable - all because the vendor was *not* 
explaining what they were doing.

 You're simply taking the choice away from them regardless of what they 
code and doing it properly.

Such an action *has* to be documented - close to where (supposedly) doing 
it properly is documented.

Chris Mason

On Sat, 5 Mar 2011 14:31:58 -0800, Gerhard Adam 
gada...@charter.net wrote:

I'm not sure I'm interpreting this properly, but it sounds like you have a
product and want to support what your customers do when accessing a PDS
(even if they code it badly).  My confusion comes from your reference to the
JFCB, since it suggests that you are checking to see what they have coded,
instead of simply overriding whatever they have coded with the proper
disposition.  Since you have the JFCB, just set the DISP and issue an OPEN
TYPE=J and be done with it.  That way it doesn't make any difference what
they have coded (since whatever they have coded shouldn't make any
difference anyway).

You don't have to explain it to them, nor do you have to justify your
actions.  You're simply taking the choice away from them regardless of what
they code and doing it properly.

I've found the immediate problem. Where my code apparently really should 
be
testing for NEW or MOD it was testing only for MOD, and as JCL apparently
populates JFCBIND2 with NEW (x'C0') for both NEW and MOD my code was
failing
for both cases.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-05 Thread Chris Mason
Charles

 The underlying problem is that FTP has the world's worst RECFM and LRECL 
defaults, something like RECFM=U, LRECL=1024 (LRECL from recollection).

The FTP LRECL default is 256 for both client and server.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/F1A1B4A0/18.77

The FTP RECFM default is VB for both client and server.

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/F1A1B4A0/18.100

 Did somebody say use LOCSITE? Unfortunately LOCSITE is not effective 
with //DD:

Not unless you have been receiving private communications which the rest of 
us have not seen or it's a contributor whose post hasn't appeared in the IBM-
MAIN archives.

-

If your problem concerns the way z/OS Communications Server FTP behaves, 
you may find the expertise you need in the IBMTCP-L list.

For IBMTCP-L subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO IBMTCP-L

Chris Mason

On Sat, 5 Mar 2011 14:49:20 -0800, Charles Mills charl...@mcn.org 
wrote:

 want to support what your customers do

You got it!

 issue an OPEN TYPE=J

Unfortunately I'm not doing the OPEN, FTP is.

The problem is not with the DISP per se. The underlying problem is that FTP
has the world's worst RECFM and LRECL defaults, something like RECFM=U,
LRECL=1024 (LRECL from recollection).

I have several strategies for dealing with the problem and the strategy I
choose depends on among other things whether we are in a PDS member
DISP=NEW/MOD situation. The bug was in choosing the wrong strategy due 
to
the logic error I described. My strategies are good -- I was just choosing
the wrong one.

Did somebody say use LOCSITE? Unfortunately LOCSITE is not effective with
//DD:

As the FTP is z/OS to z/OS a clever FTP client would pick up the dataset
attributes from the server but z/OS FTP is not that clever.

I am contemplating instead the use of IEFQMREQ to modify the JFCB to add
LRECL and RECFM but I have not yet committed to that route.

Charles

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


Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Charles Mills
What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?

Charles 

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread R.S.

W dniu 2011-03-04 21:03, Charles Mills pisze:

What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?


DISP is always for dataset, not for member.
DISP=MOD for existing member ends with SB14.
DISP=NEW for existing member ends with JCL ERROR (assumed SMS).
DISP=MOD for non-existing member but existing PDS ends with pds gas.

BTW: I'd suggest you to simply perform some tests - IMHO it's much 
better than asking others about it.



--
Radoslaw Skorupka
Lodz, Poland


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread R.S.

W dniu 2011-03-05 00:06, R.S. pisze:

W dniu 2011-03-04 21:03, Charles Mills pisze:

What is the difference between DISP=NEW and DISP=MOD for a PDS member
(member name specified on the DD statement)?

Both disallow duplicate member names. Are there any differences? What?


DISP is always for dataset, not for member.
DISP=MOD for existing member ends with SB14.
DISP=NEW for existing member ends with JCL ERROR (assumed SMS).
DISP=MOD for non-existing member but existing PDS ends with pds gas.

BTW: I'd suggest you to simply perform some tests - IMHO it's much
better than asking others about it.





Errata!

 DISP=NEW for existing *DATASET* (was: member) ends with JCL ERROR 
(assumed SMS).



To complement:
DISP=NEW for existing member means existing dataset, means ...see above
DISP=NEW for non-existing member, but existing dataset also ends with 
JCL ERROR.



--
Radoslaw Skorupka
Lodz, Poland


--
BRE Bank SA
ul. Senatorska 18
00-950 Warszawa
www.brebank.pl

Sd Rejonowy dla m. st. Warszawy 
XII Wydzia Gospodarczy Krajowego Rejestru Sdowego, 
nr rejestru przedsibiorców KRS 025237

NIP: 526-021-50-88
Wedug stanu na dzie 16.07.2010 r. kapita zakadowy BRE Banku SA (w caoci wpacony) wynosi 168.248.328 zotych. 


--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Charles Mills
I have been performing some tests. There are a lot of variations: not just
JCL but SVC 99, FTP, etc.

People here love to demonstrate their knowledge. What's wrong with asking
them? Discussion of the city of Toronto's airports is okay but a discussion
of PDS DISP= is not?

The problem is not obvious, as you have seen in having re-thought your first
answer.

Charles

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf
Of R.S.
Sent: Friday, March 04, 2011 3:07 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

W dniu 2011-03-04 21:03, Charles Mills pisze:
 What is the difference between DISP=NEW and DISP=MOD for a PDS member
 (member name specified on the DD statement)?

 Both disallow duplicate member names. Are there any differences? What?

DISP is always for dataset, not for member.
DISP=MOD for existing member ends with SB14.
DISP=NEW for existing member ends with JCL ERROR (assumed SMS).
DISP=MOD for non-existing member but existing PDS ends with pds gas.

BTW: I'd suggest you to simply perform some tests - IMHO it's much 
better than asking others about it.

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Gerhard Adam
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Charles Mills
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Gerhard Adam
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 4:34 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

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

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread McBride, Catherine
DISP=MOD was originally created as a means to append EREP data to the EREP 
history tape data set. Of course in today's world it gets used for everything.  
However if memory serves trying to use DISP=MOD in place of DISP=NEW would 
cause an error in the EREP job stream. Perhaps it behaves differently with 
other types of DTF's. 

- Original Message -
From: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu
To: IBM-MAIN@bama.ua.edu IBM-MAIN@bama.ua.edu
Sent: Fri Mar 04 18:34:22 2011
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

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


Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Charles Mills
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:57 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 4:34 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

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

--
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: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread McBride, Catherine
Sir it is not my place to ask you why you asked a particular question, or why 
you want to use a particular approach. Your reasons are really none of my 
business. If the same approach caused problems in our shop I may mention it as 
a professional courtesy relative  to the technical discussion. If people don't 
think something is worth discussing they don't have to reply.  

- Original Message -
From: IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu
To: IBM-MAIN@bama.ua.edu IBM-MAIN@bama.ua.edu
Sent: Fri Mar 04 19:13:32 2011
Subject: Re: Difference between DISP=NEW and MOD for a PDS member?

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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:57 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Charles Mills
Sent: Friday, March 04, 2011 4:34 PM
To: IBM-MAIN@bama.ua.edu
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:IBM-MAIN@bama.ua.edu] On Behalf
Of Gerhard Adam
Sent: Friday, March 04, 2011 4:08 PM
To: IBM-MAIN@bama.ua.edu
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 lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm

Re: Difference between DISP=NEW and MOD for a PDS member?

2011-03-04 Thread Gerhard Adam
I don't think it's a question of what to reply, but rather if you feel the
product is poorly documented or supported, then it seems the place to be
having this conversation is with IBM.  I personally can't see any reason for
coding DISP=MOD or DISP=NEW when maintaining PDS members.  As for, customers
can do what they want ... perhaps so, but not if they expect support.  I had
one programmer code DISP=(OLD,DELETE) to try and remove a member from a
LNKLST library, so I don't accept that argument (fortunately security
prevented him from deleting the entire library).  If they use the DISP
improperly, then you will see this kind of coding.

My point about poor coding practice, is that the DISP is used to reflect the
state of an entire data set and not individual members.  So while DISP=NEW
and DISP=MOD are supported, there's no practical reason for their use and it
creates the erroneous view that DISP processing operates against members.  

While it's not my place to tell you what to do, or how your organization
runs, I'm concerned that you've mentioned that you have a bug, but haven't
mentioned what IBM's response is to this (perhaps you mentioned it already
and I simply missed it)?

I don't find that the MVS documentation is scattered as much as it is
redundant in numerous placed.  I don't recall seeing conflicting or
contradictory documentation, so I'm not quite sure what you mean by that
statement.  From what I posted, it was found exactly where it should be, so
I'm not sure what you might be referring to.

If you don't mind ... what is the bug you're experiencing?  Is it behaving
in some unusual way or simply failing?

Adam

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