Re: BLOCK CONTAINS

2009-05-27 Thread Howard Brazee
On 23 May 2009 12:32:09 -0700, paulgboul...@aim.com (Paul Gilmartin)
wrote:

You seem to be agreeing with Steve Thompson that In the MVS world, we
are not device dependant, only insofar as there is only one type of
device.  A weak assertion indeed.  Would you be willing to go so far
as to side with me and say that we fundamentally disagree with Mr.
Thompson?

The CoBOL should be more independent than JCL.   There is no reason
that CoBOL should care about blocksize, that isn't its function.
Whatever we code in the CONFIGURATION SECTION along with FD clauses
such as BLOCKSIZE  RECORDING MODE should be overridable in the JCL or
REXX.

--
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: BLOCK CONTAINS

2009-05-27 Thread Howard Brazee
On 25 May 2009 18:23:38 -0700, joa...@swbell.net (John McKown) wrote:

I agree, except for truly direct access data sets. What I have fought 
with here is the mindset of I must allocate in CYLINDERS in order to be 
efficient. I want them to allocate in RECORDS (or millions of records). 
But, oh, no! that is not good because I understand what a cylinder is, 
but I don't know how much space 1 million records requires. Then when I 
ask them how many records they'll get in that CYLinder allocation, I get 
the deer in the headlights look.

And of course, people cut and paste their SORTWK* files often without
thinking.   After all, they are temporary anyway, make them all very,
very large and we won't be called in.

--
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: BLOCK CONTAINS

2009-05-27 Thread Ted MacNEIL
And of course, people cut and paste their SORTWK* files often without thinking.

We made it even more turnkey than that.
We cleaned up all the Production JCL, and made them dynamic.


After all, they are temporary anyway, make them all very, very large and we 
won't be called in.

With SYNCSORT, at least, there is a facility to monitor memory usage and 
determine whether a disk, or a memory, sort is warranted.

At one shop, we had the PIPESORT add-on.
That was the kitty's butt, to coin a phrase.
-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-27 Thread Clark Morris
On 25 May 2009 19:16:25 -0700, in bit.listserv.ibm-main you wrote:

 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of John McKown
 Sent: Monday, May 25, 2009 6:21 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: BLOCK CONTAINS
 
 On Sat, 23 May 2009, Ted MacNEIL wrote:
 
  You seem to be agreeing with Steve Thompson that In the MVS world,
we
 are not device dependant, only insofar as there is only one type of
 device.  A weak assertion indeed.
 
  Not at all.
  There are at least two device types -- tape and disk.
  And, I can convert to either without re-compiling.
  That is device independent.
  -
  Too busy driving to stop for gas!
 
 I agree, except for truly direct access data sets. What I have
fought
 with here is the mindset of I must allocate in CYLINDERS in order to
be
 efficient. I want them to allocate in RECORDS (or millions of
records).
 But, oh, no! that is not good because I understand what a cylinder
is,
 but I don't know how much space 1 million records requires. Then when
I
 ask them how many records they'll get in that CYLinder allocation, I
get
 the deer in the headlights look.


OK, but how is this desire not satisfied via AVGREC allocations? Oh, it
is and you'll claim your applications folks can't handle the concept.
Supply and teach DATACASS with no SPACE at all in the JCL, tell them
it's magic :) Route most if not all allocations to extended format
multivolume in the ACS routines. Use a Big and a not Big set of Storage
groups. Migrate aggressively and route recalls to a pool with less
aggressive free space defined. 

