Data Sets
Part Two - Challenge #07

Background:

You will learn the basics about z/OS Data Sets

Some operating systems process data as a stream of bytes or characters where a "new line" of data requires a "carriage return" character or "line feed" character embedded in the stream of characters.

z/OS manages data differently.

z/OS data is processed with an assigned record length.

z/OS "new line" occurs as the result of the assigned record length resulting in significant implications on how datasets are created, how programs process data, and contributes to why z/OS memory management is superior to other operating systems.


Useful information to understand about z/OS data sets

z/OS data sets are a collection of "records" and not a stream of bytes.
  When a z/OS program reads data, the program is reading one or more data records.
  When a z/OS program writes data, the program is writing data records.

Master the Mainframe contest objective is knowledge and experience with details of z/OS.

z/OS system technicians customize z/OS and DevOps environment to handle data set creation.

Application developers are typically unaware of details related to data set creation.
Application developers use documented procedures hiding the details required for data set creation.

DevOps tooling allows the application developers to maintain, test, and develop new business applications without the need to have any detailed knowledge about the operating system environment.

Viewing a 5 minute video is highly recommended to explain z/OS Data Set Names and Types.
 Click on the following URL, then select Lecture 11 video.
 z/OS Introduction


 Lecture 11 will help you understand details that follow required to complete challenge #07 and increase your z/OS knowledge.
  Note: If "Start Chat" appears, decline. Chat is for clients considering a purchase of additional IBM Z technology.

Common ways z/OS data sets are created include:

  • Using JCL DD parameters
  • Using ISPF panels
  • Using TSO ALLOCATE command
  • Using system utility programs
  • Using system routines and automation

z/OS needs more than a data set name to create a data set such as:

  • Record length
  • Record format
    Fixed length records or Variable length records
    Blocksize - number of records in a block
  • Data Set Organization
    Sequential - a collection of records
    Partitioned - a collection of members where the members contain records
    VSAM - Virtual Storage Access Method
       flexibility to organize records in four unique types
       designed for high speed and high volume access to data
Syntax involved in creating a data set includes:
  • LRECL - logical record length
  • RECFM - record format
  • BLKSIZE - block size
  • DSORG - data set organization
  • SPACE - disk storage size limits
    primary extent value
       - all data sets have 1 primary extent
    secondary extent value
       - numerous secondary extents are automatically created after the primary extent
         is full
  • UNIT and optionally VOL=SER=
      device type and disk volume label
  • LIKE - uses attributes of a like data set name for creating new data set

Viewing a short video is recommended to understand z/OS data set SPACE primary and secondary extents.
 Click on the following URL, then select Lecture 15 video.
 z/OS Introduction


 Lecture 15 describes z/OS disk storage details related to data set creation and management.
  Note: If "Start Chat" appears, decline. Chat is for clients considering a purchase of additional IBM Z technology.


Challenge:

Use JCL SORT to allocate an output data set with specific attributes

Challenge #07 uses SORT program to copy data from ZOS.MTM2018.PUBLIC.CLIENTS into the new Z#####.CLIENTS data set name as the result of successful execution of JCL JOBNAME CH07JCL.

NOTE: Challenge #07 instructions include screen shots to guide you to challenge completion.

Future challenges will assume you have the following basic skills without the need for screen shot examples -

  • Display your data set names using dslist or =3.4 panel
  • Edit your data set names
  • Submit JCL
  • View JCL JOBNAME output
Description of actions in the screen shots below to complete challenge:

  1. Edit Z#####.JCL member name CH07JCL
  2. Modify member name CH07JCL to create a data set name Z#####.CLIENTS with the following attributes:
      data set organization - physical sequential (PS)
      logical record length - 170
      record format - fixed block (FB)
      blocksize - 8500
      unit - SYSDA
      space in unit of tracks - TRK
      primary extent size - 1
      secondary extent size - 1
  3. Submit JCL
  4. View JCL JOBNAME for successful completion

Enter dslist jcl to list data set names the begin with your ID followed by JCL
Edit your JCL partitioned data set name
Select ' s ' member name CH07JCL
Observe the following in the JCL below

  1. JCL JOB has 3 EXEC statements
    • Each EXEC is called a JCL JOB step.
  2. Line 000003 is JCL stepname STEP1
    • Executes system utility IDCAMS to delete the data set name if the data set name exists
    • JCL feature SYMBOLS=CNVTSYS enables to system to resolve variables in the data following DD *
    • IDCAMS utility documentation describes DDNAMEs the program is expecting and purpose
  3. Line 000009 is JCL stepname STEP2
    • Executes system utility SORT to copy data into newly created data set name Z#####.CLIENTS
    • Lines 000012 to 000014 results in a single DD operation as a result of the comma's at the end of each line
    • Line 000012 DISP=(NEW,CATLG) instructs the system to create a new data set name
    • Line 000013 and 000014 includes DD parameters describing the attributes of the new data sets name
    • SORT utility documentation describes DDNAMEs the SORT program is expecting and purpose
  4. Line 000020 is JCL stepname STEP3
    • Executes system utility IKJEFT01 to list data set attributes of the newly created data set name
    • IKJEFT01 utility documentation describes DDNAMEs the program is expecting and purpose
  5. Line 00018 is a JCL condition saying execute next JCL step only if the previous step is completed successfully
  6. Line 00025 terminates the JCL condition statement on line 00018.
Enter sub ; =sd ; st to submit the JCL and jump to SDSF status panel
System message about JOB CH07JCL SUBMITTED is displayed
System message about CH07JCL ENDED with a JCL ERROR is displayed
Result of previous =sd ; st is a jump to SDSF status panel

Select ' s ' CH07JCL print output
JOB NOT RUN - JCL ERROR is in the output
Page forward entering forward command or press F8.

JCL statement 8 is the DD operation which continues on the 2 lines that follow.

When JCL errors occur, STMT NO. MESSAGE information is always at the end of the output.

STMT NO. 8 is flagged as a problem statement.
Below is a shift to the right in the output showing DSORG SUBPARAMETER OF THE DCB on line 8

JCL DD parameter DCB=(...) is used to code data set attributes as shown

Enter dslist jcl to jump to the data set list panel
Edit the JCL partitioned data set again
Select memeber name CH07JCL
  1. Edit Z#####.JCL member name CH07JCL
      The @ symbols need to be replaced with the following data set name attributes
  2. Modify member name CH07JCL to create a data set name Z#####.CLIENTS with the following attributes:
      data set organization - physical sequential (PS)
      logical record length - 170
      record format - fixed block (FB)
      blocksize - 8500
      unit - SYSDA
      space in unit of tracks - TRK
      primary extent size - 1
      secondary extent size - 1
      primary extent - 1
  3. Submit JCL
  4. Jump to SDSF and view JCL JOBNAME output for successful completion
View JCL JOBNAME DDNAMEs for successful completion

If errors persist, then edit, modify, and submit Z#####.JCL member name CH07JCL until successful completion

Actions to take to complete the challenge
If SYSTSPRT DDNAME has the newly created data set name attributes,
then use XDC to print SYSTSPRT DDNAME content
Write the SYSTSPRT output into Z#####.P2.OUTPUT data set name
as member name #07

Reminder - Replace Z##### with your ID

Feel free to check your P2.OUTPUT(#07) contains attributes of the new data set name Z#####.CLIENTS, then move on to the next challenge!

Next: Challenge #08