ABCs of ZOS System Programming Vol 3 RB
ABCs of ZOS System Programming Vol 3 RB
Redbooks
International Technical Support Organization
January 2018
SG24-6983-04
Note: Before using this information and the product it supports, read the information in “Notices” on
page ix.
This edition applies to version 2 release 3 of IBM z/OS (product number 5650-ZOS) and to all
subsequent releases and modifications until otherwise indicated in new editions.
© Copyright International Business Machines Corporation 2004, 2018. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
The team who wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Contents v
6.5 Sharing catalogs across systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.6 Catalog caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.6.1 In-storage cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.6.2 Catalog data space caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.6.3 Enhanced Catalog Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.6.4 VSAM record-level sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.7 Catalog address space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.8 Maintaining your catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.8.1 Listing a catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.8.2 Backup procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.8.3 Recovery procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.8.4 Checking the integrity on an ICF structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.8.5 Catalog performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.8.6 Working with the catalog address space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Contents vii
viii ABCs of IBM z/OS System Programming Volume 3
Notices
This information was developed for products and services offered in the US. This material might be available
from IBM in other languages. However, you may be required to own a copy of the product or product version in
that language in order to access it.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user’s responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not grant you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, MD-NC119, Armonk, NY 10504-1785, US
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without
incurring any obligation to you.
The performance data and client examples cited are presented for illustrative purposes only. Actual
performance results may vary depending on specific configurations and operating conditions.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
Statements regarding IBM’s future direction or intent are subject to change or withdrawal without notice, and
represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to actual people or business enterprises is entirely
coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. The sample programs are
provided “AS IS”, without warranty of any kind. IBM shall not be liable for any damages arising out of your use
of the sample programs.
The following terms are trademarks or registered trademarks of International Business Machines Corporation,
and might also be trademarks or registered trademarks in other countries.
CICS® Geographically Dispersed Parallel PowerPC®
DB2® Sysplex™ PR/SM™
DS6000™ Hiperspace™ RACF®
DS8000® HyperSwap® Redbooks®
Easy Tier® IBM® Redbooks (logo) ®
Enterprise Storage Server® IMS™ RMF™
eServer™ Language Environment® S/390®
FICON® Magstar® VTAM®
FlashCopy® MVS™ z/Architecture®
GDPS® Parallel Sysplex® z/OS®
POWER8®
Linear Tape-Open, LTO, Ultrium, the LTO Logo and the Ultrium logo are trademarks of HP, IBM Corp. and
Quantum in the U.S. and other countries.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
The ABCs of IBM® z/OS® System Programming is a 13-volume collection that provides an
introduction to the z/OS operating system and the hardware architecture. Whether you are a
beginner or an experienced system programmer, the ABCs collection provides the
information that you need to start your research into z/OS and related subjects. The ABCs
collection serves as a powerful technical tool to help you become more familiar with z/OS in
your current environment, or to help you evaluate platforms to consolidate your e-business
applications.
Lydia Parziale
Robert Haimowitz
William G. White
International Technical Support Organization, Poughkeepsie Center
Wayne Rhoten
IBM, US
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our books to be as helpful as possible. Send us your comments about this book or
other IBM Redbooks® in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an email to:
[email protected]
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface xiii
xiv ABCs of IBM z/OS System Programming Volume 3
1
DFSMS is an operating environment that helps automate and centralize the management of
storage based on the policies that your installation defines for availability, performance,
space, and security.
The heart of DFSMS is the storage management subsystem (SMS). Using SMS, the storage
administrator defines policies that automate the management of storage and hardware
devices. These policies describe data allocation characteristics, performance and availability
goals, backup and retention requirements, and storage requirements for the system.
The other elements of DFSMS (DFSMSdss, DFSMShsm, DFSMSrmm, and DFSMStvs) are
optional features that complement DFSMSdfp to provide a fully integrated approach to data
and storage management. In a system-managed storage environment, DFSMS automates
and centralizes storage management based on the policies that your installation defines for
availability, performance, space, and security. With the optional features enabled, you can
take full advantage of all the functions that DFSMS offers.
DFSMSdfp helps you store and catalog information about direct access storage device
(DASD), optical, and tape devices so that it can be quickly identified and retrieved from the
system. DFSMSdfp provides access to both record- and stream-oriented data in the z/OS
environment. The z/OS operating system enables you to efficiently manage e-business
workloads and enterprise transactions 24 hours a day. DFSMSdfp is automatically included
with z/OS. It performs the essential data, storage, and device management functions of the
system.
As a systems programmer, you can use DFSMS data management to perform these tasks:
Allocate space on DASD and optical volumes
Automatically locate cataloged data sets
Control access to data
Transfer data between the application program and the medium
Mount magnetic tape volumes in the drive
The following topics introduce you to each DFSMS component, and describe in more detail
their function throughout the data set lifecycle.
For more information, see 5.4, “Interactive Storage Management Facility” on page 101.
Managing data
DFSMSdfp organizes, identifies, stores, catalogs, shares, and retrieves all the data that your
installation uses. You can store data on DASD, magnetic tape volumes, or optical volumes.
Using data management, you can complete the following tasks:
Allocate space on DASD and optical volumes
Automatically locate cataloged data sets
z/OS UNIX System Services (z/OS UNIX) provide the command interface that interactive
UNIX users can use. z/OS UNIX allows z/OS programs to directly access UNIX data.
DFSMShsm also provides disaster backup and recovery for user-defined groups of data sets
(aggregates) so that you can restore critical applications at the same location or at an offsite
location.
Important: You must also have DFSMSdss to use the DFSMShsm functions.
DFSMStvs is built on top of VSAM RLS, which permits sharing of recoverable VSAM data
sets at the record level. Different applications often need to share VSAM data sets.
Sometimes the applications only need to read the data set. Sometimes an application needs
to update a data set while other applications are reading it. The most complex case of sharing
a VSAM data set is when multiple applications need to update the data set and all require
complete data integrity.
Transaction processing provides functions that coordinate work flow and the processing of
individual tasks for the same data sets. VSAM record-level sharing and DFSMStvs provide
key functions that enable multiple batch update jobs to run concurrently with CICS access to
the same data sets, while maintaining integrity and recoverability.
By placing your data into volumes of organized data sets, you can save and process the data
efficiently. You can also print the contents of a data set, or display the contents on a
workstation.
Note: As an exception, the z/OS UNIX services component supports zSeries file system
(ZFS) data sets, where the collection is of bytes and the concept of logically related data
records is not used.
The following sections discuss the logical attributes of a data set, which affects how a data set
can be created, which devices can store it, and what access method can be used to access it.
The members are individual sequential data sets and can be read or written sequentially, after
they have been located by directory. Then, the records of a specific member are written or
retrieved sequentially. Partitioned data sets can only exist on DASD and is not eligible for
multivolume. Each member has a unique name that is one to eight characters in length and is
stored in a directory that is part of the data set.
Space for the directory is expressed in 256 byte blocks. Each block contains from 3 to 21
entries, depending on the length of the user data field. If you expect 200 directory entries,
request at least 30 blocks. Any unused space on the last track of the directory is wasted
unless there is enough space left to contain a block of the first member.
New directory pages are added, interleaved with the member pages, as new directory entries
are required. A PDSE always occupies at least five pages of storage. It cannot be overwritten
by being opened for sequential output.
There are several advantages of using PDSE data sets over regular PDS. For a list of the
differences, see IBM z/OS DFSMS Using data sets, SC23-6855.
VSAM arranges records by an index key, by a relative byte address, or by a relative record
number. VSAM data sets are cataloged for easy retrieval.
Any type of VSAM data set can be in extended format. Extended-format data sets have a
different internal storage format than data sets that are not extended. This storage format
gives extended-format data sets additional usability characteristics and possibly better
performance due to striping. You can choose that an extended-format key-sequenced data
set be in the compressed format. Extended-format data sets must be SMS-managed.
For more information about VSAM data sets, see 4.4, “Virtual Storage Access Method” on
page 48.
The key field must be contiguous and each key’s contents must be unique. After it is
specified, the value of the key cannot be altered, but the entire record can be deleted. When a
new record is added to the data set, it is inserted in its logical collating sequence by key.
A KSDS has a data component and an index component. The index component tracks the
used keys and is used by VSAM to retrieve a record from the data component quickly when a
request is made for a record with a certain key.
A KSDS can have fixed or variable length records. A KSDS can be accessed in sequential
mode, direct mode, or skip sequential mode (meaning that you process sequentially, but
directly skip portions of the data set).
Records can be accessed sequentially or directly by relative byte address (RBA). When a
record is loaded or added, VSAM indicates its RBA. The RBA is the offset of the first byte of
the logical record from the beginning of the data set. The first record in a data set has an RBA
of 0, the second record has an RBA equal to the length of the first record, and so on. The
RBA of a logical record depends only on the record's position in the sequence of records. The
RBA is always expressed as a full-word binary integer.
An RRDS cluster has a data component only. Random load of an RRDS requires a user
program implementing such logic.
The primary difference among these types of data sets is how their records are stored and
accessed. VSAM arranges records by an index key, by relative byte address, or by relative
record number. Data organized by VSAM must be cataloged and is stored in one of four types
of data sets, depending on an application designer option.
z/OS
DFSMS AMS
NETWORK
HP/UX
AIX FILE MVS Data Sets
SYSTEM
SERVER
OMVS
TCP/IP
(z/OS NFS) Network
UNIX Hierarchical File
z/OS
System
DFSMS
NETWORK
FILE
SYSTEM
Other NFS CLIENT
Solaris Client and
Servers
You can allocate a basic format data set by using the DSNTYPE=BASIC parameter on the
DD statement, dynamic allocation (SVC 99), TSO/E ALLOCATE, or the access method
services ALLOCATE command, or the data class. If no DSNTYPE value is specified from any
of these sources, then its default is BASIC.
Large format data sets reduce the need to use multiple volumes for single data sets,
especially very large ones such as spool data sets, memory dumps, logs, and traces. Unlike
extended-format data sets, which also support more than 65,535 tracks per volume, large
format data sets are compatible with EXCP and do not need to be SMS-managed.
Data sets defined as large format must be accessed by using QSAM, BSAM, or EXCP.
Large format data sets have a maximum of 16 extents on each volume. Each large format
data set can have a maximum of 59 volumes. Therefore, a large format data set can have a
maximum of 944 extents (16 times 59).
A large format data set can occupy any number of tracks, without the limit of 65,535 tracks per
volume. The minimum size limit for a large format data set is the same as for other sequential
data sets that contain data: One track, which is about 56,000 bytes. Primary and secondary
space can both exceed 65,535 tracks per volume.
You can allocate a large format data set by using the DSNTYPE=LARGE parameter on the
DD statement, dynamic allocation (SVC 99), TSO/E ALLOCATE, or the access method
services ALLOCATE command.
For more information about large data sets, see IBM z/OS DFSMS Using data sets,
SC23-6855.
When defined as extended-format, sequential data sets can go beyond the 65,535 tracks
limitation per data set. For VSAM files, extended addressability needs to be enabled for the
data set in addition to extended-format.
An extended-format, striped sequential data set can contain up to approximately four billion
blocks. The maximum size of each block is 32 760 bytes.
You can use the BPAM, BSAM, QSAM, BDAM, and EXCP access methods with VIO data
sets. SMS can direct SMS-managed temporary data sets to VIO storage groups.
For more information about data set organization, data set types, and other data set
attributes, see IBM z/OS DFSMS Using data sets, SC23-6855.
A data set name can be one name segment, or a series of joined name segments. Each
name segment represents a level of qualification. For example, the data set name
HARRY.FILE.EXAMPLE.DATA is composed of four name segments. The first name on the left
is called the high-level qualifier (HLQ), and the last name on the right is the lowest-level
qualifier (LLQ).
Each name segment (qualifier) is 1 to 8 characters, the first of which must be alphabetic
(A - Z) or national (# @ $). The remaining seven characters are either alphabetic, numeric
(0 - 9), national, or a hyphen (-). Name segments are separated by a period (.).
Note: Including all name segments and periods, the length of the data set name must not
exceed 44 characters. Thus, a maximum of 22 name segments can make up a data set
name.
Sequential data striping can reduce the processing time that is required for long-running
batch jobs that process large, physical sequential data sets. Smaller sequential data sets can
also benefit because of DFSMS's improved buffer management for QSAM and BSAM access
methods for striped extended-format sequential data sets.
A stripe in DFSMS is the portion of a striped data set that is on a single volume. The records
in that portion are not always logically consecutive. The system distributes records among the
stripes so that the volumes can be read from or written to simultaneously to gain better
performance. Whether the data set is striped is not apparent to the application program.
You can write striped extended-format sequential data sets with the maximum physical block
size for the data set plus the control information required by the access method. The access
method writes data on the first volume selected until a track is filled. The next physical blocks
are written on the second volume selected until a track is filled, continuing until all volumes
selected have been used or no more data exists. Data is written again to selected volumes in
this way until the data set has been created. A maximum of 59 stripes can be allocated for a
data set. For striped data sets, the maximum number of extents on a volume is 123.
Physical sequential data sets cannot be extended if none of the stripes can be extended. For
VSAM data sets, each stripe can be extended to an available candidate volume if extensions
fail on the current volume.
Data classes
Only extended-format, SMS-managed data sets can be striped. To achieve that, you can use
data class to allocate sequential and VSAM data sets in extended format for the benefits of
compression (sequential and VSAM KSDS), striping, and large data set sizes.
Storage groups
SMS calculates the average preference weight of each storage group using the preference
weights of the volumes that will be selected if the storage group is selected for allocation.
SMS then selects the storage group that contains at least as many primary volumes as the
stripe count and has the highest average weight.
If there are no storage groups that meet these criteria, the storage group with the largest
number of primary volumes is selected. If multiple storage groups are tied for the largest
number of primary volumes, the one with the highest average weight is selected. If there are
still multiple storage groups that meet the selection criteria, SMS selects one at random.
For striped data sets, ensure that are enough separate paths are available to DASD volumes
in the storage group to allow each stripe to be accessible through a separate path. The
maximum number of stripes for physical sequential (PS) data sets is 59. For VSAM data sets,
the maximum number of stripes is 16. Only sequential or VSAM data sets can be striped.
To use data set separation, you must create a data set separation profile and specify the
name of the profile to the base configuration. During allocation, SMS attempts to separate the
data sets listed in the profile. A data set separation profile contains at least one data set
separation group.
Each data set separation group specifies whether separation is at the PCU or volume level,
whether it is required or preferred, and includes a list of data set names to be separated from
each other during allocation.
Several structures can be searched during a locate request on z/OS systems, including
these:
VTOC The volume table of contents is a sequential data set located in each
DASD volume that describes the data set contents of this volume. The
VTOC is used to find empty space for new allocations and to locate
non-VSAM data sets.
Master catalog This structure is where all catalog searches begin. The master catalog
contains information about system data sets, or points to the catalog that
has the information about the requested data set.
User catalog A user catalog is the next step in the search hierarchy. After the master
catalog points to a user catalog related to an Alias, the user catalog
retrieves the data set location information.
Alias A special entry in the master catalog that points to a user catalog that
coincides with the HLQ of a data set name. The alias is used to find in
which user catalog the data set location information exists. That means
that the data set with this HLQ is cataloged in that user catalog.
For detailed information about catalogs, see Chapter 6, “Catalogs” on page 103.
See z/OS MVS JCL Reference, SA22-7597 for information about UNIT and VOL parameters.
Each VTOC record contains information about the volume or data sets on the volume. These
records are called data set control block (DSCBs) and are described next.
DSCBs also describe the VTOC itself. The common VTOC access facility (CVAF) routines
automatically construct a DSCB when space is requested for a data set on the volume. Each
data set on a DASD volume has one or more DSCBs (depending on its number of extents)
describing space allocation and other control information such as operating system data,
device-dependent information, and data set characteristics. There are nine kinds of DSCBs,
each with a different purpose and a different format number.
The first record in every VTOC is the VTOC DSCB (format-4). The record describes the
device, the volume that the data set is on, the volume attributes, and the size and contents of
the VTOC data set itself. The next DSCB in the VTOC data set is a free-space DSCB
(format-5) that describes the unassigned (free) space in the full volume. The function of
various DSCBs depends on whether an optional Index VTOC is allocated in the volume. Index
VTOC is a sort of B-tree that helps make the search in VTOC faster.
For more information about VTOC and DSCB allocation and usage, see z/OS DFSMSdfp
Advanced Services, SC23-6861.
If the system detects a logical or physical error in a VTOC index, the system disables further
access to the index from all systems that might be sharing the volume. In that case, the VTOC
remains usable but with possibly degraded performance.
You use the INIT command to initialize volumes. The INIT command writes a volume label (on
cylinder 0, track 0) and a VTOC on the device for use by z/OS. It reserves and formats tracks
for the VTOC at the location specified by the user and for the number of tracks specified. If no
location is specified, tracks are reserved at the default location.
If the volume is SMS-managed, the STORAGEGROUP option must be declared to keep such
information (SMS-managed) in a format-4 DSCB.
For more information about how to use ICKDSF to maintain your DASD devices, see ICKDSF
R17 User's Guide, GC35-0033.
This chapter introduces you to EAV, and brief you about its architecture, usage, and
restrictions. It includes the following sections:
Traditional DASD capacity
Extended access volumes
EAV and IGDSMSxx parmlib member
EATTR attribute
Migration assistance tracker
However, the existing track addressing architecture has limited growth to relatively small GB
capacity volumes. This limitation has placed increasing strain on the 4-digit device number
limit and the number of unit control blocks (UCBs) that can be defined. The largest available
volume is one with 65,520 cylinders or approximately 54 GB, as shown in Figure 3-1.
Serialization
Granularity
release
Physical
3390-3 3390-9
volume "3390-54"
3 GB 9 GB 27 GB 54 GB
max cyls: 3339 max cyls: 10017 max cyls: 32760 max cyls: 65520
years
Rapid data growth on the z/OS platform is leading to a critical problem for various clients. As
a result, this limitation is becoming a real constraint on growing data on z/OS. Business
resilience solutions (GDPS, IBM HyperSwap®, and more) that provide continuous availability
are also driving this constraint.
Changes have been made in z/OS (in IOS code), in the channel subsystem (System Assist
Processor or SAP), and in DASD controllers to allow more than one I/O operation on the
same logical device. This is called parallel I/O, and it is available in two types:
Multiple allegiance
Parallel access volume (PAV)
This relief builds on prior technologies that were implemented in part to help reduce the
pressure on running out of device numbers. These include PAV and HyperPAV. PAV alias
UCBs can be placed in an alternate subchannel set. HyperPAV reduces the number of alias
UCBs over traditional PAVs and provides the I/O throughput required.
In other terms, multiple allegiance provides finer (than RESERVE/RELEASE) granularity for
serializing data on a volume. It gives the capability to support I/O requests from multiple
systems, one per system, to be concurrently active against the same logical volume, if they do
not conflict with each other. Conflicts occur when two or more I/O requests require access to
overlapping extents (an extent is a contiguous range of tracks) on the volume, and at least
one of the I/O requests involves writing of data.
Requests involving writing of data can run concurrently with other requests while they operate
on non-overlapping extents on the volume. Conflicting requests are internally queued in the
DASD controller. Read requests can always run concurrently regardless of their extents.
Without the MA capability, DS8000 generates a busy for the volume whenever one of the
systems issues a request against the volume, thereby causing the I/O requests to be queued
within the channel subsystem (CSS). However, this concurrency can be achieved as long as
no data accessed by one channel program can be altered through the actions of another
channel program.
PAV exploitation requires both software enablement and an optional feature on your
controller. PAV support must be installed on each controller. It enables the issuing of multiple
channel programs to a volume from a single system, and allows simultaneous access to the
logical volume by multiple users or jobs. Reads, and writes to other extents, can be satisfied
simultaneously.
PAV benefits
Workloads that are most likely to benefit from PAV functions being available include:
Volumes with many concurrently open data sets, such as volumes in a work pool
Volumes that have a high read to write ratio per extent
Volumes reporting high IOSQ times
For each z/OS image within the sysplex, aliases are used independently. WLM is not involved
in alias movement so it does not need to collect information to manage HyperPAV aliases.
Benefits of HyperPAV
HyperPAV has been designed to provide an even more efficient PAV function. When
implementing larger volumes, it provides a way to scale I/O rates without the need for
additional PAV alias definitions. HyperPAV uses IBM FICON® architecture to reduce
overhead, improve addressing efficiencies, and provide storage capacity and performance
improvements, as follows:
More dynamic assignment of PAV aliases improves efficiency.
The number of PAV aliases that are needed might be reduced, taking fewer from the 64 K.
device limitation and leaving more storage for capacity use.
Applications
do I/O to base UCB 08F0 Logical Subsystem (LSS) 0800
volumes UCB 0802
Alias UA=F0
Alias UA=F1
Alias UA=F2
Alias UA=F3
Applications z/OS Image
do I/O to base Base UA=01
volumes
UCB 08F0
UCB 0801
Base UA=02
UCB 08F1
Applications
do I/O to base UCB 08F3 P
volumes O
UCB 0802
O
UCB 08F2
L
EAV was a breakthrough in DASD storage capacity, allowing volumes to greatly expand the
65,520 cylinders limitation for each volume.
The benefit of this support is that the amount of z/OS addressable disk storage is further
significantly increased. This support provides relief for customers that are approaching the
4-digit device number limit by defining fewer, larger volumes to allocate data. This approach is
especially helpful for customers that use DASD copy and replication services, where the limit
of UCBs available can become a constraint.
Note: With the 3390 Model A, the model A refers to the model configured in the DS8000. It
has no association with the 3390A notation in HCD that indicates a PAV-alias UCB in the
z/OS operating system. The Model “A” was chosen so that it did not imply a particular
device size as previous models 3390-3 and 3390-9 did.
Multicylinder unit
A multicylinder unit (MCU) is a fixed unit of disk space that is larger than a cylinder. Currently,
on an EAV volume, a multicylinder unit is 21 cylinders and the number of the first cylinder in
each multicylinder unit is a multiple of 21.
The cylinder-managed space is space on the volume that is managed only in multicylinder
units. Cylinder-managed space begins at cylinder address 65,520. Each data set occupies an
integral multiple of multicylinder units. Space requests targeted for the cylinder-managed
space are rounded up to the next multicylinder unit. The cylinder-managed space only exists
on EAV volumes.
The 21-cylinder value for the MCU is the smallest unit that can map out the largest possible
EAV volume and stay within the index architecture with a block size of 8,192 bytes.
Additionally:
It is also a value that divides evenly into the 1 GB storage segments of an IBM DS8000.
These 1 GB segments are the allocation unit in the IBM DS8000 and are equivalent to
1,113 cylinders.
These segments are allocated in multiples of 1,113 cylinders starting at cylinder 65,520.
One of the more important EAV design points is that IBM maintains its commitment to
customers that the 3390 track format and image size, and tracks per cylinders, will remain the
same as the previous 3390 model devices. An application using data sets on an EAV is
comparable to how it runs today on 3390 “numerics” kind of models. The extended address
volume has two managed spaces:
The track-managed space
The cylinder-managed space
Cylinder-managed space
The cylinder-managed space is the space on the volume that is managed only in MCUs.
Cylinder-managed space begins at cylinder address 65,520. Each data set occupies an
integral multiple of multicylinder units. Space requests targeted for the cylinder-managed
space are rounded up to the next multicylinder unit. The cylinder-managed space exists only
on EAV volumes. A data set allocated in cylinder-managed space might have its requested
space quantity rounded up to the next MCU.
Track-managed space
The track-managed space is the space on a volume that is managed in track and cylinder
increments. All volumes today have track-managed space. Track-managed space ends at
cylinder number 65,519. Each data set occupies an integral multiple of tracks. The
track-managed space allows existing programs and physical migration products to continue to
work. Physical copies can be done from a non-EAV to an EAV and have those data sets
accessible.
VTOC index
The VTOC index enhances the performance of VTOC access. The VTOC index is a
physical-sequential data set on the same volume as the related VTOC. It consists of an index
of data set names in format-1 DSCBs contained in the VTOC and volume free space
information.
An SMS-managed volume requires an indexed VTOC. Otherwise, the VTOC index is highly
preferred. For more detailed information about VTOC and VTOC Index information related to
EAV volumes, see DFSMS: Extended Address Volume, REDP-5364.
For a detailed list of data sets supported on EAS space, see DFSMS: Extended Address
Volume, REDP-5364.
For a detailed list of data sets unsupported on EAS space, see DFSMS: Extended Address
Volume, REDP-5364.
Note: In a future release, various of these data sets might become EAS-eligible. All data
set types, even those listed here, can be allocated in the track-managed space on a device
with cylinder-managed space on an EAV volume. Eligible EAS data sets can be created
and extended anywhere on an EAV. Data sets that are not eligible for EAS processing can
only be created or extended in the track-managed portions of the volume.
A logical volume can be increased in size while the volume remains online to host systems for
the following types of volumes:
3390 model 3 to 3390 model 9
3390 model 9 to EAV volume sizes
Dynamic volume expansion can be used to expand volumes beyond 65,520 cylinders
without moving data or causing an application outage.
Dynamic volume expansion is performed by the DS8000 Storage Manager and can be
requested using its web GUI or through command line. 3390 volumes can be increased in
size, for example from a 3390 model 3 to a model 9 or a model 9 to a model A (EAV). z/OS
V1R11 introduces an interface that can be used to make requests for dynamic volume
expansion of a 3390 volume on a DS8000 from the system.
Note: For the dynamic volume expansion function, volumes cannot be in Copy Services
relationships (point-in-time copy, FlashCopy SE, Metro Mirror, Global Mirror, Metro/Global
Mirror, and z/OS Global Mirror) during expansion.
For more information about how to use DVE, see DFSMS: Extended Address Volume,
REDP-5364.
USEEAV(YES|NO)
YES This setting means that extended address volumes can be used to allocate new
data sets or to extend existing data sets to new volumes.
NO (Default) This setting means that SMS does not select any extended address
volumes during volume selection. Note that data sets might still exist on extended
address volumes in either the track-managed or cylinder-managed space of the
volume.
Note: You can use the SETSMS command to change the setting of USEEAV without
having to restart the system. This modified setting is in effect until the next IPL, when it
reverts to the value specified in the IGDSMSxx member of PARMLIB.
To make the setting change permanent, you must alter the value in SYS1.PARMLIB. The
syntax of the operator command is:
SETSMS USEEAV(YES|NO)
SMS requests will not use EAV volumes if the USEEAV setting in the IGDSMSxx parmlib
member is set to NO.
Specific allocation requests are failed. For non-specific allocation requests (UNIT=SYSDA),
EAV volumes are not selected. Messages indicating no space available are returned when
non-EAV volumes are not available.
For non-EAS eligible data sets, all volumes (EAV and non-EAV) are equally preferred (or they
have no preference). This is the same as today, with the exception that extended address
volumes are rejected when the USEEAV parmlib value is set to NO.
The BreakPointValue (0- 65520) is used by SMS in making volume selection decisions and
later by DADSM. If the allocation request is less than the BreakPointValue, the system
prefers to satisfy the request from free space available from the track-managed space.
If space is insufficient, the system uses the cylinder-managed space or uses both types of
space.
Note: You can use the SETSMS command to change the setting of BreakPointValue
without having to restart the system. This modified setting is in effect until the next IPL
when it reverts to the value specified in the IGDSMSxx member of PARMLIB. To make the
setting change permanent, you must alter the value in SYS1.PARMLIB. The syntax of the
operator command is:
SETSMS BreakPointValue(0-65520)
EAS-eligible data sets are defined to be those that can be allocated in the extended
addressing space and have extended attributes. This is sometimes referred to as
cylinder-managed space.
The EATTR data set level attribute specifies whether a data set can have extended attributes
(Format 8 and 9 DSCBs) and optionally be in EAS on an EAV. Valid values for the EATTR are
NO and OPT:
EATTR = OPT Extended attributes are optional. The data set can have extended attributes
and are in EAS. This is the default value for VSAM data sets if EATTR(OPT)
is not specified.
EATTR = NO No extended attributes. The data set cannot have extended attributes
(format-8 and format-9 DSCBs) or be in EAS. This is the default value for
non-VSAM data sets. This setting is equivalent to specifying EATTR=NO on
the job control language (JCL) and is applicable to all data set types.
Although data sets with EATTR=OPT are eligible to EAS, they can still be allocated in
track-managed devices, so first plan to implement EATTR=OPT to your data sets, and
implement EAV volumes later.
DFSMS provides an EAV migration assistance tracker program. The EAV migration
assistance tracker helps you to do the following tasks:
Identify select systems services by job and program name, where the starting programs
might require analysis for changes to use new services. The program calls are identified
as informational instances for possible migration actions. They are not considered errors
because the services return valid information.
Identify possible instances of improper use of returned information in programs, such as
parsing 28-bit cylinder numbers in output as 16-bit cylinder numbers. These instances are
identified as warnings.
Identify instances of programs that will either fail or run with an informational message if
they run on an EAV. These are identified as programs in error. The migration assistance
tracker flags programs with the following functions: When the target volume of the
operation is non-EAV, and the function started did not specify the EADSCB=OK keyword.
Note: Being listed in the tracker report does not imply that there is a problem. It is simply a
way to help you determine what to examine to see whether it needs to be changed.
For more information about how to use migration assistance tracker, see z/OS DFSMSdfp
Advanced Services, SC23-6861.
This section is intended to give you only an overview about what system utilities and data set
utilities are, along with their name and a brief description of their purpose. For more details
and to help you find the program that performs the function you need, see “Guide to Utility
Program Functions” in z/OS DFSMSdfp Utilities, SC26-7414.
Table 4-1 lists and describes system utilities that are provided by DFSMSdfp.
IEHPROGM Access Method Services, Build and maintain system control data.
PDF 3.2
IFHSTATR DFSMSrmm, EREP Select, format, and write information about tape
errors from the IFASMFDP tape.
These utilities allow you to manipulate partitioned, sequential, or indexed sequential data
sets, or PDSEs, which are provided as input to the programs. You can manipulate data
ranging from fields within a logical record to entire data sets. The data set utilities included in
this section cannot be used with VSAM data sets. You use the IDCAMS utility to manipulate
VSAM data set. For more information, see 4.3.2, “Starting the IDCAMS utility program” on
page 40.
IEBGENER or ICEGENER Copy records from a sequential data set, or convert a data set
from sequential organization to partitioned organization.
IEBIMAGE Modify, print, or link modules for use with the IBM 3800 Printing
Subsystem, the IBM 3262 Model 5, or the 4284 printer.
In contrast to other platforms, z/OS supports several types of access methods and data
organizations.
An access method defines the organization by which the data is stored and retrieved. DFSMS
access methods have their own data set structures for organizing data, macros, and utilities
to define and process data sets. It is an application choice, depending on the type of access
(sequential or random), to allow or disallow insertions and deletions, to pick up the most
adequate access method for its data.
Access methods are identified primarily by the data set organization to which they apply. For
example, you can use the basic sequential access method (BSAM) with sequential data sets.
Optionally, BDAM uses hardware keys. Hardware keys are less efficient than the optional
software keys in VSAM KSDS.
Note: Because BDAM tends to require the use of device-dependent code, it is not a
recommended access method. In addition, using keys is much less efficient than in VSAM.
BDAM is supported by DFSMS only to enable compatibility with other IBM operating
systems.
A member is a sequential file that is contained in the PDS or PDSE data set. When members
contain load modules (executable code in PDS) or program objects (executable code in
PDSE), the directory contains program attributes that are required to load and rebind the
member. Although UNIX files can contain program objects, program management does not
access UNIX files through BPAM.
VSAM arranges and retrieves logical records by an index key, relative record number, or
relative byte addressing (RBA). A logical record has an RBA, which is the relative byte
address of its first byte in relation to the beginning of the data set. VSAM is used for direct,
sequential, or skip sequential processing of fixed-length and variable-length records on
DASD. VSAM data sets (also named clusters) are always cataloged. There are five types of
cluster organization:
Entry-sequenced data set (ESDS)
This data set contains records in the order in which they were entered. Records are added
to the end of the data set and can be accessed sequentially or randomly through the RBA.
Key-sequenced data set (KSDS)
This data set contains records in ascending collating sequence of the contents of a logical
record field called key. Records can be accessed by using the contents of the key, or by an
RBA.
Linear data set (LDS)
This data set contains data that has no record boundaries. Linear data sets contain none
of the control information that other VSAM data sets do. Data in Virtual (DIV) is an optional
intelligent buffering technique that includes a set of assembler macros that provide
buffering access to VSAM linear data sets. For more information about DIV, see 4.4.13,
“VSAM: Data-in-virtual” on page 57.
Relative record data set (RRDS)
This data set contains logical records in relative record number order. The records can be
accessed sequentially or randomly based on this number. There are two types of relative
record data sets:
– Fixed-length RRDS: Logical records must be of fixed length.
– Variable-length RRDS: Logical records can vary in length.
All access method services commands have the following general structure:
COMMAND parameters ... [terminator]
The command defines the type of service requested, the parameters further describe the
service requested, and the terminator indicates the end of the command statement.
Time Sharing Option (TSO) users can use functional commands only. For more information
about modal commands, refer to z/OS DFSMS Access Method Services for Catalogs,
SC26-7394.
The automatic class selection (ACS) routines (established by your storage administrator) and
the associated SMS classes eliminate the need to use many access method services
command parameters. The SMS environment is discussed in more detail in Chapter 5,
“System-managed storage” on page 79.
You can call the access method services program in the following ways:
As a job or jobstep
From a TSO session
From within your own program
TSO users can run access method services functional commands from a TSO session as
though they were TSO commands.
For more information, refer to “Invoking Access Method Services from Your Program” in z/OS
DFSMS Access Method Services for Catalogs, SC26-7394.
/*
Each time that you enter an access method services command as a TSO command, TSO
builds the appropriate interface information and calls access method services. You can enter
one command at a time. The access method services processes the command completely
before TSO lets you continue processing.
To use IDCAMS and certain of its parameters from TSO/E, you must update the IKJTSOxx
member of SYS1.PARMLIB. Add IDCAMS to the list of authorized programs (AUTHPGM). For
more information, see z/OS DFSMS Access Method Services for Catalogs, SC26-7394.
ALTER Alters attributes of data sets, catalogs, tape library entries, and tape
volume entries that have already been defined.
DCOLLECT Collects data set, volume usage, and migration utility information.
DEFINE ALIAS Defines an alternate name for a user catalog or a non-VSAM data set.
DEFINE ALTERNATEINDEX Defines an alternate index for a KSDS or ESDS VSAM data set.
DEFINE CLUSTER Creates KSDS, ESDS, RRDS, VRRDS, and linear VSAM data sets.
DEFINE PATH Defines a path directly over a base cluster or over an alternate index
and its related base cluster.
DIAGNOSE Scans an integrated catalog facility BCS or a VVDS to validate the data
structures and detect structure errors.
IMPORT Connects user catalogs, and imports VSAM cluster and its integrated
catalog facility (ICF) catalogs information.
PRINT Used to print VSAM data sets, non-VSAM data sets, and catalogs.
VERIFY Causes a catalog to correctly reflect the end of a data set after an error
occurred while closing a VSAM data set. The error might have caused
the catalog to be incorrect.
Note: These commands cannot be used when access method services are run in TSO.
See z/OS DFSMS Access Method Services for Catalogs, SC26-7394, for a complete
description of the AMS modal commands.
The IDCAMS DCOLLECT command collects DASD performance and space occupancy data
in a sequential file that you can use as input to other programs or applications.
An installation can use this command to collect information about these items:
Active data sets: DCOLLECT provides data about space use and data set attributes and
indicators on the selected volumes and storage groups.
VSAM data set information: DCOLLECT provides specific information related to VSAM
data sets that are on the selected volumes and storage groups.
Data is gathered from the VTOC, VVDS, and DFSMShsm control data sets for both managed
and non-managed storage. ISMF provides the option to build the JCL necessary to run
DCOLLECT.
With the sample JCL shown in Figure 4-2 you can gather information about all volumes
belonging to the storage group STGGP001.
Generation data sets can be sequential, PDSs, PDSEs, or direct (BDAM). Generation data
sets cannot be UNIX files or VSAM data sets. The same GDG can contain SMS and
non-SMS data sets.
There are usability benefits to grouping related data sets using a function such as GDS. For
example, the catalog management routines can refer to the information in a special index
called a generation index in the catalog, which provides these benefits:
All data sets in the group can be referred to by a common name.
z/OS is able to keep the generations in chronological order.
Outdated or obsolete generations can be automatically deleted from the catalog by z/OS.
Another benefit is the ability to reference a new generation using the same JCL.
A GDG base is allocated in a catalog before the GDSs are cataloged. Each GDG is
represented by a GDG base entry. Use the access method services DEFINE command to
allocate the GDG base.
The GDG base is a construct that exists only in a user catalog, it does not exist as a data set
on any volume. The GDG base is used to maintain the GDS, which are the real data sets.
The number of GDSs in a GDG depends on the limit you specify when you create a new GDG
in the catalog. The maximum number of generations available is 255 for regular, before
z/OS 2.2, or 999 for extended GDGs on z/OS 2.2 and later releases.
A GDS has sequentially ordered absolute and relative names that represent its age. The
catalog management routines use the absolute generation name in the catalog. The relative
name is a signed integer used to refer to the most current (0), the next to most current (-1),
and so forth, generation.
The generation and version number are in the form GxxxxVyy, where xxxx is an unsigned
four-digit decimal generation number (0001 - 9999) and yy is an unsigned two-digit decimal
version number (00 - 99). For example:
A.B.C.G0001V00 is generation data set 1, version 0, in generation data group A.B.C.
A.B.C.G0009V01 is generation data set 9, version 1, in generation data group A.B.C.
The number of generations and versions is limited by the number of digits in the absolute
generation name, there can be a maximum of 9,999 generations. Each generation can have
up to 100 versions. The system automatically maintains the generation number.
The value of the specified integer tells the operating system what generation number to
assign to a new generation data set, or it tells the system the location of an entry representing
a previously cataloged old generation data set.
When you use a relative generation number to catalog a generation, the operating system
assigns an absolute generation number and a version number of V00 to represent that
generation. The absolute generation number assigned depends on the number last assigned
and the value of the relative generation number that you are now specifying. For example, if in
a previous job generation, A.B.C.G0006V00 was the last generation cataloged, and you
specify A.B.C(+1), the generation now cataloged is assigned the number G0007V00.
Though any positive relative generation number can be used, a number greater than 1 can
cause absolute generation numbers to be skipped for a new generation data set. For
example, if you have a single step job and the generation being cataloged is a +2, one
generation number is skipped. However, in a multiple step job, one step might have a +1 and
a second step a +2, in which case no numbers are skipped. The mapping between relative
and absolute numbers is kept until the end of the job.
Extended GDG
The extended attribute allows system programmers to extend the maximum number of active
generations within the GDG base from 255 to 999. This increase provides better flexibility to
keep all required versions under GDG control, and reduce the requirement of NOSCRATCH
GDGs in your systems. For more information about extended GDGs, see IBM z/OS V2R2:
Storage Management and Utilities, SG24-8289.
Creating GDGs with the NOSCRATCH parameter can result in generation overlap if rolled off
versions are not deleted/renamed before the GDG version reaches 9999 and the counter is
reset to 0001. If version 0001 still exists, a “duplicate data set name” error is issued when an
attempt is made to catalog the new GDS.
GDSs can be in a deferred roll-in state if the job never reached end-of-step or if they were
allocated as DISP=(NEW,KEEP) and the data set is not system-managed. However, GDSs in
a deferred roll-in state can be referred to by their absolute generation numbers. You can use
the IDCAMS command ALTER ROLLIN to roll in these GDSs.
For more information about generation data groups, see z/OS DFSMS: Using Data Sets,
SC26-7410.
The logical record is divided into fields by the application program, such as the name of the
item, code, and so on. One or more contiguous fields can be defined as a key field to VSAM,
and a specific logical record can be retrieved directly by its key value.
Logical records of VSAM data sets are stored differently from logical records in non-VSAM
data sets.
Based on the CI size, VSAM calculates the best size of the physical block to better use the
3390/3380 logical track. The CI size can be from 512 bytes to 32 KB. A CI contents depends
on the cluster organization.
The size of CIs can vary from one component to another, but all the CIs within the data or
index component of a particular cluster data set must be of the same length. The CI
components and properties can vary, depending on the data set organization. For example,
an LDS does not contain CIDFs and RDFs in its CI. All of the bytes in the LDS CI are data
bytes.
CAs are needed to implement the concept of splits. The size of a VSAM file is always a
multiple of the CA size, and VSAM files are extended in units of CAs.
4.4.5 Component
A component in systems with VSAM is a named, cataloged collection of stored records, such
as the data component or index component of a key-sequenced file or alternate index. A
component is a set of CAs. It is the VSAM terminology for a z/OS data set. A component has
an entry in the VTOC. An example of a component can be the data set containing only data
for a KSDS VSAM organization. A VSAM can have up to two components: Data and Index.
Data component
The data component is the part of a VSAM cluster, alternate index, or catalog that contains
the data records. All VSAM cluster organizations have the data component.
Index component
The index component is a collection of records containing data keys and pointers (RBA). The
data keys are taken from a fixed defined field in each data logical record. The keys in the
index logical records are compressed (rear and front). The RBA pointers are compacted.
Only KSDS and VRRDS VSAM data set organizations have the index component.
Using the index, VSAM is able to retrieve a logical record from the data component when a
request is made randomly for a record with a certain key. A VSAM index can consist of more
than one level (binary tree). Each level contains pointers to the next lower level. Because
there are random and sequential types of access, VSAM divides the index component into
two parts: The sequence set and the index set.
4.4.6 Cluster
A cluster is a named structure that consists of a group of related components. VSAM data
sets can be defined with either the DEFINE CLUSTER command or the ALLOCATE
command. The cluster is a set of components that have a logical binding between them. For
example, a KSDS cluster is composed of the data component and the index component.
TThe concept of cluster was introduced to improve the flexibility of JCL while accessing
VSAM datasets. If you want to access a KSDS normally, just use the cluster’s name on a DD
card. Otherwise, if you want special processing with just the data, use the data component
name on the DD card.
4.4.7 Sphere
A sphere is a VSAM cluster and its associated data sets. The cluster is originally defined with
the access method services ALLOCATE command, the DEFINE CLUSTER command, or
through JCL. The most common use of the sphere is to open a single cluster. The base of the
sphere is the cluster itself.
Spanned records
Spanned records are logical records that are larger than the CI size. They are needed when
the application requires very long logical records. To have spanned records, the file must be
defined with the SPANNED attribute at the time it is created. Spanned records are allowed to
extend across or “span” control interval boundaries, but not beyond control area limits. The
RDFs describe whether the record is spanned or not.
A spanned record always begins on a control interval boundary, and fills one or more control
intervals within a single control area. A spanned record does not share the CI with any other
records, so the free space at the end of the last segment is not filled with the next record. This
free space is only used to extend the spanned record.
Splits
CI splits and CA splits occur as a result of data record insertions (or increasing the length of
an existing record) in KSDS and VRRDS organizations. If a logical record is to be inserted (in
key sequence) and there is not enough free space in the CI, the CI is split. Approximately half
the records in the CI are transferred to a free CI provided in the CA, and the record to be
inserted is placed in the original CI.
If there are no free CIs in the CA and a record is to be inserted, a CA split occurs. Half the CIs
are sent to the first available CA at the end of the data component. This movement creates
free CIs in the original CA, and the record to be inserted causes a CI split.
Sequence set
The sequence set is the lowest level of index. It directly points (through an RBA) to the data CI
in the CA of the data component. Each index logical record has these functions:
Maps one CI in the data component
Contains pointers and high key information for the data CI
Index set
The records in all levels of the index above the sequence set are called the index set. An entry
in an index set logical record consists of the highest possible key in an index record in the
next lower level, and a pointer to the beginning of that index record. The highest level of the
index always contains a single index CI.
The structure of VSAM prime indexes is built to create a single index record at the lowest level
of the index. If there is more than one sequence-set-level record, VSAM automatically builds
another index level.
Alternate index
The alternate index is a VSAM function that allows logical records of a KSDS or ESDS to be
accessed sequentially and directly by more than one key field. The cluster that has the data is
called the base cluster. An alternate index cluster is then built from the base cluster. Alternate
indexes eliminate the need to store the same data in different sequences in multiple data sets
for the purposes of various applications. Each alternate index is a KSDS cluster that consists
of an index component and a data component.
The records in the alternate index index component contain the alternate key and the RBA
pointing to the alternate index data component. The records in the alternate index data
component contain the alternate key value itself and all the primary keys corresponding to the
alternate key value (pointers to data in the base cluster). The primary keys in the logical
record are in ascending sequence within an alternate index value.
Any field in the base cluster record can be used as an alternate key. It can also overlap the
primary key (in a KSDS), or any other alternate key. The same base cluster can have several
alternate indexes that vary the alternate key. There can be more than one primary key value
per the same alternate key value. For example, the primary key might be an employee
number and the alternate key might be the department name. Obviously, the same
department name can have several employee numbers.
Alternate index cluster is created with the IDCAMS DEFINE ALTERNATEINDEX command. It
is then populated with the BLDINDEX command. Before a base cluster can be accessed
through an alternate index, a path must be defined. A path provides a way to gain access to
the base data through a specific alternate index. To define a path, use the DEFINE PATH
command.
SHAREOPTIONS (1,x)
The data set can be shared by any number of users for read access (open for input), or it can
be accessed by only one user for read/write access (open for output). If the data set is open
for output by one user, a read or read/write request by another user will fail. With this option,
VSAM ensures complete data integrity for the data set. When the data set is already open for
RLS processing, any request to open the data set for non-RLS access will fail.
SHAREOPTIONS (2,x)
The data set can be shared by one user for read/write access, and by any number of users for
read access. If the data set is open for output by one user, another open for output request
will fail, but a request for read access will succeed. With this option, VSAM ensures write
integrity. If the data set is open for RLS processing, non-RLS access for read is allowed.
VSAM provides full read and write integrity for its RLS users, but no read integrity for non-RLS
access.
SHAREOPTIONS (3,x)
The data set can be opened by any number of users for read and write request. VSAM does
not ensure any data integrity. It is the responsibility of the users to maintain data integrity by
using enqueue and dequeue macros. This setting does not allow any type of non-RLS access
while the data set is open for RLS processing.
SHAREOPTIONS (4,x)
The data set can be fully shared by any number of users. For each request, VSAM refreshes
the buffers used for direct processing. This setting does not allow any non-RLS access when
the data set is already open for VSAM RLS or DFSMStvs processing. If the data set is
opened in non-RLS mode, a VSAM RLS or DFSMStvs open is allowed. As in
SHAREOPTIONS 3, each user is responsible for maintaining both read and write integrity for
the data that the program accesses.
For more information about VSAM share options, see z/OS DFSMS: Using Data Sets,
SC26-7410.
When initially loading a KSDS data set, records must be presented to VSAM in key sequence.
This loading can be done through the IDCAMS VSAM utility named REPRO. The index for a
key-sequenced data set is built automatically by VSAM as the data set is loaded with records.
When a data CI is completely loaded with logical records, free space, and control information,
VSAM makes an entry in the index. The entry consists of the highest possible key in the data
control interval and a pointer to the beginning of that control interval.
If VSAM does not find a record with the key that you want, the application receives a return
code indicating that the record was not found.
HDR 67 95
Index
HDR 38 67 HDR 95 Set
Index
Component
H H H
D 7 11 14 21 26 38 D 43 50 54 57 64 67 D 71 75 78 85 92 95 Sequence
R R R Set
2 5 7 39 41 43 68 69
8 9 44 45 46 72 73 74
12 13 14 51 53 54 76 77 78
Data
Component 15 16 19 55 56 57 79 80 85
22 23 26 58 61 62 86 89
31 35 38 65 66 67 93 94 95
Control
Interval Control Area Control Area Control Area
Application
Figure 4-5 Processing an indexed VSAM cluster: Direct access
Existing records can never be deleted. If the application wants to delete a record, it must flag
that record as inactive. As far as VSAM is concerned, the record is not deleted. Records can
be updated, but without length change.
ESDS organization is suited for sequential processing with variable records, but in a few read
accesses you need a direct (random) access by key (here using the alternate index cluster).
Application program:
GET NEXT
CI 1
C
R R
RECORD RECORD RECORD RECORD I
UNUSED SPACE D D
1 2 3 4 D
F F
F
RBA 0
CI 2
C
R R R R
RECORD RECORD RECORD RECORD UNUSED I
D D D D
5 6 7 8 SPACE D
F F F F
F
RBA 4096
CI 3
C
R R
RECORD RECORD I
UNUSED SPACE D D
9 10 D
F F
F
RBA 8192
CI 4
C
I
UNUSED SPACE
D
F
RBA 12288
For more information about ESDS processing, see VSAM Demystified, SG24-6105.
Figure 4-7 shows a typical processing of a VSAM fixed-length RRDS data set.
Application program:
GET Record 26
C
R R
CI 0 SLOT 1 SLOT 2 SLOT 3 SLOT 4 SLOT 5 D
F
D
F
I
D
F
C
O R R
C
T R
R E C
CI 2
R R
I
A SLOT 11 SLOT 12 SLOT 13 SLOT 14 SLOT 15 D D
D
O F F
F
L
C
CI 3
R R
I
SLOT 16 SLOT 17 SLOT 18 SLOT 19 SLOT 20 D
F
D
F
D
F
C
R R
CI 0 SLOT 21 SLOT 22 SLOT 23 SLOT 24 SLOT 25 D
F
D
F
I
D
F
C
O R R
C
T R
R E C
CI 2
R R
I
A SLOT 31 SLOT 32 SLOT 33 SLOT 34 SLOT 35 D D
D
O F F
F
L
C
R R
CI 3 SLOT 36 SLOT 37 SLOT 38 SLOT 39 SLOT 40 D
F
D
F
I
D
F
For extended information about RRDS processing, see VSAM Demystified, SG24-6105.
Therefore, all LDS bytes are data bytes. Logical records must be blocked and deblocked by
the application program (although logical records do not exist, from the point of view of
VSAM).
IDCAMS is used to define a linear data set. An LDS has only a data component. An LDS data
set is just a physical sequential VSAM data set that consists of 4 KB physical records, but with
a revolutionary buffer technique called DIV. A linear data set is processed as an
entry-sequenced data set, with certain restrictions.
When a linear data set is accessed with the DIV macro, it is referred to as the data-in-virtual
object or the data object.
Data is read into main storage by the paging algorithms only when that block is actually
referenced. During real storage manager (RSM) page-steal processing, only changed pages
are written to the cluster in DASD. Unchanged pages are discarded because they can be
retrieved again from the permanent data set.
DIV is designed to improve the performance of applications that process large files
non-sequentially and process them with significant locality of reference. It reduces the
number of I/O operations that are traditionally associated with data retrieval. Likely candidates
are large arrays or table files.
For information about how to use data-in-virtual, see z/OS MVS Programming: Assembler
Services Guide, SA22-7605.
The objective of a buffer pool is to avoid I/O operations in random accesses (due to revisiting
data) and to make these I/O operations more efficient in sequential processing, improving
performance.
For more efficient use of virtual storage, buffer pools can be shared among clusters using
locally or globally shared buffer pools. There are four types of resource pool management,
called modes, defined according to the technique used to manage them:
Nonshared resources (NSR)
Local shared resources (LSR)
Global shared resources (GSR)
Record-level shared resources (RLS)
These modes can be declared in the ACB macro of the VSAM data set (MACRF keyword)
and are described in the following sections.
Non-shared resource
Non-shared resource (NSR) is the default VSAM buffering technique. The following are some
of the characteristics of NSR buffers:
The resource pool is implicitly constructed at data set open time.
The buffers are not shared among VSAM data sets. Only one cluster has CIs in this
resource pool.
Buffers are located in the private area.
For sequential reads, VSAM uses the read-ahead function. When the application finishes
processing half the buffers, VSAM schedules an I/O operation for that half of the buffers.
This process continues until a CA boundary is encountered. The application must wait
until the last I/O to the CA is done before proceeding to the next CA. The I/O operations
are always scheduled within CA boundaries.
For sequential writes, VSAM postpones the writes to DASD until half the buffers are filled
by the application. Then VSAM schedules an I/O operation to write that half of the buffers
to DASD. The I/O operations are always scheduled within CA boundaries.
CIs are discarded as soon as they are used by using a sequential algorithm to keep CIs in
the resource pool.
There is dynamic addition of strings. Strings are like cursors. Each string represents a
position in the data set for the requested record.
For random access, there is no look-ahead, but the algorithm remains sequential.
GSR is not commonly used by applications, so consider using VSAM RLS instead. For extra
information about LSR, see VSAM Demystified, SG24-6105.
Record-level sharing
RLS is the implementation of VSAM data sharing. Record-level sharing is discussed in detail
in Chapter 7, “DFSMS Transactional VSAM Services” on page 119.
For more information about NSR, LSR, and GSR, see VSAM Demystified, SG24-6105.
Usually, SMB allocates many more buffers than are allocated without SMB. Performance
improvements can be dramatic with random access (particularly when few buffers were
available). The use of SMB is transparent from the point of view of the application, so no
application changes are needed.
SMB is available to a data set when all of the following conditions are met:
It is an SMS-managed data set.
It is in extended format (DSNTYPE = EXT in the data class).
The application opens the data set for NSR processing.
If all of the required conditions are met, SMB is started when option SYSTEM or an SMB
processing technique is used in the fields described previously. SMB is disabled when USER
is entered instead (USER is the default). Because JCL information takes precedence over
data class information, installations can enable or disable SMB for some executions.
SMB uses formulas to calculate the storage and buffer numbers needed for a specific access
type. SMB takes the following actions:
It changes the defaults for processing VSAM data sets. This action enables the system to
take better advantage of current and future hardware technology.
It initiates a buffering technique to improve application performance. The technique is one
that the application program does not specify. You can choose or specify any of the four
processing techniques that SMB implements:
Direct Optimized (DO) The DO processing technique optimizes for totally random
record access. This technique is appropriate for
applications that access records in a data set in totally
random order. This technique overrides the user
specification for NSR buffering with an LSR implementation
of buffering.
Sequential Optimized (SO) The SO technique optimizes processing for record access
that is in sequential order. This technique is appropriate for
backup and for applications that read the entire data set or
a large percentage of the records in sequential order.
Direct Weighted (DW) This technique is optimal when most of the processing is
direct, and some is sequential. DW processing provides the
minimum read-ahead buffers for sequential retrieval and
the maximum index buffers for direct requests.
Sequential Weighted (SW) This technique is optimal when most of the processing is
sequential processing, and some is direct. This technique
uses read-ahead buffers for sequential requests and
provides additional index buffers for direct requests. The
read-ahead will not be as large as the amount of data
transferred with SO.
For more information about the use of SMB, see VSAM Demystified, SG24-6105.
When allocating new data sets or extending existing data sets to new volumes, SMS volume
selection frequently calls SRM to select the best volumes. Unfortunately, SRM might select
the same set of volumes that currently have the lowest I/O delay. Poor performance or single
points of failure might occur when a set of functional-related critical data sets are allocated
onto the same volumes. SMS provides a function to separate their critical data sets, such as
DB2 partitions, onto different volumes to prevent DASD hot spots and reduce I/O contention.
This technique provides a facility for an installation to separate functional-related critical data
sets onto different extent pools and volumes for better performance and to avoid single points
of failure.
To use data set separation, you must create a data set separation profile and specify the
name of the profile to the base configuration. During allocation, SMS attempts to separate the
data sets listed in the profile.
A data set separation profile contains at least one data set separation group. Each data set
separation group specifies whether separation is at the PCU or volume level, and whether it is
required or preferred. It also includes a list of data set names to be separated from each other
during allocation.
For details about data set separation implementation and syntax, see z/OS DFSMSdfp
Storage Administration Reference, SC26-7402.
Important: Use data set separation only for a small set of mission-critical data.
DFSORT, together with DFSMS and RACF, form the strategic product base for the evolving
system-managed storage environment. DFSORT is designed to optimize the efficiency and
speed with which operations are completed through synergy with processor, device, and
system features (for example, memory objects, IBM Hiperspace™, data space, striping,
compression, extended addressing, DASD and tape device architecture, processor memory,
and processor cache).
You can use DFSORT to do simple application tasks such as alphabetizing a list of names, or
you can use it to aid complex tasks such as taking inventory or running a billing system. You
can also use the record-level editing capability of DFSORT to perform data management
tasks.
For most of the processing done by DFSORT, the whole data set is affected. However, certain
forms of DFSORT processing involve only certain individual records in that data set.
DFSORT has utilities such as ICETOOL, which is a multipurpose DFSORT utility that uses
the capabilities of DFSORT to perform multiple operations on one or more data sets in a
single step.
Tip: You can use the ICEGENER facility of DFSORT to achieve faster and more efficient
processing for applications that are set up to use the IEBGENER system utility. For more
information, see z/OS DFSORT Application Programming Guide, SC26-7523.
You can use the DFSMSdss to back up, copy, dump, move, or restore data in your systems.
DFSMSdss can be called by JCL or by external programs, such as DFSMShsm, to perform
data movement. It also participates in disaster recovery solutions, by allowing the recovery of
your systems from a stand-alone DFSMSdss restore function, or copy and replication
services, such as GDPS solutions.
During a restore operation, the data is processed the same way that it is dumped because
physical and logical dump tapes have different formats. If a data set is dumped logically, it is
restored logically, and if it is dumped physically, it is restored physically. A data set restore
operation from a full volume dump is a physical data set restore operation.
Logical processing
A logical copy, dump, or restore operation treats each data set and its associated information
as a logical entity, and processes an entire data set before beginning the next one.
Each data set is moved by tracks from the source device and is potentially written to the target
device as a set of data records, allowing data movement between devices with different track
and cylinder configurations. Checking of data record consistency is not performed during the
dump operation.
Catalogs and VTOCs are used to select data sets for logical processing. If you do not specify
input volumes, the catalogs are used to select data sets for copy and dump operations. If you
specify input volumes using the LOGINDDNAME, LOGINDYNAM, or STORGRP keywords on
the COPY or DUMP command, DFSMSdss uses VTOCs to select data sets for processing.
Physical processing
Physical processing moves data based on physical track images. Because data movement is
carried out at the track level, only target devices with track sizes equal to those of the source
device are supported. Physical processing operates on volumes, ranges of tracks, or data
sets. For data sets, it relies only on volume information (in the VTOC and VVDS) for data set
selection, and processes only that part of a data set residing on the specified input volumes.
Attention: Take care when using the TRACKS keyword with the COPY and RESTORE
commands. The TRACKS keyword should be used only for a data recovery operation.
For example, you can use it to “repair” a bad track in the VTOC or a data set, or to
retrieve data from a damaged data set. You cannot use it in place of a full-volume or a
logical data set operation. Doing so can destroy a volume or impair data integrity.
You specify the data set keyword on the DUMP command and input volumes with the
INDDNAME or INDYNAM parameter. This situation produces a physical data set dump.
The RESTORE command is run and the input volume is created by a physical dump
operation.
For detailed information about the stand-alone service and other DFSMSdss information, see
z/OS DFSMSdss Storage Administration Reference, SC35-0424, and z/OS DFSMSdss
Storage Administration Guide, SC35-0423.
Availability management is used to make data available by automatically copying new and
changed data set to backup volumes.
Space management is used to manage DASD space by enabling inactive data sets to be
moved off fast-access storage devices, thus creating free space or new allocations.
DFSMShsm also provides for other supporting functions that are essential to your
installation's environment. For further information about DFSMShsm, see z/OS DFSMShsm
Storage Administration Guide, SC35-0421 and z/OS DFSMShsm Storage Administration
Reference, SC35-0422.
The data sets mentioned in this section are critical to DFSMShsm, and the loss of any of
these data sets can potentially result in data loss. For this reason, create backups of
DFSMShsm CDSs.
You can achieve that by using SETSYS CDSVERSIONBACKUP command. For more
information about CDS data sets and how to create the backup files, see z/OS DFSMShsm
Implementation and Customization Guide, SC23-6869.
For more information about DFSMShsm devices, see z/OS DFSMShsm Implementation and
Customization Guide, SC23-6869.
You can store the copies on site as protection from media damage, or offsite as protection
from site damage. DFSMShsm also provides disaster backup and recovery for user-defined
groups of data sets (aggregates) so that you can restore critical applications at the same
location or at an offsite location.
SMS-managed Non-SMS-managed
Primary and
Storage Groups
Secondary Volumes
(volumes)
User
Catalog
DFSMShsm
Control
Backup Data
Sets
Functions
TAPE
Note: You must also have DFSMSdss to use the DFSMShsm functions.
Availability management ensures that a recent copy of your DASD data set exists. The
purpose of availability management is to ensure that lost or damaged data sets can be
retrieved at the most current possible level. DFSMShsm uses DFSMSdss as a fast data
mover for backups. Availability management automatically and periodically performs the
following functions:
1. Copy all the data sets on DASD volumes to tape volumes
2. Copy the changed data sets on DASD volumes (incremental backup) either to other DASD
volumes or to tape volumes
DFSMShsm minimizes the space occupied by the data sets on the backup volume by using
compression and stacking.
The attribute descriptions explain the attributes to be added to the previously defined storage
groups and management classes. Similarly, the descriptions of DFSMShsm commands relate
to commands to be added to the ARCCMDxx member of SYS1.PARMLIB.
Two groups of tasks are performed for availability management: Dump tasks and backup
tasks. Availability management is composed of the following functions:
Aggregate backup and recovery (ABARS)
Automatic physical full-volume dump
Automatic incremental backup
Automatic control data set backup
Command dump and backup
Command recovery
Disaster backup
Expiration of backup versions
Fast replication backup and recovery
These common queues use XCF messaging along with a master host to receive, and
distribute the workload to available hosts. There can be only one master host at a time, and
several submitters and processing hosts. If the master host becomes offline, another
available host can assume the master role.
DFSMShsm improves DASD space usage by keeping only active data on fast-access storage
devices. It automatically frees space on user volumes by deleting eligible data sets, releasing
overallocated space, and moving low-activity data to lower cost-per-byte devices, even if the
job did not request tape. Figure 4-10 shows a sample space management processing
performed by DFSMShsm.
SMS-managed Non-SMS-managed
Primary
Storage Groups
Volumes
(volumes)
User
Catalog
DFSMShsm
Control
Data
Migration Sets
Level 1 DASD
It is possible to have more than one z/OS image sharing a DFSMShsm policy. In this case,
one of the DFSMShsm images is the primary host and the others are secondary. The primary
HSM host is identified by HOST= in the HSM startup and is responsible for these tasks:
Hourly space checks
During auto backup: CDS backup, backup of ML1 data sets to tape
During auto dump: Expiration of dump copies and deletion of excess dump VTOC copy
data sets
During secondary space management (SSM): Cleanup of MCDS, migration volumes, and
L1-to-L2 migration
If you are running your z/OS HSM images in sysplex (parallel or basic), you can use
secondary host promotion to allow a secondary image to assume the primary image's tasks if
the primary host fails.
To assign a characteristic for a tape volume/data set using an SMS MC, the following
conditions must be met:
MC can apply to both system-managed tape and non-system-managed tape (using
&ACSENVIR='RMMVRS).
The MC should exist and V2R3 is required.
The created data set should be SMS-supported and be on a TCDB volume.
MGMTCLAS must be specified in JCL DD statement.
When MCATTR=NONE, MC will not have any effect on an attribute.
The following RMM PARMLIB options should be set:
SMSACS(YES) and MCATTR(ALL/VRSELXDI)
For more information about using management class to retain your tape data, see z/OS
DFSMSrmm Managing and Using Removable Media, SC23-6873.
DFSMSrmm manages all tape media, and other removable media you define to it. For
example, DFSMSrmm can record the shelf location for optical disks and track their vital
record status. However, it does not manage the objects on optical disks. The DFSMSrmm
manages different levels of storage components and locations, including these:
Library management
DFSMSrmm can manage a removable media library, including system-managed manual
tape libraries and automated tape libraries. Non-system-managed or traditional tape
libraries, including automated libraries such as a library under Basic Tape Library Support
(BTLS) control.
Shelf management
DFSMSrmm groups information about removable media by shelves into a central online
inventory, and tracks the volumes on those shelves. DFSMSrmm can manage the shelf
space that you define in your removable media library and in your storage locations.
Volume management
DFSMSrmm manages the movement and retention of tape volumes throughout their
lifecycle.
Data set management
DFSMSrmm records information about the data sets on tape volumes. DFSMSrmm uses
the data set information to validate volumes and to control the retention and movement of
those data sets.
For more information about DFSMSrmm, see z/OS DFSMSrmm Guide and Reference,
SC26-7404 and z/OS DFSMSrmm Implementation and Customization Guide, SC26-7405.
In the removable media library, you store your volumes in “shelves,” where each volume
occupies a single shelf location. This shelf location is referred to as a rack number in the
DFSMSrmm TSO subcommands and ISPF dialog. A rack number matches the volume’s
external label.
DFSMSrmm uses the external volume serial number to assign a rack number when adding a
volume, unless you specify otherwise. The format of the volume serial that you define to
DFSMSrmm must be one to six alphanumeric characters. The rack number must be six
alphanumeric or national characters.
You can have several automated tape libraries or manual tape libraries. You use an
installation-defined library name to define each automated tape library or manual tape library
to the system. DFSMSrmm treats each system-managed tape library as a separate location
or destination.
All tape media and drives that are supported by z/OS are supported in this environment.
Using DFSMSrmm, you can fully manage all types of tapes in a non-system-managed tape
library.
Storage location
Storage locations are not part of the removable media library because the volumes in storage
locations are not generally available for immediate use. A storage location consists of shelf
locations that you define to DFSMSrmm. A shelf location in a storage location is identified by
a bin number. Storage locations are typically used to store removable media that are kept for
disaster recovery or vital records. DFSMSrmm manages two types of storage locations:
Installation-defined storage locations and DFSMSrmm built-in storage locations.
You can define an unlimited number of installation-defined storage locations, using any
eight-character name for each storage location. Within the installation-defined storage
location, you can define the type or shape of the media in the location. You can also define
the bin numbers that DFSMSrmm assigns to the shelf locations in the storage location. You
can request DFSMSrmm shelf-management when you want DFSMSrmm to assign a specific
shelf location to a volume in the location.
You can also use the DFSMSrmm built-in storage locations: LOCAL, DISTANT, and
REMOTE. Although the names of these locations imply their purpose, they do not mandate
their actual location. All volumes can be in the same or separate physical locations.
For example, an installation can have the LOCAL storage location onsite as a vault in the
computer room, the DISTANT storage location can be a vault in an adjacent building, and the
REMOTE storage location can be a secure facility across town or in another state.
DFSMSrmm automatically records information about data sets on tape volumes so that you
can manage the data sets and volumes more efficiently. When all the data sets on a volume
have expired, the volume can be reclaimed and reused. You can optionally move volumes that
are to be retained to another location.
DFSMSrmm helps you manage your tape volumes and shelves at your primary site and
storage locations by recording information in a DFSMSrmm control data set.
DFSMSrmm manages the movement of volumes among all library types and storage
locations. This feature lets you control where a volume, and therefore a data set, resides, and
how long it is retained.
IBM 3494
RMM CDS
DFSMSrmm helps you manage the movement of your volumes and retention of your data
over their full life, from initial use to the time they are retired from service. These are some of
the functions that DFSMSrmm performs:
Automatically initializing and erasing volumes
Recording information about volumes and data sets as they are used
Expiration processing
Identifying volumes with high error levels that require replacement
To make full use of all of the DFSMSrmm functions, you specify installation setup options and
define retention and movement policies. DFSMSrmm provides you with utilities to implement
the policies that you define. If you want to learn more about DFSMSrmm functions, check
DFSMSrmm Primer, SG24-5983.
When performing tape and data set management, DFSMSrmm also considers the time that
the data was created, to ensure that the data is deleted only after the correct retention was
reached.
If your business requires transaction systems, the batch window can also be a high cost.
Additionally, you must pay for staff to install, monitor, and operate your storage hardware
devices, for electrical power to keep each piece of storage hardware cool and running, and for
floor space to house the hardware. Removable media, such as optical and tape storage, cost
less per gigabyte (GB) than online storage, but they require additional time and resources to
locate, retrieve, and mount.
To allow your business to grow efficiently and profitably, you need to find ways to control the
growth of your information systems and use your current storage more effectively.
The DFSMS software product, together with hardware products and installation-specific
requirements for data and resource management, comprises the key to system-managed
storage in a z/OS environment.
The heart of DFSMS is the storage management subsystem (SMS). Using SMS, the storage
administrator defines policies that automate the management of storage and hardware
devices. These policies describe data allocation characteristics, performance and availability
goals, backup and retention requirements, and storage requirements for the system. SMS
governs these policies for the system and the ISMF provides the user interface for defining
and maintaining the policies.
DFSMS is a set of products, and one of these products, DSFMSdfp, is mandatory for running
z/OS. DFSMS is the central component of both system-managed and non-system-managed
storage environments.
DFSMS environment
The DFSMS environment consists of a set of hardware and IBM software products that
together provide a system-managed storage solution for z/OS installations.
DFSMS uses a set of constructs, user interfaces, and routines (using the DFSMS products)
that allow the storage administrator to better manage the storage system. The core logic of
DFSMS, such as the automatic class selection (ACS) routines, ISMF code, and constructs, is
located in DFSMSdfp. DFSMShsm and DFSMSdss are involved in the management class
construct.
Availability
Space
Security
Performance
dfp
dss rmm
DFSMS
IBM
3494
ISMF
VTS
hsm tvs
In this environment, the Resource Access Control Facility (RACF) and Data Facility Sort
(DFSORT) products complement the functions of the base operating system. RACF provides
resource security functions, and DFSORT adds the capability for faster and more efficient
sorting, merging, copying, reporting, and analyzing of business information.
With system-managed storage, users can allow the system to select the specific unit and
volume for the allocation. They can also specify size requirements in terms of megabytes or
kilobytes. This feature means the user does not need to know anything about the physical
characteristics of the devices in the installation.
If the user does not provide the unit parameter for allocation, DFSMS uses the default device
geometry to convert space allocation requests into device-independent units, such as KBs
and MBs. This quantity is then converted back into device-dependent tracks based on the
selected device geometry.
Tape System-managed storage lets you use the device technology of new devices without
having to change the job control language (JCL) UNIT parameter. In a multi-library
environment, you can select the drive based on the library where the cartridge or volume
resides. You can use the IBM Automated Tape Library (4500) or IBM Tape Server 7700 family
to automatically mount tape volumes and manage the inventory in a physical or virtual tape
library. Similar functionality is available in a system-managed manual tape library. If you are
not using SMS for tape management, you can still access the tape libraries.
You can use DFSMShsm to automatically back up your various types of data sets and use
point-in-time copy to maintain access to critical data sets while they are being backed up.
Concurrent copy, virtual concurrent copy, SnapShot, and FlashCopy, along with
backup-while-open, have an added advantage in that they avoid invalidating a backup of a
CICS VSAM KSDS due to a control area or control interval split.
You can also create a logical group of data sets so that the group is backed up at the same
time to allow recovery of the application defined by the group. This process is done with the
aggregate backup and recovery support (ABARS) provided by DFSMShsm.
You can also use system-determined block sizes to automatically reblock physical sequential
and partitioned data sets that can be reblocked.
You can negotiate with your user group representatives to agree on the specific policies for
the installation, how soon you can implement them, and how strongly you enforce them. You
can also simplify storage management by limiting the number of data sets and volumes that
cannot be system-managed.
The purpose of a backup plan is to ensure the prompt and complete recovery of data. A
well-documented plan identifies data that requires backup, the levels required, responsibilities
for backing up the data, and methods to be used.
The SMS configuration is stored in SMS control data sets, which are VSAM linear data sets.
You must define the control data sets before activating SMS. SMS uses the following types of
control data sets:
Source control data set (SCDS)
Active control data set (ACDS)
Communications data set (COMMDS)
Use the SCDS to develop and test your SMS configuration, but before activating a
configuration, retain at least one prior configuration if you need to regress to it because of an
error. The SCDS is never used to manage allocations.
Generally, have extra ACDSs in case a hardware failure causes the loss of your primary
ACDS. These extra ACDSs must be on a shared device that is accessible to all systems that
share the SMS configuration to ensure that they share a common view of the active
configuration. Do not place the ACDS on the same device as the COMMDS or SCDS. Both
the ACDS and COMMDS are needed for SMS operation across the complex. Separation
protects against hardware failure. Also, create a backup ACDS in case of hardware failure or
accidental data loss or corruption.
The COMMDS must reside on a shared device accessible to all systems. However, do not
allocate it on the same device as the ACDS. Create a spare COMMDS in case of a hardware
failure or accidental data loss or corruption. SMS activation fails if the COMMDS is
unavailable.
Figure 5-2 shows the relationship between SMS control data sets and DFSMS.
COMMDS ACDS
SCDS
SM S
For information about identifying and converting non-eligible data sets, see z/OS DFSMSdss
Storage Administration Guide, SC35-0423.
This book presents an overview of the functions and features available on DFSMS. For a
better understanding on the necessary steps to implement SMS into a system, as well as
planning considerations, security requirements, and z/OS configuration, see z/OS DFSMS
Implementing System-Managed Storage, SC26-7407.
Figure 5-3 shows that SMS constructs are assigned to a data set through the ACS routines,
and how each SMS construct provides input to data set management through its lifecycle.
ACS Routines
nagement Cla
Ma ss
rage Class
Where is it
placed?
Stor
age Group
By creating different constructs, you can use the ACS routines to assign different data
management aspects for each group of data sets. For example, the administrator can define
one storage class for data entities requiring high performance, and another for those requiring
standard performance. The administrator then writes ACS routines that use naming
conventions or other criteria of your choice to automatically assign the classes that have been
defined to data as that data is created. These ACS routines can then be validated and tested.
DFSMS facilitates all of these tasks by providing menu-driven panels with ISMF. ISMF panels
make it easy to define classes, test and validate ACS routines, and perform other tasks to
analyze and manage your storage. Many of these functions are available in batch through the
NaviQuest tool.
Data class attributes define space and data characteristics that are normally specified on JCL
DD statements, TSO/E ALLOCATE command, IDCAMS DEFINE commands, and dynamic
allocation requests. For tape data sets, data class attributes can also specify the type of
cartridge and recording method, and if the data is to be compacted. Users then only need to
specify the appropriate data classes to create standardized data sets.
You can override various data set attributes assigned in the data class, but you cannot
change the data class name after it has been assigned to your data set.
Even though data class is optional, generally assign data classes to system-managed and
non-system-managed data. Although the data class is not used after the initial allocation of a
data set, the data class name is kept in the catalog entry for system-managed data sets for
future reference.
Note: The data class name is not saved for non-system-managed data sets, although the
allocation attributes in the data class are used to allocate the data set.
For objects on tape, avoid assigning a data class through the ACS routines. To assign a data
class, specify the name of that data class on the SETOAM command.
If you change a data class definition, the changes only affect new allocations. Existing data
sets allocated with the data class are not changed.
For detailed information about specifying data class attributes, see z/OS DFSMSdfp Storage
Administration Reference, SC26-7402.
Some of the availability requirements that you specify to storage classes (such as dual copy)
can only be met by DASD volumes with required features enabled.
With a storage class, you can assign a data set to dual copy volumes to ensure continuous
availability for the data set. With dual copy, two current copies of the data set are kept on
separate DASD volumes (by the control unit). If the volume containing the primary copy of the
data set is damaged, the companion volume is automatically brought online and the data set
continues to be available and current. Remote copy is similar, with the two volumes in distinct
control units (generally remote).
You can use the ACCESSIBILITY attribute of the storage class to request that concurrent
copy be used when data sets or volumes are backed up.
You can specify an I/O response time objective with storage class by using the millisecond
response time (MSR) parameter. During data set allocation, the system attempts to select the
closest available volume to the specified performance objective. Also, along the data set life,
through the use MSR, DFSMS dynamically uses the cache algorithms as DASD fast write
(DFW) and inhibit cache load (ICL) to reach the MSR target I/O response time. This DFSMS
function is called dynamic cache management.
To assign a storage class to a new data set, you can use these techniques:
The STORCLAS parameter of the JCL DD statement, or ALLOCATE or DEFINE
command
Storage class ACS routine
Note: If you change a storage class definition, the changes affect the performance service
levels of existing data sets that are assigned to that class when the data sets are later
opened. However, the definition changes do not affect the location or allocation
characteristics of existing data sets.
For more information about how to set up a storage class, and what attributes it defines, see
z/OS DFSMSdfp Storage Administration Reference, SC26-7402.
Figure 5-5 shows the management class processing cycle based on data set attributes.
SPACE
Expiration
BACKUP
Migration/Object System-Managed
Transition Volume
GDG Storage
Management Management Management
Class Subsystem
Data DFSMShsm
Management and
Requirements DFSMSdss
DFSMShsm-Owned
Figure 5-5 Management Class processing cycle
Management classes let you define management requirements for individual data sets, rather
than defining the requirements for entire volumes. All the data set functions described in the
management class are run by DFSMShsm and DFSMSdss programs.
The ACS routine can override the management class specified in JCL, or ALLOCATE or
DEFINE command. You cannot override management class attributes through JCL or
command parameters.
If you do not explicitly assign a management class to a system-managed data set or object,
the system uses the default management class. You can define your own default management
class when you define your SMS base configuration.
Note: If you change a management class definition, the changes affect the management
requirements of existing data sets and objects that are assigned that class. You can
reassign management classes when data sets are renamed.
The ACS routines can override this assignment for objects. For more information about how
to set up a management class, and what attributes it defines, see z/OS DFSMSdfp Storage
Administration Reference, SC26-7402.
When changing a management class definition, the changes affect the management
requirements of existing data sets and objects that are assigned to that class.
Storage groups, along with storage classes, help reduce the requirement for users to
understand the physical characteristics of the storage devices that contain their data.
In a tape environment, you can also use tape storage groups to direct a new tape data set to
an automated or manual tape library.
DFSMShsm uses various storage group attributes to determine whether the volumes in the
storage group are eligible for automatic space or availability management.
Figure 5-6 on page 95 shows an example of how an installation can group storage volumes
according to their objective. Note the following characteristics in this example:
SMS-managed DASD volumes are grouped into storage groups so that primary data sets,
large data sets, DB2 data, IMS data, and CICS data are all separated.
The VIO storage group uses system paging volumes for small temporary data sets.
The TAPE storage groups are used to group tape volumes that are held in tape libraries.
The OBJECT storage group can span optical, DASD, and tape volumes.
The OBJECT BACKUP storage group can contain either optical or tape volumes within
one OAM invocation.
Some volumes are not system-managed.
Other volumes are owned by DFSMShsm for use in data backup and migration.
DFSMShsm migration level 2 tape cartridges can be system-managed if you assign them
to a tape storage group.
Note: A storage group is assigned to a data set only through the storage group ACS
routine. Users cannot specify a storage group when they allocate a data set, although they
can specify a unit and volume.
Whether to accept a user’s unit and volume request is an installation decision, but you should
generally discourage users from directly requesting specific devices. It is more effective for
users to specify the logical storage requirements of their data by storage and management
class, which the installation can then verify in the ACS routines.
Objects have two types of storage groups: OBJECT and OBJECT BACKUP. An OBJECT
storage group is assigned by OAM when the object is stored. The storage group ACS routine
can override this assignment. There is only one OBJECT BACKUP storage group, and all
backup copies of all objects are assigned to this storage group.
SMS volume selection
SMS determines which volumes are used for data set allocation by developing a list of all
volumes from the storage groups assigned by the storage group ACS routine. Volumes are
then either removed from further consideration or flagged as the following types:
Primary Volumes online, below threshold, that meet all the specified criteria in
the storage class.
Secondary Volumes that do not meet all the criteria for primary volumes.
SMS starts volume selection from the primary list. If no volumes are available, SMS selects
from the secondary, and, if no secondary volumes are available, SMS selects from the tertiary
list.
SMS interfaces with the system resources manager (SRM) to select from the eligible volumes
in the primary list. SRM uses device delays as one of the criteria for selection, and does not
prefer a volume if it is already allocated in the job step. This technique is useful for batch
processing when the data set is accessed immediately after creation.
SMS does not use SRM to select volumes from the secondary or tertiary volume lists. It uses
a form of randomization to prevent skewed allocations in instances such as when new
volumes are added to a storage group, or when the free space statistics are not current on
volumes.
For a striped data set, when multiple storage groups are assigned to an allocation, SMS
examines each storage group and selects the one that offers the largest number of volumes
attached to unique control units. This is called control unit separation. After a storage group
has been selected, SMS selects the volumes based on available space, control unit
separation, and performance characteristics if they are specified in the assigned storage
class.
For more information about how to set up a storage group, and what attributes it defines, see
z/OS DFSMSdfp Storage Administration Reference, SC26-7402.
The user-defined group of data sets can be those belonging to an application, or any
combination of data sets that you want treated as a separate entity. Aggregate processing
enables you to perform these tasks:
Back up and recover data sets by application to enable business to resume at a remote
site if necessary
Move applications in a non-emergency situation along with personnel moves or workload
balancing
Duplicate a problem at another site for problem determination
You can use aggregate groups as a supplement to using management class for applications
that are critical to your business. You can associate an aggregate group with a management
class. The management class specifies backup attributes for the aggregate group, such as
the copy technique for backing up DASD data sets on primary volumes, the number of
aggregate versions to retain, and how long to retain versions. Aggregate groups simplify the
control of backup and recovery of critical data sets and applications.
The ACS language contains a number of read-only variables, which you can use to analyze
new data allocations. For example, you can use the read-only variable &DSN to make class
and group assignments based on data set or object collection name, or &SIZE to make
assignments based on the amount of space requested by the data set.
Use the four read/write variables to assign the class or storage group you determine for the
data set or object, based on the routine you are writing. For example, use the &STORCLAS
variable to assign a storage class to a data set or object. These variables are only read/write
during their designated class selection, meaning you cannot attribute a value to &STORCLAS
during Storage Group class selection.
For a detailed description of the ACS language and its variables, see z/OS DFSMSdfp
Storage Administration Reference, SC26-7402.
For each SMS configuration, you can have active as many as four routines: One each for data
class, storage class, management class, and storage group. Use ISMF to create, translate,
validate, and test the routines.
DFSMSdss or Storage
DFSMShsm Storage Class Class
Conversion of ACS Routine
Existing Data Sets not
Storage assigned
Class Assigned
Management Class
ACS Routine System-Managed
Volume
Storage Group
ACS Routine
Because data allocations, whether dynamic or through JCL, are processed through ACS
routines, you can enforce installation standards for data allocation on system-managed and
non-system-managed volumes. ACS routines also enable you to override user specifications
for data, storage, and management class, and requests for specific storage volumes.
You can use the ACS routines to determine the SMS classes for data sets created by the
Distributed FileManager/MVS. If a remote user does not specify a storage class, and if the
ACS routines decide that the data set is not to be system-managed, then the Distributed
FileManager/MVS terminates the creation process immediately and returns an error reply
message to the source. Therefore, when you construct your ACS routines, consider the
potential data set creation requests of remote users.
Enforcing standards optimizes data processing resources, improves service to users, and
positions you for implementing system-managed storage. You can fail requests or issue
warning messages to users who do not conform to standards. Consider enforcing the
following standards in your DFSMS environment:
Prevent extended retention or expiration periods.
Prevent specific volume allocations, unless authorized. For example, you can control
allocations to spare, system, database, or other volumes.
Require valid naming conventions before implementing DFSMS system management for
permanent data sets.
For more information about ACS processing and activation, see z/OS DFSMS: Using the
Interactive Storage Management Facility, SC26-7411.
At the same time, changes in business requirements, law enforcements, application response
time requirements, and other changes demand constant maintenance to SMS policies. This
section describes some maintenance and monitoring activities.
You can manually activate a new SMS configuration in two ways. SMS must be active before
you use one of these methods:
1. Activating an SMS configuration from ISMF:
a. From the ISMF Primary Option Menu panel, select Control Data Set.
b. In the CDS Application Selection panel, enter your SCDS data set name and select 5
Activate, or enter the ACTIVATE command on the command line.
The ACTIVATE command, which runs from the ISMF CDS application, is equivalent to the
SETSMS operator command with the SCDS keyword specified.
If you use RACF, you can enable storage administrators to activate SMS configurations from
ISMF by defining the facility STGADMIN.IGD.ACTIVATE.CONFIGURATION and issuing
permit commands for each storage administrator.
When and how to use the Initializes SMS parameters and Changes SMS parameters only
command. starts SMS if SMS is defined when SMS is running.
but not started at IPL. Changes
SMS parameters when SMS is
running.
What default values are Default values are used for No default values. Parameters
available. non-specified parameters. non-specified remain
unchanged.
For more information about operator commands, see z/OS MVS System Commands,
SA22-7627.
ISMF provides interactive access to the space management, backup, and recovery services
of the DFSMShsm and DFSMSdss functional components of DFSMS, to the tape
management services of the DFSMSrmm functional component, as well as to other products.
DFSMS introduces the ability to use ISMF to define attributes of tape storage groups and
libraries.
A storage administrator uses ISMF to define the installation's policy for managing storage by
defining and managing SMS classes, groups, and ACS routines. ISMF then places the
configuration in an SCDS. You can activate an SCDS through ISMF or an operator command.
ISMF is menu-driven, with fast paths for many of its functions. ISMF uses the ISPF Dialog Tag
Language (DTL) to give its functional panels on workstations the look of Common User
Access (CUA) panels and a graphical user interface (GUI).
ISMF generates a data list based on your selection criteria. After the list is built, you can use
ISMF entry panels to perform space management or backup and recovery tasks against the
entries in the list.
You cannot allocate data sets from ISMF. Data sets are allocated from ISPF, from TSO, or
with JCL statements. ISMF provides the DSUTIL command, which enables users to get to
ISPF and toggle back to ISMF.
There are two Primary Option Menus: One for storage administrators, and another for users.
The menu available to storage administrators includes additional applications not available to
users. Option 0 controls the user mode or the type of Primary Option Menu to be displayed.
The ISMF Primary Option Menu example assumes installation of DFSMS at the current
release level. For information about adding the DFSORT option to your Primary Option Menu,
see DFSORT Installation and Customization Release 14, SC33-4034.
Chapter 6. Catalogs
Knowing where your data is stored is vital to perform any data-related tasks, from a simple
open for I/O, to providing backups for availability management. Whether you are a small shop
with a single LPAR and a few data sets, or a large system with dozens LPARs and millions of
data sets to manage, catalogs provide you a simple, easy, and efficient way to organize
information about your data sets.
Cataloging data sets also simplifies backup and recovery procedures. Catalogs are the
central information point for VSAM data sets, so all VSAM data sets must be cataloged. In
addition, all SMS-managed data sets must be cataloged. Activity towards the catalog is much
more intense in a batch/TSO workload than in a CICS/Db2 workload, where most data sets
are allocated at CICS/Db2 initialization time.
An integrated catalog facility (ICF) catalog is a structure that replaced the former MVS CVOL
catalog. As a catalog, it describes data set attributes and indicates the volumes on which a
data set is located. ICF catalogs are allocated by the CAS, a system address space for the
DFSMSdfp catalog function.
Figure 6-1 shows how BCS and VVDS work together to create the ICF catalogs structure.
structure 1 VVDS
VVDS VTOC
VVDS
VVDS VTOC
VVDS
structure 2 VVDS
VVDS VTOC
VVDS
One control interval can contain multiple BCS records. To reduce the number of I/Os
necessary for catalog processing, logically-related data is consolidated in the BCS.
A catalog can have data sets cataloged on any number of volumes. The BCS can have as
many as 123 extents on one volume. One volume can have multiple catalogs on it. All the
necessary control information is recorded in the VVDS on that volume.
The catalogs (BCSs) can be classified as master catalogs and user catalogs. A particular
case of a user catalog is the volume catalog, which is a user catalog that contains only the
tape library and tape volume entries.
There is no structural difference between a master catalog and a user catalog. What sets a
master catalog apart is how it is used, and what data sets are cataloged in it. For example,
the same catalog can be master in one z/OS and user in the other z/OS. They are described
in more detail in the following sections.
The master catalog for a system must contain entries for all user catalogs and their aliases
that the system uses. Also, all SYS1 data sets must be cataloged in the master catalog for
proper system initialization.
Important: To minimize update activity to the master catalog, and to reduce the exposure
to breakage, plan to place only SYS1 data sets, user catalog connector records, and the
aliases pointing to those connectors in the master catalog.
During a system initialization, the master catalog is read so that system data sets and
catalogs can be located. You can identify the master catalog in a system by performing one of
the following tasks:
Check SYS1.NUCLEUS member SYSCATxx (default is SYSCATLG).
Check SYS1.PARMLIB/SYSn.IPLPARM member LOADxx.
Issue a LISTCAT command against a SYS1 data set, and verify the catalog name.
User catalogs
The difference between the master catalog and the user catalogs is in the function. User
catalogs are to be used to contain information about your installation cataloged data sets
other than SYS1 data sets. There are no set rules as to how many or what size to have. The
configuration depends entirely on your environment.
Cataloging data sets for two unrelated applications in the same catalog might increase the
impact to your business during a failure. Assessing the impact of outage of a specific catalog
can help to determine whether it is too large or can affect too many applications.
The VVDS contains VSAM volume records (VVRs) that hold information about VSAM data
sets on the volume. The VVDS also contains non-VSAM volume records (NVRs) for
SMS-managed non-VSAM data sets on the volume. If an SMS-managed non-VSAM data set
spans volumes, then only the first volume contains an NVR for that data set.
If not previously defined, the system automatically defines a VVDS to your volume when the
first VSAM or SMS-managed data set is allocated into the device. If not changed by the user,
the default size for VVDS data sets is 10 tracks primary and 10 tracks secondary space.
VVDS characteristics
The VVDS is a VSAM entry-sequenced data set (ESDS) that has a 4 KB control interval size.
The hexadecimal RBA of a record is used as its key or identifier.
Volser is the volume serial number of the volume on which the VVDS resides.
You can explicitly define the VVDS using IDCAMS, or it is implicitly created after you define
the first VSAM or SMS-managed data set on the volume. Generally, plan allocating your
VVDS before any data sets are allocated to reduce volume fragmentation.
Although VVDS data sets start with SYS1 high-level qualifier, they are not necessarily
cataloged to the system master catalog. Instead, each catalog having at least one VSAM or
SMS-managed data set in a volume will also have a pointer to the volume VVDS. Plan to
remove these VVDS entries when the volumes are formatted with a new name.
6.2 Aliases
Aliases are used to tell catalog management which user catalog your data set is cataloged in.
First, you place a pointer to a user catalog in the master catalog through the IDCAMS
DEFINE UCAT command. Next, you define an appropriate alias name for a user catalog in
the master catalog. Then, match the high-level qualifier (HLQ) of your data set with the alias.
This qualifier identifies the appropriate user catalog to be used to satisfy the request.
In Figure 6-2, all data sets with an HLQ of PAY have their information in the user catalog
UCAT1 because in the master catalog there is an alias PAY that points to UCAT1.
The data sets with an HLQ of DEPT1 and DEPT2 have their information in the user catalog
UCAT2 because in the master catalog, there are aliases DEPT1 and DEPT2 pointing to
UCAT2.
// DD DSN=PAY.D1
// DD DSN=PAY.D2
// DD DSN=DEPT1.VAC
// DD DSN=DEPT2.VAC
PAY.D1
...
UCAT1
PAY.D1
MCAT PAY.D2
...
ALIAS: PAY
UCAT1 PAY.D2
ALIAS: DEPT1
...
ALIAS: DEPT2
UCAT2
SYS1.LINKLIB UCAT2
SYS1.PARMLIB DEPT1.VAC
... DEPT2.VAC
...
DEPT1.VAC
DEPT2.VAC
...
Note: Aliases can also be used with non-VSAM data sets to create alternate names to the
same data set. Those aliases are not related to a user catalog.
However, the multilevel alias facility is only to be used when a better solution cannot be found.
The need for the multilevel alias facility can indicate data set naming conventions problems.
For more information about the multilevel alias facility, see z/OS DFSMS: Managing Catalogs,
SC26-7409.
When a search for a data set is performed, a LOCATE SVC calls the catalog management
asking for a data set name search. Most catalog searches are based on catalog aliases.
These searches are performed when you are either trying to allocate a new data set, or
access an existing data set for read, write, update, or delete. You can also explicitly code the
catalog name to force the search against a specific catalog using the IDCAMS CATALOG
keyword. Figure 6-3 is a diagram with standard search order for a LOCATE request.
However, alternatives to catalog aliases are available for directing a catalog request,
specifically the CATALOG parameter of access method services and the name of the catalog.
The following search order is used to locate the catalog for an already cataloged data set:
1. Use the catalog named in IDCAMS CATALOG parameter, if coded. If the data set is not
found, fail the job.
2. If the CATALOG statement is not found, and the high-level qualifier is an alias for a catalog,
search the catalog. If the data set is not found, fail the job.
3. Otherwise, search the master catalog.
To use an alias to identify the catalog to be searched, the data set must have more than one
data set qualifier. For information about the catalog standard search order, see z/OS DFSMS:
Managing Catalogs, SC26-7409.
Tip: Convert all intra-sysplex RESERVES in global ENQs through the conversion RNL.
Multiple catalogs can reduce the impact of the loss of a catalog for these reasons:
Reducing the time necessary to re-create any catalog
Allowing multiple catalog recovery jobs to be in process at the same time
Recovery from a pack failure depends on the total amount of catalog information about a
volume, regardless of whether this information is stored in one catalog or in many catalogs.
When using multiple user catalogs, consider grouping data sets under different high-level
qualifiers. Independent of the number of catalogs, use the available caching options to
increase your catalog search performance. The caching options are discussed in more detail
in 6.6, “Catalog caching” on page 111.
If the catalog is unacceptably large (that is, a catalog failure would leave too many entries
inaccessible), then you can split the catalog into two catalogs. If the catalog is of an
acceptable size but contains entries for too many critical data sets, then you can simply move
entries from one catalog to another. For more information about splitting catalogs, including
step-by-step instructions for splitting catalogs, see z/OS DFSMS: Managing Catalogs,
SC26-7409.
Merging catalogs is accomplished in much the same way as splitting catalogs. The only
difference between splitting catalogs and merging them is that in merging, you want all the
entries in a catalog to be moved to another catalog, so that you can delete the obsolete
catalog. For more information about merging catalogs, including step-by-step instructions for
merging catalogs, see z/OS DFSMS: Managing Catalogs, SC26-7409.
Note: The device must be defined as shared to all systems that access it.
If several systems have the device defined as shared and other systems do not, then catalog
corruption will occur. Check with your system programmer to determine shared volumes.
Tape volume catalogs can be shared in the same way as other catalogs.
By default, catalogs are defined with SHAREOPTIONS(3 4). You can specify that a catalog is
not to be shared by defining the catalog with SHAREOPTIONS(3 3). Only define a catalog as
unshared if you are certain it will not be shared. Preferably place unshared catalogs on
volumes that have been initialized as unshared. Catalogs that are defined as unshared and
that reside on shared volumes will become damaged if referred to by another system.
If you need to share data sets across systems, it is advisable that you share the catalogs that
contain these data sets. A BCS catalog is considered shared when both of the following are
true:
It is defined with SHAREOPTIONS (3 4).
It resides on a shared device, as defined at HCD.
Note that CAS considers a catalog shared when both values mentioned are true, regardless if
the catalog is actually accessed by other systems or not.
Using SHAREOPTIONS 3 means that VSAM does not issue the ENQ SYSVSAM SYSTEMS
for the catalog. SHAREOPTIONS 4 means that the VSAM buffers need to be refreshed.
You can check whether a catalog is shared by running the operator command:
MODIFY CATALOG,ALLOCATED
The VVR entry for a shared catalog is used as a log by all the catalog management that
accesses such a catalog. This log is used to help ensure the coherency of each catalog buffer
in each z/OS system.
Note: Checking VVR entry for a catalog can increase the I/O ratio for the volume and
impact catalog performance. Plan on using the caching options to prevent I/Os and check
catalog coherency. For more information about caching, see 6.6, “Catalog caching” on
page 111
Caching catalogs can assist you in providing good catalog response times, and even keep the
CAS CPU utilization down. There are several caching options that can be used for catalogs.
These cache options are explained in more detail in the following sections.
This caching option does not deal with data buffer modifications. If these modifications occur,
the catalog management flushes the cache in memory, and performs I/Os to retrieve the new
information from catalog. For that reason, use ISC only when other caching options are not
available.
To learn more about catalog caching and implementation steps, check z/OS DFSMS:
Managing Catalogs, SC26-7409.
As soon as a user requests a catalog function (for example, to locate or define a data set), the
CAS gets control to handle the request. When it has finished, it returns the requested data to
the user. A catalog task that handles a single user request is called a service task. A service
task is assigned to each user request. The minimum number of available service tasks is
specified in the SYSCATxx member of SYS1.NUCLEUS (or the LOADxx member of
SYS1.PARMLIB). A table called the CRT tracks these service tasks.
The CAS contains all information necessary to handle a catalog request, like control block
information about all open catalogs, alias tables, and buffered BCS records.
During the initialization of an MVS system, all user catalog names identified in the master
catalog, their aliases, and their associated volume serial numbers are placed in tables in
CAS.
You can use the MODIFY CATALOG operator command to work with the catalog address
space. For more information, see 6.8.6, “Working with the catalog address space” on
page 118.
This section describes some activities that can assist you in maintaining your catalog
environment. For a deeper view on catalogs maintenance and activities, see A Practical
Guide to ICF Catalogs, SG24-8262 and z/OS DFSMS: Managing Catalogs, SC26-7409.
You can use the LISTCAT output to monitor VSAM data sets including catalogs. The statistics
and attributes listed can be used to help determine whether you reorganize, re-create, or
otherwise alter a VSAM data set, including catalogs, to improve performance or avoid
problems.
The LISTCAT command can be used in many variations to extract information about a
particular entry in the catalog. It extracts the data from the BCS and VVDS.
The following are some examples of using LISTCAT for monitoring catalogs:
List all ALIAS entries in the master catalog:
LISTCAT ALIAS CAT(master.catalog.name)
This command provides a list of all aliases that are currently defined in your master
catalog. If you need information only about one specific alias, use the keyword
ENTRY(aliasname) and specify ALL to get detailed information.
List a user catalog connector in the master catalog:
LISTCAT ENT(user.catalog.name) ALL
You can use this command to display the volser and the alias associations of a user
catalog as it is defined in the master catalog.
List the catalog’s self-describing record:
LISTCAT ENT(user.catalog.name) CAT(user.catalog.name) ALL
This command provides detailed information about a user catalog, such as attributes,
statistics, extent information, and so on. Because the self-describing record is in the user
catalog, you must specify the name of the user catalog in the CAT statement. If you do not
use the CAT keyword, only the user catalog connector information from the master catalog
is listed as in the previous example.
Listing a VSAM or non-VSAM data set:
LISTCAT ENT(data.set.name) ALL
The output for a VSAM data set looks the same as the catalog’s LISTCAT output. For a
non-VSAM data set, the output is much shorter.
You can use the LISTCAT command to list information for other catalog entries as well. For
information about LISTCAT, see z/OS DFSMS Access Method Services for Catalogs,
SC26-7394.
Important: Because catalogs are essential system data sets, it is important that you
maintain backup copies. The more recent and accurate a backup copy, the less effect a
catalog outage will have on your installation.
You can later recover the backup copies using the same utility used to create the backup:
The access method services IMPORT command for exported copies
The DFSMSdss RESTORE command for logical dump copies
The DFSMShsm RECOVER command for DFSMShsm backups
The copy created by these utilities is a portable sequential data set that can be stored on a
tape or direct access device, which can be of another device type than the one containing the
source catalog.
When these commands are used to back up a BCS, the aliases of the catalog are saved in
the backup copy. The source catalog is not deleted, and remains as a fully functional catalog.
The relationships between the BCS and VVDSs are unchanged.
You cannot permanently export a catalog by using the PERMANENT parameter of EXPORT.
The TEMPORARY option is used even if you specify PERMANENT or allow it to default.
Figure 6-4 shows you an example for an IDCAMS EXPORT.
Note: You cannot use IDCAMS REPRO or other copying commands to create and recover
BCS backups.
For information about defining and using catalog back-up options, see z/OS DFSMS:
Managing Catalogs, SC26-7409.
Backing up a VVDS
Do not back up the VVDS as a data set to provide for recovery. To back up the VVDS, back up
the volume containing the VVDS, or back up all data sets described in the VVDS (all VSAM
and SMS-managed data sets). If the VVDS ever needs to be recovered, recover the entire
volume, or all the data sets described in the VVDS.
You can use either DFSMSdss or DFSMShsm to back up and recover a volume or individual
data sets on the volume.
Before recovering a BCS or VVDS, try to recover single damaged records. If damaged
records can be rebuilt, you can avoid a full recovery.
The way that you recover a BCS depends on how it was saved (see 6.8.2, “Backup
procedures” on page 114). When you recover a BCS, you do not need to delete and redefine
the target catalog unless you want to change the catalog's size or other characteristics, or
unless the BCS is damaged in such a way as to prevent the usual recovery.
Aliases to the catalog can be defined if you use DFSMSdss, DFSMShsm, or if you specify
ALIAS on the IMPORT command. If you have not deleted and redefined the catalog, all
existing aliases are maintained, and any aliases defined in the backup copy are redefined if
they are not already defined.
Lock the BCS before you start recovery so that no one else has access to it while you recover
the BCS. If you do not restrict access to the catalog, users might be able to update the
catalog during recovery or maintenance and create a data integrity exposure. The catalog
also will be unavailable to any system that shares the catalog. You cannot lock a master
catalog.
After you recover the catalog, update the BCS with any changes that have occurred since the
last backup. You can use the access method services DIAGNOSE command to identify
certain unsynchronized entries.
Alternatively, an error within the data structure of a BCS or VVDS means that the VSAM
structure of the BCS or VVDS is still valid. VSAM has no problems accessing the data set.
However, the content of each of the single records in the BCS or VVDS does not conform to
catalog standards. The information in the BCS and VVDS for a single data set can be
unsynchronized, making the data set inaccessible.
Two kinds of VSAM errors can occur with your BCS or VVDS:
Logical errors
The records on the DASD volume still have valid physical characteristics like record size or
CI size. The VSAM information in those records is wrong, like pointers from one record to
another or the end-of-file information.
Physical errors
The records on the DASD volume are invalid. For example, they might be a wrong length.
Reasons can be an overlay of physical DASD space or wrong extent information for the
data set in the VTOC or VVDS.
When errors in the VSAM structure occur, they are in most cases logical errors for the BCS.
Because the VVDS is an ESDS, it has no index component. Logical errors of an ESDS are
unlikely.
You can use the IDCAMS EXAMINE command to analyze the structure of the BCS. As
explained previously, the BCS is a VSAM key-sequenced data set (KSDS). Before running the
EXAMINE, run an IDCAMS VERIFY to make sure that the VSAM information is current, and
ALTER LOCK the catalog to prevent update by others while you are inspecting it.
With the parameter INDEXTEST, you analyze the integrity of the index. With parameter
DATATEST, you analyze the data component. After you have the results of INDEXTEST and
DATATEST, you can take the necessary steps to successfully recover your catalog. For more
information about the steps to fix a catalog error, see z/OS DFSMS: Managing Catalogs,
SC26-7409.
Additionally, you can use the IDCAMS DIAGNOSE command to validate the contents of a
BCS or VVDS. You can use this command to check a single BCS or VVDS and to compare
the information between a BCS and multiple VVDSs.
For various DIAGNOSE examples, see z/OS DFSMS Access Method Services for Catalogs,
SC26-7394.
The simplest method of improving catalog performance is to use caching to maintain catalog
records in memory and prevent physical I/O. Three types of buffer are available for catalogs:
The ISC buffer is contained within the CAS.
The CDSC is separate from CAS and uses the z/OS VLF component, which stores the
buffered records in a data space.
The RLS uses the SMSVSAM address space and coupling facility structures to control
and share data between LPARs.
All types of buffer are optional, and each can be canceled and restarted without an IPL.
The three types of buffer are used to keep catalog records in the storage. This technique
avoids I/Os that are necessary to read the records from DASD. There are several things that
you need to take into considerations to decide what kind of buffer to use for which catalog.
See z/OS DFSMS: Managing Catalogs, SC26-7409, for more information about buffering.
Another kind of caching is using enhanced catalog sharing to avoid I/Os to read the catalog
VVR. Refer to 6.6.3, “Enhanced Catalog Sharing” on page 112 for more information about
this topic.
Master catalog
If the master catalog only contains entries for catalogs, catalog aliases, and system data sets,
the entire master catalog is read into main storage during system initialization. Because the
master catalog, if properly used, is rarely updated, the performance of the master catalog is
not appreciably affected by I/O requirements. For that reason, keep the master catalog small
and do not define user data sets into it.
For more information about these values, see z/OS DFSMS Access Method Services for
Catalogs, SC26-7394.
If the catalog is shared only within one GRSplex, convert the SYSIGGV2 resource to a global
enqueue to avoid reserves on the volume on which the catalog resides. If you are not
converting SYSIGGV2, you can have ENQ contentions on those volumes and even run into
deadlock situations.
Important: If you share a catalog with a system that is not in the same GRS complex, do
not convert the SYSIGGV2 resource for this catalog. Sharing a catalog outside the
complex requires reserves for the volume on which the catalog resides. Otherwise, you will
break the catalog. For more information, see z/OS MVS Planning: Global Resource
Serialization, SA22-7600.
For a discussion about the entire functionality of the MODIFY CATALOG command, see z/OS
DFSMS: Managing Catalogs, SC26-7409.
Never use RESTART to refresh catalog or VVDS control blocks, or to change catalog
characteristics. Restarting CAS is a drastic procedure, and if CAS cannot restart, you must
IPL the system.
When you issue MODIFY CATALOG,RESTART, the CAS mother task is abended with abend
code 81A, and any catalog requests that in process at that time are redriven.
The restart of CAS in a new address space is transparent to all users. However, even when all
requests are redriven successfully and receive a return code of zero (0), the system might
produce indicative dumps. There is no way to suppress these indicative dumps.
As an extension of VSAM RLS, DFSMStvs enables any job or application that is designed for
data sharing to read-share or write-share VSAM recoverable data sets. VSAM RLS provides
a server for sharing VSAM data sets in a sysplex. VSAM RLS uses Coupling Facility-based
locking and data caching to provide sysplex-scope locking and data access integrity.
DFSMStvs adds logging, commit, and backout processing.
To understand DFSMStvs, it is necessary to first review base VSAM information and VSAM
RLS.
This capability enables different tasks to access the same data set at the same time, while
ensuring data integrity. VSAM RLS reduces the contention between different tasks by locking
data at a record level, leaving the other logical records within a control interval (CI) available
for read/write by other tasks.
Figure 7-1 shows a sample implementation of VSAM RLS with multiple CICS.
CICS CICS
AOR AOR
CICS CICS
AOR AOR
coupling facility
CICS CICS
AOR AOR
System 1 System n
The level of sharing that is allowed between applications is determined by whether a data set
is recoverable:
Both CICS and non-CICS jobs can have concurrent read or write access to unrecoverable
data sets. There is no coordination between CICS and non-CICS, so data integrity can be
compromised.
Non-CICS jobs can have read-only access to recoverable data sets concurrently with
CICS jobs, which can have read or write access.
VSAM RLS also supports access to a data set through an alternate index, but it does not
support opening an alternate index directly in VSAM RLS mode. Also, VSAM RLS does not
support access through an alternate index to data stored under z/OS UNIX System Services.
Extended format, extended addressability, and spanned data sets are supported by VSAM
RLS. Compression is also supported.
Keyrange data sets and the IMBED attribute for a KSDS are obsolete. You cannot define new
data sets as keyrange or with an imbedded index anymore. However, there still might be old
data sets with these attributes in your installation.
VSAM RLS uses a CF to perform data-set-level locking, record locking, and data caching.
VSAM RLS uses the conditional write and cross-invalidate functions of the CF cache
structure, avoiding the need for control interval (CI) level locking.
VSAM RLS uses the CF caches as store-through caches. When a control interval of data is
written, it is written to both the Coupling Facility cache and the direct access storage device
(DASD). This feature ensures that problems occurring with a CF cache do not result in the
loss of VSAM data.
Both the primary and secondary SHCDS contain the same data. With the duplexing of the
data, VSAM RLS ensures that processing can continue in case VSAM RLS loses connection
to one SHCDS or the control data set got damaged. In that case, you can switch the spare
SHCDS to active.
To calculate the size of the sharing control data sets, follow the guidelines that are provided in
z/OS DFSMSdfp Storage Administration Reference, SC26-7402.
Tip: Place the SHCDSs on separate volumes to maximize availability. Avoid placing
SHCDSs on volumes for which there might be extensive volume reserve activity.
Exception: SHAREOPTIONS(2,x)
For non-VSAM RLS access, SHAREOPTIONS(2,x) handled the same as VSAM RLS access.
One user can have the data set open for read/write access and multiple users can have it
open for read access only. VSAM does not provide data integrity for the readers.
If the data set is open for VSAM RLS access, non-VSAM RLS opens for read are possible.
These are the only share options, where a non-VSAM RLS request to open the data set will
not fail if the data set is already open for VSAM RLS processing. VSAM does not provide data
integrity for non-VSAM RLS readers.
Non-CICS access
VSAM RLS access from batch jobs to data sets that are open by CICS depends on whether
the data set is recoverable or not. For recoverable data sets, non-CICS access from other
applications (that do not act as recoverable resource manager) is not allowed.
With NRI, Tran4 can read the record even though it is held exclusively by Tran1. There is no
read integrity for Tran4.
GET UPD RPL_1 GET UPD RPL_2 GET CR RPL_3 GET NRI RPL_4
(Record B) (Record E) (Record B) (Record B)
Waits for
record lock
Record A
Record B
Record C Record B Record E
Holder Holder (EXCL)
control Record D (EXCL) CICS2.Tran2
interval (CI) CICS1.Tran1
Record E Waiter
Record F (SHARE)
CICS3.Tran3
Record G
VSAM RLS locks
When contention occurs on a VSAM record, the request that encountered the contention
waits for the contention to be removed. The lock manager provides deadlock detection. When
a lock request is in deadlock, the request is rejected, resulting in the VSAM record
management request completing with a deadlock error response.
The first request for a record after data set open for VSAM RLS processing causes an I/O
operation to read in the CI that contains this record. A copy of the CI is stored into the cache
structure of the coupling facility and in the buffer pool in the data space.
Buffer coherency is maintained by using CF cache structures and the cross-system coupling
facility (XCF) cross-invalidation function. For the example in Figure 7-3 on page 125, that
means these steps:
1. System 1 opens the VSAM data set for read/write processing.
2. System 1 reads in CI1 and CI3 from DASD. Both CIs are stored in the cache structure in
the Coupling Facility.
3. System 2 opens the data set for read processing.
4. System 2 needs CI1 and CI4. CI1 is read from the CF cache, and CI4 from DASD.
5. System 1 updates a record in CI1 and CI3. Both copies of these CIs in the CF are
updated.
6. XCF notices the change of these two CIs and invalidates the copy of CI1 for System 2.
7. System 2 needs another record from CI1. It notices that its buffer was invalidated and
reads in a new copy of CI1 from the CF.
CICS CICS
R/W R/W
1 3 1 4
Batch 1 3 4 Batch
R/O R/O
coupling facility
SMSVSAM SMSVSAM
data space data space
1 2 3 4
System 1 System 2
VSAM data set
MACRF=RLS
Figure 7-3 Buffering under VSAM RLS
For further information about cross-invalidation, see z/OS MVS Programming: Sysplex
Services Guide, SA22-7617.
A data set is considered recoverable if the LOG attribute has one of the following values:
UNDO
The data set is backward recoverable. Changes made by a transaction that does not
succeed (no commit was done) are backed out. This is also referred as transactional
recovery.
ALL
The data set is both backward and forward recoverable. In addition to the logging and
recovery functions provided for backout (transactional recovery), CICS records the image
of changes to the data set after they were made.
The forward recovery log records are used by forward recovery programs and products
such as CICS VSAM Recovery (CICSVR) to reconstruct the data set in the event of
hardware or software damage to the data set. This is referred to as data set recovery. For
LOG(ALL) data sets, both types of recovery are provided: Transactional recovery and data
set recovery. For LOG(ALL), you need to define a logstream in which changes to the data
sets are logged.
To allow DFSMSdss to take a backup while your data set is open, you need to define the data
set with the BWO attribute or assign a data class with this attribute.
If you use the DSS BWO processing for a forward recoverable data set, CICS will log the start
and end of the copy/backup operation. The data set can then be fully recovered from this
backup.
For information about BWO processing, see z/OS DFSMSdss Storage Administration
Reference, SC35-0424.
Exclusive locks that VSAM RLS holds on the modified records cause other transactions that
have read-with-integrity requests and write requests for these records to wait. After the
modifying transaction is committed or backed out, VSAM RLS releases the locks and the
other transactions can access the records.
If the transaction fails, its changes are backed out. This capability is called transactional
recovery.
The CICS backout function removes changes made to the recoverable data sets by a
transaction. When a transaction abnormally ends, CICS performs a backout implicitly.
The SMSVSAM address space needs to be started on each system where you want to use
VSAM RLS. It is responsible for centralizing all processing necessary for cross-system
sharing, which includes one connect per system to XCF lock, cache, and VSAM control block
structures.
DFSMStvs is a follow-on project/capability based on VSAM RLS. VSAM RLS supports CICS
and IMS as transaction managers. This feature provides sysplex data sharing of VSAM
recoverable files when accessed through CICS or IMS. They provide the necessary
unit-of-work management, undo/redo logging, and commit/back out functions. VSAM RLS
provides the underlying sysplex-scope locking and data access integrity.
DFSMStvs adds logging and commit/back out support to VSAM RLS. DFSMStvs requires
and supports the recoverable resource management services (RRMS) component as the
commit or sync point manager.
DFSMStvs provides a level of data sharing with built-in transactional recovery for VSAM
recoverable files that is comparable with the data sharing and transactional recovery support
for databases provided by DB2 and IMSDB.
Before DFSMStvs, those two types of recovery were only supported by CICS.
CICS performs the transactional recovery for data sets defined with the LOG parameter
UNDO or ALL.
For forward recoverable data sets (LOG(ALL)), CICS also records updates in a log stream for
forward recovery. CICS itself does not perform forward recovery. It only performs logging. For
forward recovery, you need a utility like CICSVR.
Without DFSMStvs, batch jobs cannot perform transactional recovery and logging. That is the
reason batch jobs were granted only read access to a data set that was opened by CICS in
RLS mode. A batch window was necessary to run batch updates for CICS VSAM data sets.
With DFSMStvs, batch jobs can perform transactional recovery and logging concurrently with
CICS processing. Batch jobs can now update data sets while they are in use by CICS. No
batch window is necessary anymore.
Like CICS, DFSMStvs does not perform data set forward recovery.
Peer recovery
Peer recovery allows DFSMStvs to recover for a failed DFSMStvs instance to clean up any
work that was left in an incomplete state and to clear retained locks that resulted from the
failure. For more information about peer recovery, see z/OS DFSMStvs Planning and
Operation Guide, SC26-7348.
RRS provides the sync point services and is the most important component from a
DFSMStvs use perspective.
When an application issues a commit request directly to z/OS or indirectly through a sync
point manager that interfaces with the z/OS sync point manager, DFSMStvs is called to
participate in the two-phase commit process.
It is RRS that provides the means to implement two-phase commit, but a resource manager
must also use registration services and context services with Resource Recovery Services.
Two-phase commit
The two-phase commit protocol is a set of actions used to make sure that an application
program either makes all changes to the resources represented by a single unit of recovery
(UR), or it makes no changes at all. This protocol verifies that either all changes or no
changes are applied even if one of the elements (such as the application, the system, or the
resource manager) fails. The protocol allows for restart and recovery processing to take place
after system or subsystem failure.
For a discussion of the term unit of recovery, see 7.7.4, “Unit of work and unit of recovery” on
page 131.
An atomic instant occurs when the sync point manager in a two-phase commit process logs a
commit record for the transaction. Figure 7-5 shows a sample atomic update.
+$100 +$100
$700 $800 $700 $800
Transaction to Incomplete
transfer $100 transaction
RRS uses unit of recovery to mean much the same thing. Thus, a unit of recovery is the set of
updates between synchronization points. There are implicit synchronization points at the start
and at the end of a transaction. Explicit synchronization points are requested by an
application within a transaction or batch job. It is preferable to use explicit synchronization for
greater control of the number of updates in a unit of recovery.
Changes to data are durable after a synchronization point. That means that the changes
survive any subsequent failure.
Figure 7-6 shows three units of recovery, noted as A, B, and C. The synchronization points
between the units of recovery can be one of these types:
Implicit: At the start and end of the program
Explicit: When requested by commit
update 1
update 2
commit
} A = unit of recovery
synchronized explicit
update 3
update 4
update 5
} B
update 6
} C
End of program synchronized implicit
Figure 7-6 Unit of recovery example
Types of logs
Various types of logs are involved in DFSMStvs (and CICS) logging:
Undo logs (mandatory, one per image) - tvsname.IGWLOG.SYSLOG
The backout or undo log contains images of changed records for recoverable data sets as
they existed before being changed. It is used for transactional recovery to back out
uncommitted changes if a transaction failed.
Shunt logs (mandatory, one per image) - tvsname.IGWSHUNT.SHUNTLOG
The shunt log is used when backout requests fail and for long running units of recovery.
Log of logs (optional, shared with CICS and CICSVR) - Default name is
CICSUSER.CICSVR.DFHLGLOG
The log of logs contains copies of log records that are used to automate forward recovery.
Forward recovery logs (optional, shared with CICS) - Name of your choice
The forward recovery log is used for data sets defined with LOG(ALL). It is used for
forward recovery. It needs to be defined in the LOGSTREAMID parameter of the data set.
The system logger writes log data to log streams. The log streams are put in list structures in
the Coupling Facility (except for DASDONLY log streams).
As Figure 7-7 shows, you can merge forward recovery logs for use by CICS and DFSMStvs.
You can also share it by multiple VSAM data sets. You cannot share an undo log by CICS and
DFSMStvs; you need one per image.
...
System 1 System n
CICSA undo log log stream
CICS/DFSMStvs merged
lock structures forward recovery log log
stream
Coupling Facility
You can modify an application to use DFSMStvs by specifying RLS in the job control
language (JCL) or the ACB and having the application access a recoverable data set using
either open for input with CRE or open for output from a batch job.
VSAM RLS and DFSMStvs provide isolation until commit/backout. Consider the following
rules:
Share locks on records accessed with repeatable read.
Hold write locks on changed records until the end of a transaction.
Use commit to apply all changes and release all locks.
Instead, the batch application must have a built-in method of tracking its processing position
within a series of transactions. One potential method of doing this is to use a VSAM
recoverable file to track the job’s commit position. When the application fails, any
uncommitted changes are backed out.
The already-committed changes cannot be backed out because they are already visible to
other jobs or transactions. In fact, it is possible that the records that were changed by
previously-committed UR were changed again by other jobs or transactions. Therefore, when
the job is rerun, it is important that it determines its restart point and not attempt to redo any
changes it had committed before the failure.
For this reason, it is important that jobs and applications using DFSMStvs be written to run as
a series of transactions and use a commit point tracking mechanism for restart.
There are a few display commands you can use to get information about DFSMStvs:
To display common DFSMStvs information:
DISPLAY SMS,TRANVSAM{,ALL}
This command lists information about the DFSMStvs instance on the system where it was
issued. To get information from all systems, use ALL. This information includes name and
state of the DFSMStvs instance, values for AKP, start type, and the quiesce timeout value,
and also the names, types, and states of the used log streams.
To display information about a particular job that uses DFSMStvs:
DISPLAY SMS,JOB(jobname)
The information about the particular job includes the current job step, the current ID, and
status of the unit of recovery used by this job.
To display information about a particular unit of recovery currently active within the
sysplex:
DISPLAY SMS,URID(urid|ALL)
This command provides information about a particular UR in the sysplex or about all URs
of the system on which this command was issued. If ALL is specified, you do not obtain
information about shunted URs and URs that are restarting. The provided information
includes age and status of the UR, the jobname with which this UR is associated, and the
current step within the job.
To display entries currently contained in the shunt log:
DISPLAY SMS,SHUNTED,{SPHERE(sphere)|
URID(urid|ALL)}
Entries are moved to the shunt log when DFSMStvs is unable to finish processing a sync
point for them. There are several reasons that this might occur, including an I/O error.
Depending on what was specified, you get information for a particular VSAM sphere, a
particular UR, or for all shunted URs in the sysplex.
To display information about logstreams that DFSMStvs is currently using:
DISPLAY SMS,LOG(logstream|ALL)
If ALL is specified, information about all log streams in use is provided from the system on
which the command is issued. The output includes the status and type of the log stream,
the job name, and URID of the oldest unit of recovery using the log. It also uncludes a list
of all DFSMStvs instances that are using the log.
For many years, DASDs have been the most used storage devices on IBM eServer™ zSeries
systems and their predecessors. DASDs deliver the fast random access to data and high
availability that customers have come to expect. This chapter covers the following types of
DASD:
Traditional DASD
DS8000 family
The era of tapes began before DASD was introduced. During that time, tapes were used as
the primary application storage medium. Today, customers use tapes for such purposes as
backup, archiving, and data transfer between companies. The following types of tape devices
are described:
IBM TS1155
IBM TS4500
IBM TS7700
This chapter also briefly explains the storage area network (SAN) concept.
Within each model group, the various models provide either four, eight, or twelve devices. All
A-units come with four controllers, providing a total of four paths to the 3990 Storage Control.
At that time, you were not able to change the characteristics of a given DASD device.
The more modern IBM DASD products, such as DS8000 family, and DASD from other
vendors, emulate IBM 3380 and 3390 volumes in geometry, capacity of tracks, and number of
tracks per cylinder. This emulation makes all the other entities think they are dealing with real
3380s or 3390s, reducing the needs from programmers to deal with different DASD
technologies and architecture.
One benefit of this emulation is that it allows DASD manufacturers to implement changes in
the real disks, including the geometry of tracks and cylinders, without affecting the way those
components interface with DASD. From an operating system point of view, device types
always will be 3390s, sometimes with much higher numbers of cylinders, but 3390s
nonetheless.
Note: This publication uses the terms disk or head disk assembly (HDA) for the real
devices, and the terms DASD volumes or DASD devices for the logical 3380/3390s.
RAID breaks the one-to-one association of volumes with devices. A logical volume is now the
addressable entity presented by the controller to the attached systems. The RAID unit maps
the logical volume across multiple physical devices. Similarly, blocks of storage on a single
physical device can be associated with multiple logical volumes. Because a logical volume is
mapped by the RAID unit across multiple physical devices, it is now possible to overlap
processing for multiple cache misses to the same logical volume because cache misses can
be satisfied by separate physical devices.
The RAID concept involves many serial-attached SCSI (SAS) disks replacing a big one. RAID
provides the following major RAID advantages:
Performance (due to parallelism)
Cost (SAS are commodities)
zSeries compatibility
Environment (space and energy)
RAID Disks
Primary Alternate
Record X Record X
Raid-1 ABCDEF ABCDEF
However, RAID increased the chances of malfunction due to media and disk failures and the
fact that the logical device is on many physical disks. The solution was redundancy, which
wastes space and causes performance problems as “write penalty” and “free space
reclamation.” To address this performance issue, large caches are implemented.
A disk array is a group of disk drive modules (DDMs) that are arranged in a relationship, for
example, a RAID 5 or a RAID 10 array. For the DS8000, the arrays are built upon the disks of
storage enclosures.
Note: The DS8000 storage controllers use the RAID architecture that enables multiple
logical volumes to be mapped on a single physical RAID group. If required, you can still
separate data sets on a physical controller boundary for availability.
Spare disks
The DS8000 requires that a device adapter loop have a minimum of two spare disks to enable
sparing to occur. The sparing function of the DS8000 is automatically initiated whenever a
DDM failure is detected on a device adapter loop and enables regeneration of data from the
failed DDM onto a hot spare DDM.
Note: Data striping (stripe sequential physical blocks in separate disks) is sometimes
called RAID-0, but it is not a real RAID because there is no redundancy, that is, no parity
bits.
The DS8000 series offers various choices of base and expansion models, so you can
configure storage units that meet your performance and configuration needs:
DS8884 and DS8886
DS8884 and DS8886 provide great scalability and performance, with over 5 PB of raw
capacity drive with expansion frames, and up to 2 TB of system memory.
DS8884F, DS8886F, and DS8888F
The DS888xF models feature all-flash drivers, and are optimizes for performance and
throughput by maximizing the number of paths to the storage enclosures.
The DS8000 expansion frames expand the capabilities of the base models, allowing greater
capacity levels for your storage controller.
The DS8884 model can support two expansion frames. With two expansion frames, you can
expand the capacity of the Model 984 as follows:
Up to 768 small form-factor (SFF) drives, and 96 flash cards, for a maximum capacity of
2.61 PB
The DS8886 model can support four expansion frames. With four expansion frames, you can
expand the capacity of the Model 986 as follows:
Up to 1536 SFF drives, and 192 flash cards, for a maximum capacity of 5.22 PB
The DS8888F model can support one expansion frame. With one expansion frame, you can
expand the capacity of the Model 986 as follows:
Up to 384 flash cards, for a maximum capacity of 1.23 PB
Up to 128 Fibre Channel/FICON ports
Figure 8-2 DS8886 front view, with one expansion frame shown
The major DS8000 components will be briefly described next. For an in-depth description of
the DS8000 major components, see IBM DS8880 Product Guide (Release 8.3), REDP-5344.
These servers share the load of receiving and moving data between the attached hosts and
storage arrays. They can provide redundancy, so, if either server fails, the system operations
are processed by the remaining server, without any disruption to the service.
Each DC-UPS has its own battery-backup functions. Therefore, the battery system also
provides 2N redundancy. The battery of a single DC-UPS is able to preserve non-volatile
storage (NVS) in a complete power outage.
All pathing is redundant. The HPFE Microbays are directly attached to the I/O enclosures by
using the PCIe bus fabric, which increases bandwidth and transaction-processing capability
compared to Fibre Channel attached standard drives.
The SFF drives can be Flash Drives (SSDs) or rotational hard disk drives (HDDs), also known
as disk drive modules (DDMs). Although Flash Drives and rotational drive types can both be
used in the same storage system, they are not intermixed within the same standard drive
enclosure pair.
Host adapters
The IBM DS8880 offers 16 Gbps Host Adapters (HAs) with four ports, and 8 Gbps HAs with
either four or eight ports. Each HA port can be individually configured for FC or FICON
connectivity. The 8 Gbps adapters also support FC-AL connections. Configuring multiple host
connections across multiple HAs in multiple I/O enclosures provides the best combination of
throughput and fault tolerance.
Drive options
The IBM DS8880 offers five different drives types to meet the requirements of various
workloads and configurations:
400 GB, 800 GB, 1.6 TB, and 3.2 TB flash cards for the highest performance requirements
400 GB, 800 GB, and 1.6 TB flash drives (SSDs) for higher performance requirements
300 GB, 600 GB, 15,000 RPM Enterprise drives for high-performance requirements
600 GB, 1.2 TB, and 1.8 TB 10,000 RPM drives for standard performance requirements
4 TB, and 6 TB 7,200 RPM Nearline drives for large-capacity requirements.
Additional drive types are in qualification. Flash cards and flash drives are treated as the
same tier, and the IBM Easy Tier® intra-tier auto-rebalance function enables you to use the
higher IOPS capability of flash cards.
For more information about DS8000 family major components, see IBM DS8880 Product
Guide (Release 8.3), REDP-5344.
These hardware and software features, products, and services are available on the IBM
DS8000 series. In addition, a number of advanced Copy Services features that are part of the
IBM TotalStorage Resiliency family are available for the IBM DS6000™ and DS8000 series.
The IBM TotalStorage DS Family also offers systems to support enterprise-class data backup
and disaster recovery capabilities.
As part of the IBM TotalStorage Resiliency Family of software, IBM TotalStorage FlashCopy
point-in-time copy capabilities back up data in the background and allow users nearly instant
access to information about both source and target volumes. Metro and Global Mirror
capabilities create duplicate copies of application data at remote sites. High-speed data
transfers help to back up data for rapid retrieval.
Copy Services functions also are supported on the previous generation of storage systems,
the IBM TotalStorage Enterprise Storage Server®.
8.4.2 FlashCopy
FlashCopy creates a copy of a source volume on the target volume. This copy is called a
point-in-time copy. When you initiate a FlashCopy operation, a FlashCopy relationship is
created between a source volume and target volume. A FlashCopy relationship is a
“mapping” of the FlashCopy source volume and a FlashCopy target volume.
This mapping allows a point-in-time copy of that source volume to be copied to the associated
target volume. The FlashCopy relationship exists between this volume pair from the time that
you initiate a FlashCopy operation until the storage unit copies all data from the source
volume to the target volume or you delete the FlashCopy relationship, if it is a persistent
FlashCopy.
There is no guarantee that dependent write operations are transferred in the same sequence
that they have been applied to the source volume. This nonsynchronous operation results in a
“fuzzy copy” at the recovery site. However, through operational procedures, you can create a
point-in-time consistent copy at your recovery site that is suitable for data migration, backup,
and disaster recovery purposes.
The Global Copy function can operate at very long distances, well beyond the 300 km
distance that is supported for Metro Mirror, and with minimal impact to applications. The
distance is limited only by the network and the channel extended technology.
Global Mirror works well for data protection and migration when recovery sites are more than
300 kilometers away.
In a Metro/Global Mirror configuration, a Metro Mirror volume pair is established between two
nearby sites (local and intermediate) to protect from local site disasters. The Global Mirror
volumes can be located thousands of miles away and can be updated if the original local site
has suffered a disaster but has performed failover operations to the intermediate site. In a
local-site-only disaster, Metro/Global Mirror can provide zero-data-loss recovery at the remote
site and the intermediate site.
The DS8000 series supports the z/OS Global Mirror function on IBM Z hosts, only. The Global
Mirror function mirrors data on the storage system to a remote location for disaster recovery. It
protects data consistency across all volumes that you define for mirroring. The volumes can
be on several different storage systems. The z/OS Global Mirror function can mirror the
volumes over several thousand kilometers from the source site to the target recovery site.
With Global Mirror, you can suspend or resume service during an outage. You do not have to
end your current data-copy session. You can suspend the session, and then restart it. Only
data that changed during the outage must be synchronized again between the copies.
It is now possible to have this queue concept internally. I/O Priority Queuing in DS8000 has
the following properties:
I/O can be queued with the Ds8000 in priority order.
WLM sets the I/O priority when running in goal mode.
There is I/O priority for systems in a sysplex.
Each system gets a fair share.
The DS8000 can manage its cache in 4 KB segments, so for small data blocks (4 KB and
8 KB are common database block sizes), minimum cache is wasted. In contrast, large cache
segments can exhaust cache capacity when filling up with small random reads.
This efficient cache management, together with the optional flash cards and flash drives,
HPFEs, and caching size improvements, all integrate to give greater throughput while
sustaining cache speed response times.
Easy Tier determines the appropriate tier of storage based on data access requirements, and
then automatically and nondisruptively moves data, at the volume or extent level, to the
appropriate tier in the storage system.
Small extents
In an alternative to the standard CKD extents of 1,113 cylinders, you can create volumes
using small extents of 21 cylinders, allowing a better granularity, specially for thin-provisioned
volumes.
Note: Your installation can install a bypass for any type of label processing. However, the
use of labels is preferred as a basis for efficient control of your data.
Usually, the formats of ISO and ANSI labels, which are defined by their respective
organizations, are similar to the formats of IBM standard labels.
Nonstandard tape labels can have any format and are processed by routines that you provide.
Unlabeled tapes contain only data sets and tape marks.
/ /
IBM Standard IBM Standard
IBM IBM Standard
Data Set Data Set
Standard Volume TM Data Set TM TM TM
Header Trailer
Labels Label
Label Label
/ /
/ /
Unlabeled
Tapes Data Set TM TM
/ /
TM= Tapemark
Figure 8-3 SL and NL format
An example of allocating a tape data set using DATACLAS in the DD statement of the JCL
statements follows. In this example, TAPE01 is the name of the data class.
//NEW DD DSN=DATASET.NAME,UNIT=TAPE,DISP=(,CATLG,DELETE),DATACLAS=TAPE01,LABEL=(1,SL)
AL ISO/ANSI/FIPS labels.
BLP Bypass label processing. The data is treated in the same manner as though NL had been
specified, except that the system does not check for an existing volume label. The user is
responsible for the positioning.
If your installation does not allow BLP, the data is treated exactly as though NL had been
specified. Your job can use BLP only if the Job Entry Subsystem (JES) through Job class,
RACF through TAPEVOL class, or DFSMSrmm(*) allow it.
LTM Bypass a leading tape mark. If encountered, on unlabeled tapes from VSE.
Note: If you do not specify the label type, the operating system assumes that the data set
has IBM standard labels.
With an effective tape cartridge capacity of 15 TB using 3592 JD cartridges on TS1155 tape
drives, DFSMS can intercept all but extremely large data sets and manage them with tape
mount management. By implementing tape mount management with DFSMS, you can
reduce your tape mounts with little or no additional hardware required.
Tape mount management also improves job throughput because jobs are no longer queued
up on tape drives. A large portion of all tape data sets queued up on drives are less than
20 MB. With tape mount management, these data sets are on DASD while in use. This
feature frees up the tape drives for other allocations.
Tape mount management recommends that you use DFSMShsm to do interval migration to
SMS storage groups. You can use ACS routines to redirect your tape data sets to a tape
mount management DASD buffer storage group. DFSMShsm scans this buffer regularly and
migrates the data sets to migration level 1 DASD or migration level 2 tape as soon as
possible, based on the management class and storage group specifications.
The IBM 3592 tape drive can be used as a stand-alone solution or as an automated solution
within a TS4500 tape library.
The native rate for data transfer increases up to 360 MBps. The uncompressed amount of
data that fits on a single cartridge increases to 15 TB and is used for scenarios where high
capacity is needed. The tape drive has a second option, where you can store a maximum of
10 TB per tape. This option is used whenever fast access to tape data is needed.
Unlike other tape drives, TS1155 provides two different methods of connecting to the host.
The first option is using 8-Gbps Fibre Channel interface, allowing connections to the host or
switched fabric environment. An alternative model (TS1155 model 55F) has a dual-ported
10 Gb Ethernet port for host attachment, which is optimized for cloud-based and large, open
computer environments.
The IBM TS4500 offers a wide range of features that include the following:
Up to 128 tape drives
Support through the Library Control Unit for attachment of up to 17 additional frames
Cartridge storage capacity of over 17,500 3592 tape cartridges
Data storage capacity of up to 263 PB
With virtualization, a new view of virtual volumes and drives was introduced, as users and
applications using TS7700 do not access directly the physical volumes and drives associated
with it. Instead, they use virtual drives and volumes that are managed by the library. Using a
TS7700 subsystem, the host application writes tape data to virtual devices. The volumes
created by the hosts are called virtual volumes. They are physically stored in a tape volume
cache that is built from RAID DASD, being destaged to physical tapes when attached to a
TS4500, and the library cache reaches the defined threshold.
Each FICON channel in the TS7700 can support up to 512 logical paths, providing up to
4,096 logical paths with eight FICON channels. You can also have up to 496 virtual drives
defined.
Through tape volume cache management policies, the TS7700 management software moves
host-created volumes from the tape volume cache to a cartridge managed by the TS7700
subsystem. When a virtual volume is moved from the tape volume cache to tape, it becomes
a logical volume.
VTS functions
VTS provides the following functions:
Thirty-two 3490E virtual devices.
Tape volume cache (implemented in a RAID-5 disk) that contains virtual volumes.
The tape volume cache consists of a high-performance array of DASD and storage
management software. Virtual volumes are held in the tape volume cache when they are
being used by the host system. Outboard storage management software manages which
virtual volumes are in the tape volume cache and the movement of data between the tape
volume cache and physical devices.
The size of the DASD is made large enough so that more virtual volumes can be retained
in it than just the ones that are currently associated with the virtual devices.
After an application modifies and closes a virtual volume, the storage management
software in the system makes a copy of it onto a physical tape. The virtual volume remains
available on the DASD until the space it occupies reaches a predetermined threshold.
Leaving the virtual volume in the DASD allows for fast access to it during subsequent
requests.
The DASD and the management of the space used to keep closed volumes available is
called tape volume cache. Performance for mounting a volume that is in tape volume
cache is quicker than if a real physical volume is mounted.
Up to sixteen 3592 tape drives. The real 3592 volume contains logical volumes.
Stacked 3592 tape volumes managed by the TS4500. It fills the tape cartridge up to
100%. Putting multiple virtual volumes into a stacked volume, TS7700 uses all of the
available space on the cartridge. TS7700 uses IBM 3592 cartridges when stacking
volumes.
Logical volumes that are created within a grid can be selectively replicated to one or more
peer clusters by using a selection of different replication policies. Each replication policy or
Copy Consistency Point provides different benefits, and can be intermixed. The grid
architecture also enables any volume that is located within any cluster to be accessed
remotely, which enables ease of access to content anywhere in the grid.
The term SAN is usually (but not necessarily) identified with block I/O services rather than file
access services. It can also be a storage system that consists of storage elements, storage
devices, computer systems, and appliances, plus all control software, communicating over a
network.
SANs today are usually built by using Fibre Channel technology, but the concept of a SAN is
independent of the underlying type of network.
LAN
Any Storage
ESS
Figure 8-4 Sample SAN configuration
The publications listed in this section are considered particularly suitable for a more detailed
discussion of the topics covered in this book.
Other publications
These publications are also relevant as further information sources:
Device Support Facilities (ICKDSF) User's Guide and Reference, GC35-0033-35
Device Support Facilities User’s Guide and Reference Release 17, GC35-0033
DFSMS Optimizer User’s Guide and Reference, SC26-7047
DFSORT Getting Started with DFSORT R14, SC26-4109
DFSORT Installation and Customization Release 14, SC33-4034
Tivoli Decision Support for OS/390 System Performance Feature Reference Volume I,
SH19-6819
z/OS DFSMS Access Method Services for Catalogs, SC26-7394
z/OS DFSMS Implementing System-Managed Storage, SC26-7407
z/OS DFSMS: Managing Catalogs, SC26-7409
z/OS DFSMS Object Access Method Application Programmer’s Reference, SC35-0425
z/OS DFSMS Object Access Method Planning, Installation, and Storage Administration
Guide for Object Support, SC35-0426
z/OS DFSMS: Using Data Sets, SC26-7410
z/OS DFSMS: Using the Interactive Storage Management Facility, SC26-7411
z/OS DFSMS: Using Magnetic Tapes, SC26-7412
z/OS DFSMSdfp Storage Administration Reference, SC26-7402
z/OS DFSMSdfp Utilities, SC26-7414
z/OS DFSMSdss Storage Administration Guide, SC35-0423
z/OS DFSMSdss Storage Administration Reference, SC35-0424
z/OS DFSMShsm Storage Administration Guide, SC35-0421
Online resources
These websites and URLs are also relevant as further information sources:
For articles, online books, news, tips, techniques, examples, and more, visit the IBM Data
storage home page:
https://www.ibm.com/storage
SG24-6983-04
ISBN 0738442801
Printed in U.S.A.
®
ibm.com/redbooks