If you don't specify round allocation is converted to tracks, not
cylinders for non-VSAM.  This used to have performance implications
before define extent.  For VSAM you can get some ugly CA sizes if you
specify in records or kilobytes.  And it would be valuable for IBM to
make ALL FBA type data areas (PDSE's, etc.) readable at NIP and start
doing what is necessary to move into the FBA world.  VSE can handle
FBA.  VM can handle FBA.  
  I've seen hardly any x37 abends in more than a decade. 

 In today's world, if all JCL were allocated in records (not blocks),
(and
 use ROUND if really necesary), then __most__ people wouldn't care one
bit
 about the number of bytes per track or tracks per cylinder or
cylinders
 per volume.  They'd care about something more reasonable like number
of
 records or even gigabytes.
 
 And I could have my beloved FBA architecture mapped onto standard
SAN
 resident storage. Oh, except for some things like PDSes. PDSes are the
 legacy of the devil, IMO. But the cost to eliminate them would likely
be
 horrendous for things like IPL and NIP.
 
 --
 Trying to write with a pencil that is dull is pointless.
 
 Maranatha!
 John McKown
 
 --
 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: BLOCK CONTAINS

2009-05-27 Thread Paul Gilmartin
On Mon, 25 May 2009 19:13:43 -0700, Gibney, Dave wrote:

OK, but how is this desire not satisfied via AVGREC allocations? Oh, it
is and you'll claim your applications folks can't handle the concept.

AVGREC is:

o Woefully misleading; it seems to abbreviate AVeraGe RECord size,
  with which it appears to have nothing to do (or is there another
  etymology I'm missing totally?)

o A desperate measure to deal with an inadequate sized bit field
  in some control block; a bizarre base-1024 floating point.

  Why can't I code:

  SPACE=(133,2048) and have the converter do the algebra

  rather than be forced to do the computation myself and code:

  SPACE=(133,2),AVGREC=K

Isn't that what computers are supposed to be for?

 And I could have my beloved FBA architecture mapped onto standard SAN
 resident storage. Oh, except for some things like PDSes. PDSes are the
 legacy of the devil, IMO. But the cost to eliminate them would likely be
 horrendous for things like IPL and NIP.

Nowadays, many of the despised squatty boxes can boot from
the network.  Why should our beloved z/OS be so far behind?
Yah, it _is_ rocket science, but this _is_ the 21st century.

-- gil

--
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: BLOCK CONTAINS

2009-05-27 Thread Gibney, Dave
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of Paul Gilmartin
 Sent: Wednesday, May 27, 2009 3:23 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: BLOCK CONTAINS
 
 On Mon, 25 May 2009 19:13:43 -0700, Gibney, Dave wrote:
 
 OK, but how is this desire not satisfied via AVGREC allocations? Oh,
it
 is and you'll claim your applications folks can't handle the concept.
 
 AVGREC is:
 
 o Woefully misleading; it seems to abbreviate AVeraGe RECord size,
   with which it appears to have nothing to do (or is there another
   etymology I'm missing totally?)
 
 o A desperate measure to deal with an inadequate sized bit field
   in some control block; a bizarre base-1024 floating point.
 
   Why can't I code:
 
   SPACE=(133,2048) and have the converter do the algebra
 
   rather than be forced to do the computation myself and code:
 
   SPACE=(133,2),AVGREC=K
 
 Isn't that what computers are supposed to be for?

Misleading or kludgy, it does work. In my DATACLASs, I use 1 for the
size, leading me to easy xK and xM allocations. Then, make them bigger
anyway and be sure to use RLSE.

  Now, If I was to complain, I'd wonder why RLSE doesn't play well with
Multi-Volume striping?


 
  And I could have my beloved FBA architecture mapped onto standard
SAN
  resident storage. Oh, except for some things like PDSes. PDSes are
the
  legacy of the devil, IMO. But the cost to eliminate them would
likely
 be
  horrendous for things like IPL and NIP.
 
 Nowadays, many of the despised squatty boxes can boot from
 the network.  Why should our beloved z/OS be so far behind?
 Yah, it _is_ rocket science, but this _is_ the 21st century.
 
 -- gil
 
 --
 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: BLOCK CONTAINS

2009-05-25 Thread John McKown
On Sat, 23 May 2009, Ted MacNEIL wrote:

 You seem to be agreeing with Steve Thompson that In the MVS world, we are 
 not device dependant, only insofar as there is only one type of device.  A 
 weak assertion indeed.
 
 Not at all.
 There are at least two device types -- tape and disk.
 And, I can convert to either without re-compiling.
 That is device independent.
 -
 Too busy driving to stop for gas!

I agree, except for truly direct access data sets. What I have fought 
with here is the mindset of I must allocate in CYLINDERS in order to be 
efficient. I want them to allocate in RECORDS (or millions of records). 
But, oh, no! that is not good because I understand what a cylinder is, 
but I don't know how much space 1 million records requires. Then when I 
ask them how many records they'll get in that CYLinder allocation, I get 
the deer in the headlights look.

In today's world, if all JCL were allocated in records (not blocks), (and
use ROUND if really necesary), then __most__ people wouldn't care one bit
about the number of bytes per track or tracks per cylinder or cylinders
per volume.  They'd care about something more reasonable like number of
records or even gigabytes.

And I could have my beloved FBA architecture mapped onto standard SAN 
resident storage. Oh, except for some things like PDSes. PDSes are the 
legacy of the devil, IMO. But the cost to eliminate them would likely be 
horrendous for things like IPL and NIP.

-- 
Trying to write with a pencil that is dull is pointless.

Maranatha!
John McKown

--
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: BLOCK CONTAINS

2009-05-25 Thread Gibney, Dave
 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of John McKown
 Sent: Monday, May 25, 2009 6:21 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: BLOCK CONTAINS
 
 On Sat, 23 May 2009, Ted MacNEIL wrote:
 
  You seem to be agreeing with Steve Thompson that In the MVS world,
we
 are not device dependant, only insofar as there is only one type of
 device.  A weak assertion indeed.
 
  Not at all.
  There are at least two device types -- tape and disk.
  And, I can convert to either without re-compiling.
  That is device independent.
  -
  Too busy driving to stop for gas!
 
 I agree, except for truly direct access data sets. What I have
fought
 with here is the mindset of I must allocate in CYLINDERS in order to
be
 efficient. I want them to allocate in RECORDS (or millions of
records).
 But, oh, no! that is not good because I understand what a cylinder
is,
 but I don't know how much space 1 million records requires. Then when
I
 ask them how many records they'll get in that CYLinder allocation, I
get
 the deer in the headlights look.


OK, but how is this desire not satisfied via AVGREC allocations? Oh, it
is and you'll claim your applications folks can't handle the concept.
Supply and teach DATACASS with no SPACE at all in the JCL, tell them
it's magic :) Route most if not all allocations to extended format
multivolume in the ACS routines. Use a Big and a not Big set of Storage
groups. Migrate aggressively and route recalls to a pool with less
aggressive free space defined. 
  I've seen hardly any x37 abends in more than a decade. 

 In today's world, if all JCL were allocated in records (not blocks),
(and
 use ROUND if really necesary), then __most__ people wouldn't care one
bit
 about the number of bytes per track or tracks per cylinder or
cylinders
 per volume.  They'd care about something more reasonable like number
of
 records or even gigabytes.
 
 And I could have my beloved FBA architecture mapped onto standard
SAN
 resident storage. Oh, except for some things like PDSes. PDSes are the
 legacy of the devil, IMO. But the cost to eliminate them would likely
be
 horrendous for things like IPL and NIP.
 
 --
 Trying to write with a pencil that is dull is pointless.
 
 Maranatha!
 John McKown
 
 --
 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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-24 Thread Ed Gould
--- On Sat, 5/23/09, Eric Bielefeld eric-ibmm...@wi.rr.com wrote:

 From: Eric Bielefeld eric-ibmm...@wi.rr.com
 Subject: Re: Submitting a Marketing REQUEST (was: BLOCK CONTAINS
 To: IBM-MAIN@bama.ua.edu
 Date: Saturday, May 23, 2009, 9:26 AM
 Ed,
 
 And yet, IBM is hiring 1,300 people in Dubuque Iowa. 
 I'm sure they will hire some who got laid off in other areas
 of the country, but it is a good sign.
 
 Eric Bielefeld
 Sr. Systems Programmer
 Milwaukee, Wisconsin
 414-475-7434
 

Eric:

That only is the surface story. What happened to the people that their jobs 
were outsourced to IBM? (both to INDIA and the US)? 
I am *GUESSING* and it is a guess. That some companies are not stupid enough to 
send their data overseas as the people in other countries will steal their 
sensitive data. I am well know of one bank who did so. I know I certainly would 
never trust a bank that did that would you? China is probably the worst option 
as the government will have inside knowledge of all transactions. The people 
are probably somewhat trustworthy but when you mix in politics it is a whole 
different story, IMO. The scandal(s) in INDIA are (from what I was told by a 
person who does business outsourcing) just starting to begin to surface. I am 
not suggesting U.S. citizens are any better (look at MADOFF) but at least our 
laws (loose as they are) can prosecute the crooks. Other countries are rife 
with corruption (much like our political system). In a letter the other day I 
wrote that we are becoming a 3rd world country because of our crooked 
politicians. Lets get back semi on topic. 
With any news story puff like the item you described never look at it like it 
is the whole story. The backgrounds speaks reams and you *MUST* know the back 
ground. 


  

--
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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-23 Thread Eric Bielefeld

Ed,

And yet, IBM is hiring 1,300 people in Dubuque Iowa.  I'm sure they will 
hire some who got laid off in other areas of the country, but it is a good 
sign.


Eric Bielefeld
Sr. Systems Programmer
Milwaukee, Wisconsin
414-475-7434


- Original Message - 
From: Ed Gould ps2...@yahoo.com

Excellent question. Although you might end up getting told to call the
1-800 IBM number. Chuckle they wouldn't know it if it cut their head in 
half.


IBM really screwed the customer over when they got rid of the people x 
many years ago. I am happy to be far far far away from that IBM mess. If 
people ask me if IBM is a good investment, I tell them to run run run away 
as fast as you can as sometime soon it is going to belly up. If they have 
any business left it will probably be in INDIA. If they are doing short 
term its a 50-50 gamble as far as I can see.


Ed 


--
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: BLOCK CONTAINS

2009-05-23 Thread Joel C Ewing

Paul Gilmartin wrote:

On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve wrote:

Welcome to the MVS world. In the MVS world, we are not device dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).


Huh???

If we are not device dependant, why is there such intense trepidation
and resistance to the mere suggestion of a device with a novel geometry
such as more bytes per track or more tracks per cylinder?  It doesn't
appear that you and I have been living in the same MVS world.

-- gil


It would be a rarity for application programs themselves to be device 
dependent in the z/OS world, but once you start dealing with instances 
of data used by those programs on DASD the dependency creeps back in in 
both obvious and subtle ways, in both the physical representation of the 
data and in the JCL which references or allocates that data set.  I 
think it would be fair to say that a systems programmer who has to 
design and implement a migration strategy and deal with effects that are 
more often than not performance and resource usage issues would see many 
more issues with DASD architecture migration than an applications 
programmer.


Just changing the number of cylinders per device, complicates DASD 
migration strategies and may require JCL adjustments to optimize 
allocations when the typical free space per volume or size of typical 
free space extents changes.  If you change the capacity of a track or 
cylinder, then all JCL, IDCAMS, or TSO dataset space allocations in 
those units are obviously suspect.


A change in track size raises issues in both block size and number of 
blocks per track that in general defy a completely automated solution 
and require some analysis to resolve.  Even with an ordinary sequential 
dataset, there is no guarantee that all access is via standard (QSAM) 
access methods with no use of pointers dependent in some way on track 
geometry.  And even if all access is QSAM, do you leave the block size 
alone and risk performance issues, or re-optimize block size and risk 
having to adjust JCL REGION sizes to allow for larger buffers?  Data set 
types that are known to be direct access, and which may contain internal 
relative track pointers cannot be copied without some internal modification.


Changes in track size or tracks per cylinder have especially subtle side 
effects when dealing with VSAM KSDS files.  VSAM Control Area (CA) size 
is tied to the physical cylinder architecture, optimum index CI-size is 
tied to the number of Data CIs per CA, which in turn is tied to both 
track size and cylinder size.  Failure to adjust a sub-optimum Index CI 
size when copying a KSDS to a new architecture could seriously degrade 
CA space utilization and increase total dataset space requirements, but 
automatically adjusting Index CI size for online files could have 
adverse side effects on manually defined LSR buffer pools in the online 
regions that access these KSDS files.  So again, any attempt to 
automatically migrate such files to a new architecture carries risks.


Having been through several architecture conversions in the past -- 3330 
 3350  3380(various models)  3390(various models) -- there is no 
doubt that (1)it can be done (but any old code with datasets that are 
tied to one architecture with no source or no support is a definite 
problem!), (2) a migration that changes the track/cylinder architecture 
takes more person hours to do correctly, (3) and having two different 
architectures in house during a transition is more complicated to 
manage.  All things being equal, I would much rather not use my scarce 
time dealing with DASD architecture migration.

Joel C Ewing

--
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: BLOCK CONTAINS

2009-05-23 Thread Ted MacNEIL
All things being equal, I would much rather not use my scarce time dealing 
with DASD architecture migration.

Having gone from 3330 -- 3350 -- 3380 -- 3390 (emulation mode) -- 3390 
(native), I agree 100%!

IBM promised, years ago, to not change the geometry again.

Better the devil you know; I have other things to waste my time on.
-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-23 Thread Paul Gilmartin
On Sat, 23 May 2009 19:12:19 +, Ted MacNEIL wrote:

All things being equal, I would much rather not use my scarce time dealing 
with DASD architecture migration.

Having gone from 3330 -- 3350 -- 3380 -- 3390 (emulation mode) -- 3390 
(native), I agree 100%!

IBM promised, years ago, to not change the geometry again.

Better the devil you know; I have other things to waste my time on.
-
Too busy driving to stop for gas!

You seem to be agreeing with Steve Thompson that In the MVS world, we
are not device dependant, only insofar as there is only one type of
device.  A weak assertion indeed.  Would you be willing to go so far
as to side with me and say that we fundamentally disagree with Mr.
Thompson?

-- gil

--
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: BLOCK CONTAINS

2009-05-23 Thread Ted MacNEIL
You seem to be agreeing with Steve Thompson that In the MVS world, we are not 
device dependant, only insofar as there is only one type of device.  A weak 
assertion indeed.

Not at all.
There are at least two device types -- tape and disk.
And, I can convert to either without re-compiling.
That is device independent.
-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-23 Thread R.S.

Ted MacNEIL pisze:

You seem to be agreeing with Steve Thompson that In the MVS world, we are not 
device dependant, only insofar as there is only one type of device.  A weak 
assertion indeed.


Not at all.
There are at least two device types -- tape and disk.
And, I can convert to either without re-compiling.
That is device independent.


IMHO more definitions of the independence can be formulated.
For me it is track size in SMS. As long you use track size as physical 
paramter of the disk you are device dependent. When you think about it 
as just some chunk of disk space (maybe even FBA) then you are independent.


BTW: When we compare MVS to other systems in this context it is good to 
know what they understand as device dependency. IMHO no need for 
recompilation is not independency.


My $0.02
--
Radoslaw Skorupka
Lodz, Poland


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

Sąd Rejonowy dla m. st. Warszawy 
XII Wydział Gospodarczy Krajowego Rejestru Sądowego, 
nr rejestru przedsiębiorców KRS 025237

NIP: 526-021-50-88
Według stanu na dzień 01.01.2009 r. kapitał zakładowy BRE Banku SA (w całości 
wpłacony) wynosi 118.763.528 złotych. W związku z realizacją warunkowego 
podwyższenia kapitału zakładowego, na podstawie uchwały XXI WZ z dnia 16 marca 
2008r., oraz uchwały XVI NWZ z dnia 27 października 2008r., może ulec 
podwyższeniu do kwoty 123.763.528 zł. Akcje w podwyższonym kapitale zakładowym 
BRE Banku SA będą w całości opłacone.

--
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: BLOCK CONTAINS

2009-05-23 Thread Robert A. Rosenberg

At 20:24 -0300 on 05/18/2009, Clark Morris wrote about Re: BLOCK CONTAINS:


On 18 May 2009 13:35:40 -0700, in bit.listserv.ibm-main you wrote:

 Ah! NOBLOCK had F/80/80 whereas BLOCK1 had FB/80/80. BLOCK0 still 
had FB/80/27920. But it is still interesting, to me, that BLOCK 
CONTAINS 1 and no BLOCK CONTAINS at all can still create an 
optimally block dataset with little effort in the JCL and no program 
changes.


This is weird because the normal merge is DCB overrides JCL and JCL
overrides data set label (DSCB or tape label).  The code to
distinguish between BLKSIZE=0 in JCL and BLKSIZE not supplied must be
interesting to say the least.  If I get energetic, I'll check the
COBOL Programmers Guide.  Talk about ways to confuse the applications
programmers and subtle ways to screw up.


JCL BLKSIZE=0 gives SDB, no BLKSIZE gives 0. By the time the merge 
happens the FD has generates a DCB with F/80/80 for no Block 
Contains, FB/80/80 for Block Contains 1, and FB/80/0 for Block 
Contains 0 (thus only the last has a Blksize that can be filled in by 
the Merge).


--
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: BLOCK CONTAINS

2009-05-23 Thread Robert A. Rosenberg

At 16:07 -0500 on 05/18/2009, Paul Gilmartin wrote about Re: BLOCK CONTAINS:


On Mon, 18 May 2009 18:18:20 +0200, Gilbert Saint-Flour wrote:


On Monday 18 May 2009 18:04, Paul Gilmartin wrote:


What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !


 What happens if the programmer pre-allocates the data set?  
 It's still a stupid necessity, but it might help in dealing with
 situations where recompilation is impractical.


Well, pre-allocation is not very compatible with HSM, GDG, and a few other


I believe I understand the concern with GDG.  (Actually,
my understanding of GDG is so rudimentary I'm not qualified
to doubt the concern.)


GDG will get the blocksize from the DCB= clause, a DCB=DSN reference, 
or a DSCB with the DSNAME (without the .GVyy suffix) on the 
volume where the Catalog lives (or has this last last source become 
no longer relevant). Thus this information is always there for the 
predefined file.


--
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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-22 Thread Ed Gould
--- On Wed, 5/20/09, Martin Packer martin_pac...@uk.ibm.com wrote:
--SNIP---
 Do you suppose it has to be YOUR
 Marketing Rep? Or just a friendly IBMer 
 in the field?
 
 Cheers, Martin (still striving to be a friendly IBMer after
 all these 
 years) :-)
 

Excellent question. Although you might end up getting told to call the 
1-800 IBM number. Chuckle they wouldn't know it if it cut their head in half.

IBM really screwed the customer over when they got rid of the people x many 
years ago. I am happy to be far far far away from that IBM mess. If people ask 
me if IBM is a good investment, I tell them to run run run away as fast as you 
can as sometime soon it is going to belly up. If they have any business left it 
will probably be in INDIA. If they are doing short term its a 50-50 gamble as 
far as I can see.

Ed




  

--
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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-21 Thread Knutson, Sam
The IBM requirements database has a field for a SHARE requirement# and the 
SHARE Requirements database has a field for an IBM #.  We usually submit a 
marketing requirement directly to IBM but also go through the slightly longer 
process to submit a SHARE requirement.  These two requirements may even diverge 
slightly after discussion of the SHARE requirement.  
Take the time to have both tied together. 

If you really want IT take the time to go all in Lock, Stock and Two Smoking 
Barrels! 

Your companies voice may matter to IBM but may have a greater impact if you get 
others to also confirm they share the concern.  Group discussion may help you 
to refine your requirement to be clearer and more likely to be moved forward. 

Talking about it on IBM-MAIN never hurts either but do take the time to 
complete the formal processes.

Best Regards, 

Sam Knutson, GEICO 
System z Performance and Availability Management 
mailto:sknut...@geico.com 
(office)  301.986.3574 
(cell) 301.996.1318  

Think big, act bold, start simple, grow fast... 


-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of 
Bill Klein
Sent: Tuesday, May 19, 2009 10:35 PM
To: IBM-MAIN@bama.ua.edu
Subject: Submitting a Marketing REQUEST (was: BLOCK CONTAINS


Frank Swarbrick fswarbr...@gmail.com wrote in message
news:listserv%200905191643164240.0...@bama.ua.edu...
snip
 By the way, any pointers on how to submit a marketing requirement?  VSE 
 actually has a submit a requirement web page (https://www-
 03.ibm.com/servers/eserver/zseries/zvse/contact/requirement.html).  Does 
 z/OS have anything similar?
 
 Thanks!
 Frank

As the saying goes, I have good news and I have bad news G

The good news is
  The procedure for submitting a Marketing REQUEST is easy.   Just contact
your IBM Marketing Representative and explain what you want THEM to
submit.


This email/fax message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution of this
email/fax is prohibited. If you are not the intended recipient, please
destroy all paper and electronic copies of the original message.

--
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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-20 Thread Martin Packer
Do you suppose it has to be YOUR Marketing Rep? Or just a friendly IBMer 
in the field?

Cheers, Martin (still striving to be a friendly IBMer after all these 
years) :-)

Martin Packer
Performance Consultant
IBM United Kingdom Ltd
+44-20-8832-5167
+44-7802-245-584

email: martin_pac...@uk.ibm.com

Twitter ID: MartinPacker

They're figuring out that collaboration isn't a productivity hit, it 
makes them smarter. Sam Palmisano on BlogCentral, 26 November 2008



From:
Bill Klein wmkl...@ix.netcom.com
To:
IBM-MAIN@bama.ua.edu
Date:
20/05/2009 03:36
Subject:
Submitting a Marketing REQUEST (was: BLOCK CONTAINS
Sent by:
IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu



 Frank Swarbrick fswarbr...@gmail.com wrote in message
news:listserv%200905191643164240.0...@bama.ua.edu...
snip
 By the way, any pointers on how to submit a marketing requirement? VSE 

 actually has a submit a requirement web page (https://www-
 03.ibm.com/servers/eserver/zseries/zvse/contact/requirement.html).  Does 

 z/OS have anything similar?
 
 Thanks!
 Frank

As the saying goes, I have good news and I have bad news G

The good news is
  The procedure for submitting a Marketing REQUEST is easy.   Just 
contact
your IBM Marketing Representative and explain what you want THEM to
submit.

The bad news is,
  Try finding out who your IBM marketing rep is.  In many cases this is
QUITE difficult - it is even hard for many customers to figure out who 
(how
to contact) their local IBM branch. 

Once you find your local branch and/or your IBM marketing rep, then
getting a REQUEST submitted should be a piece of cake.  If your IBM
Marketing Rep does not know how to submit a REQUEST, then come back to 
us
here (and someone should be able to get your marketing rep in contact with
someone who can help them)

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







Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU






--
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: BLOCK CONTAINS

2009-05-20 Thread Howard Brazee
On 18 May 2009 12:41:15 -0700, eamacn...@yahoo.ca (Ted MacNEIL) wrote:

I don't think it's a lie.
Historically, ZERO has always had a special meaning.
In COBOL's case, it just means that the programme is not going to determine 
the blocksize, but leaves a place-holder for it when it's decided elsewhere.

Other computers have compilers that say if the programmer isn't going
to determine the blocksize - the programmer leaves out that clause.
Historically.

--
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: Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-20 Thread Linda Mooney
We have had a couple of rep changes over the past few years.  When having 
trouble finding out who the new one is, I call 1 800 IBM SERVE.  I have always 
gotten a phone call or email by the next day. 



Linda 
- Original Message - 
From: Bill Klein wmkl...@ix.netcom.com 
To: IBM-MAIN@bama.ua.edu 
Sent: Tuesday, May 19, 2009 7:35:16 PM GMT -08:00 US/Canada Pacific 
Subject: Submitting a Marketing REQUEST (was: BLOCK CONTAINS 

Frank Swarbrick fswarbr...@gmail.com wrote in message 
news:listserv%200905191643164240.0...@bama.ua.edu... 
snip 
 By the way, any pointers on how to submit a marketing requirement?  VSE 
 actually has a submit a requirement web page (https://www- 
 03.ibm.com/servers/eserver/zseries/zvse/contact/requirement.html).  Does 
 z/OS have anything similar? 
 
 Thanks! 
 Frank 

As the saying goes, I have good news and I have bad news G 

The good news is 
  The procedure for submitting a Marketing REQUEST is easy.   Just contact 
your IBM Marketing Representative and explain what you want THEM to 
submit. 

The bad news is, 
  Try finding out who your IBM marketing rep is.  In many cases this is 
QUITE difficult - it is even hard for many customers to figure out who (how 
to contact) their local IBM branch.   

Once you find your local branch and/or your IBM marketing rep, then 
getting a REQUEST submitted should be a piece of cake.  If your IBM 
Marketing Rep does not know how to submit a REQUEST, then come back to us 
here (and someone should be able to get your marketing rep in contact with 
someone who can help them) 

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


BLOCK CONTAINS

2009-05-19 Thread Bill Klein
Actually, I don't think the Standard has much opinion on the entire BLOCK
CONTAINS clause.  The fact is that MOST existing conforming COBOL
compilers run in environments where blocking doesn't exist any more.  For
most conforming compilers, this phrase is documented as syntax checked but
has no effect on application behavior - or something similar.

I suspect that if one asked (via an official interpretation request) what
happens when the BLOCK CONTAINS clause is omitted - and you are in an
environment where blocking MAY exist, then the answer would be whatever the
hardware and/or OS says will happen, happens.  However, this is only my
opinion of the current status.

I strongly doubt that the would find the IBM behavior non-conforming.
However, if anyone actually wants to find out, please contact me off-list
and I can tell you how to submit an interpretation request.

Of possible interest is the fact that the '85 COBOL Standard is no longer an
official ANSI or ISO Standard.  The current version is the 2002 ISO (or
ANSI) Standard - and IBM does NOT even claim to conform to that.

Alternatively, you might want to ask about this (as it relates to the
Standard) via the Standards Forum section of the IBM COBOL Cafe.  See:
 
http://www-949.ibm.com/software/rational/cafe/community/cobol/standard?view=
discussions

Paul Gilmartin paulgboul...@aim.com wrote in message
news:listserv%200905190056357954.0...@bama.ua.edu...
 On Mon, 18 May 2009 22:56:05 -0500, Bill Klein wrote:
 
 The actual phrasing of the current Standard is,
 
 1) This clause is required except when one or more of the following
 conditions exist:
 ...
  c) The number of records or characters contained in a block is
 specified in the operating environment
 
 I think that leaving it out to get unblocked MAY be considered an
extension.
 
 I think a reasonable person can conclude that for z/OS, specified
 in the operating environment means either as BLKSIZE on the JCL DD
 statement or available from SDB, and it is the intent of the Standard
 that when the BLOCK CONTAINS clause is omitted, that externally
 specified (by DD or SDB) value should prevail.  And thus that z/OS
 COBOL deviates from the Standard on this matter.
 
 -- gil

--
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: BLOCK CONTAINS

2009-05-19 Thread Frank Swarbrick
On Mon, 18 May 2009 11:03:05 -0500, Paul Gilmartin 
paulgboul...@aim.com wrote:

On Mon, 18 May 2009 17:48:44 +0200, Gilbert Saint-Flour wrote:

On Friday 15 May 2009 04:47, Clark Morris wrote:

  I submitted a SHARE requirement back in the 1990's to have
 a compile option that the default be BLOCK 0. 

Great idea, and I wish IBM added that option to the compiler.
What a stupid necessity that programmers have to code BLOCK CONTAINS 
0 !

What happens if the programmer pre-allocates the data set?  It's
still a stupid necessity, but it might help in dealing with
situations where recompilation is impractical.

I am unsure as to the issue.  BLOCK CONTAINS 0 works fine with pre-allocated 
datasets.  And in fact, as I mentioned before, with a pre-allocated dataset it 
appears to not even matter what BLOCK CONTAINS specifies, or if it is even 
present.  The file can still be written to.  It seems to take the blocking from 
the dataset label.

Perhaps I have misunderstood your concern?

Frank

--
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: BLOCK CONTAINS

2009-05-19 Thread Frank Swarbrick
On Mon, 18 May 2009 13:08:28 -0500, John McKown joa...@swbell.net 
wrote:

I just ran a quick test using Enterprise COBOL 3.4.1. I had one input FD and
three output FDs. The output FDs were: (1) No  BLOCK CONTAINS at all; (2)
BLOCK CONTAINS 0 RECORDS; and (3) BLOCK CONTAINS 1 RECORDS. I 
directed each
to a separate SMS managed disk dataset. On the JCL for each output file, I
specified:

// RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS

I then dumped the records using IDCAMS, but with the JCL looking like:

//JS010EXEC  PGM=IDCAMS,
// REGION=20M
//SYSPRINT DD  SYSOUT=*
//I1 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK0,RECFM=U,BLKSIZE=32760
//I2 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK1,RECFM=U,BLKSIZE=32760
//I3 DD DISP=SHR,DSN=TSH009.MYCOPY.NOBLOCK,RECFM=U,BLKSIZE=32760
//SYSINDD  *
 PRINT INFILE(I1) DUMP COUNT(30)
 PRINT INFILE(I2) DUMP COUNT(30)
 PRINT INFILE(I3) DUMP COUNT(30)
//

All three outputs were IDENTICAL and showed that each file was identically
blocked. That is: the BLOCK CONTAINS 1 RECORDS did not result in an 
unblock
file!

This was run on z/OS 1.10.

Those results agree with all of my tests.

Frank

--
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: BLOCK CONTAINS

2009-05-19 Thread Frank Swarbrick
On Mon, 18 May 2009 16:07:12 -0500, Paul Gilmartin 
paulgboul...@aim.com wrote:

Is default unblocked an ANSI Standard requirement?  (Of course
this doesn't preclude an extension implemented via compiler
option.)

From the 2002 standard (I don't have the 1985 standard):

-
13.16.10 BLOCK CONTAINS clause
The BLOCK CONTAINS clause specifies the size of a physical record.

13.16.10.1 General format

13.16.10.2 Syntax rules
1) If integer-1 is specified, integer-2 shall be greater than integer-1.

13.16.10.3 General rules
1) This clause is required except when one or more of the following conditions 
exist:
  a) A physical record contains one and only one complete logical record.
  b) The hardware device assigned to the file has one and only one physical 
