Page 1 of 1

Mainframe Playground Education Initiative

PostPosted: Fri Oct 07, 2016 12:07 pm
by losiolom
Hi all,
My name's Jan Sadek, I'm using the forum for some time so first I thanks for great resource of useful knowledge.

I've created a project that I think can come in handy for many people working with z/OS. It's free education initiative for people working with IBM Mainframes and z/OS system.
http://mainframeplayground.neocities.org/

There is a big need for such materials in my team and many other places to where mainframes are outsourced and mostly young people are working with z/OS.

If you know anyone who you think may benefit from such exercises or may be simply interested in it feel free to forward it.

For me, I would surely appreciate any feedback or advice :)

Re: Mainframe Playground Education Initiative

PostPosted: Mon Oct 10, 2016 6:56 pm
by steve-myers
Your goal is laudable. However, it is flawed by incorrect terminology.

Whether the IEFBR14 program as used in JCL Basics/Allocating Data Sets is a "utiility" program is debatable. In my opinion "utility" programs do something; the IEFBR14 program basically does nothing. This characteristic can cause something like this to not work the way you expect.
//A       EXEC PGM=IEFBR14
//ATAPEDS  DD  DISP=(NEW,CATLG),UNIT=TAPE,DSN=data set name
will not create the data set and will not catalog the data set. The program must write something to the data set for the system to actually catalog a data set on magnetic tape.

"Extend" as used in your text is incorrect. The word is a verb that usually means "to add to." The word you want to use, though it is also incorrect, is "extent." "Extent" as used in this context in incorrect because the word specifies a space on the disk. An "extent" might mean something like cylinder 33, track 0 through cylinder 33, track 2, 3 tracks in total.

When you specify something like SPACE=(TRK,(35,3)), properly speaking you are requesting an "initial" or "primary" allocation of 35 tracks, and a secondary allocation of 3 tracks that will be used if your program fills the initial 35 tracks. Just to add to the confusion, this initial allocation can be divided into a maximum of 5 actual extents, but it will be a total of 35 tracks. Unfortunately, this can confuse some programs. Say the initial allocation contains 2 extents, 30 tracks and 5 tracks. The ISPF data set attribute display will incorrectly claim the primary allocation is 30 tracks because ISPF thinks the first extent is the primary allocation. ISPF has no way of knowing the primary allocation was 35 tracks because it is not a data set attribute.

Another problem relates to what is stored. SPACE=(4096,(350,30)) is equivalent to SPACE=(TRK,(35,3)). ISPF will see the 35 track first extent, but will show 350 4096 byte records because it will see the secondary allocation is 30 4096 byte records and extend this to the first extent by calculating that one track can contain 10 4096 byte records and multiplying 35 tracks by 10 4096 records per track.

Re: Mainframe Playground Education Initiative

PostPosted: Mon Oct 10, 2016 8:45 pm
by losiolom
Hello, thanks for the feedback.

About IEFBR14 it's referred to as Utility in official IBM documentation so I don't see a point in such recognition. I also point out that IEFBR14 does nothing so don't worry, people who read the website wont make mistake that "IEFBR14" allocates anything :)

You're right about second issue, I guess we simply tend to use 'extend' term as primary allocation, you did it too at the end of the reply. But of course you're right and I'll clarify that on the website when I'll have a moment.

The last issue: SPACE=(4096,(350,30)) - here system calculates how many tracks will be used. You simply code that you need 350 blocks x 4096 bytes and system calculates how many tracks it will be, so it's not an equivalent to SPACE=(TRK,(35,3)). The same is true when you code AVGREC and use records as allocation unit.

If you find any more errors or simply some description that's not clear enough please let me know. I'll appreciate it.

Re: Mainframe Playground Education Initiative

PostPosted: Mon Oct 10, 2016 9:15 pm
by enrico-sorichetti
you did it too at the end of the reply.

NOPE ...
it will see the secondary allocation is 30 4096 byte records and extend this to the first extent


extend is the verb in this case