Mainframe Playground Education Initiative



Post anything related to mainframes (IBM & UNISYS) if not fit in any of the above categories

Mainframe Playground Education Initiative

Postby losiolom » Fri Oct 07, 2016 12:07 pm

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 :)
losiolom
 
Posts: 2
Joined: Thu Jul 31, 2014 1:50 am
Has thanked: 0 time
Been thanked: 0 time

Re: Mainframe Playground Education Initiative

Postby steve-myers » Mon Oct 10, 2016 6:56 pm

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.
steve-myers
Global moderator
 
Posts: 2105
Joined: Thu Jun 03, 2010 6:21 pm
Has thanked: 4 times
Been thanked: 243 times

Re: Mainframe Playground Education Initiative

Postby losiolom » Mon Oct 10, 2016 8:45 pm

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.
losiolom
 
Posts: 2
Joined: Thu Jul 31, 2014 1:50 am
Has thanked: 0 time
Been thanked: 0 time

Re: Mainframe Playground Education Initiative

Postby enrico-sorichetti » Mon Oct 10, 2016 9:15 pm

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
cheers
enrico
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort
enrico-sorichetti
Global moderator
 
Posts: 2994
Joined: Fri Apr 18, 2008 11:25 pm
Has thanked: 0 time
Been thanked: 164 times


Return to All other Mainframe Topics

 


  • Related topics
    Replies
    Views
    Last post