record size.
  c) The number of records or characters contained in a block is specified in 
the operating environment.

2) The size of a physical record may be stated in terms of records unless one 
or more of the following situations
exists, in which case the RECORDS phrase shall not be used:
  a) In mass storage files, logical records may extend across physical records.
  b) The physical record contains padding (area not contained in a logical 
record).
  c) Logical records are grouped in such a manner that an inaccurate physical 
record size would be implied.
3) If the CHARACTERS phrase is specified, the physical record size is specified 
in terms of the number of bytes
required to store the physical record, regardless of the types of characters 
used to represent the items within
the physical record.

4) If integer-1 is not specified, integer-2 represents the exact size of the 
physical record. If integer-1 and integer-2
are both specified, they refer to the minimum and maximum size of the 
physical record, respectively.
-

I would say that 3c indicates that the clause can be omitted and still not 
default to unblocked.  But perhaps that's just my wishful interpretation.

Frank

--
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: BLOCK CONTAINS

2009-05-19 Thread Frank Swarbrick
On Mon, 18 May 2009 23:00:02 -0500, Bill Klein wmkl...@ix.netcom.com 
wrote:

Ted,
  The issue that I think you are missing is that this entire conversation
started with a site trying to do a VSE to z/OS conversion.  For this site,
this is a major concern.  Certainly not the only one, but it is important
to understand exactly does happen/when/how under z/OS - so the 
requirements
for the conversion are resourced and met.

As I have said previously, I do think that having Block Contains 0 is the
best solution - as it gives desirable results when the phrase is used and
doesn't hurt when it isn't used.

Being the shop in question, and the originator of this thread, I just thought 
I'd 
mention that we are going to globally (for non-VSAM files) specify BLOCK 
CONTAINS 0.  This includes SYSIN and SYSOUT files where BLOCK CONTAINS 
0 means even less.  But who wants to go through the pain of figuring out 
what files are SYSIN and SYSOUT files and what files are not.

Which is why I wanted to be able to eliminate BLOCK CONTAINS 0 and have 
that as the default behavior.  Ah well.

By the way, any pointers on how to submit a marketing requirement?  VSE 
actually has a submit a requirement web page (https://www-
03.ibm.com/servers/eserver/zseries/zvse/contact/requirement.html).  Does 
z/OS have anything similar?

Thanks!
Frank

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


