Virtual Storage Access Method (VSAM)
Part Two - Challenge #06


A starting point to explore Virtual Storage Access Method (VSAM) is a review of what was included in the previous challenge.

> VSAM - Virtual Storage Access Method
-- VSAM is subdivided into 4 types
    o KSDS, Key Sequenced Data Set
      - INDEXED in IDCAMS DEFINE statement
    o ESDS, Entry-Sequenced Data Set
      - NONINDEXED in IDCAMS DEFINE statement
    o RRDS, Relative Record Data Set
      - NUMBERED in IDCAMS DEFINE statement
    o LDS, Linear Data Set
      - LINEAR in IDCAMS DEFINE statement

System utility program (IDCAMS) control statements define VSAM types and attributes.

VSAM has capabilities for speed and data organization flexibility beyond non-VSAM data set types.
You will learn more about these VSAM capabilities in later challenges.
Review the following wikipedia explanation: Wikipedia - Virtual storage access method.

IDCAMS has numerous functions. Only DEFINE CLUSTER and DELETE CLUSTER control statement will be used in this challenge.

A CLUSTER name references 1 or more VSAM data set name components.
An example is the Key-Sequenced Data Set (KSDS) which has a CLUSTER name associated with a:
  1. VSAM CLUSTER INDEX data set name component and
  2. VSAM CLUSTER DATA data set name component.

The challenge below follows the same pattern as the previous challenge with these exceptions:
  1. VSAM data set names instead of non-VSAM data set names
  2. Viewing VSAM CLUSTER attributes is accomplished differently

Again, the instructions are brief by design, relying upon your rapidly increasing experience.

The challenge JCL is using relatively new features only available in the latest version of z/OS.
  The challenge is an opportunity to see something that very experienced z/OS technicians have yet to discover.
  Specifically, JCL in-stream control statements may contain system symbolics to be substituted prior to execution.
Observe DD *,SYMBOLS=CNVTSYS, then &SYSUID. will be substituted with your ID.

Description of challenge
1. A JCL JOB will allocate 4 new VSAM CLUSTERs, each with different types and attributes
2. You will be instructed to change VSAM CLUSTER attributes


Submit JCL JOB to allocate 4 new VSAM CLUSTER names.
tso submit jcl(job06)

1. View JOB06 output for successful completion, RC = 00
=sd ; st

2. View the new VSAM CLUSTER allocation types and attributes with MLQ of CH6

ISPF Data Set List Utility panel =3.4 and view Data Sets Matching your HLQ.

In the command column to the left of a CLUSTER name,
enter listc ent(/) all as demonstrated below.

listc ent(/) all can be entered to the left of each CLUSTER name as demonstrated below

   CLUSTER names have *VSAM* in the Volume column.
   Other data set names with MLQ of CH6 are the CLUSTER physical component data set names on disk.

It is possible to continue to press F11 and view columns associated with each CLUSTER data set name.

However, the only attribute available is DSORG=VS

Optionally, tso submit 'zos.public.jcl(job06a)' executes the same 4 LISTC commands using a JCL job where the output can be reviewed instead of reading output on display.

3. Edit e JCL(JOB06) changing IDCAMS control statements as follows:

  a. The KSDS, ESDS, and RRDS need the recordsize to be an average length of 100 and a maximum length of 1024.
  b. Upon completion of the changes - sub ; =sd; st and review JOB06 output for RC = 00
  c. If JOB06 completed with RC = 00, then =3.4 and review CLUSTER name attributes using listc ent(/) all

Want professional details about IDCAMS DEFINE parameters which includes RECORDSIZE?
IBM Knowledge Center, Defining attributes for clusters and cluster components.

Note: RRDS will add 4 bytes to both average and maximum lengths to handle a unique relative record numbers.
Still code average record length of 100 and maximum record length of 1024 and do not be concerned that 4 bytes were added.

It is unnecessary to manually delete the CLUSTER names, because JOB06 will delete CLUSTER names
prior to DEFINE of the new CLUSTER names.

However, in the event you needed to manually delete the CLUSTER names,
the following is an example of deleting the CLUSTER names from the ISPF DSLIST panel.

When satisfied that the KSDS, ESDS, and RRDS CLUSTER names with MLQ of CH6 each include
a recordsize average length of 100 and a maximum length of 1024, then -
Edit e JCL(JOB06) and uncomment the last JCL statement as follows:

submit modified JCL

If curious about JCL procedure C6DEL, then review JOB06 output.

Feel free to check your P2.OUTPUT(#06) written by C6DEL , then move on to the next challenge!

In the event an original copy of JOB06 is needed, during edit session -
  Delete all the statements - d999 on line number 1
  Copy in original JOB06 - copy 'zos.public.jcl(job06)'

Next: Challenge #07