SlideShare a Scribd company logo
1 of 20
The LISTCAT command:

   Using LISTCAT and
 Interpreting Its Output




                              By Dan O'Dea
                           November 1, 1998

                                      ∆ΦΟ
2


              Finding VSAM information: the LISTCAT Command

   The Access Method Services (AMS) LISTCAT command lists catalog information for
catalogued datasets. You can limit the number of entries, or the amount of information
returned to you, by using LISTCAT options.

   This handout describes the various LISTCAT operands and their syntax. It provides
descriptions of the fields in a LISTCAT report, sample LISTCAT output, and some
examples of LISTCAT commands. I'll also explain how to use the LISTCAT output to
tune your VSAM files.

   This is designed for a VSAM class; it does not describe the various reports generated
for non-VSAM files.

   Here is the complete syntax for the LISTCAT (abbreviated LISTC) command:

<insert picture here>
3


                    LISTCAT Command Parameter Descriptions

   All parameters of the LISTCAT (LISTC) command are optional. If LISTC runs in
batch mode with no parameters, it lists the system master catalog. If LISTC runs in
READY mode with no parameters, it lists all files beginning with the TSO user's ID.

   If the CATALOG parameter is given, but ENTRIES, LEVEL, NOTUSABLE,
CREATION, and EXPIRATION are not coded (and no entry parameters are given), and
LISTC is not invoked from TSO the entire catalog specified is listed.

   CATALOG ( ... ) - the name of the desired ICF catalog. LISTC normally uses the
standard catalog search algorithm. The CATALOG optional parameter forces LISTC to
search only that catalog.

  ENTRIES ( ... ) - the name or generic name (see below) to be listed. If the entry
name is a cluster all of its components are listed. If the entry name is an AIX its
components, and all its PATHs, are listed.

   If a generic entry name is supplied, one qualifier replaces the "*". As an example,
suppose the catalog contains these entries.

   EMP.PER.CKSDS             EMP.PER.AIXSSN             EMP.PER.AIXSSN.PATH
   EMP.PAY.CKSDS             EMP.PAY.AIXSSN              EMP.PAY.AIXSSN.PATH
   EMP.TAX.CKSDS             EMP.TAX.AIXSSN              EMP.TAX.AIXSSN.PATH

   If ENTRIES(EMP.PER.*) is specified, the list shows the first three entries.

   If ENTRIES(EMP.*.CKSDS) is specified, the list shows the three left-most entries.

   LEVEL ( ... ) - lists all entries matching the level of qualification given. This can be
any number of qualifiers. Any entry in the catalog matching level is listed regardless of
the number of qualifiers after level.

   As with ENTRIES, an "*" can substitute for one level. Using the same catalog entries
as above, here are some examples:

   If LEVEL(EMP) is specified, the list includes all nine entries.

   If LEVEL(EMP.PER.*) is specified, only the first two entries are listed.

   If LEVEL(EMP.PER) is specified, the list includes the first three entries.

   If LEVEL(EMP.*.CKSDS) is specified, the list includes the three left-most entries.
4


                  The LISTCAT Command: Restricting Entries

  Use one of these restriction parameters to limit the type of entry in the list: ALIAS,
ALTERNATEINDEX (AIX), CLUSTER (CL), DATA, INDEX,
GENERATIONDATAGROUP (GDG), NONVSAM (NVSAM), SPACE (SPC),
PAGESPACE (PGSPC), PATH, USERCATALOG (UCAT).

   •   ALIAS lists only aliases.

   •   AIX lists only alternate index (AIX) entries. Unless DATA and INDEX are also
       specified, only the AIX cluster is listed.

   •   DATA restricts the list to data components. Specify either the cluster name or the
       component name.

   •   GDG lists only generation data group (GDG) bases.

   •   INDEX restricts the list to index components. Specify either the cluster name or
       the component name.

   •   NONVSAM restricts the list to non-VSAM files.

   •   PAGESPACE restricts the list to page spaces.

   •   PATH lists only paths to alternate indexes. If the LISTC command includes the
       AIX using the path, the path is automatically listed.

   •   SPACE is valid only for non-ICF (Integrated Catalog Facility) environments.

   •   UCAT lists user catalog CONNECT entries from the master catalog.

   Here are some examples of LISTC commands.

   LISTC ENTRIES(EMP.FILE.CKSDS) CLUSTER lists cluster information, but
not the cluster's data and index components.

   LISTC ENT(EMP.FILE.AIXSSN) AIX DATA INDEX lists cluster, data, and
index information for the complete alternate index. Unless the keyword PATH is
included, no path information is displayed.

   LISTC LEVEL(EMP) CLUSTER DATA INDEX lists all component information
for all files whose names begin with the high-level qualifier (HLQ) EMP.
5


           The LISTCAT Command: Restricting Listed Information

   ALL / ALLOCATION / HISTORY / NAME / VOLUME - ALLOCATION can be
abbreviated to ALLOC, HISTORY to HIST, and VOLUME to VOL. NAME is the
default.

   •   ALL: LISTC lists all fields.
   •   ALLOC: lists the History paragraph for clusters, and the History, Allocation, and
       Volume paragraphs for data and index components.
   •   HISTORY lists the History paragraphs.
   •   NAME limits the list to name and type fields.
   •    VOLUME limits the list to History paragraphs for cluster, data, and index
       components, and includes the VOLSER and device type information for data and
       index components. Allocated extent information is not listed.

   CREATION (n) - abbreviated to CREAT, lists only entries "n" days ago or earlier.
"n" is decimal. Hexadecimal or binary numbers are preceded by X or B respectively.
The maximum number to specify is 9999. The default, "0", lists everything.

   EXPIRATION (n) - abbreviated to EXPIR, lists entries only if they expire "n" days
from now or earlier. "n" is decimal. Hexadecimal or binary numbers are preceded by X
or B respectively. The maximum number to specify is 9999. "0" lists only expired
entries.

   NOTUSABLE - lists only files marked NOTUSABLE. Datasets become unusable
when a system failure damages the catalog entry for a particular component. Unless
specifically requested, records marked UNUSABLE are not listed

  OUTFILE ( ... ) - specifies a DD statement for the output file other than SYSPRINT.
The file must specify RECFM=VBA and LRECL=125.

   FILE ( ... ) – For VVDS information, specifies a DD statement identifying the devices
and volumes containing the ICF VVDSes.
6


                            Description of Keyword Fields

                              The HISTORY Paragraph

   RELEASE - the release of VSAM. "1" is the original VSAM from prior to 1976; "2"
refers to the current release, the one in use since 1976. It has nothing to do with the OS
version or DFP version.

   CREATION - the Julian create date of the object as YYYY.DDD.

   EXPIRATION – An expiration date protects a dataset from deletion. Before its
expiration date, the PURGE parameter of the DELETE command is the only way to
delete the object. Specify an expiration date in the file definition using the TO or FOR
parameters. A date of 9999.999 permanently protects the file. Change this field with the
ALTER command.

   RCVY-VOL, RCVY-DEVT, RCVY-CI - not applicable in an ICF environment.

                            The PROTECTION Paragraph

    ATTEMPTS - the number of attempts may be made to enter the file's password. This
is valid only if the file is password protected.

    CODE - the character string to pass to the WTO message in a failed password
attempt. This is valid only if the file is password protected.

   CONTROLPW, MASTERPW, READPW, UPDATEPW - specifies the indicated
password of the file being listed. These fields are printed only if the file is password
protected.

  PSWD - if the object is not password protected this value is NULL. If a password or
words are valid but not printed for some reason this value is SUPP.

   RACF - if the object is RACF-protected with a discrete profile this value is YES. If
the object is protected with a generic profile or not protected at all this value is NO.

    USAR - the contents of the User Security Authorization Record. The data in this field
is passed to the USVR (see below) when access to the object is attempted. If there is no
USAR this field is NULL. This is valid only if the file is password protected.

   USVR - the User Security Verification Routine. The USVR is essentially a program
to verify whether the user can access the file. If the USVR is not used this value will be
NULL. This is valid only if the file is password protected.
7


                         The ASSOCIATION Paragraph

   Each object has a particular list of object types it can be associated with:

Entry Type    Can be associated with:

ALIAS         Its non-VSAM DSN or a VSAM user catalog entry

AIX           Its data and index entries, its base cluster entry, and its PATH
              entries

AIX data      Its alternate index cluster entry

AIX index     Its alternate index cluster entry

CLUSTER       Its data entry, index entry (KSDS or variable RRDS), associated
              PATH entries, and AIX entries

Cluster data Its base cluster entry

Cluster index Its base cluster entry

GDG           Its non-VSAM file entries

NONVSAM Any associated alias entries

Page Space Its data entry (basically an ESDS cluster)