Submitting a Marketing REQUEST (was: BLOCK CONTAINS

2009-05-19 Thread Bill Klein
Frank Swarbrick fswarbr...@gmail.com wrote in message
news:listserv%200905191643164240.0...@bama.ua.edu...
snip
 By the way, any pointers on how to submit a marketing requirement?  VSE 
 actually has a submit a requirement web page (https://www-
 03.ibm.com/servers/eserver/zseries/zvse/contact/requirement.html).  Does 
 z/OS have anything similar?
 
 Thanks!
 Frank

As the saying goes, I have good news and I have bad news G

The good news is
  The procedure for submitting a Marketing REQUEST is easy.   Just contact
your IBM Marketing Representative and explain what you want THEM to
submit.

The bad news is,
  Try finding out who your IBM marketing rep is.  In many cases this is
QUITE difficult - it is even hard for many customers to figure out who (how
to contact) their local IBM branch.  

Once you find your local branch and/or your IBM marketing rep, then
getting a REQUEST submitted should be a piece of cake.  If your IBM
Marketing Rep does not know how to submit a REQUEST, then come back to us
here (and someone should be able to get your marketing rep in contact with
someone who can help them)

--
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: BLOCK CONTAINS

2009-05-18 Thread Howard Brazee
On 15 May 2009 18:08:22 -0700, cfmpub...@ns.sympatico.ca (Clark
Morris) wrote:

I checked the reference you gave and for QSAM files, if the BLOCK
CONTAINS clause is omitted, BLOCK 1 RECORD is assumed.  This stupidity
has aggravated me for years.

The whole idea of (IBM mainframe) CoBOL still caring about blocksize
is irritating.   The fix of making BLOCK CONTAINS 0 is IMHO, not the
way fixes should 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


Fw: BLOCK CONTAINS

2009-05-18 Thread Bill Klein
I may (a while ago - in the past) have mislead Clark.

There is DEFINITELY a difference between coding
   Block Contains 1
versus
   omitting the Block CONTAINS clause

(for output files)

The former creates a RECFM=FB/BM file (with one record per block)
while
the latter produces a RECFM=F/V file

Personally, neither are USUALLY the desired results, but they are
different.

howard.bra...@cusys.edu wrote in message
news:jps215p3ha8d7g7qvn2j1cigaqq8939...@4ax.com...
 On 15 May 2009 18:08:22 -0700, cfmpub...@ns.sympatico.ca (Clark
 Morris) wrote:
 
 I checked the reference you gave and for QSAM files, if the BLOCK
 CONTAINS clause is omitted, BLOCK 1 RECORD is assumed.  This stupidity
 has aggravated me for years.
 
 The whole idea of (IBM mainframe) CoBOL still caring about blocksize
 is irritating.   The fix of making BLOCK CONTAINS 0 is IMHO, not the
 way fixes should 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: BLOCK CONTAINS

2009-05-18 Thread Gilbert Saint-Flour
On Friday 15 May 2009 04:47, Clark Morris wrote:

  I submitted a SHARE requirement back in the 1990's to have 
 a compile option that the default be BLOCK 0. 

Great idea, and I wish IBM added that option to the compiler.  
What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

-- 
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com/

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


Fw: BLOCK CONTAINS

2009-05-18 Thread Bill Klein
I don't know about Clark submitting a requirement in the 90's, but there is
an existing SHARE requirement:
   SSLNGC03003  Compiler option to make BLOCK CONTAINS clause SMS sensitive 

(Part of the Description)
  The current default for when the BLOCK CONTAINS x RECORDS clause is
omitted is for unblocked files. If this default is taken, the result is an
unblocked file with very poor I/O performance. This may not be obvious since
the JCL may be correctly coded, but any JCL BLKSIZE specification will be
ignored without notification. Coding BLOCK CONTAINS 0 RECORDS is the
preferred solution, since it allows DFSMS to pick blocking with the optimal
BLKSIZE. This requirement requests a compiler option that would allow the
default for when the BLOCK CONTAINS clause is omitted to be set to the
same processing as the current handling of BLOCK CONTAINS 0 RECORDS
instead of creating/reading unblocked files.

  * * * * * 

This was submitted in 2003 and in 2004, IBM responded with ACCEPT.

There is currently a push within the comp.lang.cobol group to get AS MANY
AS POSSIBLE of existing Enterprise COBOL sites to submit a Marketing
REQUEST that references this SHARE requirement and asking for
implementation sooner than later.  

I would suggest that ALL of those in IBM-MAIN who are interested in seeing
this enhancement, should also contact their IBM marketing representative and
have such a REQUEST submitted from your site.  (And no, don't ask ME how to
find an IBM marketing representative)

Gilbert Saint-Flour usenet5...@yahoo.com wrote in message
news:200905181748.44799.usenet5...@yahoo.com...
 On Friday 15 May 2009 04:47, Clark Morris wrote:
 
   I submitted a SHARE requirement back in the 1990's to have 
  a compile option that the default be BLOCK 0. 
 
 Great idea, and I wish IBM added that option to the compiler.  
 What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !
 
 -- 
  Gilbert Saint-Flour
  GSF Software
  http://gsf-soft.com/

--
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: BLOCK CONTAINS

2009-05-18 Thread Paul Gilmartin
On Mon, 18 May 2009 17:48:44 +0200, Gilbert Saint-Flour wrote:

On Friday 15 May 2009 04:47, Clark Morris wrote:

  I submitted a SHARE requirement back in the 1990's to have
 a compile option that the default be BLOCK 0. 

Great idea, and I wish IBM added that option to the compiler.
What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

What happens if the programmer pre-allocates the data set?  It's
still a stupid necessity, but it might help in dealing with
situations where recompilation is impractical.

-- gil

--
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: BLOCK CONTAINS

2009-05-18 Thread Gilbert Saint-Flour
On Monday 18 May 2009 18:04, Paul Gilmartin wrote:

What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

 What happens if the programmer pre-allocates the data set?  
 It's still a stupid necessity, but it might help in dealing with
 situations where recompilation is impractical.

Well, pre-allocation is not very compatible with HSM, GDG, and a few other 
things.  So I believe the combination between DISP=(,NEW,CATLG) and BLOCK 
CONTAINS 0 is the best choice to solve potential problems.

And believe it or not, but many years ago, I wrote a utility to update 
load-modules and force BLKSIZE=0.  I probably only used it only once.  

-- 
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com/

--
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: BLOCK CONTAINS

2009-05-18 Thread McKown, John
Curiousity question: would using the IFG0EX0B exit be a Good Idea(tm)? From 
my initial reading, it can change the BLKSIZE. And likely the RECFM as well (to 
change F/V to FB/VB).

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

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

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

--
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: BLOCK CONTAINS

2009-05-18 Thread John McKown
I just ran a quick test using Enterprise COBOL 3.4.1. I had one input FD and
three output FDs. The output FDs were: (1) No  BLOCK CONTAINS at all; (2)
BLOCK CONTAINS 0 RECORDS; and (3) BLOCK CONTAINS 1 RECORDS. I directed each
to a separate SMS managed disk dataset. On the JCL for each output file, I
specified:

// RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS

I then dumped the records using IDCAMS, but with the JCL looking like:

//JS010EXEC  PGM=IDCAMS,
// REGION=20M
//SYSPRINT DD  SYSOUT=*
//I1 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK0,RECFM=U,BLKSIZE=32760
//I2 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK1,RECFM=U,BLKSIZE=32760
//I3 DD DISP=SHR,DSN=TSH009.MYCOPY.NOBLOCK,RECFM=U,BLKSIZE=32760
//SYSINDD  *
 PRINT INFILE(I1) DUMP COUNT(30)
 PRINT INFILE(I2) DUMP COUNT(30)
 PRINT INFILE(I3) DUMP COUNT(30)
//

All three outputs were IDENTICAL and showed that each file was identically
blocked. That is: the BLOCK CONTAINS 1 RECORDS did not result in an unblock
file!

This was run on z/OS 1.10.

Oh, for fun, I also put the output onto non-SMS managed DASD with the same
result.

--
John McKown

--
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: BLOCK CONTAINS

2009-05-18 Thread Ted MacNEIL
The whole idea of (IBM mainframe) CoBOL still caring about blocksize is 
irritating.
The fix of making BLOCK CONTAINS 0 is IMHO, not the way fixes should be.

I really don't think this qualifies as a 'fix'.
I learned COBOL in 1976, and was taught, back then, to always use BLOCK 
CONTAINS 0 RECORDS (I don't think that the last keyword was optional, then).
That was long before System Determined Blocksize was even dreamed about.

We used it so we could easily move from disk (for testing) to tape (for real), 
without re-compiling.

-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-18 Thread Ted MacNEIL
What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

What a stupid necessity that REXX programmers have to code:

PARSE (UPPER) ARG var1 var2 ...

What a stupid necessity to have to code extra volumes in JCL/IDCAMS (or in your 
ACS) routines.

What a stupid necessity that ... (well, you get the picture).

There are a lot of warts (still) in z/OS.
Some are trivial, some are complex, and some are not truly worth the effort to 
address.

But, z/OS is the most robust OS out there, so I'm willing to live with some of 
its quirks.

-
Too busy driving to stop for gas!

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


Fw: BLOCK CONTAINS

2009-05-18 Thread Bill Klein
John,
  What happens if you run the exact same test, but instead of having the JCL
for your output as:
 // RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS
you instead JUST coded
 // DSORG=PS

i.e. you leave out the JCL (overrides) for RECCFM, LRECL, and BLKSIZE) - I
think that this is when/where the different BLOCK CONTAINS clauses make a
difference.

John McKown joa...@swbell.net wrote in message
news:listserv%200905181308288278.0...@bama.ua.edu...
 I just ran a quick test using Enterprise COBOL 3.4.1. I had one input FD
and
 three output FDs. The output FDs were: (1) No  BLOCK CONTAINS at all; (2)
 BLOCK CONTAINS 0 RECORDS; and (3) BLOCK CONTAINS 1 RECORDS. I directed
each
 to a separate SMS managed disk dataset. On the JCL for each output file, I
 specified:
 
 // RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS
 
 I then dumped the records using IDCAMS, but with the JCL looking like:
 
 //JS010EXEC  PGM=IDCAMS,
 // REGION=20M
 //SYSPRINT DD  SYSOUT=*
 //I1 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK0,RECFM=U,BLKSIZE=32760
 //I2 DD DISP=SHR,DSN=TSH009.MYCOPY.BLOCK1,RECFM=U,BLKSIZE=32760
 //I3 DD DISP=SHR,DSN=TSH009.MYCOPY.NOBLOCK,RECFM=U,BLKSIZE=32760
 //SYSINDD  *
  PRINT INFILE(I1) DUMP COUNT(30)
  PRINT INFILE(I2) DUMP COUNT(30)
  PRINT INFILE(I3) DUMP COUNT(30)
 //
 
 All three outputs were IDENTICAL and showed that each file was identically
 blocked. That is: the BLOCK CONTAINS 1 RECORDS did not result in an
unblock
 file!
 
 This was run on z/OS 1.10.
 
 Oh, for fun, I also put the output onto non-SMS managed DASD with the same
 result.
 
 --
 John McKown
 
 --
 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: BLOCK CONTAINS

2009-05-18 Thread Howard Brazee
On 18 May 2009 11:30:02 -0700, eamacn...@yahoo.ca (Ted MacNEIL) wrote:

The whole idea of (IBM mainframe) CoBOL still caring about blocksize is 
irritating.
The fix of making BLOCK CONTAINS 0 is IMHO, not the way fixes should be.

I really don't think this qualifies as a 'fix'.
I learned COBOL in 1976, and was taught, back then, to always use BLOCK 
CONTAINS 0 RECORDS (I don't think that the last keyword was optional, then).
That was long before System Determined Blocksize was even dreamed about.

We used it so we could easily move from disk (for testing) to tape (for real), 
without re-compiling.

Yes, even before System Determined Blocksize, the system had places
where the program didn't determine blocksize.

It is a lie to say BLOCK CONTAINS 0 RECORDS, it would have been better
to have done that by leaving out the line altogether.

--
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: BLOCK CONTAINS

2009-05-18 Thread Ted MacNEIL
It is a lie to say BLOCK CONTAINS 0 RECORDS, it would have been better to have 
done that by leaving out the line altogether.

I don't think it's a lie.
Historically, ZERO has always had a special meaning.
In COBOL's case, it just means that the programme is not going to determine the 
blocksize, but leaves a place-holder for it when it's decided elsewhere.

I honestly don't think that it's so onerous to have to worry about coding it 
(it's a nit).
Most shops have standard templates (or programmers copy existing code) that are 
modified to meet current needs.
Very little code is written from scratch.
(I know I rarely do it for any language).

-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-18 Thread McKown, John
 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:ibm-m...@bama.ua.edu] On Behalf Of Bill Klein
 Sent: Monday, May 18, 2009 1:45 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Fw: BLOCK CONTAINS
 
 John,
   What happens if you run the exact same test, but instead of 
 having the JCL
 for your output as:
// RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS
 you instead JUST coded
// DSORG=PS
 
 i.e. you leave out the JCL (overrides) for RECCFM, LRECL, and 
 BLKSIZE) - I
 think that this is when/where the different BLOCK CONTAINS 
 clauses make a
 difference.

Ah! NOBLOCK had F/80/80 whereas BLOCK1 had FB/80/80. BLOCK0 still had 
FB/80/27920. But it is still interesting, to me, that BLOCK CONTAINS 1 and no 
BLOCK CONTAINS at all can still create an optimally block dataset with little 
effort in the JCL and no program changes.

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

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

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

 

--
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: BLOCK CONTAINS

2009-05-18 Thread Paul Gilmartin
On Mon, 18 May 2009 18:18:20 +0200, Gilbert Saint-Flour wrote:

On Monday 18 May 2009 18:04, Paul Gilmartin wrote:

What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

 What happens if the programmer pre-allocates the data set?  
 It's still a stupid necessity, but it might help in dealing with
 situations where recompilation is impractical.

Well, pre-allocation is not very compatible with HSM, GDG, and a few other

I believe I understand the concern with GDG.  (Actually,
mu understanding of GDG is so rudimentary I'm not qualified
to doubt the concern.)  But what of HSM?  Why should there
be a problem?  Simply preface an IEFBR14 step with attributes
and DISP=(,CATLG)

things.  So I believe the combination between DISP=(,NEW,CATLG) and BLOCK

??? What's the omitted positional subparameter?  Primary disposition
NEW, secondary disposition CATLG?

CONTAINS 0 is the best choice to solve potential problems.

Yah.  It should be done by the access method; the application
should be oblivious to the entire blocking process.

And believe it or not, but many years ago, I wrote a utility to update
load-modules and force BLKSIZE=0.  I probably only used it only once.

By re-linking?  I thought that was the only way.  (Well,
massive RYO.)

Is default unblocked an ANSI Standard requirement?  (Of course
this doesn't preclude an extension implemented via compiler
option.)

-- gil

--
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: BLOCK CONTAINS

2009-05-18 Thread Ted MacNEIL
Yah.
It should be done by the access method; the application should be oblivious to 
the entire blocking process.

We have 45 years of baggage.
Woulda, coulda, shoulda.
Most people/shops have templates with these things already specified.
Copy, and move on.

If BLOCK CONTAINS is an issue, you don't have the weight of the world on your 
shoulders.

I don't mean to sound deprecating, but there are more important issues.

-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-18 Thread Clark Morris
On 18 May 2009 13:35:40 -0700, in bit.listserv.ibm-main you wrote:

 -Original Message-
 From: IBM Mainframe Discussion List 
 [mailto:ibm-m...@bama.ua.edu] On Behalf Of Bill Klein
 Sent: Monday, May 18, 2009 1:45 PM
 To: IBM-MAIN@bama.ua.edu
 Subject: Fw: BLOCK CONTAINS
 
 John,
   What happens if you run the exact same test, but instead of 
 having the JCL
 for your output as:
   // RECFM=FB,LRECL=80,BLKSIZE=0,DSORG=PS
 you instead JUST coded
   // DSORG=PS
 
 i.e. you leave out the JCL (overrides) for RECCFM, LRECL, and 
 BLKSIZE) - I
 think that this is when/where the different BLOCK CONTAINS 
 clauses make a
 difference.

Ah! NOBLOCK had F/80/80 whereas BLOCK1 had FB/80/80. BLOCK0 still had 
FB/80/27920. But it is still interesting, to me, that BLOCK CONTAINS 1 and no 
BLOCK CONTAINS at all can still create an optimally block dataset with little 
effort in the JCL and no program changes.

This is weird because the normal merge is DCB overrides JCL and JCL
overrides data set label (DSCB or tape label).  The code to
distinguish between BLKSIZE=0 in JCL and BLKSIZE not supplied must be
interesting to say the least.  If I get energetic, I'll check the
COBOL Programmers Guide.  Talk about ways to confuse the applications
programmers and subtle ways to screw up.  

--
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: BLOCK CONTAINS

2009-05-18 Thread Clark Morris
On 18 May 2009 14:10:36 -0700, in bit.listserv.ibm-main you wrote:

On Mon, 18 May 2009 18:18:20 +0200, Gilbert Saint-Flour wrote:

On Monday 18 May 2009 18:04, Paul Gilmartin wrote:

What a stupid necessity that programmers have to code BLOCK CONTAINS 0 !

 What happens if the programmer pre-allocates the data set?  
 It's still a stupid necessity, but it might help in dealing with
 situations where recompilation is impractical.

Well, pre-allocation is not very compatible with HSM, GDG, and a few other

I believe I understand the concern with GDG.  (Actually,
mu understanding of GDG is so rudimentary I'm not qualified
to doubt the concern.)  But what of HSM?  Why should there
be a problem?  Simply preface an IEFBR14 step with attributes
and DISP=(,CATLG)

things.  So I believe the combination between DISP=(,NEW,CATLG) and BLOCK

??? What's the omitted positional subparameter?  Primary disposition
NEW, secondary disposition CATLG?

CONTAINS 0 is the best choice to solve potential problems.

Yah.  It should be done by the access method; the application
should be oblivious to the entire blocking process.

And believe it or not, but many years ago, I wrote a utility to update
load-modules and force BLKSIZE=0.  I probably only used it only once.

By re-linking?  I thought that was the only way.  (Well,
massive RYO.)

Is default unblocked an ANSI Standard requirement?  (Of course
this doesn't preclude an extension implemented via compiler
option.)

Implementor defined according to Bill Klein.  Since COBOL had no way
of specifying UNBLOCKED, I suspect that IBM chose the lack of the
BLOCK [CONTAINS] clause to mean unblocked.  The current handling is
confusing because the BLOCK [CONTAINS] clause isn't specified for VSAM
which came after the 1968 standard.

-- gil


--
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: BLOCK CONTAINS

2009-05-18 Thread Paul Gilmartin
On Mon, 18 May 2009 21:28:02 +, Ted MacNEIL wrote:

We have 45 years of baggage.
Woulda, coulda, shoulda.
Most people/shops have templates with these things already specified.
Copy, and move on.

Whenever I hear this diachronic rationale for some
deficiency of z/OS, I think of the political unrest
in the U.S. in the 1960's  when bumper stickers:

America: Love it or leave it!

were countered with:

America: Change it or lose it!

C 'America' 'z/OS'  ALL

-- gil

--
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: BLOCK CONTAINS

2009-05-18 Thread Ted MacNEIL
We have 45 years of baggage.
Woulda, coulda, shoulda.
Most people/shops have templates with these things already specified.
Copy, and move on.

