Abcs Of Zos System Programming Paul Rogers Alvaro Salla pdf download
Abcs Of Zos System Programming Paul Rogers Alvaro Salla pdf download
https://ebookbell.com/product/abcs-of-zos-system-programming-
paul-rogers-alvaro-salla-48713662
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713636
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713638
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713640
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713642
Abcs Of Zos System Programming Paul Rogers Alvaro Salla
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713648
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713658
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713660
https://ebookbell.com/product/abcs-of-zos-system-programming-paul-
rogers-alvaro-salla-48713664
https://ebookbell.com/product/abcs-of-zos-system-programming-karan-
singh-paul-rogers-48713666
Front cover
Paul Rogers
Redelf Janssen
Andre Otto
Rita Pleus
Alvaro Salla
Valeria Sokal
ibm.com/redbooks
International Technical Support Organization
March 2010
SG24-6983-03
Note: Before using this information and the product it supports, read the information in “Notices” on
page ix.
This edition applies to Version 1 Release 11 of z/OS (5694-A01) and to subsequent releases and
modifications until otherwise indicated in new editions.
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
5.5 Implementing SMS policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
5.6 Monitoring SMS policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
5.7 Assigning data to be system-managed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
5.8 Using data classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
5.9 Using storage classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
5.10 Using management classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
5.11 Management class functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
5.12 Using storage groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
5.13 Using aggregate backup and recovery support (ABARS) . . . . . . . . . . . . . . . . . . . . . 260
5.14 Automatic Class Selection (ACS) routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
5.15 SMS configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
5.16 SMS control data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5.17 Implementing DFSMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
5.18 Steps to activate a minimal SMS configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
5.19 Allocating SMS control data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
5.20 Defining the SMS base configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
5.21 Creating ACS routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
5.22 DFSMS setup for z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
5.23 Starting SMS and activating a new configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
5.24 Control SMS processing with operator commands . . . . . . . . . . . . . . . . . . . . . . . . . . 282
5.25 Displaying the SMS configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
5.26 Managing data with a minimal SMS configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 285
5.27 Device-independence space allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
5.28 Developing naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
5.29 Setting the low-level qualifier (LLQ) standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
5.30 Establishing installation standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
5.31 Planning and defining data classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
5.32 Data class attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
5.33 Use data class ACS routine to enforce standards . . . . . . . . . . . . . . . . . . . . . . . . . . 295
5.34 Simplifying JCL use. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
5.35 Allocating a data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
5.36 Creating a VSAM cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
5.37 Retention period and expiration date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.38 SMS PDSE support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
5.39 Selecting data sets to allocate as PDSEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.40 Allocating new PDSEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
5.41 System-managed data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.42 Data types that cannot be system-managed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
5.43 Interactive Storage Management Facility (ISMF) . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
5.44 ISMF: Product relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
5.45 ISMF: What you can do with ISMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
5.46 ISMF: Accessing ISMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
5.47 ISMF: Profile option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
5.48 ISMF: Obtaining information about a panel field . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.49 ISMF: Data set option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.50 ISMF: Volume Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
5.51 ISMF: Management Class option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
5.52 ISMF: Data Class option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
5.53 ISMF: Storage Class option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
5.54 ISMF: List option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Contents vii
7.29 Accessing a data set with DFSMStvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
7.30 Application considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
7.31 DFSMStvs logging implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
7.32 Prepare for logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
7.33 Update PARMLIB with DFSMStvs parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
7.34 The DFSMStvs instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
7.35 Interacting with DFSMStvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
7.36 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
This information was developed for products and services offered in the U.S.A.
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 give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of
express or implied warranties in certain transactions, therefore, this statement may not apply to you.
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 Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring
any obligation to you.
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.
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 the names and addresses used by an actual business
enterprise 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 following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
AIX® i5/OS® RETAIN®
AS/400® IBM® RS/6000®
CICS® IMS™ S/390®
DB2® iSeries® System i®
DS6000™ Language Environment® System Storage™
DS8000® Magstar® System z®
Enterprise Storage Server® OS/390® Tivoli®
ESCON® OS/400® TotalStorage®
eServer™ Parallel Sysplex® VTAM®
FICON® POWER5™ z/Architecture®
FlashCopy® PowerPC® z/OS®
GDPS® PR/SM™ z/VM®
Geographically Dispersed Parallel pSeries® z9®
Sysplex™ RACF® zSeries®
Hiperspace™ Redbooks®
HyperSwap® Redbooks (logo) ®
Novell, the Novell logo, and the N logo are registered trademarks of Novell, Inc. in the United States and other
countries.
ACS, Interchange, and the Shadowman logo are trademarks or registered trademarks of Red Hat, Inc. in the
U.S. and other countries.
SAP, and SAP logos are trademarks or registered trademarks of SAP AG in Germany and in several other
countries.
Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other
countries, or both.
Microsoft, Windows NT, Windows, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
Intel, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States and other countries.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
Volume 1: Introduction to z/OS and storage concepts, TSO/E, ISPF, JCL, SDSF, and z/OS
delivery and installation
Volume 2: z/OS implementation and daily maintenance, defining subsystems, JES2 and
JES3, LPA, LNKLST, authorized libraries, Language Environment®, and SMP/E
Volume 3: Introduction to DFSMS, data set basics, storage management hardware and
software, VSAM, System-Managed Storage, catalogs, and DFSMStvs
Volume 5: Base and Parallel Sysplex®, System Logger, Resource Recovery Services (RRS),
Global Resource Serialization (GRS), z/OS system operations, Automatic Restart
Management (ARM), Geographically Dispersed Parallel Sysplex™ (GPDS)
Redelf Janssen is an IT Architect in IBM Global Services ITS in IBM Germany. He holds a
degree in Computer Science from University of Bremen and joined IBM Germany in 1988. His
areas of expertise include IBM zSeries, z/OS and availability management. He has written
IBM Redbooks® publications on OS/390 Releases 3, 4, and 10, and z/OS Release 8.
Andre Otto is a z/OS DFSMS SW service specialist at the EMEA Backoffice team in
Germany. He has 12 years of experience in the DFSMS, VSAM and catalog components.
Andre holds a degree in Computer Science from the Dresden Professional Academy.
Rita Pleus is an IT Architect in IBM Global Services ITS in IBM Germany. She has 21 years
of IT experience in a variety of areas, including systems programming and operations
management. Before joining IBM in 2001, she worked for a German S/390® customer. Rita
holds a degree in Computer Science from the University of Applied Sciences in Dortmund.
Her areas of expertise include z/OS, its subsystems, and systems management.
Alvaro Salla is an IBM retiree who worked for IBM for more than 30 years in large systems.
He has co-authored many IBM Redbooks publications and spent many years teaching S/360
to S/390. He has a degree in Chemical Engineering from the University of Sao Paulo, Brazil.
Valeria Sokal is an MVS system programmer at an IBM customer. She has 16 years of
experience as a mainframe systems programmer.
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
Preface xiii
xiv ABCs of 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.
DFSMS is an exclusive element of the z/OS operating system and is a software suite that
automatically manages data from creation to expiration.
IBM 3494
Understanding DFSMS
Data management is the part of the operating system that organizes, identifies, stores,
catalogs, and retrieves all the data information (including programs) that your installation
uses. DFSMS is an exclusive element of the z/OS operating system. DFSMS is a software
suite that automatically manages data from creation to expiration.
DFSMSdfp helps you store and catalog information about 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.
Systems programmer
As a systems programmer, you can use DFSMS data management to:
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
NFS
IBM workstations
IBM System z
dfp
tvs NFS
Storage dss DFSMS
Hierarchy
rmm
hsm
P690
DFSMS components
DFSMS is an exclusive element of the z/OS operating system. DFSMS is a software suite
that automatically manages data from creation to expiration. The following elements comprise
DFSMS:
DFSMSdfp, a base element of z/OS
DFSMSdss, an optional feature of z/OS
DFSMShsm, an optional feature of z/OS
DFSMSrmm, an optional feature of z/OS
DFSMStvs, an optional feature of z/OS
DFSMSdfp Provides storage, data, program, and device management. It is comprised of
components such as access methods, OPEN/CLOSE/EOV routines, catalog
management, DADSM (DASD space control), utilities, IDCAMS, SMS, NFS,
ISMF, and other functions.
DFSMSdss Provides data movement, copy, backup, and space management functions.
DFSMShsm Provides backup, recovery, migration, and space management functions. It
invokes DFSMSdss for certain of its functions.
DFSMSrmm Provides management functions for removable media such as tape cartridges
and optical media.
DFSMStvs Enables batch jobs and CICS® online transactions to update shared VSAM
data sets concurrently.
DFSMSdfp component
DFSMSdfp provides storage, data, program, and device management. It is comprised of
components such as access methods, OPEN/CLOSE/EOV routines, catalog management,
DADSM (DASD space control), utilities, IDCAMS, SMS, NFS, ISMF, and other functions.
Managing storage
The storage management subsystem (SMS) is a DFSMSdfp facility designed for automating
and centralizing storage management. SMS automatically assigns attributes to new data
when that data is created. SMS automatically controls system storage and assigns data to
the appropriate storage device. ISMF panels allow you to specify these data attributes.
For more information about ISMF, see 5.43, “Interactive Storage Management Facility (ISMF)”
on page 309.
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
Control access to data
Transfer data between the application program and the medium
Mount magnetic tape volumes in the drive
z/OS UNIX System Services (z/OS UNIX) provides the command interface that interactive
UNIX users can use. z/OS UNIX allows z/OS programs to directly access UNIX data.
Concurrent copy
Figure 1-4 DFSMSdss functions
DFSMSdss component
DFSMSdss is the primary data mover for DFSMS. DFSMSdss copies and moves data to help
manage storage, data, and space more efficiently. It can efficiently move multiple data sets
from old to new DASD. The data movement capability that is provided by DFSMSdss is useful
for many other operations, as well. You can use DFSMSdss to perform the following tasks.
Space management
DFSMSdss can reduce or eliminate DASD free-space fragmentation.
Concurrent copy
When it is used with supporting hardware, DFSMSdss also provides concurrent copy
capability. Concurrent copy lets you copy or back up data while that data is being used. The
user or application program determines when to start the processing, and the data is copied
as though no updates have occurred.
DFSMSrmm component
DFSMSrmm manages your removable media resources, including tape cartridges and reels.
It provides the following functions.
Library management
You can create tape libraries, or collections of tape media associated with tape drives, to
balance the work of your tape drives and help the operators that use them.
Volume management
DFSMSrmm manages the movement and retention of tape volumes throughout their life
cycle.
Storage management
Space management
Availability management
DFSMShsm component
DFSMShsm complements DFSMSdss to provide the following functions.
Storage management
DFSMShsm provides automatic DASD storage management, thus relieving users from
manual storage management tasks.
Space management
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.
Attention: You must also have DFSMSdss to use the DFSMShsm functions.
DFSMStvs component
DFSMS Transactional VSAM Services (DFSMStvs) allows you to share VSAM data sets
across CICS, batch, and object-oriented applications on z/OS or distributed systems.
DFSMStvs enables concurrent shared updates of recoverable VSAM data sets by CICS
transactions and multiple batch applications. DFSMStvs enables 24-hour availability of CICS
and batch applications.
DFSMStvs is built on top of VSAM record-level sharing (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 need only 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
The Storage Management Subsystem (SMS) is an operating environment that automates the
management of storage. Storage management uses the values provided at allocation time to
determine, for example, on which volume to place your data set, and how many tracks to
allocate for it. Storage management also manages tape data sets on mountable volumes that
reside in an automated tape library. With SMS, users can allocate data sets more easily.
The data sets allocated through SMS are called system-managed data sets or SMS-managed
data sets.
Access methods are identified primarily by the way that they organize the data in the data set.
For example, use the basic sequential access method (BSAM) or queued sequential access
method (QSAM) with sequential data sets. However, there are times when an access method
identified with one organization can be used to process a data set organized in another
manner. For example, a sequential data set (not extended-format data set) created using
BSAM can be processed by the basic direct access method (BDAM), and vice versa. Another
example is UNIX files, which you can process using BSAM, QSAM, basic partitioned access
method (BPAM), or virtual storage access method (VSAM).
DATASET.SEQ1
DATASET.SEQ DATASET.SEQ2
DATASET.PDS DATASET.SEQ3
DATASET.VSAM
VOLSER=DASD01 VOLSER=SL0001
Note: As an exception, the z/OS UNIX services component supports Hierarchical File
System (HFS) data sets, where the collection is of bytes and there is not the concept of
logically related data records.
Storage devices
Data can be stored on a magnetic direct access storage device (DASD), magnetic tape
volume, or optical media. As mentioned previously, the term DASD applies to disks or
simulated equivalents of disks. All types of data sets can be stored on DASD, but only
sequential data sets can be stored on magnetic tape. The types of data sets are described in
2.3, “DFSMSdfp data set types” on page 20.
DASD volumes
Each block of data on a DASD volume has a distinct location and a unique address, making it
possible to find any record without extensive searching. You can store and retrieve records
either directly or sequentially. Use DASD volumes for storing data and executable programs,
The following sections discuss the logical attributes of a data set, which are specified at data
set creation time in:
DCB/ACB control blocks in the application program
DD cards (explicitly, or through the Data Class (DC) option with DFSMS)
In an ACS Data Class (DC) routine (overridden by a DD card)
After the creation, such attributes are kept in catalogs and VTOCs.
HARRY.FILE.EXAMPLE.DATA
1º 2º 3º 4º
HLQ LLQ
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), 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 to
Z) or national (# @ $). The remaining seven characters are either alphabetic, numeric (0 - 9),
national, 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.
Large format data sets reduce the need to use multiple volumes for single data sets,
especially very large ones such as spool data sets, dumps, logs, and traces. Unlike
extended-format data sets, which also support greater than 65 535 tracks per volume, large
format data sets are compatible with EXCP and do not need to be SMS-managed.
You can allocate a large format data set using the DSNTYPE=LARGE parameter on the DD
statement, dynamic allocation (SVC 99), TSO/E ALLOCATE, or the access method services
ALLOCATE command.
You can allocate a basic format data set 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.
Objects
Objects are named streams of bytes that have no specific format or record orientation. Use
the object access method (OAM) to store, access, and manage object data. You can use any
type of data in an object because OAM does not recognize the content, format, or structure of
the data. For example, an object can be a scanned image of a document, an engineering
drawing, or a digital video. OAM objects are stored either on DASD in a DB2® database, or
on an optical drive, or on an optical or tape storage volume.
The storage administrator assigns objects to object storage groups and object backup
storage groups. The object storage groups direct the objects to specific DASD, optical, or tape
devices, depending on their performance requirements. You can have one primary copy of an
object and up to two backup copies of an object. A Parallel Sysplex allows you to access
objects from all instances of OAM and from optical hardware within the sysplex.
Partitioned Organized
Physical Sequential
(PDS and PDSE)
Compression
Data striping
Extended-addressability
Objects
An extended-format data set can occupy any number of tracks. On a volume that has more
than 65,535 tracks, a sequential data set cannot occupy more than 65,535 tracks.
An extended-format, striped sequential data set can contain up to 4 GB blocks. The maximum
size of each block is 32 760 bytes.
System-managed DASD
You can allocate both sequential and VSAM data sets in extended format on a
system-managed DASD. Extended-format VSAM data sets also allow you to release partial
unused space and to use system-managed buffering (SMB, a fast buffer pool management
technique) for VSAM batch programs. You can select whether to use the primary or
secondary space amount when extending VSAM data sets to multiple volumes.
Objects
Objects are named streams of bytes that have no specific format or record orientation. Use
the object access method (OAM) to store, access, and manage object data. You can use any
type of data in an object because OAM does not recognize the content, format, or structure of
the data. For example, an object can be a scanned image of a document, an engineering
drawing, or a digital video. OAM objects are stored either on DASD in a DB2 database, or on
an optical drive, or on a tape storage volume.
The storage administrator assigns objects to object storage groups and object backup
storage groups. The object storage groups direct the objects to specific DASD, optical, or tape
devices, depending on their performance requirements. You can have one primary copy of an
object, and up to two backup copies of an object.
Data striping
Sequential data striping can be used for physical sequential data sets that cause I/O
bottlenecks for critical applications. Sequential data striping uses extended-format sequential
data sets that SMS can allocate over multiple volumes, preferably on separate channel paths
and control units, to improve performance. These data sets must reside on 3390 volumes that
are located on the IBM DS8000®.
Sequential data striping can reduce the processing time 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, such as an extended format data set,
that resides on one volume. The records in that portion are not always logically consecutive.
The system distributes records among the stripes such that the volumes can be read from or
written to simultaneously to gain better performance. Whether it is striped is not apparent to
the application program. Data striping distributes data for one data set across multiple
SMS-managed DASD volumes, which improves I/O performance and reduces the batch
window. For example, a data set with 28 stripes is distributed across 28 volumes.
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
Data class attributes define space and data characteristics of data sets that are normally
specified on JCL DD statements, TSO/E ALLOCATE commands, access method services
(IDCAMS) DEFINE commands, dynamic allocation requests, and ISPF/PDF panels. 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 (VSAM).
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.
Then, SMS 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 have 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 there are a sufficient number of separate paths 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.
Note: This support is invoked when allocating a new striped data set. Volumes are ranked
by preference weight from each individual controller. This support selects the most
preferred storage group that meets or closely meets the target stripe count. This allows
selection from the most preferred volume from individual controllers to meet the stripe
count (try to spread stripes across controllers).
Automatically activate the fast volume selection function to avoid overutilizing system
resources.
After selecting a storage group, SMS selects volumes by their preference weight. Primary
volumes are preferred over secondary volumes because they have a higher preference
weight. Secondary volumes are selected when there is an insufficient number of primary
volumes. If there are multiple volumes with the same preference weight, SMS selects one of
the volumes at random.
Volume preference
Volume preference attributes, such as availability, accessibility, and PAV capability are
supported.
Data sets defined as large format must be accessed 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.
Figure 2-9 on page 31 shows the creation of a data set using ISPF panel 3.2. Other ways to
create a data set are as follows:
Access method services
You can define VSAM data sets and establish catalogs by using a multifunction services
program called access method services.
TSO ALLOCATE command
You can issue the ALLOCATE command of TSO/E to define VSAM and non-VSAM data
sets.
Using JCL
Any data set can be defined directly with JCL by specifying DSNTYPE=LARGE on the DD
statement.
You can allocate a basic format data set 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.
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.
Figure 2-10 Large format data set enhancement with z/OS V1R9
Updates have been made to the following commands and service to ensure that each can
handle large format data sets:
TSO TRANSMIT, RECEIVE
PRINTDS
Restriction: Types of data sets that cannot be allocated as large format data sets are:
PDS, PDSE, and direct data sets
Virtual I/O data sets, password data sets, and system dump data sets
NOTICE.
CONCERNING WOUNDED BRITISH SOLDIERS.
In compliance with an order of the Commander-in-Chief of the German
Imperial Army, the Governor-General of East Anglia decrees as follows:—
(1) Every inhabitant of the counties of Norfolk, Suffolk, Essex,
Cambridge, Lincolnshire, Yorkshire, Nottingham, Derby, Leicester,
Northampton, Rutland, Huntingdon, and Hertford, who gives asylum to or
lodges one or more ill or wounded British soldier, is obliged to make a
declaration to the mayor of the town or to the local police within 24 hours,
stating name, grade, place of birth, and nature of illness or injury.
Every change of domicile of the wounded is also to be notified within
24 hours.
In absence of masters, servants are ordered to make the necessary
declarations.
The same order applies to the directors of hospitals, surgeries, or
ambulance stations, who receive the British wounded within our
jurisdiction.
(2) All mayors are ordered to prepare lists of the British wounded,
showing the number, with their names, grade, and place of birth in each
district.
(3) The mayor, or the superintendent of police, must send on the 1st and
15th of each month a copy of his lists to the headquarters of the
Commander-in-Chief. The first list must be sent on the 15th September.
(4) Any person failing to comply with this order will, in addition to
being placed under arrest for harbouring British troops, be fined a sum not
exceeding £20.
(5) This decree is to be published in all towns and villages in the
Province of East Anglia.
Count VON SCHONBURG-WALDENBURG,
Lieutenant-General,
Governor of German East Anglia.
Ipswich, September 6, 1910.
CHAPTER XVI
could reach them. Under this cross hurricane of projectiles the British fire
was quite beaten down, and the Germans followed up their skirmishers by
almost solid masses, which advanced with all but impunity save for the fire
of the few British long-range guns at Pleshy Mount. There they were firing
almost at random, as the gunners could not be certain of the exact
whereabouts of their objectives. There was a searchlight on the knoll, but at
the first sweep of its ray it was absolutely demolished by a blizzard of
shrapnel. Every German gun was turned upon it. The Hanoverian battalions
now swarmed to the assault, disregarding the gaps made in their ranks by
the magazine fire of the defenders as soon as their close advance masked
the fire of their own cannon.
“The British fought desperately. Three several times they hurled back at
the attackers, but, alas! we were overborne by sheer weight of numbers.
Reinforcements summoned by telephone, as soon as the determined nature
of the attack was apparent, were hurried up from every available source, but
they only arrived in time to be carried down the hill again in the rush of its
defeated defenders, and to share with them the storm of projectiles from the
quick-firers of General Von Kronhelm’s artillery, which had been pushed
forward during the assault. It was with the greatest difficulty that the
shattered and disorganised troops were got over the river at Little Waltham.
As it was, hundreds were drowned in the little stream, and hundreds of
others killed and wounded by the fire of the Germans. They had won the
first trick. This was indisputable, and as ill news travels apace, a feeling of
gloom fell upon our whole force, for it was realised that the possession of
the captured knoll would enable the enemy to mass troops almost within
effective rifle range of our river line of defence. I believe that it was
proposed by some officers on the staff that we should wheel back our left
and take up a fresh position during the night. This was overruled, as it was
recognised that to do so would enable the enemy to push in between the
Dunmow force and our own, and so cut our general line in half. All that
could be done was to get up every available gun and bombard the hill
during the night, in order to hamper the enemy in his preparations for
further forward movement and in his entrenching operations.
“Had we more men at our disposal I suppose there is little doubt that a
strong counter attack would have been made on the knoll almost
immediately; but in the face of the enormous numbers opposed to us, I
imagine that General Blennerhasset did not feel justified in denuding any
portion of our position of its defenders. So all through the dark hours the
thunder of the great guns went on. In spite of the cannonade the Germans
turned on no less than three searchlights from the southern end of the knoll
about midnight. Two were at once put out by our fire, but the third managed
to exist for over half an hour, and enabled the Germans to see how hard we
were working to improve our defences along the river bank. I am afraid that
they were by this means able to make themselves acquainted with the
positions of a great number of our trenches. During the night our patrols
reported being unable to penetrate beyond Pratt’s Farm, Mount Maskell,
and Porter’s Farm on the Colchester Road. Everywhere they were forced
back by superior numbers. The enemy were fast closing in upon us. It was a
terrible night in Chelmsford.
“There was a panic on every hand. A man mounted the Tindal statue and
harangued the crowd, urging the people to rise and compel the Government
to stop the war. A few young men endeavoured to load the old Crimean
cannon in front of the Shire Hall, but found it clogged with rust and useless.
People fled from the villa residences in Brentwood Road into the town for
safety, now that the enemy were upon them. The banks in High Street were
being barricaded, and the stores still remaining in the various grocers’
shops, Luckin Smith’s, Martin’s, Cramphorn’s, and Pearke’s, were rapidly
being concealed from the invaders. All the ambulance wagons entering the
town were filled with wounded, although as many as possible were sent
south by train. By one o’clock in the morning, however, most of the civilian
inhabitants had fled. The streets were empty, but for the bivouacking troops
and the never-ending procession of wounded men. The General and his
Staff were deliberating to a late hour in the Shire Hall, at which he had
established his headquarters. The booming of the guns waxed and waned till
dawn, when a furious outburst announced that the second act of the tragedy
was about to open.
“I had betaken myself at once to the round tower of the church, next the
Stone-bridge, from which I had an excellent view both east and north. The
first thing that attracted my eye was the myriad flashings of rifle fire in the
dimness of the breaking day. They reached in a continuous line of
coruscations from Boreham Hall, opposite my right hand, to the knoll by
Little Waltham, a distance of three or four miles, I should say. The enemy
were driving in all our outlying and advanced troops by sheer weight of
numbers. Presently the heavy batteries at Danbury began pitching shell over
in the direction of the firing, but as the German line still advanced, it had
not apparently any very great effect. The next thing that happened was a
determined attack on the village of Howe Street made from the direction of
Hyde Hall. This is about two miles north of Little Waltham. In spite of our
incessant fire, the Germans had contrived to mass a tremendous number of
guns and howitzers on and behind the knoll they captured last night, and
there were any quantity more on the ridge above Hyde Hall. All these
terrible weapons concentrated their fire for a few moments on the blackened
ruins of Howe Street. Not a mouse could have lived there. The little place
was simply pulverised.
“Our guns at Pleshy Mount and Rolphy Green, aided by a number of
field batteries, in vain endeavoured to make head against them. They were
outnumbered by six to one. Under cover of this tornado of iron and fire, the
enemy pushed several battalions over the river, making use of the ruins of
the many bridges about
DECREE
CONCERNING THE POWER OF COUNCILS OF WAR.
WE, GOVERNOR-GENERAL OF EAST ANGLIA, in virtue of the powers conferred upon us
by His Imperial Majesty the German Emperor, Commander-in-Chief of the German Armies, order,
for the maintenance of the internal and external security of the counties of the Government-
General:—
Article I.—Any individual guilty of incendiarism or of wilful inundation, of attack, or of
resistance with violence against the Government-General or the agents of the civil or military
authorities, of sedition, of pillage, of theft with violence, of assisting prisoners to escape, or of
exciting soldiers to treasonable acts, shall be PUNISHED BY DEATH.
In the case of any extenuating circumstances, the culprit may be sent to penal servitude with
hard labour for twenty years.
Article II.—Any person provoking or inciting an individual to commit the crimes mentioned in
Article I. will be sent to penal servitude with hard labour for ten years.
Article III.—Any person propagating false reports relative to the operations of war or political
events will be imprisoned for one year, and fined up to £100.
In any case where the affirmation or propagation may cause prejudice against the German army,
or against any authorities or functionaries established by it, the culprit will be sent to hard labour
for ten years.
Article IV.—Any person usurping a public office, or who commit any act or issues any order in
the name of a public functionary, will be imprisoned for five years, and fined £150.
Article V.—Any person who voluntarily destroys or abstracts any documents, registers,
archives, or public documents deposited in public offices, or passing through their hands in virtue
of their functions as government or civic officials, will be imprisoned for two years, and fined
£150.
Article VI.—Any person obliterating, damaging, or tearing down official notices, orders, or
proclamations of any sort issued by the German authorities will be imprisoned for six months, and
fined £80.
Article VII.—Any resistance or disobedience of any order given in the interests of public
security by military commanders and other authorities, or any provocation or incitement to commit
such disobedience, will be punished by one year’s imprisonment, or a fine of not less than £150.
Article VIII.—All offences enumerated in Articles I.-VII. are within the jurisdiction of the
Councils of War.
Article IX.—It is within the competence of Councils of War to adjudicate upon all other crimes
and offences against the internal and external security of the English provinces occupied by the
German Army, and also upon all crimes against the military or civil authorities, or their agents, as
well as murder, the fabrication of false money, of blackmail, and all other serious offences.
Article X.—Independent of the above, the military jurisdiction already proclaimed will remain
in force regarding all actions tending to imperil the security of the German troops, to damage their
interests, or to render assistance to the Army of the British Government.
Consequently, there will be PUNISHED BY DEATH, and we expressly repeat this, all persons
who are not British soldiers and—
(a) Who serve the British Army or the Government as spies, or receive British spies, or give
them assistance or asylum.
(b) Who serve as guides to British troops, or mislead the German troops when charged to act as
guides.
(c) Who shoot, injure, or assault any German soldier or officer.
(d) Who destroy bridges or canals, interrupt railways or telegraph lines, render roads
impassable, burn munitions of war, provisions, or quarters of the troops.
(e) Who take arms against the German troops.
Article XI.—The organisation of Councils of War mentioned in Articles VIII. and IX. of the
Law of May 2, 1870, and their procedure are regulated by special laws which are the same as the
summary jurisdiction of military tribunals. In the case of Article X. there remains in force the Law
of July 21, 1867, concerning the military jurisdiction applicable to foreigners.
Article XII.—The present order is proclaimed and put into execution on the morrow of the day
upon which it is affixed in the public places of each town and village.
The Governor-General of East Anglia,
COUNT von SCHONBURG-WALDENBURG,
Lieutenant-General.
Norwich, September 7th, 1910.
there which had been hastily destroyed, and which they repaired with
planks and other materials they brought along with them. They lost a large
number of men in the process, but they persevered, and by ten o’clock were
in complete possession of Howe Street, Langley’s Park, and Great Waltham,
and moving in fighting formation against Pleshy Mount and Rolphy Green,
their guns covering their advance with a perfectly awful discharge of
shrapnel. Our cannon on the ridge at Partridge Green took the attackers in
flank, and for a time checked their advance, but, drawing upon themselves
the attention of the German artillery, on the south end of the knoll, were all
but silenced.
“As soon as this was effected another strong column of Germans
followed in the footsteps of the first, and deploying to the left, secured the
bridge at Little Waltham, and advanced against the gun positions on
Partridge Green. This move turned all our river bank entrenchments right
down to Chelmsford. Their defenders were now treated to the enfilade fire
of a number of Hanoverian batteries that galloped down to Little Waltham.
They stuck to their trenches gallantly, but presently when the enemy
obtained a footing on Partridge Green they were taken in reverse, and
compelled to fall back, suffering terrible losses as they did so. The whole of
the infantry of the Xth Corps, supported—as we understand—by a division
which had joined them from Maldon, now moved down on Chelmsford. In
fact, there was a general advance of the three combined armies stretching
from Partridge Green on the west to the railway line on the east. The
defenders of the trenches facing east were hastily withdrawn, and thrown
back on Writtle. The Germans followed closely with both infantry and guns,
though they were for a time checked near Scot’s Green by a dashing charge
of our cavalry brigade, consisting of the 16th Lancers and the 7th, 14th, and
20th Hussars, and the Essex and Middlesex Yeomanry. We saw nothing of
their cavalry, for a reason that will be apparent later. By one o’clock fierce
fighting was going on all round the town, the German hordes enveloping it
on all sides but one. We had lost a great number of our guns, or at anyrate
had been cut off from them by the German successes around Pleshy Mount,
and in all their assaults on the town they had been careful to keep out of
effective range of the heavy batteries on Danbury Hill. These, by the way,
had their own work cut out for them, as the Saxon artillery were heavily
bombarding the hill with their howitzers. The British forces were in a
critical situation. Reinforcements—such as could be spared—were hurried
up from the Vth Army Corps, but they were not very many in numbers, as it
was necessary to provide against an attack by the Saxon Corps. By three
o’clock the greater part of the town was in the hands of the Germans,
despite the gallant way in which our men fought them from street to street,
and house to house. A dozen fires were spreading in every direction, and
fierce fighting was going on at Writtle. The overpowering numbers of the
Germans, combined with their better organisation, and the number of
properly trained officers at their disposal, bore the British mixed Regular
and Irregular forces back, and back again.
“Fearful of being cut off from his line of retreat, General Blennerhasset,
on hearing from Writtle soon after three that the Hanoverians were pressing
his left very hard, and endeavouring to work round it, reluctantly gave
orders for the troops in Chelmsford to fall back on Widford and Moulsham.
There was a lull in the fighting for about half an hour, though firing was
going on both at Writtle and Danbury. Soon after four a terrible rumour
spread consternation on every side. According to this, an enormous force of
cavalry and motor infantry was about to attack us in the rear. What had
actually happened was not quite so bad as this, but quite bad enough. It
seems, according to our latest information, that almost the whole of the
cavalry belonging to the three German Army Corps with whom we were
engaged—something like a dozen regiments, with a proportion of horse
artillery and all available motorists, having with them several of the new
armoured motors carrying light, quick-firing and machine guns—had been
massed during the last thirty-six hours behind the Saxon lines extending
from Maldon to the River Crouch. During the day they had worked round to
the southward, and at the time the rumour reached us were actually
attacking Billericay, which was held by a portion of the reserves of our Vth
Corps. By the time this news was confirmed the Germans were assaulting
Great Baddow, and moving on Danbury from east, north, and west, at the
same time resuming the offensive all along the line. The troops at Danbury
must be withdrawn, or they would be isolated. This difficult manœuvre was
executed by way of West Hanningfield. The rest of the Vth Corps
conformed to the movement, the Guards Brigade at East Hanningfield
forming the rearguard, and fighting fiercely all night through with the
Saxon troops, who moved out on the left flank of our retreat. The wreck of
the Ist Corps and the Colchester Garrison was now also in full retirement.
Ten miles lay between it and the lines at Brentwood, and had the Germans
been able to employ cavalry in pursuit, this retreat would have been even
more like a rout than it was. Luckily for us the Billericay troops mauled the
German cavalry pretty severely, and they were beset in the close country in
that neighbourhood by Volunteers, motorists and every one that the officer
commanding at Brentwood could get together in this emergency.
“Some of them actually got upon our line of retreat, but were driven off
by our advance guard; others came across the head of the retiring Vth
Corps, but the terrain was all against cavalry, and after nightfall most of
them had lost their way in the maze of lanes and hedgerows that covered
the countryside. Had it not been for this we should probably have been
absolutely smashed. As it was, rather more than half our original numbers
of men and guns crawled into Brentwood in the early morning, worn out
and dead-beat.”
CHAPTER XVII
ebookbell.com