Path Entry The AIX entry and the AIX's data and index entries, the data entry
(over a base of the base cluster (and its index entry if a KSDS or variable RRDS)
 cluster and
 AIX)

Path Entry The base cluster entry, the data entry of the base cluster (and its
(over a base index entry if a KSDS or a variable RRDS)
 cluster)

User catalog Its associated alias entries.
8


                          The ATTRIBUTES Paragraph

   AVGLRECL - the average record length as found in the RECORDSIZE
parameter of the define. When AVGLRECL equals MAXLRECL the component
can be assumed to contain fixed-length records, but VSAM doesn't care. When
AVGLRECL is different from MAXLRECL the component can be assumed to
contain variable-length records, but again VSAM doesn't care. Except when
AMS calculates space amounts this value is treated as documentation and can
be any value the user desires. VSAM does not attempt to maintain a true
average record length for the data.

   AXRKP - the relative key position of the AIX key field within the base cluster's
record as defined in the KEYS define parameter.

   BIND - the file is to be staged from the mass storage device to the virtual
DASD staging drive when it is opened, and will be retained on the drive until it is
closed.

   BUFSP - the minimum number of bytes to be acquired as buffers when the
cluster is opened. This value is originally specified through the BUFFERSPACE
define parameter.

   CI/CA - the number of CIs in each CA for the component.

   CISIZE - the CI size of the component.

   CYLFAULT - specifies the component will not be staged from the mass
storage device when it is opened, but will be staged across in groups of cylinders
as the data is needed.

   DSTGWAIT - specifies the component will be destaged from the virtual DASD
staging drive back to the mass storage device before control is returned to the
user program to issue a CLOSE. Its counterpart is NODSTGWAIT.

    ERASE - specifies records are to be overwritten with binary zeroes when the
file is deleted. Its counterpart is NOERASE.

   EXCEPTIONEXIT - the entry name of the routine to be given control when I/O
errors occur when processing the component.

    IMBED - specifies the sequence set records are to be written in the top track