Whenever I hear this diachronic rationale for some deficiency of z/OS, I think 
of the political unrest in the U.S. in the 1960's  when bumper stickers:

America: Love it or leave it!

were countered with:

America: Change it or lose it!

C 'America' 'z/OS'  ALL

You missed my point(s):

1. The existance of templates can/does handle the requirement for BLOCK 
CONTAINS.
2. Some things are way to trivial to lose sleep over.
3. There are more important things to worry about than something that has been 
around for so long, and we have a solution for.
4. Copy and move on!
-
Too busy driving to stop for gas!

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


Fw: BLOCK CONTAINS

2009-05-18 Thread Bill Klein
Paul Gilmartin paulgboul...@aim.com wrote in message
news:listserv%200905181607125082.0...@bama.ua.edu...
 On Mon, 18 May 2009 18:18:20 +0200, Gilbert Saint-Flour wrote:
snip
 Is default unblocked an ANSI Standard requirement?  (Of course
 this doesn't preclude an extension implemented via compiler
 option.)
 
The actual phrasing of the current Standard is,

1) This clause is required except when one or more of the following
conditions exist:
a) A physical record contains one and only one complete logical
record.
b) The hardware device assigned to the file has one and only one
physical record size.
c) The number of records or characters contained in a block is
specified in the operating environment

I think that leaving it out to get unblocked MAY be considered an extension.

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


BLOCK CONTAINS

2009-05-18 Thread Bill Klein
Ted,
  The issue that I think you are missing is that this entire conversation
started with a site trying to do a VSE to z/OS conversion.  For this site,
this is a major concern.  Certainly not the only one, but it is important
to understand exactly does happen/when/how under z/OS - so the requirements
for the conversion are resourced and met.

As I have said previously, I do think that having Block Contains 0 is the
best solution - as it gives desirable results when the phrase is used and
doesn't hurt when it isn't used. 

Ted MacNEIL eamacn...@yahoo.ca wrote in message
news:1311180719-1242704268-cardhu_decombobulator_blackberry.rim.net-1990313
5...@bxe1305.bisx.prod.on.blackberry...
 We have 45 years of baggage.
 Woulda, coulda, shoulda.
 Most people/shops have templates with these things already specified.
 Copy, and move on.
 
 Whenever I hear this diachronic rationale for some deficiency of z/OS, I
think of the political unrest in the U.S. in the 1960's  when bumper
stickers:
 
 America: Love it or leave it!
 
 were countered with:
 
 America: Change it or lose it!
 
 C 'America' 'z/OS'  ALL
 
 You missed my point(s):
 
 1. The existance of templates can/does handle the requirement for BLOCK
CONTAINS.
 2. Some things are way to trivial to lose sleep over.
 3. There are more important things to worry about than something that has
been around for so long, and we have a solution for.
 4. Copy and move on!
 -
 Too busy driving to stop for gas!
 
 --
 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: Fw: BLOCK CONTAINS

2009-05-18 Thread Paul Gilmartin
On Mon, 18 May 2009 22:56:05 -0500, Bill Klein wrote:

The actual phrasing of the current Standard is,

1) This clause is required except when one or more of the following
conditions exist:
...
   c) The number of records or characters contained in a block is
specified in the operating environment

I think that leaving it out to get unblocked MAY be considered an extension.

I think a reasonable person can conclude that for z/OS, specified
in the operating environment means either as BLKSIZE on the JCL DD
statement or available from SDB, and it is the intent of the Standard
that when the BLOCK CONTAINS clause is omitted, that externally
specified (by DD or SDB) value should prevail.  And thus that z/OS
COBOL deviates from the Standard on this matter.

-- gil

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


Fw: BLOCK CONTAINS

2009-05-16 Thread Bill Klein
Frank Swarbrick fswarbr...@gmail.com wrote in message
news:listserv%200905151108397984.0...@bama.ua.edu...
 On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve 
 steve_thomp...@stercomm.com wrote:
snip
 It depends on if the file is pre-defined.  If it is not, and I don't
include DCB 
 stuff on the DD, then it does what Cobol tells it to do (because there is
no 
 other place to get that information!).
 
 However if the file *is* predefined then *that* information appears (for 
 blocking only, not for RECFM (V vs B) or LRECL) to override what Cobol 
 states.  
 
 Examples...
 
 If I predefine a file as RECFM=VB, BLKSIZE=1, LRECL=4004 then
 1) If Cobol says BLOCK CONTAINS 1 it works (of course).
 2) If Cobol says BLOCK CONTAINS 0 it works.
 3) If Cobol says BLOCK CONTAINS 12345 it works (!!!)
 4) If Cobol does not have a BLOCK CONTAINS clause it works (!!!)
 
 This is the case no matter if I am reading from the file or writing to it.
 
 I am glad it works no matter what.  But the documentation seems to me to

 indicate that conditions 3 and 4 should not work, even though they do.
That 
 is where I am getting confused.
 
snip

Frank,
  (Some private email also sent on this),

I think that the current COBOL documentation *ASSUMES* (possibly
erroneously) that for OUTPUT files
A) For QSAM, that they are NOT pre-defined and that the combination of the
COBOL FD information and the JCL information will CREATE the file
B) For VSAM (KSDS, ESDS, *and* RRDS) that the file IS predefined (e.g.
IDCAMS).

The statement at:
  http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/igy3pg40/1.9.4.3.2 

that says,
 If your COBOL program writes records to a new file that will be made
available before the program runs, ensure that the file attributes in the DD
statement, the environment variable, or the allocation do not conflict with
the attributes in the program.

seems to be saying that if you do predefine QSAM files that you should make
certain that the attributes match.  The UNSTATED implication (or my
inference) is that your case 3 and 4 may work today and it may work
tomorrow, but there is no GUARANTEE that they will work with the next
release or even service level.  My guess is that they will, but I certainly
do not see any place in the existing COBOL documentation that guarantees
this.

From my experience (and as a personal opinion), I would NOT pre-allocate
QSAM files - but instead would use BLOCK CONTAINS 0 in the COBOL program.  I
can't think of when this would ever hurt and I can certainly see lots of
times that it would help. 

--
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: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

2009-05-16 Thread Clark Morris
On 15 May 2009 17:24:25 -0700, in bit.listserv.ibm-main you wrote:

Frank,

I suggest you download the Redbook, VSAM De-Mystified. It will answer your 
questions concerning VSAM performance. 
As my instructor told the class years ago - Don't take the defaults!
Specify CI sizes that give the best space utilization for your record size.
Choose a large enough Index CI Size to avoid 'dead areas' in your data 
component.
Specify a robust value for your Bufferspace parameter, in most cases the 
larger the better. (I'm sure someone will volunteer a 'war story' where this 
wasn't the case but generally a large buffer space improves throughput.)
For batch processing look into BLSR.

While I did a lot with BLSR, from what I read in the manual there are
other parameters available for managing VSAM access that give at least
as good results.  Check the JCL manual.  The constructs may only apply
to SMS managed data sets.
For CICS use LSRpools, again be generous. The more data stored in memory the 
fewer physical I/O.

HTH,   
Dave O'Brien
NIH Contractor

From: IBM Mainframe Discussion List [ibm-m...@bama.ua.edu] On Behalf Of Frank 
Swarbrick [fswarbr...@gmail.com]
Sent: Friday, May 15, 2009 6:20 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

On Fri, 15 May 2009 14:09:33 -0400, Thompson, Steve
steve_thomp...@stercomm.com wrote:

Because of past conversions, I think this needs to be said:

1) VSE/ESA got to use XA I/O just like MVS. This means, to the VSE shop,
that some slick stuff that got offloaded to the I/O Subsystem (shall we
say parts of VM's and MVS' I/O Supervisor code) became available w/o any
JCL or application coding changes. Things like dual (or multi) pathing
with dynamic pathing.

What does this have to do with anything? Well, the typical throughput
performance gains seen in the past when going from VSE to MVS don't
happen because what was giving those (for the most part) has already
been realized.

2) VSAM is implemented in VSE differently than in MVS. So, the way
sharing and buffer management is done changes and WILL cause performance
issues when you get to MVS.

3) CICS is impacted by these changes, and you may see less throughput.
Although, with the ability to have more storage than z/VSE allows, you
may over come it. But be sure to have sufficient page volumes.

Are you saying the MVS VSAM is less efficient then VSE VSAM?  Hmmm!  One
might start to wonder why we are migrating at all!  :-)

Thanks for the info.  I will pass it on to our systems programmers (who
hopefully already know what you are talking about anyway, but it couldn't
hurt).

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Reda, John
Clark,

Wow, 1998, that was a while ago!  SyncSort processing has changed.
Unless told specifically to leave the output unblocked, we will create
the output data set as a blocked data set when the input is VSAM.  I'm
not sure when the change occurred but it was some time ago.  

John Reda
Syncsort, Inc.
201-930-8260

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Clark Morris
Sent: Thursday, May 14, 2009 10:45 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

snip 

While blocked input files may be read successfully if neither the
block size nor BLOCK 0 is specified provided record descriptions
match, lack of BLOCK CONTAINS causes the default blocksize on output
to be ONE record.  I believe I submitted a SHARE requirement back in
the 1990's to have a compile option that the default be BLOCK 0.
Either is a perfectly valid default according to the COBOL standard.
BLOCK would be the default consistent with VSAM handling.  The whole
issue is a sore point with me and possibly others.  Incidentally be
careful to specify BLKSIZE=0 on the DD statements of output files from
sorts that sort or copy VSAM files.  Unless things have changed from
1998, SYNCSORT defaulted to one record per block.  

snip

--
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: BLOCK CONTAINS

2009-05-15 Thread Thompson, Steve
-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Frank Swarbrick
Sent: Thursday, May 14, 2009 7:03 PM
To: IBM-MAIN@bama.ua.edu
Subject: BLOCK CONTAINS

I have been a bit of experimenting with z/OS QSAM files from a Cobol
program 
and I find that the manuals don't exactly agree with my results.  The
manuals seem to imply that if you use the BLOCK CONTAINS clause (whether
0 or something else) then the file has a RECFM of either VB or FB.  And
if you don't include it then it's either V or B.

SNIPPAGE

Welcome to the MVS world. In the MVS world, we are not device dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).

We do not have to link PIOCS or LIOCS routines to our programs to handle
I/O. The access method itself handles these things (particularly at the
QSAM level).

If you are using a vendor to help you migrate, you should spend a bit of
time with them discussing all the changes to the environment and
different concepts between VSE and MVS.

As you have seen with your experiments, the information on the DD
statement will override what you have in your program. And the label
from the file in MVS actually contains the LRECL, BLKSIZE and RECFM,
which as I recall, is not the case with VSE (for disk or tape).

However, what happens if the DD statement only contains the UNIT, SPACE,
DISP, and DSN? Does what you specify in the COBOL program then behave
the way the manual says?

Your ESDS files being taken to SAM: Just make sure that you don't
actually depend on VSAM functions.

And as far as your ASSIGN clause on the SELECT: you can probably leave
them as they are -- but I haven't used the latest COBOL for a migration.
In fact it has been a few years since I've done a migration. So unless
it is going to enforce something, as I recall, only what is after the
last - is paid attention to. And if you end with -SYS112 (or some
such), then the DD being looked for is SYS112.

Regards,
Steve Thompson

-- Opinions expressed by this poster may not reflect those of poster's
employer. --

--
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: BLOCK CONTAINS

2009-05-15 Thread Gilbert Saint-Flour
On Friday 15 May 2009 02:05, Frank Swarbrick wrote:

 We are migrating from VSE to z/OS, and at the same time we are going 
 to convert most of our existing ESDS files to regular sequential files.  
 I see no reason to add BLOCK CONTAINS 0 to all of our FD's if it has 
 no affect (our VSAM FD's do not (generally!) specify the BLOCK CONTAINS
 clause, because it has no meaning to VSAM).

IIRC, BLOCK CONTAINS 0 is only needed for OUTPUT files in COBOL, but I think 
it's better to put it everywhere, so programmers later don't have to remember 
where it's needed.   

In 1991, I started to convert VSE applications to MVS/ESA and stopped to 
generate DCB attributes on DD statements, except for output files in IDCAMS 
REPRO and QUIKJOB programs, and a few others ones.  A few years later, 
I started to convert IDCAMS REPRO to something else, for several advantages, 
among them not having to specify DCB info in the JCL.  I'm convinced that 
coding DCB attributes on DD statements is something almost always useless and 
archaic.  This is something all my customers agreed with, except an 
outsourcing company that absolutely had to have DCB information on all output 
DD statements, like this: DCB=(RECFM=xx,LRECL=yy,BLKSIZE=zzz).  
This was in 2007 !  In z/OS !  

See examples here: http://gsf-soft.com/Prism-CS/Samples.shtml and you won't 
see many DD statements that contain DCB info.  This is very similar to what 
I generated since 1991.  

As for the conversion of ESDS files to non-VSAM in COBOL programs, 
changing AS-filename to S-ddname is not always the only thing you need 
to do.  Trust me !

-- 
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com/

--
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: BLOCK CONTAINS

2009-05-15 Thread Ward, Mike S
What if a new device came out and there was a better optimum blocksize for it? 
Wouldn't you have to recompile everthing that used that file to get the optimum 
blocksize? I don't know I'm just asking. 

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of 
Gilbert Saint-Flour
Sent: Friday, May 15, 2009 8:29 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

On Friday 15 May 2009 02:05, Frank Swarbrick wrote:

 We are migrating from VSE to z/OS, and at the same time we are going 
 to convert most of our existing ESDS files to regular sequential files.  
 I see no reason to add BLOCK CONTAINS 0 to all of our FD's if it has 
 no affect (our VSAM FD's do not (generally!) specify the BLOCK CONTAINS
 clause, because it has no meaning to VSAM).

IIRC, BLOCK CONTAINS 0 is only needed for OUTPUT files in COBOL, but I think 
it's better to put it everywhere, so programmers later don't have to remember 
where it's needed.   

In 1991, I started to convert VSE applications to MVS/ESA and stopped to 
generate DCB attributes on DD statements, except for output files in IDCAMS 
REPRO and QUIKJOB programs, and a few others ones.  A few years later, 
I started to convert IDCAMS REPRO to something else, for several advantages, 
among them not having to specify DCB info in the JCL.  I'm convinced that 
coding DCB attributes on DD statements is something almost always useless and 
archaic.  This is something all my customers agreed with, except an 
outsourcing company that absolutely had to have DCB information on all output 
DD statements, like this: DCB=(RECFM=xx,LRECL=yy,BLKSIZE=zzz).  
This was in 2007 !  In z/OS !  

See examples here: http://gsf-soft.com/Prism-CS/Samples.shtml and you won't 
see many DD statements that contain DCB info.  This is very similar to what 
I generated since 1991.  

As for the conversion of ESDS files to non-VSAM in COBOL programs, 
changing AS-filename to S-ddname is not always the only thing you need 
to do.  Trust me !

-- 
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com/

--
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
==
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity
to which they are addressed. If you have received this email in error please 
notify the system manager. This message
contains confidential information and is intended only for the individual 
named. If you are not the named addressee you
should not disseminate, distribute or copy this e-mail. Please notify the 
sender immediately by e-mail if you
have received this e-mail by mistake and delete this e-mail from your system. 
If you are not the intended recipient
you are notified that disclosing, copying, distributing or taking any action in 
reliance on the contents of this
information is strictly prohibited.

--
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: BLOCK CONTAINS

2009-05-15 Thread O'Brien, David W. (NIH/CIT) [C]
Blocksize=0 invokes system determined blocking which results in 2 blocks per 
track.
It won't matter what DASD device is used.

Dave O'Brien
NIH Contractor

From: IBM Mainframe Discussion List [ibm-m...@bama.ua.edu] On Behalf Of Ward, 
Mike S [mw...@ssfcu.org]
Sent: Friday, May 15, 2009 9:37 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

What if a new device came out and there was a better optimum blocksize for it? 
Wouldn't you have to recompile everthing that used that file to get the optimum 
blocksize? I don't know I'm just asking.

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of 
Gilbert Saint-Flour
Sent: Friday, May 15, 2009 8:29 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

On Friday 15 May 2009 02:05, Frank Swarbrick wrote:

 We are migrating from VSE to z/OS, and at the same time we are going
 to convert most of our existing ESDS files to regular sequential files.
 I see no reason to add BLOCK CONTAINS 0 to all of our FD's if it has
 no affect (our VSAM FD's do not (generally!) specify the BLOCK CONTAINS
 clause, because it has no meaning to VSAM).

IIRC, BLOCK CONTAINS 0 is only needed for OUTPUT files in COBOL, but I think
it's better to put it everywhere, so programmers later don't have to remember
where it's needed.

In 1991, I started to convert VSE applications to MVS/ESA and stopped to
generate DCB attributes on DD statements, except for output files in IDCAMS
REPRO and QUIKJOB programs, and a few others ones.  A few years later,
I started to convert IDCAMS REPRO to something else, for several advantages,
among them not having to specify DCB info in the JCL.  I'm convinced that
coding DCB attributes on DD statements is something almost always useless and
archaic.  This is something all my customers agreed with, except an
outsourcing company that absolutely had to have DCB information on all output
DD statements, like this: DCB=(RECFM=xx,LRECL=yy,BLKSIZE=zzz).
This was in 2007 !  In z/OS !

See examples here: http://gsf-soft.com/Prism-CS/Samples.shtml and you won't
see many DD statements that contain DCB info.  This is very similar to what
I generated since 1991.

As for the conversion of ESDS files to non-VSAM in COBOL programs,
changing AS-filename to S-ddname is not always the only thing you need
to do.  Trust me !

--
 Gilbert Saint-Flour
 GSF Software
 http://gsf-soft.com/

--
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
==
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity
to which they are addressed. If you have received this email in error please 
notify the system manager. This message
contains confidential information and is intended only for the individual 
named. If you are not the named addressee you
should not disseminate, distribute or copy this e-mail. Please notify the 
sender immediately by e-mail if you
have received this e-mail by mistake and delete this e-mail from your system. 
If you are not the intended recipient
you are notified that disclosing, copying, distributing or taking any action in 
reliance on the contents of this
information is strictly prohibited.

--
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: BLOCK CONTAINS

2009-05-15 Thread Thompson, Steve
-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Ward, Mike S
Sent: Friday, May 15, 2009 8:38 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

What if a new device came out and there was a better optimum blocksize
for it? Wouldn't you have to recompile everthing that used that file to
get the optimum blocksize? I don't know I'm just asking. 

SNIPPAGE

Under VSE that would be true for other than VSAM access. 

Under MVS you would have to go out of your way to get into this problem
of being blocksize dependent. Granted, this was done in days when there
were different device geometries (2314, 3330, 3340, 3375, 3380, 3390).
But as has been and will be pointed out, as long as you specify
BLKSIZE=0, you will get System Determined Blocksize which will handle
this situation.

Regards,
Steve Thompson

-- Opinions expressed by this poster may not reflect those of poster's
employer. --

--
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: BLOCK CONTAINS

2009-05-15 Thread Paul Gilmartin
On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve wrote:

Welcome to the MVS world. In the MVS world, we are not device dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).

Huh???

If we are not device dependant, why is there such intense trepidation
and resistance to the mere suggestion of a device with a novel geometry
such as more bytes per track or more tracks per cylinder?  It doesn't
appear that you and I have been living in the same MVS world.

-- gil

--
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: BLOCK CONTAINS

2009-05-15 Thread Thompson, Steve
-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Paul Gilmartin
Sent: Friday, May 15, 2009 9:07 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve wrote:

Welcome to the MVS world. In the MVS world, we are not device
dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).

Huh???

If we are not device dependant, why is there such intense trepidation
and resistance to the mere suggestion of a device with a novel geometry
such as more bytes per track or more tracks per cylinder?  It doesn't
appear that you and I have been living in the same MVS world.

SNIP

In the VSE world, if you set up to read tape, you can not change your
JCL to instead read Disk. A DTFSD (Define The File - Sequential Disk)
can not be used to read a tape (DTFMT - Define The File - Magnetic
Tape). 

If you did use the DTFDI (Define The File - Device Independent) it is
only good for limited situations.

In the MVS world, DCB is DCB -- We don't have DCBSD for Data Control
Block - Sequential Disk. The Access Method connects you to the device
and handles it (unless you went out of your way to make the DCB specific
to a device, such as a card reader).

As you can see, there is device dependence and then there is device
dependence.

Regards,
Steve Thompson

-- Opinions expressed by this poster may not reflect those of poster's
employer. --

--
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: BLOCK CONTAINS

2009-05-15 Thread Ted MacNEIL
If we are not device dependant, why is there such intense trepidation and 
resistance to the mere suggestion of a device with a novel geometry such as 
more bytes per track or more tracks per cylinder?

That is a different issue.
If you code BLOCK CONTAINS 0, your application does not need to concern itself 
with the device (tape or disk), or with whatever the disk geometry is.

So, if we ever get a new disk type, the programme will not need recompiling.
-
Too busy driving to stop for gas!

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Thu, 14 May 2009 23:45:14 -0300, Clark Morris 
cfmpub...@ns.sympatico.ca wrote:

On 14 May 2009 17:05:53 -0700, in bit.listserv.ibm-main you wrote:

I have been a bit of experimenting with z/OS QSAM files from a Cobol 
program
and I find that the manuals don't exactly agree with my results.  The 
manuals
seem to imply that if you use the BLOCK CONTAINS clause (whether 0 or
something else) then the file has a RECFM of either VB or FB.  And if you 
don't
include it then it's either V or B.

While blocked input files may be read successfully if neither the
block size nor BLOCK 0 is specified provided record descriptions
match, lack of BLOCK CONTAINS causes the default blocksize on output
to be ONE record.  I believe I submitted a SHARE requirement back in
the 1990's to have a compile option that the default be BLOCK 0.
Either is a perfectly valid default according to the COBOL standard.
BLOCK would be the default consistent with VSAM handling.  The whole
issue is a sore point with me and possibly others.  

So are you saying that if I create a file (using, say, ISPF 3.2) and specify VB 
with a particular block size, if my Cobol program that writes data to this 
(empty) file does *not* have BLOCK CONTAINS 0 (or BLOCK CONTAINS 
whatever the actual block size is) the actual I/O will *not* be blocked?  It 
definitely works, but I don't know how to tell what the actual blocking factor 
is.

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve 
steve_thomp...@stercomm.com wrote:

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Frank Swarbrick
Sent: Thursday, May 14, 2009 7:03 PM
To: IBM-MAIN@bama.ua.edu
Subject: BLOCK CONTAINS

I have been a bit of experimenting with z/OS QSAM files from a Cobol
program
and I find that the manuals don't exactly agree with my results.  The
manuals seem to imply that if you use the BLOCK CONTAINS clause (whether
0 or something else) then the file has a RECFM of either VB or FB.  And
if you don't include it then it's either V or B.

SNIPPAGE

Welcome to the MVS world. In the MVS world, we are not device dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).

We do not have to link PIOCS or LIOCS routines to our programs to handle
I/O. The access method itself handles these things (particularly at the
QSAM level).

If you are using a vendor to help you migrate, you should spend a bit of
time with them discussing all the changes to the environment and
different concepts between VSE and MVS.

We are not using a vendor.  We have systems and applications programmers 
that come from the MVS world, so we're going with that expertise.  Though I 
suppose the fact that I am asking these questions here might indicate that 
said expertise is perhaps not sufficient?  Hmmm...

As you have seen with your experiments, the information on the DD
statement will override what you have in your program. And the label
from the file in MVS actually contains the LRECL, BLKSIZE and RECFM,
which as I recall, is not the case with VSE (for disk or tape).

However, what happens if the DD statement only contains the UNIT, SPACE,
DISP, and DSN? Does what you specify in the COBOL program then behave
the way the manual says?

It depends on if the file is pre-defined.  If it is not, and I don't include 
DCB 
stuff on the DD, then it does what Cobol tells it to do (because there is no 
other place to get that information!).

However if the file *is* predefined then *that* information appears (for 
blocking only, not for RECFM (V vs B) or LRECL) to override what Cobol 
states.  

Examples...

If I predefine a file as RECFM=VB, BLKSIZE=1, LRECL=4004 then
1) If Cobol says BLOCK CONTAINS 1 it works (of course).
2) If Cobol says BLOCK CONTAINS 0 it works.
3) If Cobol says BLOCK CONTAINS 12345 it works (!!!)
4) If Cobol does not have a BLOCK CONTAINS clause it works (!!!)

This is the case no matter if I am reading from the file or writing to it.

I am glad it works no matter what.  But the documentation seems to me to 
indicate that conditions 3 and 4 should not work, even though they do.  That 
is where I am getting confused.

Your ESDS files being taken to SAM: Just make sure that you don't
actually depend on VSAM functions.

Any hints as to what VSAM functions I might be depending on?  The only case 
we've come upon so far is if the file is defined to CICS we have to leave it as 
an ESDS.  We have about two dozen of those, but plan on converting all 
others to SAM.

And as far as your ASSIGN clause on the SELECT: you can probably leave
them as they are -- but I haven't used the latest COBOL for a migration.
In fact it has been a few years since I've done a migration. So unless
it is going to enforce something, as I recall, only what is after the
last - is paid attention to. And if you end with -SYS112 (or some
such), then the DD being looked for is SYS112.

Both VSE and z/OS require the AS- prefix in order for Cobol to distinguish 
between between a VSAM ESDS and a regular SAM file.  Other than that, yes, 
only the last node has any meaning.  Nonetheless our conversion program is 
going to remove all of the superfluous stuff.  I have been trying to get my 
fellow programmers to cut out this information for years, but with little 
success.  Hopefully this way people will have fewer bad examples to follow!

Thanks!
Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread McKown, John
Perhaps this explains the observed action?

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IGY3LR31/5.2.4

quote
BLOCK CONTAINS
0 can be specified for QSAM files. If BLOCK CONTAINS 0 is specified for a 
QSAM file, then:

* The block size is determined at run time from the DD parameters or 
the data set label. If the RECORD CONTAINS 0 CHARACTERS clause is specified and 
the BLOCK CONTAINS 0 CHARACTERS clause is specified (or omitted), the block 
size is determined at run time from the DD parameters or the data set label of 
the file. For output data sets, with either of the above conditions, the DCB 
used by Language Environment will have a zero block size value. If you do not 
specify a block size value, the operating system might select a 
system-determined block size (SDB). See the operating system specifications for 
further information about SDB. 
/quote

--
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

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

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

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 15:28:37 +0200, Gilbert Saint-Flour 
usenet5...@yahoo.com wrote:

On Friday 15 May 2009 02:05, Frank Swarbrick wrote:

 We are migrating from VSE to z/OS, and at the same time we are going
 to convert most of our existing ESDS files to regular sequential files.  
 I see no reason to add BLOCK CONTAINS 0 to all of our FD's if it has
 no affect (our VSAM FD's do not (generally!) specify the BLOCK CONTAINS
 clause, because it has no meaning to VSAM).

IIRC, BLOCK CONTAINS 0 is only needed for OUTPUT files in COBOL, but I 
think
it's better to put it everywhere, so programmers later don't have to remember
where it's needed.

What I'm getting at is that it appears to not even be required for OUTPUT files 
*as long as that information can be determined by other means*.

In 1991, I started to convert VSE applications to MVS/ESA and stopped to
generate DCB attributes on DD statements, except for output files in IDCAMS
REPRO and QUIKJOB programs, and a few others ones.  A few years later,
I started to convert IDCAMS REPRO to something else, for several 
advantages,
among them not having to specify DCB info in the JCL.  I'm convinced that
coding DCB attributes on DD statements is something almost always useless 
and
archaic.  This is something all my customers agreed with, except an
outsourcing company that absolutely had to have DCB information on all 
output
DD statements, like this: DCB=(RECFM=xx,LRECL=yy,BLKSIZE=zzz).
This was in 2007 !  In z/OS !