of the CA they address, with each record written as many times as it will fit. Its
counterpart is NOIMBED.

   INDEXED - specifies the component is part of a KSDS cluster (either a base
or alternate index).
9


                     The ATTRIBUTES Paragraph (cont'd)

   KEYLEN - the length of the search key field in the data component records for
the KSDS cluster (either a base or an alternate index).

   LINEAR - specifies whether the component is an LDS cluster.

    MAXLRECL - the user-defined maximum record length as defined in the
RECORDSIZE define parameter. See AVGLRECL for more information. VSAM
will not allow a record longer than MAXLRECL to be written to the component.

   MAXRECS - the highest possible valid record number. This field appears
only for an RRDS. MAXRECS = 2^32 / CISZ * record slots per CI.

   NONINDEXED - specifies the component is part of an ESDS cluster.

   NONSPANNED - specifies the records in the component cannot span across
CIs. Its counterpart is SPANNED.

   NONUNIQUEKEY - states the alternate key field defined for the associated
AIX can have multiple values in multiple records throughout the related base
cluster. It does not allow the AIX to have multiple records with the same key, but
does allow AIX records to point to more than one base cluster record. The
counterpart to this parameter is UNIQUEKEY.

   NOREPLICAT - specifies the index component records are not to be repeated
around their track multiple times, but to store as many index records as possible
on the track. Its counterpart is REPLICATE.

    NOREUSE - specifies the file cannot be opened as reusable. Its counterpart
is REUSE.

  NOSWAP - specifies the associated Page Space is a conventional Page
Space data set and not a high speed swap data set. Its counterpart is SWAP.

   NOTRKOVFL - specifies the VSAM physical blocks in a Page Space cannot
span track boundaries. Its counterpart is TRKOVFL.

   NOUPDATE - specifies, for a path over an AIX, no updating of the AIX will
take place if the base cluster is opened through the "no update" path. Its
counterpart is UPDATE, which allows such updating.

   NOUPGRADE - specifies, for an AIX, an open for update of the associated
base cluster will not result in an open for update of the AIX. Its counterpart is
UPGRADE, which will keep an AIX and its base cluster in sync.
10


                     The ATTRIBUTES Paragraph (cont'd)

NOWRITECHECK - specifies VSAM will not check output operations against this
component by issuing a READ immediately following a WRITE or REWRITE.
Its counterpart is WRITECHECK.

   NUMBERED - specifies the component is part of an RRDS cluster.

    ORDERED - specifies the volumes assigned to this component will be
allocated in the order specified in the VOLUMES parameter of the define. Its
counterpart is UNORDERED, which is the default under ICF catalogs.

  RECOVERY - specifies CAs will be preformatted at load time, with other safe-
guards to allow mid-load recovery. Its counterpart is SPEED.

   RECORDS/CI - for an RRDS only, the number of logical record slots a single
CI can contain.

   RECVABLE - valid only for the old-style VSAM catalog.

   RKP - the relative position of the key field within the base cluster's record as
defined by the KEYS define parameter.

   SHROPTNS - the share options of the file.

   SUBALLOC - valid only for the old-style VSAM catalog.

  TEMP-EXP - specifies a backup copy of the listed file has been made with the
EXPORT command specifying the TEMPORARY option. If this status is not set
IMPORT cannot automatically define the file at restore time.

   UNIQUE - valid only in a non-ICF environment. In an ICF environment this is
the default.
11


                           The STATISTICS Paragraph

   The fields in this paragraph are brought into the Access Method Data
Statistics Block (AMDSB) when the file is opened. As the file is updated the
statistics in the AMDSB are maintained in storage. The AMDSB is not written
back to the catalog until the file has been successfully closed. If the close is not
successful, the statistics in the AMDSB are not written back to the catalog, thus
the catalog's statistics still reflect the values at the time of the open.

   There are two ways for close processing to fail:

1 - An ABEND of the program opening the file. Although a program will perform
    most of the functions of a close, including writing out the last buffers, the file is
    not considered officially closed. If the open was for update processing, the
    "open for update" bit is left on and statistics are not written.

      At this time the user should determine if the file is valid. If update
   transactions have not been logged, it may be necessary to delete and
   recreate the file, rendering any "invalid" statistics in the catalog moot (they will
   be reset as part of the recovery).

     Of course, if the file is actually good an explicit VERIFY can be run to
   update the catalog statistics.

2 - A system crash when a program has the file open. While the system is
    crashing there is obviously no time for the system to run around closing files.
    All files, VSAM and non-VSAM, will be left "open". Buffers are not written to
    disk, the "open for update" bit is left on and statistics are not written. If update
    transactions have not been logged, it may be necessary to delete and
    recreate the file, rendering any "invalid" statistics in the catalog moot (they will
    be reset as part of the recovery).
12


                       The STATISTICS Paragraph (cont'd)

   FREESPACE-%CI - the CI free space percentage as given in the define.
Neither this nor the CA% gives the actual free space remaining except
immediately following a load or resume load.

   FREESPACE-%CA - the CA free space percentage as given in the define.

   FREESPACE-BYTES - specifies the current number of free space bytes
within the area allocated by the component. This count includes bytes within
completely free CIs only. Free space within CIs is not included.

   While this field gives a general idea of the free space remaining in the file, it
does not specify where it is located. There are four areas where free space can
be found:

   1.   Free CIs due to deleted records;
   2.   Free CIs at the end of each CA;
   3.   Free CIs in the last partially-filled CA before the end of file;
   4.   Completely empty CAs between the HURBA and HARBA.

   If a free space map is required, something other than a LISTC is needed.

                             Four Index-only Statistics

   LEVELS - the number of levels making up the index, including the sequence
set. The lower this number is the better.

   ENTRIES/SECT - the number of index entries within each section of an index
record. An index record is broken down into sections to improve performance
during key compares. The number of entries per section is the square root of the
number of CI/CA for the data component. For example, if the data component
has 180 CI/CA, the nearest lower whole number to its square root is 13, so the
index has roughly 13 sections of 13 records per section.

    HI-LEVEL-RBA - the RBA of the highest level index record. When the KSDS
is open for random processing, this RBA is used to locate and read the top
logical record of the index. VSAM then follows the vertical pointers through the
index structure. Note the top of the index structure is not maintained at the
physical beginning of the index.

    SEQ-SET-RBA - the RBA of the first sequence set record. When the KSDS
is open for sequential processing, this RBA is used to locate and read the
beginning of the horizontal sequence set chain of records, gaining access to the
data component CAs in logical sequence. Once the KSDS is loaded, this value
does not change.
13


                     The STATISTICS Paragraph (cont'd)

   EXCPS - the total number of Execute Channel Program calls issued by VSAM
against the data component. This number corresponds to the number of physical
I/O operations against the data component since it was created or reorganized.
This value cannot be used to determine the number of logical records read or
written to the file, or even the number of CIs passed from DASD to memory and
back, since buffer amounts have a great impact on how many CIs are written for
a given EXCP.

   EXTENTS - the total number of physical extent allocations, on all volumes,
the data component has made.

  REC-DELETED - the total number of logical records deleted from the data
component since it was last created or reorganized.

    REC-INSERTED - the total number of logical records inserted into the data
component since it was last created or reorganized. For a KSDS or an ESDS
this total does not include records added at the end of the data component or
those records initially loaded. For an RRDS this count is the number of records
inserted into empty slots, including the number initially loaded into the file.

   REC-RETRIEVED - the total number of logical records read from the data
component since it was last created or reorganized. It includes reads for update
during REWRITE processing.

  REC-TOTAL - the total number of logical records currently in the data
component.

   REC-UPDATED - the total number of logical records updated and rewritten
back into the data component since it was last created or reorganized. This does
not include deleted records, but if a record is updated at one time and deleted in
a subsequent call is counted.

    SPLITS-CA - the total number of CA splits occurring in this component since
it was last created or reorganized. To get a real idea of why CA splits are
occurring a series of LISTCATs is needed to see a trend develop.

    For an index component, a CA split occurs only when an update to an
intermediate or high level record will not fit and the record has to be split. This
can happen during a data component CA split. Technically this is not a CA split,
but it shows up in this count.

   Each SIS mode loading of a new CA is counted in this field. Note these are
not CA splits and are actually beneficial to the file.
14


                      The STATISTICS Paragraph (cont'd)

   SPLITS-CI - the total number of CI splits occurring in this component since it
was last created or reorganized. To get a real idea of why CI splits are occurring
a series of LISTCATs is needed to see a trend develop.

    For an index component, a CI split occurs each time a data component CA
splits. Technically the splitting of a sequence set record is not a CI split, but it
shows up in this count.

    SYSTEM-TIMESTAMP - the date and time the component was last closed
following an open for update. The value is from the S/370 time-of-day clock, an
8-byte binary value reflecting the number of microseconds elapsed since January
1, 1900. This value is useless in itself, but is compared to the timestamp for its
related components.

     For example, in a KSDS, if the timestamp values for the data and index
components are equal, VSAM assumes the two components were opened using
the cluster, resulting in synchronization between the two components. In theory,
if the timestamps of the data and index components are not equal VSAM will fail
the open. In reality, however, the open only fails when the data component's
timestamp is greater than that of the index.

   Because a VERIFY command alters the timestamp, it is highly recommended
the VERIFY be run at the cluster level.
15


                          The ALLOCATION Paragraph

   SPACE-TYPE - the type of space allocated to the file.

   A type of TRACKS may mean the file was allocated in tracks, records,
megabytes, or kilobytes and VSAM was unable to build 1-cylinder-sized CAs.
When TRACKS appears in this field full tracks are allocated and aligned on track
boundaries.

   A type of CYLINDERS may mean the file was allocated in cylinders, records,
megabytes, or kilobytes, as VSAM will attempt to build 1-cylinder-sized CAs.
When CYLINDERS appears in this field full cylinders are allocated and aligned
on cylinder boundaries.

   SPACE-PRI - the number of space allocation units, as indicated in SPACE-
TYPE, whenever a primary allocation is made. This is the amount of space given
the file at define time as well as the first time the file extends to a candidate pack.

    SPACE-SEC - the number of space allocation units, as indicated in SPACE-
TYPE, whenever a secondary allocation is made. This is the amount of space
allocated when the file extends on the same volume.

  HI-ALLOCATED-RBA - referred to as HARBA, specifies the highest allocated
RBA, plus 1, for the component. This value is equal to the HARBA in the last
VOLUME paragraph for the component.

    This field, as are all other RBA fields for VSAM, is kept as a 32-bit unsigned
integer. Thus the largest value possible is 232 or 4Gb. This is the maximum file
size. For example, if a KSDS is defined with NOIMBED and a 4K CI size the
maximum file size on a 3390 device is 5,826 cylinders.

    HI-USED-RBA - referred to as HURBA, specifies the highest used RBA, plus
1, for the component. This value is equal to the HURBA in the last VOLUME
paragraph for the component.

    For an ESDS, LDS, KSDS index, or variable length RRDS index, this value
points to the first CI following the last CI containing data. For a KSDS data
component, or any RRDS data component, this value points to the bottom of the
last CA containing data. In either case the HURBA represents the VSAM end-of-
file marker. Not all files have this “marker;” it is not present if HURBA = HARBA.

   To determine if your file is overallocated:

   Over-allocation = HARBA - HURBA
    in CAs            CI/CA * CISZ
16


                            The VOLUMES Paragraph

    Fields in this paragraph describe the physical extent allocations for a data or
index component. Candidate volumes are also listed, but without extents. There
is a separate volume group for each volume having extents.

   For a KSDS, if the data component has more than one volume group listed,
each group describes the allocated extents on each volume. If the data
component has key ranges, there is a separate volume group for each key
range.

    For a KSDS, if the index component has more than one volume group listed,
each group describes the entries containing index records on a specific volume.
The first volume group describes the primary extents of the index containing the
high-level index records and (if NOIMBED) the sequence set records. If IMBED
is specified, each group after the first describes extents containing the imbedded
sequence set records, corresponding to the data component's volume groups.
When IMBED is specified the index VOLUMES paragraph will always have at
least two volume groups, one for the primary index set and the other for the
imbedded sequence set records.

   BYTES/TRACK - the number of bytes VSAM can write on a track of this
volume. This is only listed for Page Spaces.

   DEVTYPE - the internal MVS device type code. A 3390 is 3010200F.

    EXTENT-NUMBER - the number of physical extents allocated on the volume
listed for this component.

   EXTENT-TYPE - descriptive attribute(s) of the extent VSAM can use to
control processing of the extent. The values shown in the list below can be
ORed together for a complete description:

          X'00' - this set of extents contains data.

         X'40' - this set of extents does not contain data. Some levels of DFP
      report X'40' with the SPEED option. Surprisingly, second and subsequent
      volumes of the same file will have extent types of X'00'.

         X'80' - this set of extents contains imbedded sequence set records.
      This only occurs for an index component. The LOW- and HIGH-CCHH
      value for the extent is the same as that for the corresponding data
      component extent, showing the full width of the data component extent
      even though only the first track contains the index records.

          X'FF' - this signifies a candidate volume.
17


                      The VOLUMES Paragraph (cont'd)

    EXTENTS - identifies the physical extent descriptions for each extent of the
component located on the volume, showing the VSAM RBA relationship to each
extent. Within VSAM addressing between components is done with RBA values.
These must be converted to absolute addresses (CCHHR) before an I/O can be
performed. You should note it's possible to have extents which are not physically
contiguous on DASD but whose RBAs are contiguous. There are five reported
fields in the EXTENTS section:

          HIGH-CCHH - the physical ending location of the extent on the volume
      in the form CCHH, where CC is the 2-byte hexadecimal number of the
      DASD cylinder and HH is the 2-byte hexadecimal number of the track
      within the cylinder (or read-write head).

         HIGH-RBA - the RBA, in decimal, corresponding to the HIGH-CCHH
      physical address of the extent.

         LOW-CCHH - the physical beginning location of the extent on the
      volume in the form CCHH, where CC is the 2-byte hexadecimal number of
      the DASD cylinder and HH is the 2-byte hexadecimal number of the track
      within the cylinder.

         LOW-RBA - the RBA, in decimal, corresponding to the LOW-CCHH
      physical address of the extent.

         TRACKS - the number of tracks in the extent. This is given in tracks
      regardless of the space parameter in the define.

    HIGH-KEY - for a KSDS data component with key ranges, specifies the
highest key value allowed for records stored within this extent of the component.
It does not necessarily indicate the highest actual key in the extent. The
maximum length key value listed is 64 bytes even though the cluster may be
defined with a key up to 255 bytes. This field corresponds exactly with the high
key specified in one of the KEYRANGES subparameter of the define.

   HIGH-KEY-RBA - for the data component of a KSDS defined with key ranges,
specifies the RBA, in decimal, of the CI containing the highest keyed record in
the component or key range. This field is not a function of any define parameter.

    LOW-KEY - for a KSDS data component with key ranges, specifies the lowest
key value allowed for records stored within this extent of the component. It does
not necessarily indicate the lowest actual key in the extent. The maximum length
key value listed is 64 bytes even though the cluster may be defined with a key up
to 255 bytes. This field corresponds exactly with the low key specified in one of
the KEYRANGES subparameter of the define.
18


                       The VOLUMES Paragraph (cont'd)

   PHYREC/TRK - the number of physical records of the size indicated in
PHYRECS-SIZE VSAM will write on each track of the component. This is a
function of the component's CI size.

   PHYREC-SIZE - the size of each physical record (actually, physical block)
VSAM will write during storage of CIs for the component. Physical records can
be thought of as the "block size" of a CI. This value is a function of the CI size.

   HI-ALLOC-RBA - the highest allocated RBA of all extents of the component
on this volume.

    HIGH-USED-RBA - the highest used RBA of all extents of the component on
this volume.

    TRACKS/CA - the number of tracks in each CA of the component. This value
is determined during define processing based on device type and size and type
of space allocation. If the data component is allocated in cylinders the CA size is
set to 1 cylinder. If the data component is allocated in records or tracks the CA
size is based on the smaller of the primary and secondary amounts, up to a
maximum of 1 cylinder. Based on that AMS will increase the larger number to be
an even multiple of the smaller number. That way VSAM ensures all extents will
be of an integer number of CAs. If IMBED was specified the one track taken up
by imbedded sequence set records will be accounted for in this field.

    For example, if the allocation is TRACKS(90 10) the CA size will be 10 tracks.
If IMBED is specified, the CA size will be increased to 11, resulting in an actual
allocation of TRACKS(99 11).

   VOLFLAG - specifies whether extents have been allocated or whether this is
a candidate volume. VOLFLAG can have three values:

           CANDIDATE - this volume is a candidate for future allocations. When
       this VOLFLAG is active no EXTENT information is listed.

          OVERFLOW - the volume is an overflow volume on which data records
       from a key range are stored. When more volumes are specified than key
       ranges the "extra" volumes are considered overflow volumes. When any
       key range exceeds its primary volume it will use the first overflow volume.

          PRIME - For a non-key range file PRIME indicates there is at least one
       extent for this component on the volume. For a key range file, PRIME
       indicates this is the first volume for the particular key range.

   VOLSER - the volume serial number of the volume.
19


         Determining Proper Space Allocation using LISTCAT Output

   A LISTCAT output can be quite large and confusing. Interpreting the listing
can be frustrating. Here is a straightforward method for computing the correct
space allocation for components

   Once a VSAM file is loaded, it's quite easy to find out if the allocation request
was correct, or to see how much the file is over- or under-allocated. First, get a
LISTCAT of the cluster:

    LISTCAT ENTRIES(<cluster.name>) ALL

    In the data component listing, find the HURBA and HARBA fields in the
ALLOCATION paragraph. These RBAs represent the overall highest used and
allocated RBAs for the entire component on all its volumes. These fields are one
greater than they should be; that makes the math easier, as the numbers are
stated in terms of whole control areas for KSDS and RRDS files.

    The following relationships between HURBA and HARBA must be found:

•   If the HARBA and HURBA are equal, the current allocation for the file exactly
    fits in the number of allocated CAs. There may be free CIs in the last CA, but
    that's only important in very small files.

•   If HARBA is greater than HURBA, the difference is the amount of over-
    allocation in the data component. This value is in increments of full CAs, and
    tells you how many empty CAs are at the end of the component. To
    determine how many CAs this represents, locate the CISIZE and CI/CA fields
    in the same component listing. Multiply these two numbers together to get
    the number of bytes in each CA. Then, divide that number into the difference
    between the HARBA and HURBA. The result is the number of extra CAs at
    the end of the component. If the TRACKS/CA field shows a cylinder-sized
    CA, this value is also the number of cylinders by which the file has been over-
    allocated.

    Over-allocation = HARBA - HURBA
     in CAs            CI/CA * CISZ
20


                 Determining Proper Space Allocation (cont'd)

   Check the EXTENT count in the STATISTICS paragraph. Under SMS, more
than one extent is not a bad thing. It should even be expected for files larger
than about 400 cylinders.

   A VSAM file takes its primary size, not its secondary size, when extending to
a candidate volume. Consider a file defined as CYL(1200 100). Let's assume its
primary volume is full when we need to add another record.

    If there is no other volume in the pool with 1,200 cylinders free, the extent
attempt will fail, causing an ABEND in the program requesting the update.

    On the other hand, when the file is defined at, say, CYL(400 400), it is more
likely another volume in the pool has 400 cylinders available. Granted the file will
be 350 cylinders or more over-allocated, but that's much better than having to
recover the file.

   Because of that restriction, it is far more important to pick reasonable primary
and secondary allocations, and provide several candidate volumes, in the define.
Unfortunately there really isn't a good, simple formula to calculate this; you must
do it on a case-by-case basis.

    It also means large files must be more closely monitored than small ones; it's
just a matter of scale. The user should do a LISTCAT immediately after a LOAD
to see what the percentage of space the file has actually used. That provides a
benchmark to help you determine if a file is really under-allocated or not.

    Using the CYL(400 400) example, say you know the loaded file used 1,175 of
its allocated 1,200 cylinders. Then, two days later, the file is using 1,600
cylinders. Use the LISTCAT output to see if the file is allocated at 1,600
cylinders only because of the 400-cylinder extent. You may want to increase the
allocation to, say, (425 425) to compensate, or maybe (400 200) would be a
better choice.

    While this method will net the file more extents, you still should try to keep the
extents down to a minimum number. As the number of extents gets larger, the
file takes longer to do I/O because of disk seek time.

More Related Content

What's hot

What's hot (20)

Server pac 101
Server pac 101Server pac 101
Server pac 101
 
SKILLWISE-DB2 DBA
SKILLWISE-DB2 DBASKILLWISE-DB2 DBA
SKILLWISE-DB2 DBA
 
MVS ABEND CODES
MVS ABEND CODESMVS ABEND CODES
MVS ABEND CODES
 
IBM Z/OS support for z15 - oct 2021
IBM Z/OS support for z15 -  oct 2021IBM Z/OS support for z15 -  oct 2021
IBM Z/OS support for z15 - oct 2021
 
Z4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OSZ4R: Intro to Storage and DFSMS for z/OS
Z4R: Intro to Storage and DFSMS for z/OS
 
Sqa esqa-shortage
Sqa esqa-shortageSqa esqa-shortage
Sqa esqa-shortage
 
DB2 for z/O S Data Sharing
DB2 for z/O S  Data  SharingDB2 for z/O S  Data  Sharing
DB2 for z/O S Data Sharing
 
Mainframe IPL Process.pdf
Mainframe IPL Process.pdfMainframe IPL Process.pdf
Mainframe IPL Process.pdf
 
Using Release(deallocate) and Painful Lessons to be learned on DB2 locking
Using Release(deallocate) and Painful Lessons to be learned on DB2 lockingUsing Release(deallocate) and Painful Lessons to be learned on DB2 locking
Using Release(deallocate) and Painful Lessons to be learned on DB2 locking
 
Tso and ispf
Tso and ispfTso and ispf
Tso and ispf
 
Presentation db2 connections to db2 for z os
Presentation   db2 connections to db2 for z osPresentation   db2 connections to db2 for z os
Presentation db2 connections to db2 for z os
 
IBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration BasicsIBM DB2 for z/OS Administration Basics
IBM DB2 for z/OS Administration Basics
 
z/OS Communications Server Overview
z/OS Communications Server Overviewz/OS Communications Server Overview
z/OS Communications Server Overview
 
JCL BEYOND DFSORT
JCL BEYOND DFSORTJCL BEYOND DFSORT
JCL BEYOND DFSORT
 
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
DB2 for z/OS Bufferpool Tuning win by Divide and Conquer or Lose by Multiply ...
 
CICS basics overview session-1
CICS basics overview session-1CICS basics overview session-1
CICS basics overview session-1
 
Ipl process
Ipl processIpl process
Ipl process
 
UTS CONVERSION
UTS CONVERSIONUTS CONVERSION
UTS CONVERSION
 
ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARM
 
Smpe
SmpeSmpe
Smpe
 

Viewers also liked

World Economic Forum on the Middle East 2006
World Economic Forum on the Middle East 2006World Economic Forum on the Middle East 2006
World Economic Forum on the Middle East 2006
WorldEconomicForumDavos
 
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
gretagreiss85
 

Viewers also liked (17)

TWS 8.6 new features (from the 2013 European Tour)
TWS 8.6 new features (from the 2013 European Tour)TWS 8.6 new features (from the 2013 European Tour)
TWS 8.6 new features (from the 2013 European Tour)
 
White Paper, System Z Dataset Naming Standards
White Paper, System Z Dataset Naming StandardsWhite Paper, System Z Dataset Naming Standards
White Paper, System Z Dataset Naming Standards
 
TSO Productivity
TSO ProductivityTSO Productivity
TSO Productivity
 
Advanced REXX Programming Techniques
Advanced REXX Programming TechniquesAdvanced REXX Programming Techniques
Advanced REXX Programming Techniques
 
Daily Newsletter: 13th January, 2011
Daily Newsletter: 13th January, 2011Daily Newsletter: 13th January, 2011
Daily Newsletter: 13th January, 2011
 
VSHMPR Fall Conference
VSHMPR Fall ConferenceVSHMPR Fall Conference
VSHMPR Fall Conference
 
Resilience and Hope: #ShareTheJourney with Congolese Refugees
Resilience and Hope: #ShareTheJourney with Congolese RefugeesResilience and Hope: #ShareTheJourney with Congolese Refugees
Resilience and Hope: #ShareTheJourney with Congolese Refugees
 
SORACOM UG #2 | Mobile World Congressに行ってあんまりMobileじゃないものばかり見てきた話
SORACOM UG #2 | Mobile World Congressに行ってあんまりMobileじゃないものばかり見てきた話SORACOM UG #2 | Mobile World Congressに行ってあんまりMobileじゃないものばかり見てきた話
SORACOM UG #2 | Mobile World Congressに行ってあんまりMobileじゃないものばかり見てきた話
 
boat asylum in australia
boat asylum in australiaboat asylum in australia
boat asylum in australia
 
Six Traits & Skills Every Manager Should Have
Six Traits & Skills Every Manager Should HaveSix Traits & Skills Every Manager Should Have
Six Traits & Skills Every Manager Should Have
 
Greening Enterprises: How to Assess and Develop Your Organization's Drive Tow...
Greening Enterprises: How to Assess and Develop Your Organization's Drive Tow...Greening Enterprises: How to Assess and Develop Your Organization's Drive Tow...
Greening Enterprises: How to Assess and Develop Your Organization's Drive Tow...
 
Research2.0
Research2.0Research2.0
Research2.0
 
ヒルクライマーズ:ツール・ド・東北 IoTハッカソン
ヒルクライマーズ:ツール・ド・東北  IoTハッカソンヒルクライマーズ:ツール・ド・東北  IoTハッカソン
ヒルクライマーズ:ツール・ド・東北 IoTハッカソン
 
Remanso negro fuente de vida
Remanso negro fuente de vidaRemanso negro fuente de vida
Remanso negro fuente de vida
 
World Economic Forum on the Middle East 2006
World Economic Forum on the Middle East 2006World Economic Forum on the Middle East 2006
World Economic Forum on the Middle East 2006
 
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
Uso di strumenti Web 2.0 per la realizzazione di applicazioni sostenibili in ...
 
اینفوگرافی تبلیغات بنری
اینفوگرافی تبلیغات بنری اینفوگرافی تبلیغات بنری
اینفوگرافی تبلیغات بنری
 

Similar to Reading the LISTCAT entries for VSAM

Vsam interview questions and answers.
Vsam interview questions and answers.Vsam interview questions and answers.
Vsam interview questions and answers.
Sweta Singh
 
Presentation1
Presentation1Presentation1
Presentation1
Jay Patel
 
Anchor data type,cursor data type,array data type
Anchor data type,cursor data type,array data typeAnchor data type,cursor data type,array data type
Anchor data type,cursor data type,array data type
dhruv patel
 
6 data types
6 data types6 data types
6 data types
jigeno
 
For this lab, you will write the following filesAbstractDataCalc.pdf
For this lab, you will write the following filesAbstractDataCalc.pdfFor this lab, you will write the following filesAbstractDataCalc.pdf
For this lab, you will write the following filesAbstractDataCalc.pdf
alokindustries1
 
Database development coding standards
Database development coding standardsDatabase development coding standards
Database development coding standards
Alessandro Baratella
 

Similar to Reading the LISTCAT entries for VSAM (20)

Mysql1
Mysql1Mysql1
Mysql1
 
Vsam interview questions and answers.
Vsam interview questions and answers.Vsam interview questions and answers.
Vsam interview questions and answers.
 
SAS Commands
SAS CommandsSAS Commands
SAS Commands
 
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
Oracle Developer Day, 20 October 2009, Oracle De Meern, Holland: Oracle Datab...
 
Mysqlppt
MysqlpptMysqlppt
Mysqlppt
 
Oracle Database 11g Release 2 - XMLDB New Features
Oracle Database 11g Release 2 - XMLDB New FeaturesOracle Database 11g Release 2 - XMLDB New Features
Oracle Database 11g Release 2 - XMLDB New Features
 
Mysqlppt
MysqlpptMysqlppt
Mysqlppt
 
Presentation1
Presentation1Presentation1
Presentation1
 
Anchor data type,cursor data type,array data type
Anchor data type,cursor data type,array data typeAnchor data type,cursor data type,array data type
Anchor data type,cursor data type,array data type
 
6 data types
6 data types6 data types
6 data types
 
unit 1 ppt.pptx
unit 1 ppt.pptxunit 1 ppt.pptx
unit 1 ppt.pptx
 
Bringing OpenClinica Data into SAS
Bringing OpenClinica Data into SASBringing OpenClinica Data into SAS
Bringing OpenClinica Data into SAS
 
For this lab, you will write the following filesAbstractDataCalc.pdf
For this lab, you will write the following filesAbstractDataCalc.pdfFor this lab, you will write the following filesAbstractDataCalc.pdf
For this lab, you will write the following filesAbstractDataCalc.pdf
 
Sas summary guide
Sas summary guideSas summary guide
Sas summary guide
 
Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"Maryna Popova "Deep dive AWS Redshift"
Maryna Popova "Deep dive AWS Redshift"
 
DS_PPT.pptx
DS_PPT.pptxDS_PPT.pptx
DS_PPT.pptx
 
Database development coding standards
Database development coding standardsDatabase development coding standards
Database development coding standards
 
Mysql
MysqlMysql
Mysql
 
Mysql
MysqlMysql
Mysql
 
Mysql
MysqlMysql
Mysql
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Reading the LISTCAT entries for VSAM

  • 1. The LISTCAT command: Using LISTCAT and Interpreting Its Output By Dan O'Dea November 1, 1998 ∆ΦΟ
  • 2. 2 Finding VSAM information: the LISTCAT Command The Access Method Services (AMS) LISTCAT command lists catalog information for catalogued datasets. You can limit the number of entries, or the amount of information returned to you, by using LISTCAT options. This handout describes the various LISTCAT operands and their syntax. It provides descriptions of the fields in a LISTCAT report, sample LISTCAT output, and some examples of LISTCAT commands. I'll also explain how to use the LISTCAT output to tune your VSAM files. This is designed for a VSAM class; it does not describe the various reports generated for non-VSAM files. Here is the complete syntax for the LISTCAT (abbreviated LISTC) command: <insert picture here>
  • 3. 3 LISTCAT Command Parameter Descriptions All parameters of the LISTCAT (LISTC) command are optional. If LISTC runs in batch mode with no parameters, it lists the system master catalog. If LISTC runs in READY mode with no parameters, it lists all files beginning with the TSO user's ID. If the CATALOG parameter is given, but ENTRIES, LEVEL, NOTUSABLE, CREATION, and EXPIRATION are not coded (and no entry parameters are given), and LISTC is not invoked from TSO the entire catalog specified is listed. CATALOG ( ... ) - the name of the desired ICF catalog. LISTC normally uses the standard catalog search algorithm. The CATALOG optional parameter forces LISTC to search only that catalog. ENTRIES ( ... ) - the name or generic name (see below) to be listed. If the entry name is a cluster all of its components are listed. If the entry name is an AIX its components, and all its PATHs, are listed. If a generic entry name is supplied, one qualifier replaces the "*". As an example, suppose the catalog contains these entries. EMP.PER.CKSDS EMP.PER.AIXSSN EMP.PER.AIXSSN.PATH EMP.PAY.CKSDS EMP.PAY.AIXSSN EMP.PAY.AIXSSN.PATH EMP.TAX.CKSDS EMP.TAX.AIXSSN EMP.TAX.AIXSSN.PATH If ENTRIES(EMP.PER.*) is specified, the list shows the first three entries. If ENTRIES(EMP.*.CKSDS) is specified, the list shows the three left-most entries. LEVEL ( ... ) - lists all entries matching the level of qualification given. This can be any number of qualifiers. Any entry in the catalog matching level is listed regardless of the number of qualifiers after level. As with ENTRIES, an "*" can substitute for one level. Using the same catalog entries as above, here are some examples: If LEVEL(EMP) is specified, the list includes all nine entries. If LEVEL(EMP.PER.*) is specified, only the first two entries are listed. If LEVEL(EMP.PER) is specified, the list includes the first three entries. If LEVEL(EMP.*.CKSDS) is specified, the list includes the three left-most entries.
  • 4. 4 The LISTCAT Command: Restricting Entries Use one of these restriction parameters to limit the type of entry in the list: ALIAS, ALTERNATEINDEX (AIX), CLUSTER (CL), DATA, INDEX, GENERATIONDATAGROUP (GDG), NONVSAM (NVSAM), SPACE (SPC), PAGESPACE (PGSPC), PATH, USERCATALOG (UCAT). • ALIAS lists only aliases. • AIX lists only alternate index (AIX) entries. Unless DATA and INDEX are also specified, only the AIX cluster is listed. • DATA restricts the list to data components. Specify either the cluster name or the component name. • GDG lists only generation data group (GDG) bases. • INDEX restricts the list to index components. Specify either the cluster name or the component name. • NONVSAM restricts the list to non-VSAM files. • PAGESPACE restricts the list to page spaces. • PATH lists only paths to alternate indexes. If the LISTC command includes the AIX using the path, the path is automatically listed. • SPACE is valid only for non-ICF (Integrated Catalog Facility) environments. • UCAT lists user catalog CONNECT entries from the master catalog. Here are some examples of LISTC commands. LISTC ENTRIES(EMP.FILE.CKSDS) CLUSTER lists cluster information, but not the cluster's data and index components. LISTC ENT(EMP.FILE.AIXSSN) AIX DATA INDEX lists cluster, data, and index information for the complete alternate index. Unless the keyword PATH is included, no path information is displayed. LISTC LEVEL(EMP) CLUSTER DATA INDEX lists all component information for all files whose names begin with the high-level qualifier (HLQ) EMP.
  • 5. 5 The LISTCAT Command: Restricting Listed Information ALL / ALLOCATION / HISTORY / NAME / VOLUME - ALLOCATION can be abbreviated to ALLOC, HISTORY to HIST, and VOLUME to VOL. NAME is the default. • ALL: LISTC lists all fields. • ALLOC: lists the History paragraph for clusters, and the History, Allocation, and Volume paragraphs for data and index components. • HISTORY lists the History paragraphs. • NAME limits the list to name and type fields. • VOLUME limits the list to History paragraphs for cluster, data, and index components, and includes the VOLSER and device type information for data and index components. Allocated extent information is not listed. CREATION (n) - abbreviated to CREAT, lists only entries "n" days ago or earlier. "n" is decimal. Hexadecimal or binary numbers are preceded by X or B respectively. The maximum number to specify is 9999. The default, "0", lists everything. EXPIRATION (n) - abbreviated to EXPIR, lists entries only if they expire "n" days from now or earlier. "n" is decimal. Hexadecimal or binary numbers are preceded by X or B respectively. The maximum number to specify is 9999. "0" lists only expired entries. NOTUSABLE - lists only files marked NOTUSABLE. Datasets become unusable when a system failure damages the catalog entry for a particular component. Unless specifically requested, records marked UNUSABLE are not listed OUTFILE ( ... ) - specifies a DD statement for the output file other than SYSPRINT. The file must specify RECFM=VBA and LRECL=125. FILE ( ... ) – For VVDS information, specifies a DD statement identifying the devices and volumes containing the ICF VVDSes.
  • 6. 6 Description of Keyword Fields The HISTORY Paragraph RELEASE - the release of VSAM. "1" is the original VSAM from prior to 1976; "2" refers to the current release, the one in use since 1976. It has nothing to do with the OS version or DFP version. CREATION - the Julian create date of the object as YYYY.DDD. EXPIRATION – An expiration date protects a dataset from deletion. Before its expiration date, the PURGE parameter of the DELETE command is the only way to delete the object. Specify an expiration date in the file definition using the TO or FOR parameters. A date of 9999.999 permanently protects the file. Change this field with the ALTER command. RCVY-VOL, RCVY-DEVT, RCVY-CI - not applicable in an ICF environment. The PROTECTION Paragraph ATTEMPTS - the number of attempts may be made to enter the file's password. This is valid only if the file is password protected. CODE - the character string to pass to the WTO message in a failed password attempt. This is valid only if the file is password protected. CONTROLPW, MASTERPW, READPW, UPDATEPW - specifies the indicated password of the file being listed. These fields are printed only if the file is password protected. PSWD - if the object is not password protected this value is NULL. If a password or words are valid but not printed for some reason this value is SUPP. RACF - if the object is RACF-protected with a discrete profile this value is YES. If the object is protected with a generic profile or not protected at all this value is NO. USAR - the contents of the User Security Authorization Record. The data in this field is passed to the USVR (see below) when access to the object is attempted. If there is no USAR this field is NULL. This is valid only if the file is password protected. USVR - the User Security Verification Routine. The USVR is essentially a program to verify whether the user can access the file. If the USVR is not used this value will be NULL. This is valid only if the file is password protected.
  • 7. 7 The ASSOCIATION Paragraph Each object has a particular list of object types it can be associated with: Entry Type Can be associated with: ALIAS Its non-VSAM DSN or a VSAM user catalog entry AIX Its data and index entries, its base cluster entry, and its PATH entries AIX data Its alternate index cluster entry AIX index Its alternate index cluster entry CLUSTER Its data entry, index entry (KSDS or variable RRDS), associated PATH entries, and AIX entries Cluster data Its base cluster entry Cluster index Its base cluster entry GDG Its non-VSAM file entries NONVSAM Any associated alias entries Page Space Its data entry (basically an ESDS cluster) Path Entry The AIX entry and the AIX's data and index entries, the data entry (over a base of the base cluster (and its index entry if a KSDS or variable RRDS) cluster and AIX) Path Entry The base cluster entry, the data entry of the base cluster (and its (over a base index entry if a KSDS or a variable RRDS) cluster) User catalog Its associated alias entries.
  • 8. 8 The ATTRIBUTES Paragraph AVGLRECL - the average record length as found in the RECORDSIZE parameter of the define. When AVGLRECL equals MAXLRECL the component can be assumed to contain fixed-length records, but VSAM doesn't care. When AVGLRECL is different from MAXLRECL the component can be assumed to contain variable-length records, but again VSAM doesn't care. Except when AMS calculates space amounts this value is treated as documentation and can be any value the user desires. VSAM does not attempt to maintain a true average record length for the data. AXRKP - the relative key position of the AIX key field within the base cluster's record as defined in the KEYS define parameter. BIND - the file is to be staged from the mass storage device to the virtual DASD staging drive when it is opened, and will be retained on the drive until it is closed. BUFSP - the minimum number of bytes to be acquired as buffers when the cluster is opened. This value is originally specified through the BUFFERSPACE define parameter. CI/CA - the number of CIs in each CA for the component. CISIZE - the CI size of the component. CYLFAULT - specifies the component will not be staged from the mass storage device when it is opened, but will be staged across in groups of cylinders as the data is needed. DSTGWAIT - specifies the component will be destaged from the virtual DASD staging drive back to the mass storage device before control is returned to the user program to issue a CLOSE. Its counterpart is NODSTGWAIT. ERASE - specifies records are to be overwritten with binary zeroes when the file is deleted. Its counterpart is NOERASE. EXCEPTIONEXIT - the entry name of the routine to be given control when I/O errors occur when processing the component. IMBED - specifies the sequence set records are to be written in the top track of the CA they address, with each record written as many times as it will fit. Its counterpart is NOIMBED. INDEXED - specifies the component is part of a KSDS cluster (either a base or alternate index).
  • 9. 9 The ATTRIBUTES Paragraph (cont'd) KEYLEN - the length of the search key field in the data component records for the KSDS cluster (either a base or an alternate index). LINEAR - specifies whether the component is an LDS cluster. MAXLRECL - the user-defined maximum record length as defined in the RECORDSIZE define parameter. See AVGLRECL for more information. VSAM will not allow a record longer than MAXLRECL to be written to the component. MAXRECS - the highest possible valid record number. This field appears only for an RRDS. MAXRECS = 2^32 / CISZ * record slots per CI. NONINDEXED - specifies the component is part of an ESDS cluster. NONSPANNED - specifies the records in the component cannot span across CIs. Its counterpart is SPANNED. NONUNIQUEKEY - states the alternate key field defined for the associated AIX can have multiple values in multiple records throughout the related base cluster. It does not allow the AIX to have multiple records with the same key, but does allow AIX records to point to more than one base cluster record. The counterpart to this parameter is UNIQUEKEY. NOREPLICAT - specifies the index component records are not to be repeated around their track multiple times, but to store as many index records as possible on the track. Its counterpart is REPLICATE. NOREUSE - specifies the file cannot be opened as reusable. Its counterpart is REUSE. NOSWAP - specifies the associated Page Space is a conventional Page Space data set and not a high speed swap data set. Its counterpart is SWAP. NOTRKOVFL - specifies the VSAM physical blocks in a Page Space cannot span track boundaries. Its counterpart is TRKOVFL. NOUPDATE - specifies, for a path over an AIX, no updating of the AIX will take place if the base cluster is opened through the "no update" path. Its counterpart is UPDATE, which allows such updating. NOUPGRADE - specifies, for an AIX, an open for update of the associated base cluster will not result in an open for update of the AIX. Its counterpart is UPGRADE, which will keep an AIX and its base cluster in sync.
  • 10. 10 The ATTRIBUTES Paragraph (cont'd) NOWRITECHECK - specifies VSAM will not check output operations against this component by issuing a READ immediately following a WRITE or REWRITE. Its counterpart is WRITECHECK. NUMBERED - specifies the component is part of an RRDS cluster. ORDERED - specifies the volumes assigned to this component will be allocated in the order specified in the VOLUMES parameter of the define. Its counterpart is UNORDERED, which is the default under ICF catalogs. RECOVERY - specifies CAs will be preformatted at load time, with other safe- guards to allow mid-load recovery. Its counterpart is SPEED. RECORDS/CI - for an RRDS only, the number of logical record slots a single CI can contain. RECVABLE - valid only for the old-style VSAM catalog. RKP - the relative position of the key field within the base cluster's record as defined by the KEYS define parameter. SHROPTNS - the share options of the file. SUBALLOC - valid only for the old-style VSAM catalog. TEMP-EXP - specifies a backup copy of the listed file has been made with the EXPORT command specifying the TEMPORARY option. If this status is not set IMPORT cannot automatically define the file at restore time. UNIQUE - valid only in a non-ICF environment. In an ICF environment this is the default.
  • 11. 11 The STATISTICS Paragraph The fields in this paragraph are brought into the Access Method Data Statistics Block (AMDSB) when the file is opened. As the file is updated the statistics in the AMDSB are maintained in storage. The AMDSB is not written back to the catalog until the file has been successfully closed. If the close is not successful, the statistics in the AMDSB are not written back to the catalog, thus the catalog's statistics still reflect the values at the time of the open. There are two ways for close processing to fail: 1 - An ABEND of the program opening the file. Although a program will perform most of the functions of a close, including writing out the last buffers, the file is not considered officially closed. If the open was for update processing, the "open for update" bit is left on and statistics are not written. At this time the user should determine if the file is valid. If update transactions have not been logged, it may be necessary to delete and recreate the file, rendering any "invalid" statistics in the catalog moot (they will be reset as part of the recovery). Of course, if the file is actually good an explicit VERIFY can be run to update the catalog statistics. 2 - A system crash when a program has the file open. While the system is crashing there is obviously no time for the system to run around closing files. All files, VSAM and non-VSAM, will be left "open". Buffers are not written to disk, the "open for update" bit is left on and statistics are not written. If update transactions have not been logged, it may be necessary to delete and recreate the file, rendering any "invalid" statistics in the catalog moot (they will be reset as part of the recovery).
  • 12. 12 The STATISTICS Paragraph (cont'd) FREESPACE-%CI - the CI free space percentage as given in the define. Neither this nor the CA% gives the actual free space remaining except immediately following a load or resume load. FREESPACE-%CA - the CA free space percentage as given in the define. FREESPACE-BYTES - specifies the current number of free space bytes within the area allocated by the component. This count includes bytes within completely free CIs only. Free space within CIs is not included. While this field gives a general idea of the free space remaining in the file, it does not specify where it is located. There are four areas where free space can be found: 1. Free CIs due to deleted records; 2. Free CIs at the end of each CA; 3. Free CIs in the last partially-filled CA before the end of file; 4. Completely empty CAs between the HURBA and HARBA. If a free space map is required, something other than a LISTC is needed. Four Index-only Statistics LEVELS - the number of levels making up the index, including the sequence set. The lower this number is the better. ENTRIES/SECT - the number of index entries within each section of an index record. An index record is broken down into sections to improve performance during key compares. The number of entries per section is the square root of the number of CI/CA for the data component. For example, if the data component has 180 CI/CA, the nearest lower whole number to its square root is 13, so the index has roughly 13 sections of 13 records per section. HI-LEVEL-RBA - the RBA of the highest level index record. When the KSDS is open for random processing, this RBA is used to locate and read the top logical record of the index. VSAM then follows the vertical pointers through the index structure. Note the top of the index structure is not maintained at the physical beginning of the index. SEQ-SET-RBA - the RBA of the first sequence set record. When the KSDS is open for sequential processing, this RBA is used to locate and read the beginning of the horizontal sequence set chain of records, gaining access to the data component CAs in logical sequence. Once the KSDS is loaded, this value does not change.
  • 13. 13 The STATISTICS Paragraph (cont'd) EXCPS - the total number of Execute Channel Program calls issued by VSAM against the data component. This number corresponds to the number of physical I/O operations against the data component since it was created or reorganized. This value cannot be used to determine the number of logical records read or written to the file, or even the number of CIs passed from DASD to memory and back, since buffer amounts have a great impact on how many CIs are written for a given EXCP. EXTENTS - the total number of physical extent allocations, on all volumes, the data component has made. REC-DELETED - the total number of logical records deleted from the data component since it was last created or reorganized. REC-INSERTED - the total number of logical records inserted into the data component since it was last created or reorganized. For a KSDS or an ESDS this total does not include records added at the end of the data component or those records initially loaded. For an RRDS this count is the number of records inserted into empty slots, including the number initially loaded into the file. REC-RETRIEVED - the total number of logical records read from the data component since it was last created or reorganized. It includes reads for update during REWRITE processing. REC-TOTAL - the total number of logical records currently in the data component. REC-UPDATED - the total number of logical records updated and rewritten back into the data component since it was last created or reorganized. This does not include deleted records, but if a record is updated at one time and deleted in a subsequent call is counted. SPLITS-CA - the total number of CA splits occurring in this component since it was last created or reorganized. To get a real idea of why CA splits are occurring a series of LISTCATs is needed to see a trend develop. For an index component, a CA split occurs only when an update to an intermediate or high level record will not fit and the record has to be split. This can happen during a data component CA split. Technically this is not a CA split, but it shows up in this count. Each SIS mode loading of a new CA is counted in this field. Note these are not CA splits and are actually beneficial to the file.
  • 14. 14 The STATISTICS Paragraph (cont'd) SPLITS-CI - the total number of CI splits occurring in this component since it was last created or reorganized. To get a real idea of why CI splits are occurring a series of LISTCATs is needed to see a trend develop. For an index component, a CI split occurs each time a data component CA splits. Technically the splitting of a sequence set record is not a CI split, but it shows up in this count. SYSTEM-TIMESTAMP - the date and time the component was last closed following an open for update. The value is from the S/370 time-of-day clock, an 8-byte binary value reflecting the number of microseconds elapsed since January 1, 1900. This value is useless in itself, but is compared to the timestamp for its related components. For example, in a KSDS, if the timestamp values for the data and index components are equal, VSAM assumes the two components were opened using the cluster, resulting in synchronization between the two components. In theory, if the timestamps of the data and index components are not equal VSAM will fail the open. In reality, however, the open only fails when the data component's timestamp is greater than that of the index. Because a VERIFY command alters the timestamp, it is highly recommended the VERIFY be run at the cluster level.
  • 15. 15 The ALLOCATION Paragraph SPACE-TYPE - the type of space allocated to the file. A type of TRACKS may mean the file was allocated in tracks, records, megabytes, or kilobytes and VSAM was unable to build 1-cylinder-sized CAs. When TRACKS appears in this field full tracks are allocated and aligned on track boundaries. A type of CYLINDERS may mean the file was allocated in cylinders, records, megabytes, or kilobytes, as VSAM will attempt to build 1-cylinder-sized CAs. When CYLINDERS appears in this field full cylinders are allocated and aligned on cylinder boundaries. SPACE-PRI - the number of space allocation units, as indicated in SPACE- TYPE, whenever a primary allocation is made. This is the amount of space given the file at define time as well as the first time the file extends to a candidate pack. SPACE-SEC - the number of space allocation units, as indicated in SPACE- TYPE, whenever a secondary allocation is made. This is the amount of space allocated when the file extends on the same volume. HI-ALLOCATED-RBA - referred to as HARBA, specifies the highest allocated RBA, plus 1, for the component. This value is equal to the HARBA in the last VOLUME paragraph for the component. This field, as are all other RBA fields for VSAM, is kept as a 32-bit unsigned integer. Thus the largest value possible is 232 or 4Gb. This is the maximum file size. For example, if a KSDS is defined with NOIMBED and a 4K CI size the maximum file size on a 3390 device is 5,826 cylinders. HI-USED-RBA - referred to as HURBA, specifies the highest used RBA, plus 1, for the component. This value is equal to the HURBA in the last VOLUME paragraph for the component. For an ESDS, LDS, KSDS index, or variable length RRDS index, this value points to the first CI following the last CI containing data. For a KSDS data component, or any RRDS data component, this value points to the bottom of the last CA containing data. In either case the HURBA represents the VSAM end-of- file marker. Not all files have this “marker;” it is not present if HURBA = HARBA. To determine if your file is overallocated: Over-allocation = HARBA - HURBA in CAs CI/CA * CISZ
  • 16. 16 The VOLUMES Paragraph Fields in this paragraph describe the physical extent allocations for a data or index component. Candidate volumes are also listed, but without extents. There is a separate volume group for each volume having extents. For a KSDS, if the data component has more than one volume group listed, each group describes the allocated extents on each volume. If the data component has key ranges, there is a separate volume group for each key range. For a KSDS, if the index component has more than one volume group listed, each group describes the entries containing index records on a specific volume. The first volume group describes the primary extents of the index containing the high-level index records and (if NOIMBED) the sequence set records. If IMBED is specified, each group after the first describes extents containing the imbedded sequence set records, corresponding to the data component's volume groups. When IMBED is specified the index VOLUMES paragraph will always have at least two volume groups, one for the primary index set and the other for the imbedded sequence set records. BYTES/TRACK - the number of bytes VSAM can write on a track of this volume. This is only listed for Page Spaces. DEVTYPE - the internal MVS device type code. A 3390 is 3010200F. EXTENT-NUMBER - the number of physical extents allocated on the volume listed for this component. EXTENT-TYPE - descriptive attribute(s) of the extent VSAM can use to control processing of the extent. The values shown in the list below can be ORed together for a complete description: X'00' - this set of extents contains data. X'40' - this set of extents does not contain data. Some levels of DFP report X'40' with the SPEED option. Surprisingly, second and subsequent volumes of the same file will have extent types of X'00'. X'80' - this set of extents contains imbedded sequence set records. This only occurs for an index component. The LOW- and HIGH-CCHH value for the extent is the same as that for the corresponding data component extent, showing the full width of the data component extent even though only the first track contains the index records. X'FF' - this signifies a candidate volume.
  • 17. 17 The VOLUMES Paragraph (cont'd) EXTENTS - identifies the physical extent descriptions for each extent of the component located on the volume, showing the VSAM RBA relationship to each extent. Within VSAM addressing between components is done with RBA values. These must be converted to absolute addresses (CCHHR) before an I/O can be performed. You should note it's possible to have extents which are not physically contiguous on DASD but whose RBAs are contiguous. There are five reported fields in the EXTENTS section: HIGH-CCHH - the physical ending location of the extent on the volume in the form CCHH, where CC is the 2-byte hexadecimal number of the DASD cylinder and HH is the 2-byte hexadecimal number of the track within the cylinder (or read-write head). HIGH-RBA - the RBA, in decimal, corresponding to the HIGH-CCHH physical address of the extent. LOW-CCHH - the physical beginning location of the extent on the volume in the form CCHH, where CC is the 2-byte hexadecimal number of the DASD cylinder and HH is the 2-byte hexadecimal number of the track within the cylinder. LOW-RBA - the RBA, in decimal, corresponding to the LOW-CCHH physical address of the extent. TRACKS - the number of tracks in the extent. This is given in tracks regardless of the space parameter in the define. HIGH-KEY - for a KSDS data component with key ranges, specifies the highest key value allowed for records stored within this extent of the component. It does not necessarily indicate the highest actual key in the extent. The maximum length key value listed is 64 bytes even though the cluster may be defined with a key up to 255 bytes. This field corresponds exactly with the high key specified in one of the KEYRANGES subparameter of the define. HIGH-KEY-RBA - for the data component of a KSDS defined with key ranges, specifies the RBA, in decimal, of the CI containing the highest keyed record in the component or key range. This field is not a function of any define parameter. LOW-KEY - for a KSDS data component with key ranges, specifies the lowest key value allowed for records stored within this extent of the component. It does not necessarily indicate the lowest actual key in the extent. The maximum length key value listed is 64 bytes even though the cluster may be defined with a key up to 255 bytes. This field corresponds exactly with the low key specified in one of the KEYRANGES subparameter of the define.
  • 18. 18 The VOLUMES Paragraph (cont'd) PHYREC/TRK - the number of physical records of the size indicated in PHYRECS-SIZE VSAM will write on each track of the component. This is a function of the component's CI size. PHYREC-SIZE - the size of each physical record (actually, physical block) VSAM will write during storage of CIs for the component. Physical records can be thought of as the "block size" of a CI. This value is a function of the CI size. HI-ALLOC-RBA - the highest allocated RBA of all extents of the component on this volume. HIGH-USED-RBA - the highest used RBA of all extents of the component on this volume. TRACKS/CA - the number of tracks in each CA of the component. This value is determined during define processing based on device type and size and type of space allocation. If the data component is allocated in cylinders the CA size is set to 1 cylinder. If the data component is allocated in records or tracks the CA size is based on the smaller of the primary and secondary amounts, up to a maximum of 1 cylinder. Based on that AMS will increase the larger number to be an even multiple of the smaller number. That way VSAM ensures all extents will be of an integer number of CAs. If IMBED was specified the one track taken up by imbedded sequence set records will be accounted for in this field. For example, if the allocation is TRACKS(90 10) the CA size will be 10 tracks. If IMBED is specified, the CA size will be increased to 11, resulting in an actual allocation of TRACKS(99 11). VOLFLAG - specifies whether extents have been allocated or whether this is a candidate volume. VOLFLAG can have three values: CANDIDATE - this volume is a candidate for future allocations. When this VOLFLAG is active no EXTENT information is listed. OVERFLOW - the volume is an overflow volume on which data records from a key range are stored. When more volumes are specified than key ranges the "extra" volumes are considered overflow volumes. When any key range exceeds its primary volume it will use the first overflow volume. PRIME - For a non-key range file PRIME indicates there is at least one extent for this component on the volume. For a key range file, PRIME indicates this is the first volume for the particular key range. VOLSER - the volume serial number of the volume.
  • 19. 19 Determining Proper Space Allocation using LISTCAT Output A LISTCAT output can be quite large and confusing. Interpreting the listing can be frustrating. Here is a straightforward method for computing the correct space allocation for components Once a VSAM file is loaded, it's quite easy to find out if the allocation request was correct, or to see how much the file is over- or under-allocated. First, get a LISTCAT of the cluster: LISTCAT ENTRIES(<cluster.name>) ALL In the data component listing, find the HURBA and HARBA fields in the ALLOCATION paragraph. These RBAs represent the overall highest used and allocated RBAs for the entire component on all its volumes. These fields are one greater than they should be; that makes the math easier, as the numbers are stated in terms of whole control areas for KSDS and RRDS files. The following relationships between HURBA and HARBA must be found: • If the HARBA and HURBA are equal, the current allocation for the file exactly fits in the number of allocated CAs. There may be free CIs in the last CA, but that's only important in very small files. • If HARBA is greater than HURBA, the difference is the amount of over- allocation in the data component. This value is in increments of full CAs, and tells you how many empty CAs are at the end of the component. To determine how many CAs this represents, locate the CISIZE and CI/CA fields in the same component listing. Multiply these two numbers together to get the number of bytes in each CA. Then, divide that number into the difference between the HARBA and HURBA. The result is the number of extra CAs at the end of the component. If the TRACKS/CA field shows a cylinder-sized CA, this value is also the number of cylinders by which the file has been over- allocated. Over-allocation = HARBA - HURBA in CAs CI/CA * CISZ
  • 20. 20 Determining Proper Space Allocation (cont'd) Check the EXTENT count in the STATISTICS paragraph. Under SMS, more than one extent is not a bad thing. It should even be expected for files larger than about 400 cylinders. A VSAM file takes its primary size, not its secondary size, when extending to a candidate volume. Consider a file defined as CYL(1200 100). Let's assume its primary volume is full when we need to add another record. If there is no other volume in the pool with 1,200 cylinders free, the extent attempt will fail, causing an ABEND in the program requesting the update. On the other hand, when the file is defined at, say, CYL(400 400), it is more likely another volume in the pool has 400 cylinders available. Granted the file will be 350 cylinders or more over-allocated, but that's much better than having to recover the file. Because of that restriction, it is far more important to pick reasonable primary and secondary allocations, and provide several candidate volumes, in the define. Unfortunately there really isn't a good, simple formula to calculate this; you must do it on a case-by-case basis. It also means large files must be more closely monitored than small ones; it's just a matter of scale. The user should do a LISTCAT immediately after a LOAD to see what the percentage of space the file has actually used. That provides a benchmark to help you determine if a file is really under-allocated or not. Using the CYL(400 400) example, say you know the loaded file used 1,175 of its allocated 1,200 cylinders. Then, two days later, the file is using 1,600 cylinders. Use the LISTCAT output to see if the file is allocated at 1,600 cylinders only because of the 400-cylinder extent. You may want to increase the allocation to, say, (425 425) to compensate, or maybe (400 200) would be a better choice. While this method will net the file more extents, you still should try to keep the extents down to a minimum number. As the number of extents gets larger, the file takes longer to do I/O because of disk seek time.