I agree that DCB et al is generally not needed.  The exceptions being
1) if IEFBR14 is being used to create the file.
2) if a Cobol program is being used to create the file and one wants a blocked 
file but did not specify a BLOCK CONTAINS statement.

It's this latter one that is my only cause for concern.  We'd have to use 
RECFM and BLKSIZE statements if we wanted to override Cobol's default of 
non-blocked.

Probably in the end we'll probably decide to include BLOCK CONTAINS 0 for all 
non-VSAM sequential files.  It just bugs me that I have to do that when 95% 
of the time it's meaningless, because it's overriden by information retrieved 
elsewhere.

See examples here: http://gsf-soft.com/Prism-CS/Samples.shtml and you 
won't
see many DD statements that contain DCB info.  This is very similar to what
I generated since 1991.

As for the conversion of ESDS files to non-VSAM in COBOL programs,
changing AS-filename to S-ddname is not always the only thing you need
to do.  Trust me !

Now you have me curious.  What other gotchas do you think we might run in 
to?  We already use FILE STATUS for file I/O error checking, so that should 
not be a problem.  We have SELECT OPTIONAL for the cases where we want 
to be able to open for input an empty VSAM file.  This does not (thank god!) 
appear to be an issue for SAM files, but leaving OPTIONAL does not appear to 
hurt either.  I have not decided yet if we'll keep or remove the OPTIONAL 
clause.  Probably remove it, since it has no meaning for SAM, but...

To be honest, I was personally against migrating our ESDS files to SAM.  I 
thought why take the chance?  The one thing that has convinced me is the 
fact that we have quite a few cases in VSE where we sort several ESDS files 
together in to a single ESDS output file.  DFSORT on z/OS does not allow 
this!  Thus we have to use sequential files at least as intermediate files, so 
we 
figured we'd just convert almost all of them (we'll leave the ones defined to 
CICS as ESDS).

Additionally we will want to use GDGs and I've been told (though I have not 
researched it) that you can't have GDG ESDS files.

There may be other reasons, but I can't recall what they are at the moment...

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 10:34:31 -0400, Thompson, Steve 
steve_thomp...@stercomm.com wrote:

-Original Message-
From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
Behalf Of Paul Gilmartin
Sent: Friday, May 15, 2009 9:07 AM
To: IBM-MAIN@bama.ua.edu
Subject: Re: BLOCK CONTAINS

On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve wrote:

Welcome to the MVS world. In the MVS world, we are not device
dependant,
nor are we data definition locked/blocked. We generally don't have to
recompile our programs, change the DTF contents (DCB in MVS), etc. just
because the file attributes change (xSAM to VSAM is the exception).

Huh???

If we are not device dependant, why is there such intense trepidation
and resistance to the mere suggestion of a device with a novel geometry
such as more bytes per track or more tracks per cylinder?  It doesn't
appear that you and I have been living in the same MVS world.

SNIP

In the VSE world, if you set up to read tape, you can not change your
JCL to instead read Disk. A DTFSD (Define The File - Sequential Disk)
can not be used to read a tape (DTFMT - Define The File - Magnetic
Tape).

If you did use the DTFDI (Define The File - Device Independent) it is
only good for limited situations.

I don't know what assembler stuff is done under the covers, but in Cobol for 
VSE/ESA (and VS COBOL II) you can use a single SELECT statement that will 
work with printers, tape files, sequential files and VSAM-managed SAM files.
SELECT MY-FILE ASSIGN TO SYS005-MYFILE.

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Steve Comstock

Frank Swarbrick wrote:

[snip]

On Fri, 15 May 2009 09:27:42 -0400, Thompson, Steve 
steve_thomp...@stercomm.com wrote:




I have been a bit of experimenting with z/OS QSAM files from a Cobol
program
and I find that the manuals don't exactly agree with my results.  The
manuals seem to imply that if you use the BLOCK CONTAINS clause (whether
0 or something else) then the file has a RECFM of either VB or FB.  And
if you don't include it then it's either V or B.





We are not using a vendor.  We have systems and applications programmers 
that come from the MVS world, so we're going with that expertise.  Though I 
suppose the fact that I am asking these questions here might indicate that 
said expertise is perhaps not sufficient?  Hmmm...



[snip]



Both VSE and z/OS require the AS- prefix in order for Cobol to distinguish 
between between a VSAM ESDS and a regular SAM file.  Other than that, yes, 
only the last node has any meaning.  Nonetheless our conversion program is 
going to remove all of the superfluous stuff.  I have been trying to get my 
fellow programmers to cut out this information for years, but with little 
success.  Hopefully this way people will have fewer bad examples to follow!


Frank,

I've been watching this thread evolve and I'd like to throw
in some thoughts here.

There was some change in behavior in COBOL + QSAM a few years
ago, and the documentation never did, to my perception, do a
good job of pointing this out.

Here is an extract from one page in our course Enterprise COBOL
Update I: Essentials:

While not strictly a change to the language, there has
been a change to the way OPEN works that is worthwhile
knowing about

* Historically, coding BLOCK CONTAINS ensured the value
  in your program would be used for block size

* If you wanted to obtain the existing block size (for
  input files) or to set the blocksize in JCL (for
  output files) you coded BLOCK CONTAINS 0 RECORDS in your FD

The new behavior is this:

* Block size in the label overrides BLOCK CONTAINS value
  in the program

* The implications are:

  + For input files, may now simply omit the BLOCK CONTAINS
clause: it will be ignored / overridden

  + For output files, BLOCK CONTAINS 0 is required if DSORG,
LRECL, and RECFM are not specified on the DD statement

  + BLOCK CONTAINS 0 is not necessary if you code DSORG,
LRECL, and RECFM on the DD statement (the system will
choose blocksize for you)

--
[of course, if you pre-allocate the file using ISPF 3.2 or
 some other mechanism, existing label information will be
 used there, too.]

--

Regarding your systems and applications programmers with
MVS experience: COBOL has gone through extensive changes
of late, and the experience of these people may be somewhat
out of date.

I really recommend the course mentioned above. It's only
two days but it catches experienced programmers up to
speed in terms of new features and approaches.

The details are here:

  http://www.trainersfriend.com/COBOL_Courses/d704descr.htm

As with all our course descriptions, this page has further
links to more detail, especially note the links to the
pages with more detailed course objectives and the very
detailed topical outline.

-


Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

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

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

== Check out the Trainer's Friend Store to purchase z/OS  ==
== application developer toolkits. Sample code in four==
== programming languages, JCL to Assemble or compile, ==
== bind and test. ==
==   http://www.trainersfriend.com/TTFStore/index.html==

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


Re: BLOCK CONTAINS

2009-05-15 Thread Rick Fochtman

--snip
What if a new device came out and there was a better optimum blocksize 
for it? Wouldn't you have to recompile everthing that used that file to 
get the optimum blocksize? I don't know I'm just asking.

-unsnip
No, you're not going to have to recompile everything. That's why BLOCK 
CONTAIN 0 RECORDS is so important. Let the OPEN/CLOSE and access method 
routines handle the differences under the covers and they'll manage 
just fine. :-)


--
Rick
--
Remember that if you’re not the lead dog, the view never changes.

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 11:31:19 -0500, McKown, John 
jmck...@healthmarkets.com wrote:

Perhaps this explains the observed action?

http://publibz.boulder.ibm.com/cgi-
bin/bookmgr_OS390/BOOKS/IGY3LR31/5.2.4

quote
BLOCK CONTAINS
0 can be specified for QSAM files. If BLOCK CONTAINS 0 is specified for a 
QSAM file, then:

* The block size is determined at run time from the DD parameters or 
the data set label. If the RECORD CONTAINS 0 CHARACTERS clause is 
specified and the BLOCK CONTAINS 0 CHARACTERS clause is specified (or 
omitted), the block size is determined at run time from the DD parameters or 
the data set label of the file. For output data sets, with either of the above 
conditions, the DCB used by Language Environment will have a zero block size 
value. If you do not specify a block size value, the operating system might 
select a system-determined block size (SDB). See the operating system 
specifications for further information about SDB.
/quote

That quote specifically refers to use of BLOCK CONTAINS 0.  It does not seem 
to explain why the same results are seen if there is no BLOCK CONTAINS 
clause at all.
...
Wait, it does say or omitted.  So I guess this does explain it.  This gives 
me 
one more reason to not have BLOCK CONTAINS 0.  That as well as BLOCK 
CONTAINS can be omitted for SYSIN files and for SYSOUT files. The blocking is 
determined by the operating system.   Though of course specifying BLOCK 
CONTAINS 0 there would not hurt.  But again I don't like to have it there if 
it's 
just going to be ignored.

Oy!

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Gibney, Dave
3) If Cobol says BLOCK CONTAINS 12345 it works (!!!) 

I'll bet you 3) If Cobol says BLOCK CONTAINS  doesn't :)

Dave Gibney
Information Technology Services
Washington State University

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 10:53:52 -0600, Steve Comstock 
st...@trainersfriend.com wrote:

I've been watching this thread evolve and I'd like to throw
in some thoughts here.

There was some change in behavior in COBOL + QSAM a few years
ago, and the documentation never did, to my perception, do a
good job of pointing this out.

Here is an extract from one page in our course Enterprise COBOL
Update I: Essentials:

While not strictly a change to the language, there has
been a change to the way OPEN works that is worthwhile
knowing about

* Historically, coding BLOCK CONTAINS ensured the value
   in your program would be used for block size

* If you wanted to obtain the existing block size (for
   input files) or to set the blocksize in JCL (for
   output files) you coded BLOCK CONTAINS 0 RECORDS in your FD

The new behavior is this:

* Block size in the label overrides BLOCK CONTAINS value
   in the program

* The implications are:

   + For input files, may now simply omit the BLOCK CONTAINS
 clause: it will be ignored / overridden

   + For output files, BLOCK CONTAINS 0 is required if DSORG,
 LRECL, and RECFM are not specified on the DD statement

   + BLOCK CONTAINS 0 is not necessary if you code DSORG,
 LRECL, and RECFM on the DD statement (the system will
 choose blocksize for you)

--
[of course, if you pre-allocate the file using ISPF 3.2 or
  some other mechanism, existing label information will be
  used there, too.]

--

You are the man, Steve!  I think that almost totally covers it.  What I would 
add is something specifically addressing the pre-existing file issue that you 
mention in your epilog above.  I would word it this way

* The implications are:

   + For input files, may now simply omit the BLOCK CONTAINS
 clause: it will be ignored / overridden

   + For output files, BLOCK CONTAINS 0 is only if 1) the file is not already 
defined and 2) RECFM and BLKSIZE are not specified on the DD statement.

   + in all other cases BLOCK CONTAINS 0 is ignored / overridden


I don't, however, thing that the following is strictly true.
   + BLOCK CONTAINS 0 is not necessary if you code DSORG,
 LRECL, and RECFM on the DD statement (the system will
 choose blocksize for you)

Well, it is true in that it is not necessary to have BLOCK CONTAINS 0.  
However if it is not present it appears to behave as if BLOCK CONTAINS 1 
was specified, unless there is also an explicit BLKSIZE on the DD.

Regarding your systems and applications programmers with
MVS experience: COBOL has gone through extensive changes
of late, and the experience of these people may be somewhat
out of date.

I really recommend the course mentioned above. It's only
two days but it catches experienced programmers up to
speed in terms of new features and approaches.

If it were my decision I would do it.  Let me see if I can convince TPTB.

Only a few of us are working on the z/OS project right now.  Would you think 
that those few should get this education now and do the rest when we are 
closer to cutover?  I worry about cost (having the class twice), but we're 
doing that in other situations, so I guess we could do that here as well.

(Probably makes sense to respond to me directly at 
frank.swarbr...@efirstbank.com.)

Thanks again Steve!!

Frank

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


VSE I/O Performance VS MVS [was BLOCK CONTAINS]

2009-05-15 Thread Thompson, Steve
Because of past conversions, I think this needs to be said:

1) VSE/ESA got to use XA I/O just like MVS. This means, to the VSE shop,
that some slick stuff that got offloaded to the I/O Subsystem (shall we
say parts of VM's and MVS' I/O Supervisor code) became available w/o any
JCL or application coding changes. Things like dual (or multi) pathing
with dynamic pathing.

What does this have to do with anything? Well, the typical throughput
performance gains seen in the past when going from VSE to MVS don't
happen because what was giving those (for the most part) has already
been realized.

2) VSAM is implemented in VSE differently than in MVS. So, the way
sharing and buffer management is done changes and WILL cause performance
issues when you get to MVS.

3) CICS is impacted by these changes, and you may see less throughput.
Although, with the ability to have more storage than z/VSE allows, you
may over come it. But be sure to have sufficient page volumes.

Bottom line: To get the same or better performance from a well tuned VSE
shop that goes to MVS, you will need people who are well versed in all
the tricks. And they will need to understand what was happening on the
VSE system to effect similar results on the MVS system.


Regards,
Steve Thompson

-- Opinions expressed by this poster may not reflect those of poster's
employer. --

--
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: BLOCK CONTAINS

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 10:05:48 -0700, Gibney, Dave gib...@wsu.edu wrote:

3) If Cobol says BLOCK CONTAINS 12345 it works (!!!)

I'll bet you 3) If Cobol says BLOCK CONTAINS  doesn't :)

Sorry, you lose that bet.  That does work.

The only things that I've been able to determine simple do not work are if you 
specify a block size that
1) for RECFM=VB is not either 0 or at least 8 bytes more than the maximum 
record length, or
2) for RECFM=FB is not either 0 or a multiple of the record length.

If you violate item 1 you get this:
IGYGR1243-S FILE MY-FILE HAD A RECORDING MODE OF V, BUT THE 
BLOCK SIZE WAS LESS THAN 8 PLUS THE MAXIMUM RECORD SIZE OF 500.  
THE FILE DEFINITION WAS DISCARDED.

If you violate item 2 you get this:
IGYGR1212-W THE MAXIMUM INTEGER IN THE BLOCK CONTAINS CLAUSE 
WAS NOT A MULTIPLE OF THE CALCULATED RECORD SIZE.  THE CLAUSE WAS 
ACCEPTED.

If you ignore the warning for number 2 you get an IEC141I 013-20.  For 
number 1 we get RC  4 so we don't even try to create the load module, 
much less run it!  :-)

Frank

  

--
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: BLOCK CONTAINS

2009-05-15 Thread Gibney, Dave
By fail, I would have expected you to get an I/O error reading an
existing file where the COBOL BLOCK CONTAINS is less. But, now I think
about it, recent DFP, like somewhere in the last coupe decades (Probably
around os390 1.4 or 2.5 for us) OPEN got smarter and handles unlike
block sizes much better.

Dave Gibney
Information Technology Services
Washington State University


 -Original Message-
 From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On
 Behalf Of Frank Swarbrick
 Sent: Friday, May 15, 2009 11:18 AM
 To: IBM-MAIN@bama.ua.edu
 Subject: Re: BLOCK CONTAINS
 
 On Fri, 15 May 2009 10:05:48 -0700, Gibney, Dave gib...@wsu.edu
 wrote:
 
 3) If Cobol says BLOCK CONTAINS 12345 it works (!!!)
 
 I'll bet you 3) If Cobol says BLOCK CONTAINS  doesn't :)
 
 Sorry, you lose that bet.  That does work.
 
 The only things that I've been able to determine simple do not work
are
 if you
 specify a block size that
 1) for RECFM=VB is not either 0 or at least 8 bytes more than the
 maximum
 record length, or
 2) for RECFM=FB is not either 0 or a multiple of the record length.
 
 If you violate item 1 you get this:
 IGYGR1243-S FILE MY-FILE HAD A RECORDING MODE OF V, BUT THE
 BLOCK SIZE WAS LESS THAN 8 PLUS THE MAXIMUM RECORD SIZE OF 500.
 THE FILE DEFINITION WAS DISCARDED.
 
 If you violate item 2 you get this:
 IGYGR1212-W THE MAXIMUM INTEGER IN THE BLOCK CONTAINS CLAUSE
 WAS NOT A MULTIPLE OF THE CALCULATED RECORD SIZE.  THE CLAUSE WAS
 ACCEPTED.
 
 If you ignore the warning for number 2 you get an IEC141I 013-20.  For
 number 1 we get RC  4 so we don't even try to create the load module,
 much less run it!  :-)
 
 Frank
 
 
 
 --
 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: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

2009-05-15 Thread Frank Swarbrick
On Fri, 15 May 2009 14:09:33 -0400, Thompson, Steve 
steve_thomp...@stercomm.com wrote:

Because of past conversions, I think this needs to be said:

1) VSE/ESA got to use XA I/O just like MVS. This means, to the VSE shop,
that some slick stuff that got offloaded to the I/O Subsystem (shall we
say parts of VM's and MVS' I/O Supervisor code) became available w/o any
JCL or application coding changes. Things like dual (or multi) pathing
with dynamic pathing.

What does this have to do with anything? Well, the typical throughput
performance gains seen in the past when going from VSE to MVS don't
happen because what was giving those (for the most part) has already
been realized.

2) VSAM is implemented in VSE differently than in MVS. So, the way
sharing and buffer management is done changes and WILL cause performance
issues when you get to MVS.

3) CICS is impacted by these changes, and you may see less throughput.
Although, with the ability to have more storage than z/VSE allows, you
may over come it. But be sure to have sufficient page volumes.

Are you saying the MVS VSAM is less efficient then VSE VSAM?  Hmmm!  One 
might start to wonder why we are migrating at all!  :-)

Thanks for the info.  I will pass it on to our systems programmers (who 
hopefully already know what you are talking about anyway, but it couldn't 
hurt).

Frank

--
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: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

2009-05-15 Thread O'Brien, David W. (NIH/CIT) [C]
Frank,

I suggest you download the Redbook, VSAM De-Mystified. It will answer your 
questions concerning VSAM performance. 
As my instructor told the class years ago - Don't take the defaults!
Specify CI sizes that give the best space utilization for your record size.
Choose a large enough Index CI Size to avoid 'dead areas' in your data 
component.
Specify a robust value for your Bufferspace parameter, in most cases the larger 
the better. (I'm sure someone will volunteer a 'war story' where this wasn't 
the case but generally a large buffer space improves throughput.)
For batch processing look into BLSR.
For CICS use LSRpools, again be generous. The more data stored in memory the 
fewer physical I/O.

HTH,   
Dave O'Brien
NIH Contractor

From: IBM Mainframe Discussion List [ibm-m...@bama.ua.edu] On Behalf Of Frank 
Swarbrick [fswarbr...@gmail.com]
Sent: Friday, May 15, 2009 6:20 PM
To: IBM-MAIN@bama.ua.edu
Subject: Re: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

On Fri, 15 May 2009 14:09:33 -0400, Thompson, Steve
steve_thomp...@stercomm.com wrote:

Because of past conversions, I think this needs to be said:

1) VSE/ESA got to use XA I/O just like MVS. This means, to the VSE shop,
that some slick stuff that got offloaded to the I/O Subsystem (shall we
say parts of VM's and MVS' I/O Supervisor code) became available w/o any
JCL or application coding changes. Things like dual (or multi) pathing
with dynamic pathing.

What does this have to do with anything? Well, the typical throughput
performance gains seen in the past when going from VSE to MVS don't
happen because what was giving those (for the most part) has already
been realized.

2) VSAM is implemented in VSE differently than in MVS. So, the way
sharing and buffer management is done changes and WILL cause performance
issues when you get to MVS.

3) CICS is impacted by these changes, and you may see less throughput.
Although, with the ability to have more storage than z/VSE allows, you
may over come it. But be sure to have sufficient page volumes.

Are you saying the MVS VSAM is less efficient then VSE VSAM?  Hmmm!  One
might start to wonder why we are migrating at all!  :-)

Thanks for the info.  I will pass it on to our systems programmers (who
hopefully already know what you are talking about anyway, but it couldn't
hurt).

Frank

--
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: BLOCK CONTAINS

2009-05-15 Thread Clark Morris
On 15 May 2009 09:32:23 -0700, in bit.listserv.ibm-main you wrote:

Perhaps this explains the observed action?

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IGY3LR31/5.2.4

quote
BLOCK CONTAINS
0 can be specified for QSAM files. If BLOCK CONTAINS 0 is specified for a 
 QSAM file, then:

* The block size is determined at run time from the DD parameters or 
 the data set label. If the RECORD CONTAINS 0 CHARACTERS clause is specified 
 and the BLOCK CONTAINS 0 CHARACTERS clause is specified (or omitted), the 
 block size is determined at run time from the DD parameters or the data set 
 label of the file. For output data sets, with either of the above conditions, 
 the DCB used by Language Environment will have a zero block size value. If 
 you do not specify a block size value, the operating system might select a 
 system-determined block size (SDB). See the operating system specifications 
 for further information about SDB. 
/quote

I checked the reference you gave and for QSAM files, if the BLOCK
CONTAINS clause is omitted, BLOCK 1 RECORD is assumed.  This stupidity
has aggravated me for years.

--
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: VSE I/O Performance VS MVS [was BLOCK CONTAINS]

2009-05-15 Thread Ed Gould
--- On Fri, 5/15/09, Frank Swarbrick fswarbr...@gmail.com wrote:
SNIP--
 
 What does this have to do with anything? Well, the
 typical throughput
 performance gains seen in the past when going from VSE
 to MVS don't
 happen because what was giving those (for the most
 part) has already
 been realized.


SNIP

OK I will be the first to admit it but I have not seen DOS in 40(?) years.
So if DOS has improved I would be very surprised (as far as I/O improvements).

Did DOS finally as a default support 5 I/O buffers on QSAM? I remember when 
SAM-e came out for MVS in the '70's) and it made a HUGE impact on I/O and all 
for the good (mind you). My vague memory of DOS was a DTFxx and you had to 
specify the 1st and 2nd IOareas and that was needed (IIRC) just to get two 
buffers. 

In MVS when we added SAM-e we saw a *SIGNIFICANT* improvement in job elapsed 
time. Like I said it was 30+ years ago my memory says it decreased run time by 
50% to 66% typically and of course some were less and some where more so I do 
not want to say average but it was in the area of 50-66 percent. I distinctly 
remember getting a call from production support at  something in the 
morning says something was wrong as jobs were running way to fast. I assured 
them it was a performance enhancement and they would see most jobs running a 
lot faster. 

Fast forward 5 years in the 80's

Change of job. We brought up MVS and were running VS1 and jobs were running so 
fast the operator could not keep up with the manual log he had. Again same call 
from production support(different company) as production got done at 630AM 
normally on VS1 and on MVS (with SAMe) they were done at 430AM. 

The only thing the operators didn't like was that tape drive selection was set 
at random so they couldn't premount tapes. In VS1 (IIRC) the lowest tape drive 
address was always 380 and the drive was getting beat up on and failing more 
often. The CE (customer Engineer) was ecstatic as he wasn't fixing the same 
tape drive all the time.

IIRC SAMe was $15 a month charge option then. After a while practically every 
flavor of MVS that was being shipped was ordered with SAMe and it became 
standard (don't ask me what year).

The bottom line is the MVS had SAMe and I do not recall it ever being offered 
in DOS (pick your flavor), are you suggesting that it was, if so how? The DOS I 
was used to (granted old) would never have allowed it.

Ed




  

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


BLOCK CONTAINS

2009-05-14 Thread Frank Swarbrick
I have been a bit of experimenting with z/OS QSAM files from a Cobol program 
and I find that the manuals don't exactly agree with my results.  The manuals 
seem to imply that if you use the BLOCK CONTAINS clause (whether 0 or 
something else) then the file has a RECFM of either VB or FB.  And if you don't 
include it then it's either V or B.

However, I have been able to read and write to a RECFM=VB file with a Cobol 
program that does not have the BLOCK CONTAINS clause.  Additionally, I can 
read a RECFM=V file with a Cobol program that *does* have a BLOCK 
CONTAINS clause.  I also can read and write files where BLOCK CONTAINS is 
specified (non-zero) but does not match the actual block size of the file.  It 
just does not appear to matter.

It seems to me that the RECFM and BLKSIZE information that is specified on 
the DD or in the catalog overrides whatever you tell Cobol anyway, so it 
seems to not matter what you tell Cobol.

Basically (and I know this is something so small that you'd wonder why I even 
care) I can't see any reason to ever specify the BLOCK CONTAINS clause.  If 
the file is already cataloged I definitely don't need it.  And even if I want 
to 
create a new VB or FB file I can just put the RECFM option on the DD.

One thing I haven't checked is if tapes will cause me any problems.  But our 
applications all backup to disk files instead of tape, so I'm not really 
concerned.

If you do wonder why I care, it's this...  We are migrating from VSE to z/OS, 
and at the same time we are going to convert most of our existing ESDS files 
to regular sequential files.  I see no reason to add BLOCK CONTAINS 0 to all 
of our FD's if it has no affect (our VSAM FD's do not (generally!) specify the 
BLOCK CONTAINS clause, because it has no meaning to VSAM).  (Yes, I do 
know we need to remove the AS- prefix from the ASSIGN clause of the 
SELECT statement.)

Thanks!
Frank

--
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: BLOCK CONTAINS

2009-05-14 Thread Clark Morris
On 14 May 2009 17:05:53 -0700, in bit.listserv.ibm-main you wrote:

I have been a bit of experimenting with z/OS QSAM files from a Cobol program 
and I find that the manuals don't exactly agree with my results.  The manuals 
seem to imply that if you use the BLOCK CONTAINS clause (whether 0 or 
something else) then the file has a RECFM of either VB or FB.  And if you 
don't 
include it then it's either V or B.

While blocked input files may be read successfully if neither the
block size nor BLOCK 0 is specified provided record descriptions
match, lack of BLOCK CONTAINS causes the default blocksize on output
to be ONE record.  I believe I submitted a SHARE requirement back in
the 1990's to have a compile option that the default be BLOCK 0.
Either is a perfectly valid default according to the COBOL standard.
BLOCK would be the default consistent with VSAM handling.  The whole
issue is a sore point with me and possibly others.  Incidentally be
careful to specify BLKSIZE=0 on the DD statements of output files from
sorts that sort or copy VSAM files.  Unless things have changed from
1998, SYNCSORT defaulted to one record per block.  Coding RECFM=FB or
RECFM=VB also might have forced the output to be blocked.  Subtle
gotchas lurk.  I know having been bitten. 

However, I have been able to read and write to a RECFM=VB file with a Cobol 
program that does not have the BLOCK CONTAINS clause.  Additionally, I can 
read a RECFM=V file with a Cobol program that *does* have a BLOCK 
CONTAINS clause.  I also can read and write files where BLOCK CONTAINS is 
specified (non-zero) but does not match the actual block size of the file.  It 
just does not appear to matter.

It seems to me that the RECFM and BLKSIZE information that is specified on 
the DD or in the catalog overrides whatever you tell Cobol anyway, so it 
seems to not matter what you tell Cobol.

Basically (and I know this is something so small that you'd wonder why I even 
care) I can't see any reason to ever specify the BLOCK CONTAINS clause.  If 
the file is already cataloged I definitely don't need it.  And even if I want 
to 
create a new VB or FB file I can just put the RECFM option on the DD.

One thing I haven't checked is if tapes will cause me any problems.  But our 
applications all backup to disk files instead of tape, so I'm not really 
concerned.

If you do wonder why I care, it's this...  We are migrating from VSE to z/OS, 
and at the same time we are going to convert most of our existing ESDS files 
to regular sequential files.  I see no reason to add BLOCK CONTAINS 0 to all 
of our FD's if it has no affect (our VSAM FD's do not (generally!) specify the 
BLOCK CONTAINS clause, because it has no meaning to VSAM).  (Yes, I do 
know we need to remove the AS- prefix from the ASSIGN clause of the 
SELECT statement.)

Thanks!
Frank


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