0% found this document useful (0 votes)
694 views396 pages

DFSMSHSM Primer

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
694 views396 pages

DFSMSHSM Primer

Uploaded by

gborja8881331
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 396

DFSMShsm Primer

A MUST READ book for those new to


DFSMShsm

Learn about the latest


DFSMShsm enhancements

Many examples of how to


use DFSMShsm

Yolanda Cascajo Jimenez


Hien Truong

ibm.com/redbooks
SG24-5272-01

International Technical Support Organization

DFSMShsm Primer

December 2000
Take Note!
Before using this information and the product it supports, be sure to read the general information in
Appendix B, “Special notices” on page 349.

Second Edition (December 2000)

This edition applies to Version 2, Release 10 of OS/390 DFSMShsm, Program Number 5647-A01.

Comments may be addressed to:


IBM Corporation, International Technical Support Organization
Dept. 471F Building 80-E2
650 Harry Road
San Jose, California 95120-6099

When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the
information in any way it believes appropriate without incurring any obligation to you.

© Copyright International Business Machines Corporation 1998, 2000. All rights reserved.
Note to U.S Government Users – Documentation related to restricted rights – Use, duplication or disclosure is subject to
restrictions set forth in GSA ADP Schedule Contract with IBM Corp.
Contents

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

Part 1. Introduction to DFSMShsm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Chapter 1. DFSMShsm overview . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .3


1.1 Space management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .4
1.1.1 Automatic primary space management . . . . . . . . . . . . . . .. . . . . .5
1.1.2 Automatic secondary space management. . . . . . . . . . . . .. . . . . .6
1.1.3 Interval space management . . . . . . . . . . . . . . . . . . . . . . .. . . . . .6
1.2 Availability management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .6
1.3 SMS and DFSMShsm relationship . . . . . . . . . . . . . . . . . . . . . .. . . . . .7
1.4 DFSMShsm functions for SMS-managed volumes . . . . . . . . . .. . . . . .9
1.5 DFSMShsm functions for non-SMS-managed volumes. . . . . . .. . . . . 11
1.6 Aggregate Backup and Recovery Support (ABARS) . . . . . . . . .. . . . . 12

Part 2. Implementation and operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapter 2. Implementing DFSMShsm . . . . . . . . . . . . . . .. . . . . .. . . . . 17


2.1 SMS considerations . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 17
2.1.1 Storage class . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 18
2.1.2 Management class . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 23
2.1.3 Storage group. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 29
2.1.4 ACS routines . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 32
2.1.5 SMS update checklist . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 33
2.2 PROCLIB and PARMLIB setup . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 34
2.2.1 Multihost startup procedure . . . . . . . . . . . . . . . . .. . . . . .. . . . . 40
2.2.2 ABARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 42
2.2.3 Setting up the base SETSYS parameters . . . . . . .. . . . . .. . . . . 42
2.3 Providing security for DFSMShsm resources . . . . . . . .. . . . . .. . . . . 56
2.3.1 Defining a DFSMShsm RACF user ID. . . . . . . . . .. . . . . .. . . . . 56
2.3.2 Identifying started procedures to RACF . . . . . . . .. . . . . .. . . . . 57
2.3.3 Protecting DFSMShsm data sets . . . . . . . . . . . . .. . . . . .. . . . . 60
2.3.4 Controlling the use of DFSMShsm commands . . .. . . . . .. . . . . 63
2.3.5 AUTH command . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . 63

© Copyright IBM Corp. 1998, 2000 iii


2.3.6 ARCCATGP group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.3.7 Protecting migration and back up data sets . . . . . . . . . . . . . . . . 65
2.3.8 RACF protection for ABARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.9 RACF protection for concurrent copy . . . . . . . . . . . . . . . . . . . . . 67
2.4 DFSMShsm journal and control data sets . . . . . . . . . . . . . . . . . . . . . . 68
2.4.1 Starter set JCL modifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.2 DFSMShsm alias definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.3 Journal and CDS overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.4.4 CDS and journal performance suggestions . . . . . . . . . . . . . . . . . 73
2.4.5 CDS and journal backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.4.6 VSAM Record Level Sharing (RLS) . . . . . . . . . . . . . . . . . . . . . . 85
2.4.7 RACF FACILITY classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.4.8 Activating the SMSVSAM address space . . . . . . . . . . . . . . . . . . 93
2.5 Multicluster control data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.5.1 Multicluster performance considerations . . . . . . . . . . . . . . . . . . . 95
2.5.2 Conversion steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.6 CDS backup procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.6.1 Concurrent copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
2.6.2 Virtual concurrent copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.7 Space management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.8 Availability management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.8.1 Getting started with backup availability management . . . . . . . . 111
2.8.2 Availability management settings summary . . . . . . . . . . . . . . . 127
2.8.3 Getting started with dump availability management . . . . . . . . . 131
2.8.4 Aggregate Backup and Recovery Support (ABARS) . . . . . . . . . 137
2.9 Command availability management . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.10 Recovery and restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.11 Multiple DFSMShsm hosts environment . . . . . . . . . . . . . . . . . . . . . 162
2.11.1 Defining a primary DFSMShsm. . . . . . . . . . . . . . . . . . . . . . . . 162
2.11.2 Defining all DFSMShsm hosts in a multihost environment . . . 163
2.11.3 Resource serialization attributes . . . . . . . . . . . . . . . . . . . . . . . 164
2.12 DFSMShsm in a sysplex environment . . . . . . . . . . . . . . . . . . . . . . 167
2.12.1 Single GRSplex serialization in a sysplex environment . . . . . . 167
2.12.2 Secondary host promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
2.12.3 Control data set extended addressability in a sysplex . . . . . . . 172

Chapter 3. Operation considerations . . . . . . . . . .. . . . .. . . . . .. . . . 173


3.1 Partitioning DFSMShsm functions . . . . . . . . . . .. . . . .. . . . . .. . . . 173
3.2 Starting DFSMShsm . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 174
3.3 Stopping DFSMShsm . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 176
3.4 Holding DFSMShsm functions . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 178
3.5 Releasing DFSMShsm functions . . . . . . . . . . . .. . . . .. . . . . .. . . . 181
3.6 Canceling queued DFSMShsm requests . . . . . .. . . . .. . . . . .. . . . 183

iv DFSMShsm Primer
3.7 Restarting DFSMShsm after an abnormal end . . . . . . . . . . . . . . . . . 184
3.8 Changing DFSMShsm control parameters . . . . . . . . . . . . . . . . . . . . 186

Chapter 4. DFSMShsm tape processing . . . . . . . . . . . . . . . . . . .. . . . 189


4.1 DFSMShsm tape media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 190
4.2 Global and specific scratch pools . . . . . . . . . . . . . . . . . . . . . . .. . . . 190
4.3 DFSMShsm and tape management system interaction . . . . . . .. . . . 191
4.3.1 Interaction between DFSMShsm and DFSMSrmm . . . . . .. . . . 192
4.4 Disaster recovery considerations . . . . . . . . . . . . . . . . . . . . . . .. . . . 204
4.4.1 Duplex tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 205
4.4.2 TAPECOPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 207
4.4.3 TAPEREPL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 210
4.4.4 Using DFSMShsm alternate tapes with DFSMSrmm. . . . .. . . . 212
4.4.5 ABARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 213
4.5 SMS-managed tape libraries . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 214
4.5.1 SMS-managed tape library definition . . . . . . . . . . . . . . . .. . . . 214
4.5.2 Using RECYCLE to move data into the ATL . . . . . . . . . . .. . . . 229
4.6 Emulating 3490 cartridges on a 3590 device . . . . . . . . . . . . . .. . . . 230
4.7 Reducing recall processing time . . . . . . . . . . . . . . . . . . . . . . . .. . . . 235
4.8 Optimizing tape usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 236
4.8.1 Tape mount management . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 237
4.8.2 Virtual Tape Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 239

Part 3. Maintenance, monitoring and tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Chapter 5. Administration tasks . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 245


5.1 Expiring backup versions . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 245
5.2 Recycling tape volumes . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 247
5.2.1 Conversion to another tape media . . . . . . .. . . . .. . . . . .. . . . 250
5.2.2 Recycle performance . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 251
5.3 Moving data sets to new DASD volumes . . . . . .. . . . .. . . . . .. . . . 252
5.3.1 Converting level 0 DASD volumes . . . . . . .. . . . .. . . . . .. . . . 252
5.3.2 Converting level 1 DASD volumes . . . . . . .. . . . .. . . . . .. . . . 253
5.4 Reorganizing CDSs . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 253
5.5 Merging CDSs . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 256
5.6 Journal data set maintenance. . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 260
5.7 Problem determination . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 261
5.7.1 PDA facility. . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 261
5.7.2 Activity logs . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 266
5.7.3 DFSMShsm log data sets . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 267
5.7.4 SVC dumps . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 268
5.7.5 Dump analysis elimination . . . . . . . . . . . . .. . . . .. . . . . .. . . . 269
5.8 Auditing DFSMShsm . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . .. . . . 271

v
Chapter 6. Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 273
6.1 List command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 273
6.2 Query command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 285
6.3 Report command . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 297
6.4 Utilities in ARCTOOLS for DFSMShsm reporting . . . . .. . . . . .. . . . 301
6.5 Using DCOLLECT . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 302
6.6 Using the HSM Monitor/Tuner . . . . . . . . . . . . . . . . . . .. . . . . .. . . . 305

Chapter 7. Hints and tips for tuning DFSMShsm . . . . . . . . . . . . . . . . 309


7.1 DFSMShsm patches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
7.2 DFSMShsm functional enhancements . . . . . . . . . . . . . . . . . . . . . . . 324

Appendix A. Sample ACS routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331


A.1 Sample storage class ACS routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.2 Sample management class ACS routine . . . . . . . . . . . . . . . . . . . . . . . . 336
A.3 Sample storage group ACS routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.4 Sample data class ACS routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

Appendix B. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

Appendix C. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353


C.1 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
C.2 IBM Redbooks collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
C.3 Other resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
C.4 Referenced Web sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357


IBM Redbooks fax order form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

vi DFSMShsm Primer
Figures

1. ACS routines processing order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9


2. DFSMShsm data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3. ISMF Primary Option Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Sample Storage Class Application Selection panel . . . . . . . . . . . . . . . . . . 19
5. Sample Storage Class Define panels (Page 1) . . . . . . . . . . . . . . . . . . . . . 20
6. Sample Storage Class Define panels (Page 2) . . . . . . . . . . . . . . . . . . . . . 21
7. Sample Management Class Define panel (Page 1). . . . . . . . . . . . . . . . . . 24
8. Sample Management Class Define panel (Page 2). . . . . . . . . . . . . . . . . . 24
9. Sample Management Class Define panel (Page 3). . . . . . . . . . . . . . . . . . 25
10. Pool Storage Group Define panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
11. DFSMShsm example of startup procedure for primary host . . . . . . . . . . . 35
12. Additional startup parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
13. DFSMShsm startup procedure for secondary system . . . . . . . . . . . . . . . . 40
14. ABARS secondary address space start procedure . . . . . . . . . . . . . . . . . . 42
15. Sample JCL to create a RACF user ID . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
16. Output of the RLIST command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
17. ICHRIN03 sample source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
18. LISTDSD command output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
19. JCL specifying RACF group ARCCATGP . . . . . . . . . . . . . . . . . . . . . . . . . 64
20. TSO/E LOGON panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
21. Sample JCL to allocate the ICF catalog and define the alias . . . . . . . . . . 69
22. Sample MCDS allocation statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
23. Sample BCDS allocation statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
24. Sample OCDS allocation statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
25. Sample journal allocation statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
26. Sample JCL to allocate CDS and journal backup data set (part 1 of 2). . . 77
27. Sample JCL to allocate CDS and journal backup data set (part 2 of 2). . . 78
28. Sample SETSYS CDSCONVERSIONBACKUP command . . . . . . . . . . . . 79
29. Sample ARCCMDxx showing CDS and journal backup data set names. . 83
30. Sample DEFINE command for DFSMShsm environment . . . . . . . . . . . . . 86
31. Sample SHCDS allocation JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
32. CFRM policy definition for RLS access of the DFSMShsm CDSs. . . . . . . 89
33. CDS Application Selection panel for cache . . . . . . . . . . . . . . . . . . . . . . . . 90
34. CF Cache Set Update panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
35. Altering a storage class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
36. Storage Class Alter panel (Page 2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . 92
37. Sample IDGSMSxx PARMLIB to implement RLS . . . . . . . . . . . . . . . . . . . 93
38. Sample JCL for non-key-range multicluster MCDS . . . . . . . . . . . . . . . . . . 97
39. Sample JCL for non-key-range multicluster REPRO . . . . . . . . . . . . . . . . . 98
40. Management class backup attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

© Copyright IBM Corp. 1998, 2000 vii


41. Pool Storage Group Alter panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
42. Storage class settings for concurrent copy . . . . . . . . . . . . . . . . . . . . . . . 118
43. Sample ARCINBAK JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
44. Sample JCL to issue HBACKDS command in batch . . . . . . . . . . . . . . . . 126
45. Management class backup attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
46. Storage group attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
47. Storage Class Alter panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
48. Sample ARCCMD54 parmlib member (part 1 of 2) . . . . . . . . . . . . . . . . . 129
49. Sample ARCCMD54 parmlib member (part 2 of 2) . . . . . . . . . . . . . . . . . 130
50. OFFSITE dump class definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
51. ISMF Aggregate Group Application Selection panel . . . . . . . . . . . . . . . . 138
52. Aggregate Group Define panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
53. Aggregate Group Alter panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
54. Management Class Alter panel 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
55. Sample ABARS definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
56. ABACKUP entry panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
57. Aggregate Group Backup panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
58. ABACKUP ISMF panel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
59. Arecover option on Aggregate Group Application Selection panel . . . . . 149
60. Aggregate Group Recover panel (Page 1 of 7) . . . . . . . . . . . . . . . . . . . . 150
61. Aggregate Group Recover panel (Page 2 of 7) . . . . . . . . . . . . . . . . . . . . 151
62. Aggregate Group Recover panel (Page 7 of 7) . . . . . . . . . . . . . . . . . . . . 151
63. The ISMF Primary Option Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
64. Removable Media Manager panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
65. DFSMSrmm Administrator Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
66. DFSMSrmm Vital Record Specification Menu . . . . . . . . . . . . . . . . . . . . . 198
67. DFSMSrmm Add Vital Record Specification panel . . . . . . . . . . . . . . . . . 199
68. DFSMSrmm Add Data Set VRS panel. . . . . . . . . . . . . . . . . . . . . . . . . . . 199
69. DFSMSrmm Search VRSs panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
70. Defining a VRS for DFSMShsm backup tapes . . . . . . . . . . . . . . . . . . . . 202
71. Accessing the data class panels from the ISMF Primary Option Menu . . 217
72. Data Class Application Selection panel . . . . . . . . . . . . . . . . . . . . . . . . . . 217
73. Data Class Define panel (page 2 of 3). . . . . . . . . . . . . . . . . . . . . . . . . . . 218
74. Storage Class Define panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
75. Storage Group Application Selection panel . . . . . . . . . . . . . . . . . . . . . . . 221
76. Tape Storage Group Define panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
77. SMS Storage Group Status Define panel . . . . . . . . . . . . . . . . . . . . . . . . 223
78. Filter list of original and alternate tapes . . . . . . . . . . . . . . . . . . . . . . . . . . 224
79. Sample data class ACS code for: migration, backup, dump tapes . . . . . 225
80. Sample storage class ACS code for: migration, backup, dump tapes . . . 226
81. Sample storage group ACS code for: backup, migration, dump tapes . . 227
82. Sample SETSYS ATL definition commands in ARCCMDxx . . . . . . . . . . 228
83. SETSYS parameters for TMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

viii DFSMShsm Primer


84. Output from EXPIREBV DISPLAY command . . . . . . . . . . . . . . . . . . . . . 246
85. Example of a FIXCDS display of an MCB record . . . . . . . . . . . . . . . . . . 247
86. Anatomy of a CDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
87. Sample job to reorganize the DFSMShsm CDSs . . . . . . . . . . . . . . . . . . 256
88. Sample JCL for CDSs merge (part 1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . 257
89. Sample JCL for CDSs merge (part 2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . 258
90. Console messages for journal data set . . . . . . . . . . . . . . . . . . . . . . . . . . 260
91. Sample JCL to allocate PDA Log data sets . . . . . . . . . . . . . . . . . . . . . . . 262
92. Sample JCL for defining PDA’s GDG base . . . . . . . . . . . . . . . . . . . . . . . 263
93. Sample JCL to copy PDA to tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
94. Sample JCL of ARCPRLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
95. Sample JCL for ARCPEDIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
96. Sample SVC dump copy job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
97. Sample BACKUPVOLUME listing output. . . . . . . . . . . . . . . . . . . . . . . . . 275
98. Sample data set level listing output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
99. Sample listing output of list data set in MCDS . . . . . . . . . . . . . . . . . . . . . 277
100.Sample listing output for migrated data set level in ML1 volumes . . . . . 278
101.Sample listing output of primary volume backup’s content . . . . . . . . . . . 279
102.Sample listing output of dump class attributes . . . . . . . . . . . . . . . . . . . . 279
103.Sample listing output of a selected dump volume . . . . . . . . . . . . . . . . . . 280
104.Sample listing output of selected dump volume’s content. . . . . . . . . . . . 281
105.Sample output listing of ML1 information . . . . . . . . . . . . . . . . . . . . . . . . 282
106.Sample output listing of selected primary volume in MCDS . . . . . . . . . . 282
107.Sample output listing of all tape volumes in DFSMShsm . . . . . . . . . . . . 283
108.Sample output listing TTOC of selected tape volume . . . . . . . . . . . . . . . 283
109.Sample output listing of authorized users . . . . . . . . . . . . . . . . . . . . . . . . 284
110.Sample DCOLLECT JCL to call ARCUTIL . . . . . . . . . . . . . . . . . . . . . . . 303
111.Sample ARCUTIL JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
112.Data Collection Entry Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
113.Storage class ACS routine for DFSMShsm data (part 1 of 5) . . . . . . . . . 332
114.Storage class ACS routine for DFSMShsm data (part 2 of 5) . . . . . . . . . 333
115.Storage class ACS routine for DFSMShsm data (part 3 of 5) . . . . . . . . . 334
116.Storage class ACS routine for DFSMShsm data (part 4 of 5) . . . . . . . . . 335
117.Storage class ACS routine for DFSMShsm data (part 5 of 5) . . . . . . . . . 336
118.Management class ACS routine for DFSMShsm data (part 1 of 5). . . . . 337
119.Management class ACS routine for DFSMShsm data (part 2 of 5). . . . . 338
120.Management class ACS routine for DFSMShsm data (part 3 of 5). . . . . 339
121.Management class ACS routine for DFSMShsm data (part 4 of 5). . . . . 340
122.Management class ACS routine for DFSMShsm data (part 5 of 5). . . . . 341
123.Storage group ACS routine for DFSMShsm data (part 1 of 4) . . . . . . . . 342
124.Storage group ACS routine for DFSMShsm data (part 2 of 4) . . . . . . . . 343
125.Storage group ACS routine for DFSMShsm data (part 3 of 4) . . . . . . . . 344
126.Storage group ACS routine for DFSMShsm data (part 4 of 4) . . . . . . . . 345

ix
127.Data class ACS routine for DFSMShsm data (part 1 of 3) . . . . . . . . . . . 346
128.Data class ACS routine for DFSMShsm data (part 2 of 3) . . . . . . . . . . . 347
129.Data class ACS routine for DFSMShsm data (part 3 of 3) . . . . . . . . . . . 348

x DFSMShsm Primer
Tables

1. Storage classes for DFSMShsm data sets . . . . . . . . . . . . . . . . . . . . . . . . 21


2. Values used to code DFSMShsm management classes . . . . . . . . . . . . . . 26
3. Retention attribute selection example for space management process . . 27
4. Minimum Size for Lock Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5. Vital Record Specification description table. . . . . . . . . . . . . . . . . . . . . . . 200
6. DFSMShsm tape data set names and unit type passed to the ACS . . . 215

© Copyright IBM Corp. 1998, 2000 xi


xii DFSMShsm Primer
Preface

DFSMShsm provides space, availability, and tape mount management


functions in a storage device hierarchy for both system-managed, and
non-system-managed storage environments. DFSMShsm allows you to
automate your storage management tasks improving the productivity by
effectively managing the storage devices.

This IBM Redbook provides technical storage specialists and storage


administrators with the basic DFSMShsm knowledge for implementing and
customizing DFSMShsm at the 2.10 level. Hints and tips on the daily
operation, monitoring, and tuning are included. Sysplex environment
considerations are also included.

Those implementing DFSMShsm for the first time will find valuable
information for exploiting the DFSMShsm functions. Experienced persons will
find that this redbook can be used as an update to the latest DFSMShsm
functions, and it shows how to use those functions in an existing DFSMShsm
installation.

The team that wrote this redbook


This redbook was produced by a team of specialists from around the world
working at the International Technical Support Organization San Jose Center.

Yolanda Cascajo Jimenez is a Enterprise Storage Software Project Leader


at the International Technical Support Organization, San Jose Center. She
has 12 years of experience at IBM on MVS and storage systems, including
DASD, tapes and storage management software. Before joining the ITSO this
year, Yolanda worked in Storage Systems Sales in Spain as Technical
Support, acting as Systems Engineer and Consultant And Marketing Support
Specialist for storage systems.

Hien Truong is a System Storage Specialist for IBM Global Services in


Australia. He has 12 years of experience in large systems, including IBM
OS/390 and Fujitsu MSP. In these environments, he has experience in
operations, security administration and system storage. Currently, he is the
responsible for maintaining the SMS-HSM environment in a large sysplex
environment.

© Copyright IBM Corp. 1998, 2000 xiii


Thanks to the following people for their invaluable contributions to this project:

From the International Technical Support Organization, San Jose Center:

Heong Ge Park
Nigel Morton

From IBM DFSMShsm Development, Tucson:

Tony Pearson
Cuong Le
Lyn L.Ashton
Glenn Wilcock

Other valuable contributors:

Bob McMurry
IBM SSD Advanced Technical Support, San Jose

Robert Haimowitz
International Technical Support Organization, Poughkeepsie Center

Comments welcome
Your comments are important to us!

We want our Redbooks to be as helpful as possible. Please send us your


comments about this or other Redbooks in one of the following ways:
• Fax the evaluation form found in “IBM Redbooks review” on page 375 to
the fax number shown on the form.
• Use the online evaluation form found at ibm.com/redbooks
• Send your comments in an Internet note to [email protected]

xiv DFSMShsm Primer


Part 1. Introduction to DFSMShsm

Part 1 is an introduction to the DFSMShsm product. It contains one chapter


which describes the main functions of the DFSMShsm product and how these
functions can help us in our storage environments.

© Copyright IBM Corp. 1998, 2000 1


2 DFSMShsm Primer
Chapter 1. DFSMShsm overview

DFSMShsm is a functional component of the DFSMS/MVS family, which


provides facilities for managing your storage devices. DFSMShsm ensures
that space is available on your DASD volumes, so you can extend data sets
and allocate new ones. DFSMShsm makes sure that backup copies of your
data sets are always available in case your working copies are lost or
corrupted. It relieves you from manual storage management tasks and
improves DASD use by automatically managing both space and data
availability in a storage hierarchy.

DFSMShsm is one of five components that, when added together, create a


single, integrated software package for all of your installation storage
management needs.

The five components of DFSMS/MVS and their functions are:


• DFSMSdfp - Provides storage, data, program, and device management
functions through the storage management subsystem (SMS)
• DFSMSrmm - Provides tape management functions for removable media,
such as tape cartridges and 3420 reels
• DFSMSdss - Provides data movement, copy, backup, and space
management functions in a batch environment
• DFSMSopt - Provides monitoring and reporting capabilities for multiple or
single system environments
• DFSMShsm - Provides backup, recovery, migration, and space
management functions with optimum automation capabilities

DFSMShsm is a policy-driven solution to storage management, removing the


requirement for batch jobs to perform backup, migration, or space retrieval
functions. DFSMShsm works by rules that you can apply and have set but
which are also dynamically adjustable to allow the flexibility required in
today's constantly changing environments.

Its flexibility allows you to manage your storage at the data set level, the
device level, or even the device pool level. DFSMShsm provides the means to
manage every data set from the time of its creation until the time its last
backup is no longer required.

DFSMShsm works closely with SMS, which is part of DFSMS/MVS. SMS


changes the storage management approach from user-managed volumes to

© Copyright IBM Corp. 1998, 2000 3


SMS-managed data sets residing in SMS-managed storage groups. The
system, rather than the user, determines data placement and handles data
backup, movement, space, and security.

In this redbook we describe the major functions of DFSMShsm, how it


interacts with all of the DFSMS/MVS components, including SMS, and
provide details and techniques to guide you to a successful implementation.

1.1 Space management


A major function of DFSMShsm is space management. It ensures that only
active data occupies the space on a DASD. Space management allows you to
keep DASD space available for users in order to meet the service-level
objectives for your system. The purpose of space management is to manage
your DASD storage efficiently. To do this, it automatically and periodically:
• Expires data sets that have passed their expiration dates
• Moves unused data sets to locations where they can be stored less
expensively or in a form that saves space on the volume
• Reduces the space occupied by data by freeing the unused portions of the
data set (release)

The major activities of space management include:


• Expiration
• Extent reduction
• Interval migration
• Migration
• Recall
• Recycle
• Primary space management
• Secondary space management

Data movement from expensive volumes to less expensive storage is called


migration. Data can be migrated from level 0 volumes that users can access
to migration level one (ML1) volumes. The ML1 volumes must be DASD
volumes. Data can also be migrated to migration level two (ML2) volumes,
which are usually tape volumes. Although ML2 volumes can be DASD, SMS
only supports ML2 tape.

When the data is needed again, DFSMShsm returns it to the user's control.
This process is called recall and is usually processed automatically by
DFSMShsm. Recall is also possible by issuing an HRECALL command from

4 DFSMShsm Primer
your time sharing option (TSO) session or batch job. The ACS routines
ultimately determine the volume to which the data set will be recalled.

Data on tapes is invalidated over time by the expiration of migrated data sets
or the generation of more recent backup data sets. The recycle function
provides the capability of moving the valid data sets out from the original
tapes and consolidates the data on another tape, therefore making one tape
with all unexpired data sets and leaving the recycled tapes available for
reuse.

Space management parameters control how DFSMShsm makes space


available on level 0 volumes. Space management is specified as a
combination of parameters in the management classes and storage groups.
In planning for space management, you want to strike a balance between
having enough DASD space available for new data set allocations and having
frequent recalls of migrated data sets. The management class attributes
apply on a data set basis so that different data sets on a volume can be
migrated based on different criteria.

There are three windows for automatic space management processes:


primary, secondary, and interval migration.

1.1.1 Automatic primary space management


Automatic primary space management migrates data sets from level 0
volumes to ML1 volumes or directly to ML2 tapes.

The main function of primary space management is to move your system and
user data away from your DFSMShsm-managed volumes to tape, or to ML1
DASD, which provides faster recall capability. This process maintains
sufficient capacity on your DFSMShsm-managed volumes to enable
operations such as batch processing to continue without interruption or space
failure.

Primary space management also performs other important functions on your


DFSMShsm-managed volumes such as releasing unused, over allocated,
space and deleting old or temporary data sets.

DFSMShsm-managed volumes are usually defined in SMS storage groups.


Non-SMS-managed volumes can be defined directly to DFSMShsm.
DFSMShsm performs space management on both SMS-managed and
non-SMS-managed volumes.

Chapter 1. DFSMShsm overview 5


1.1.2 Automatic secondary space management
DFSMShsm secondary space management is the function that moves data
sets (under control of the management class) from ML1 to ML2 volumes and
processes the migration cleanup function. Migration cleanup deletes expired
data sets, erases deleted data from small data set packing (SDSP) data sets,
and deletes unwanted records from the DFSMShsm migration control data
set (MCDS).

Note: The MCDS is a VSAM key-sequenced data set (KSDS) containing an


inventory of migrated data sets on your system.

Secondary space management is usually run before primary space


management. It creates the available capacity on your ML1 DASD, which
primary space management then uses.

1.1.3 Interval space management


DFSMShsm interval space management ensures on an hourly basis that a
specified amount of space is available on DFSMShsm-managed volumes.
Interval space management only runs against storage groups that have this
function enabled through SMS. It is recommended for high usage pools
whose volume contents can be migrated to tape as soon as possible or
deleted.

1.2 Availability management


The other major function that DFSMShsm provides is availability
management. Availability management enables a user to easily recover a lost
or damaged data set and a storage administrator to easily recover a
damaged volume at the most current level possible. To do this, availability
management should automatically and periodically perform:
• Backup data sets from DASD to tape volumes
• Backup changed data sets on DASD volumes either to other DASD or tape
volumes
• Backup data sets of an application to tape volumes so they can be taken
to another computer site for recovery

By performing these functions, availability management can help:


• Prevent against users accidentally losing or incorrectly changing data sets
• Recover data after a volume is lost due to a hardware failure
• Protect against loss of data due to a disaster

6 DFSMShsm Primer
• Ensure data which must be kept due to external requirements is retained
(for example, tax records)

The functions which provide the capability of recovering are the following:
• Backup
• Dump
• Recover
• ABARS

Using the automatic full volume dump supplemented with automatic


incremental backup, the storage administrator can recover a complete
volume by restoring the volume from the full volume dump, then correcting
the volume for later activity by the automatic inclusion of changes taken from
incremental backups. A DFSMShsm-authorized user can issue one
RECOVER command that is used to request both a volume restore and an
incremental volume recovery.

The inline backup function allows you to back up data sets in a batch
environment. You can back up data sets in the middle of a job in a batch
environment. Inline backup writes the backup version on an ML1 volume or to
a tape volume. If moved to an ML1 volume you can minimize unplanned tape
mounts. In that case the backup version is subsequently moved to the backup
volume during automatic backup or by command.

ABARS provides for disaster recovery. The ABARS functions require the
specification of aggregate group and selection data set names to encompass
all of the data sets required for running critical applications. You can then
issue a single command to back up (ABACKUP) or recover (ARECOVER) all
of the data sets in each aggregate.

1.3 SMS and DFSMShsm relationship


SMS allows you to centrally control and direct data set allocation within your
system. With SMS you can define performance goals and data availability
requirements, create model data definitions for data sets, and automate data
backup, using classes and groups. The SMS classes and groups (SMS
attributes) are customized by the storage administrator based on the
installation environment and storage policies. The SMS classes and group
are:
Data class A list of allocation attributes for data sets (for example,
logical record length and record format). The data class
simplifies and standardizes data set creation.

Chapter 1. DFSMShsm overview 7


Storage class A list of storage performance and availability service
requests. The storage class contains availability, and
performance attributes, such as response time and
cache requirements, for data sets.
Management class A list of backup, retention, and migration attributes for
data sets.
Storage group A group of one or more DASD volumes that SMS uses
for data set allocation.
Aggregate group A collection of data sets with some relationship between
them, such as those needed for a specific application.

SMS and DFSMShsm work together, using the SMS attributes specified in
the management class, to provide space and availability management at the
data set level.

SMS classes and storage groups can be assigned for data sets by Automatic
Class Selection (ACS).

Automatic class selection (ACS) routines are written by the storage


administrator. They automatically assign SMS classes and groups to data
sets, database data, and objects. Data allocations are processed through
ACS routines. ACS routines allow you to enforce installation standards for
data allocation and override user specifications for data, storage, and
management classes and requests for specific DASD volumes. You can
create up to four ACS routines in an SMS configuration, one for each type of
SMS class and one for storage groups.

Figure 1 shows the order in which ACS routines are processed. Data
becomes system-managed if the storage class routine assigns a storage
class to the data. If the routine does not assign a storage class to the data,
the data cannot reside on a system-managed volume.

8 DFSMShsm Primer
.

D a ta C la s s
N e w D a ta S e t
A llo c a tio n A C S R o u tin e N o n -S y s te m -M a n a g e d
V o lu m e
Not
S to ra g e C la s s Assigned
A C S R o u tin e
Assigned

M a n a g e m e n t C la s s S y s te m -M a n a g e d
A C S R o u tin e V o lu m e

S to r a g e G r o u p
A C S R o u tin e

Figure 1. ACS routines processing order

SMS attributes for an user or group can be defined by RACF’s DFP segments
(using ALTUSER or ALTGROUP command), simplifying ACS routines. For
more information on those RACF commands, see OS/390 V2R10.0
SecureWay Security Server RACF Command Language Reference,
SC28-1919.

1.4 DFSMShsm functions for SMS-managed volumes


For SMS-managed level 0 volumes, the attributes specified in the storage
groups and the management classes govern how DFSMShsm performs
automatic space management and incremental backup.

DASD storage groups allow you to pool volumes for the purpose of defining
how and whether:
• Automatic dumps are performed on the volumes and to what dump classes
• Automatic backups are performed on the volumes
• Automatic volume space management is performed on the volumes and at
what level of occupancy

Chapter 1. DFSMShsm overview 9


Management classes allow you to group data sets logically and specify how
they will be managed by space management and availability management.

Dump and restore functions: Automatic dump is a volume function, the


attributes that govern it are taken from the storage group. DFSMShsm copies
the data sets from level 0 volumes to dump volumes.

Restore, the reverse of dump, moves dumped data sets from dump volumes to
level 0 volumes.

Backup and recover functions: The backup function is a data-set-level


function. It relies on the guaranteed backup frequency attribute of the storage
group for each data set to determine whether to copy the data set. After data
set has been backed up, it uses data set’s management class attributes to
decide how the data set is treated for creation and retention of backup
versions (how many backup versions and keep for how long).

Recovery, the reverse of backup, returns data sets from the daily backup
volumes or the spill backup volumes to the level 0 volumes. Recovery can be
performed only by command, for individual data sets or for complete
volumes.

Space management functions: Space management consists of removing


appropriate data sets from the level 0 volumes and reducing the space
occupied on the level 0 volumes by the data sets that remain there.
DFSMShsm uses the management class attributes which the data set is
associated to determine:
• Whether to release unused over allocated space
• Whether to delete the data set based on:
- The amount of time since the data set was created
- The amount of time since the data set was last used
- An explicit date
• The minimum time to leave the data set unopened on the level 0 volume
before moving it
• Whether a data set on a level 0 volume is eligible to move to an ML1
volume or directly to an ML2 volume
• Whether or not to move the data sets on ML1 volumes to ML2 volumes
• A capability to migrate older generation data groups (GDGs)
• Whether or not to delete or migrate rolled-off generations if the data set
was a member of a GDG

10 DFSMShsm Primer
DFSMShsm uses the attributes from the storage group to determine which
level 0 volumes to process for space management, how full the volume must
be before data sets are migrated from the volume, and how much free space
should be on the volume after space management has finished.

Recall, the reverse of migration, moves data sets from ML1 or ML2 volumes
to level 0 volumes. With the recall function, DFSMShsm returns data sets to
storage groups as specified by SMS, whether the data set migrated from a
volume in a storage group or not.

1.5 DFSMShsm functions for non-SMS-managed volumes


For non-SMS-managed volumes, DFSMShsm uses volume parameters to
determine how each data set on the volume is managed.

Dump and restore functions: The dump function for non-SMS-managed


volumes is governed by parameters of the DFSMShsm commands, but it is
performed the same way as for SMS-managed volumes.

Backup and recovery functions: The volume-basis operation of


DFSMShsm for non-SMS-managed volumes causes differences in how
backup is performed. For non-SMS-managed volumes:
• If automatic backup is in effect for the volume, all changed data sets that
DFSMShsm can manage are backed up.
• All data sets processed by a particular DFSMShsm host have the same
backup frequency unless the frequency has been modified for that data
set by a DFSMShsm command.
• All data sets processed by a particular DFSMShsm host have the same
number of backup versions, unless the number of backup versions has
been modified for that data set by a DFSMShsm command.

In addition, you can specify the number of days to retain backup versions of
non-SMS-managed data sets only by command parameters for the entire
system complex.

Space management function: Space management consists of removing


appropriate data sets from the level 0 volumes and reducing the space
occupied on the level 0 volumes by the data sets that remain there. In
removing the data sets, you can have DFSMShsm either delete them entirely
or move them to other DASD or tape volumes. If you move the data sets to
other DASD or tape volumes (ML1 or ML2), they can be automatically deleted
from the migration volumes when they expire.

Chapter 1. DFSMShsm overview 11


Differences in the way that DFSMShsm performs space management for
non-SMS-managed data sets include:
• The deletion age and management technique are the same for all data
sets on a volume managed by the deletion (delete by age) technique.
• The deletion age and management technique are the same for all data
sets on a volume managed by the retirement (delete if backed up)
technique.
• The migration age and management technique are the same for all data
sets on a volume managed by the migration technique.
• The time for the data set to remain unopened before migration from ML1
to ML2 volumes is the same for all non-SMS-managed data sets in the
system complex.

A data set migrated from a non-SMS-managed volume can be recalled to an


SMS-managed volume if SMS is active and if the data set meets the
conditions for selecting SMS management for that data set. DFSMShsm
recalls a non-SMS-managed data set to a non-SMS-managed volume only if
the data set does not meet the conditions to become an SMS-managed data
set, or if a command forces the recall to a non-SMS-managed volume.

1.6 Aggregate Backup and Recovery Support (ABARS)


Aggregate Backup and Recovery Support (ABARS) is a function of
DFSMShsm that is designed for use in disaster recovery. ABARS facilitates a
point-in-time backup of a collection of related data in a consistent manner.
This group of related data is defined to ABARS as an aggregate. An
aggregate is user-defined and is usually a collection of data sets that have
some sort of relationship, such as all the specific data sets required for an
application (for example, payroll). ABARS backs up the data directly from
DASD (either SMS or non-SMS managed), DFSMShsm-owned ML1 DASD,
or DFSMShsm-owned ML2 tape without the need for intermediate staging
capacity. The backup copies are created in a device-independent format.

ABARS can be used also for moving applications across non-sharing


systems. If used as disaster recovery tool, at the recovery site, ABARS is
used to recover the data sets as well as allocating user-defined empty data
sets that the customer requires for operation of his environment.

The aggregate backup and aggregate recovery functions provide you with the
capability to back up and recover a user-defined group of data sets. The
user-defined group of data sets may be those belonging to an application or

12 DFSMShsm Primer
any combination of data sets that you want treated as a separate entity.
ABARS treats SMS and non-SMS data sets in identical manner.

With the aggregate backup and aggregate recovery functions, you can:
• Define the components of an aggregate
• Back up data sets by aggregate
• Recover data sets by aggregate
• Duplicate your aggregates at a remote site
• Resume business at a remote location if necessary

Chapter 1. DFSMShsm overview 13


14 DFSMShsm Primer
Part 2. Implementation and operation

Once the product is installed in the system, there are a numerous of activities
needed for configuring and setting up the parameters to fit our requirements.
This process is known as implementation. The parameters to define can be
different from installation to installation depending on the needs.

After setting up the parameters, we need to know how to work with


DFSMShsm, what are the procedures to starting, stopping, and any other
activities needed for the day to day operation.

Part 2 covers the procedures to implement and operate DFSMShsm and


describes the main functions that we perform in the daily operation.

© Copyright IBM Corp. 1998, 2000 15


16 DFSMShsm Primer
Chapter 2. Implementing DFSMShsm

The implementation of DFSMShsm involves several activities. Although some


of the implementation activities are not directly related to the product, they
are required in order to merge the new functions with the existing data
management environment.

The purpose of the implementation process is to select and implement


options in such a way that the resultant customized product can be used
effectively. It is important to consider the modifications that must be applied to
the existing system, for example, RACF and DFSMS/MVS, as prerequisites
before starting any implementation activity.

In this chapter we describe our approach to DFSMShsm implementation. The


information is presented in the order that should be followed during this
process. Details on setting up and executing test cases are also presented
whenever applicable.

The main steps to complete a basic DFSMShsm implementation are:


1. Define the DFSMShsm data sets to DFSMSdfp.
2. Protect the environment with RACF.
3. Establish tape volume management strategy.
4. Install the required start procedures.
5. Define a set of parameters that control the way DFSMShsm manages the
data.
6. Run a system test to certify the correctness of the installation.

Note that this chapter deals with the implementation of DFSMShsm in a


SMS-managed environment.

2.1 SMS considerations


The implementation of DFSMShsm in an existing SMS-managed environment
requires modifications to the ACS routines and, probably, the definition of
some SMS constructs.

DFSMShsm data can be divided into two groups:


• DFSMShsm-managed data. This group includes all the user and
application data that DFSMShsm manages according to the parameters

© Copyright IBM Corp. 1998, 2000 17


coded in the SMS management classes. Some DFSMShsm system data
sets are also included in this group.
• DFSMShsm-owned data. The data in this group belongs to DFSMShsm.
SMS must be updated so that it recognizes the DFSMShsm data and
excludes it from SMS management.

During operation, DFSMShsm writes some information in a group of data sets


that includes control data sets (CDSs), activity logs, the journal, DFSMShsm
logs, and problem determination aids (PDAs). Figure 2 shows the
DFSMShsm data sets and their relationship to the different product functions.

DFSM Shsm Data


MCDS
LO GX
O CDS
LOGY Files Managed
BCDS
Logging

PDO X
JRNL
Journaling
PDOY Tracing

Activity
Reporting

Activity
Logs

MIG BKP DMP CMD ABR

Figure 2. DFSMShsm data sets

2.1.1 Storage class


A storage class is a collection of attributes that identify performance goals
and availability requirements for data sets. It is used to select a device that
can meet those goals and requirements.

Every data set that SMS manages has a storage class assigned to it. To
define the storage class for the DFSMShsm data sets, first go to the ISMF

18 DFSMShsm Primer
Primary Option Menu (Figure 3) and select option 5, Storage Class, to go to
the Storage Class Application Selection panel (Figure 4).

Panel Help
________________________________________________________________________________
ISMF PRIMARY OPTION MENU - DFSMS V2R10
Enter Selection or Command ===> 5

Select one of the following options and press Enter:

0 ISMF Profile - Specify ISMF User Profile


1 Data Set - Perform Functions Against Data Sets
2 Volume - Perform Functions Against Volumes
3 Management Class - Specify Data Set Backup and Migration Criteria
4 Data Class - Specify Data Set Allocation Parameters
5 Storage Class - Specify Data Set Performance and Availability
6 Storage Group - Specify Volume Names and Free Space Thresholds
7 Automatic Class Selection - Specify ACS Routines and Test Criteria
8 Control Data Set - Specify System Names and Default Criteria
9 Aggregate Group - Specify Data Set Recovery Parameters
10 Library Management - Specify Library and Drive Configurations
11 Enhanced ACS Management - Perform Enhanced Test/Configuration Management
C Data Collection - Process Data Collection Function
L List - Perform Functions Against Saved ISMF Lists
R Removable Media Manager - Perform Functions Against Removable Media
X Exit - Terminate ISMF
Use HELP Command for Help; Use END Command or X to Exit.

Figure 3. ISMF Primary Option Menu

STORAGE CLASS APPLICATION SELECTION


Command ===>

To perform Storage Class Operations, Specify:


CDS Name . . . . . . . 'SYS1.SMS.SCDS'
(1 to 44 character data set name or 'Active' )
Storage Class Name . . SC54STD (For Storage Class List, fully or
partially specified or * for all)
Select one of the following options :
3 1. List - Generate a list of Storage Classes
2. Display - Display a Storage Class
3. Define - Define a Storage Class
4. Alter - Alter a Storage Class
5. Cache Display - Display Storage Classes/Cache Sets
If List Option is chosen,
Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

If Cache Display is Chosen, Specify Cache Structure Name . .

Use ENTER to Perform Selection;


Use HELP Command for Help; Use END Command to Exit.

Figure 4. Sample Storage Class Application Selection panel

Chapter 2. Implementing DFSMShsm 19


On the Storage Class Application Selection panel select option 3, to define
the storage classes you need. We define a storage class named SC54STD
(see Figure 4).

We are now on the first page of the Storage Class Define panel (Figure 5),
where we can specify the basic parameters that we need to accomplish the
performance and availability objectives of the DFSMShsm data sets.

STORAGE CLASS DEFINE Page 1 of 2


Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54STD
To DEFINE Storage Class, Specify:
Description ==> Storage Class for Average Response Time
==>
Performance Objectives
Direct Millisecond Response . . . . 30 (1 to 999 or blank)
Direct Bias . . . . . . . . . . . . (R, W or blank)
Sequential Millisecond Response . . 30 (1 to 999 or blank)
Sequential Bias . . . . . . . . . . W (R, W or blank)
Initial Access Response Seconds . . (0 to 9999 or blank)
Sustained Data Rate (MB/sec) . . . (0 to 999 or blank)
Availability . . . . . . . . . . . . S (C, P ,S or N)
Accessibility . . . . . . . . . . . S (C, P ,S or N)
Backup . . . . . . . . . . . . . . (Y, N or Blank)
Versioning . . . . . . . . . . . . (Y, N or Blank)

Use ENTER to Perform Verification; Use DOWN Command to View next Page;
Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 5. Sample Storage Class Define panels (Page 1)

20 DFSMShsm Primer
STORAGE CLASS DEFINE Page 2 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54STD

To DEFINE Storage Class, Specify:

Guaranteed Space . . . . . . . . . N (Y or N)
Guaranteed Synchronous Write . . . N (Y or N)
CF Cache Set Name . . . . . . . . (up to 8 chars or blank)
CF Direct Weight . . . . . . . . . (1 to 11 or blank)
CF Sequential Weight . . . . . . . (1 to 11 or blank)

Use ENTER to Perform Verification; Use UP Command to View previous Page;


Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 6. Sample Storage Class Define panels (Page 2)

Table 1 shows the content of the three storage classes that were developed
for the DFSMShsm data sets:
SC54GRT Is the class used to allocate, on a specific volume, data sets that
require high performance, such as the DFSMShsm CDSs and
the journal.
SC54STD Is the class used to allocate data sets that require average
performance. It can be used to allocate the DFSMShsm log and
PDA data sets.
SC54LOW Addresses allocation in a DFSMS work pool. It is used to
allocate the DFSMShsm activity logs.
Table 1. Storage classes for DFSMShsm data sets

Name
Accessibility

Guaranteed
Availability
Sequential

Sequential
Response

Response

Space
Direct

Bias

SC54GRT 5 5 C C YES

SC54STD 30 30 W S S NO

SC54LOW 999 999 N N NO

Chapter 2. Implementing DFSMShsm 21


The most important fields of the Storage Class Define panel (Figure 5 and
Figure 6) are explained below.

DIRECT and SEQUENTIAL MILLISECOND RESPONSE fields represent the performance


objective during a new data set allocation. If no volume satisfies the objective,
SMS makes one attempt to find a value that closely matches the specified
objective.

BIAS specifies whether the majority of I/O is expected to be R (READ), W


(WRITE), or unknown. The blank represents an unknown bias.

Cache usage and DASD fast write usage attributes are based on these
parameters associated with the data set. If you do not want to use cache or
DASD fast write, specify the Millisecond Response field as "999".

AVAILABILITY is used to specify whether data set processing should continue


after device failure. If you want to continue to process a data set, specify C for
continuous. You can specify this option if you intend to allocate data sets on
duplexed or RAID volumes. If data sets do not require such a high level of
availability, specify N for no preference. SMS only selects volumes that are
not dual copy. The default is N.

ACCESSIBILITY is used to specify that the data set should be allocated on


devices under a controller that supports the concurrent copy, virtual
concurrent copy (RVA with SnapShot copy) or IBM ESS with FlashCopy
service. The two new subparameters: BACKUP and VERSIONING have been
introduced. BACKUP means to take a fast point-in-time backup copy of a data
set, through the use of a concurrent copy or virtual concurrent copy functions.
VERSIONING means to take a backup of a point-in-time version of a data set
that was created by using the SnapShot feature of the RVA or the ESS
FlashCopy. The default is N for Accessibility, and blanks for
BACKUP/VERSIONING.

GUARANTEED SPACE is used to permit preallocation of space for data sets.


Primary space is allocated on each volume. After primary space on a given
volume is used, as many secondary extents as possible are added to the
volume before space on a different volume is used.

22 DFSMShsm Primer
Note
With the IBM ESS, the guaranteed space attribute of a storage class with
specific volser is no longer required for data sets other than those that
need to be separated (for example, DB2 online logs and BSDS) or that
must reside on specific volumes because of their naming conventions (for
example, VSAM RLS control data sets).

The ESS capabilities of multiple allegiance and parallel access volumes


(PAV), along with its bandwidth and caching algorithms, make it
unnecessary to separate data sets for the purpose of performance.

GUARANTEED SYNCHRONOUS WRITE is used to indicate whether your system should


return from a BSAM CHECK (or WAIT) issued for a WRITE against a
partitioned data set extended (PDSE) member before (non synchronized) or
after (synchronized) the data actually has been written to DASD. Specify N for
no synchronization.

CF CACHE SET NAME is used to indicate the name of a CF cache set defined in
the base configuration, thereby making any data set associated with this
storage class eligible for VSAM record-level sharing (RLS), in a Parallel
Sysplex environment. DFSMShsm CDSs can be accessed in RLS mode,
allowing DFSMShsm to take advantage of the coupling facility hardware for
CDS access.

CF DIRECT WEIGHT is used to indicate the direct data's relative importance in the
CF structure.

CF SEQUENTIAL WEIGHT is used to indicate the sequential data's relative


importance in the CF structure.

2.1.2 Management class


A management class is a collection of management attributes that
DFSMShsm uses to control action for retention, migration, backup, and
release of allocated but unused space of data sets. To define a management
class, use the Management Class Define panel (see Figure 7, Figure 8 and
Figure 9), which is displayed by selecting option 3, Management Class, on
the ISMF Primary Option Menu panel, and then selecting option 3, Define, on
the Management Class Application Selection menu.

Chapter 2. Implementing DFSMShsm 23


MANAGEMENT CLASS DEFINE Page 1 of 5
Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54NMIG

To DEFINE Management Class, Specify:

Description ==> Management Class for No Migration


==>

Expiration Attributes
Expire after Days Non-usage . . NOLIMIT (1 to 9999 or NOLIMIT)
Expire after Date/Days . . . . . NOLIMIT (0 to 9999, yyyy/mm/dd or
NOLIMIT)

Retention Limit . . . . . . . . . NOLIMIT (0 to 9999 or NOLIMIT)

Use ENTER to Perform Verification; Use DOWN Command to View next Panel;
Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 7. Sample Management Class Define panel (Page 1)

MANAGEMENT CLASS DEFINE Page 2 of 5


Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54NMIG

To DEFINE Management Class, Specify:

Partial Release . . . . . . . . . C (Y, C, YI, CI or N)

Migration Attributes
Primary Days Non-usage . . . . (0 to 9999 or blank)
Level 1 Days Non-usage . . . . (0 to 9999, NOLIMIT or blank)
Command or Auto Migrate . . . . NONE (BOTH, COMMAND or NONE)

GDG Management Attributes


# GDG Elements on Primary . . . (0 to 255 or blank)
Rolled-off GDS Action . . . . . (MIGRATE, EXPIRE or blank)

Use ENTER to Perform Verification; Use UP/DOWN Command to View other Panels;
Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 8. Sample Management Class Define panel (Page 2)

24 DFSMShsm Primer
MANAGEMENT CLASS DEFINE Page 3 of 5
Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54NMIG

To DEFINE Management Class, Specify:


Backup Attributes
Backup Frequency . . . . . . . . (0 to 9999 or blank)
Number of Backup Vers . . . . . . (1 to 100 or blank)
(Data Set Exists)
Number of Backup Vers . . . . . . (0 to 100 or blank)
(Data Set Deleted)
Retain days only Backup Ver . . . (1 to 9999, NOLIMIT or blank)
(Data Set Deleted)
Retain days extra Backup Vers . . (1 to 9999, NOLIMIT or blank)
Admin or User command Backup . . NONE (BOTH, ADMIN or NONE)
Auto Backup . . . . . . . . . . . N (Y or N)
Backup Copy Technique . . . . . . P (P=Conc Preferred, R=Conc
Required or S=Standard)
Use ENTER to Perform Verification; Use UP/DOWN Command to View other Panels;
Use HELP Command for Help; Use END Command to Save and Exit; Cancel to Exit.

Figure 9. Sample Management Class Define panel (Page 3)

In this book, we use four management classes for the DFSMShsm data:
MC54SPEC Is associated with system data sets and does not implement
any type of management. It is used for the data sets that are
defined in the DFSMShsm start procedure.
MC54NMIG Is a primary pool management class. It is associated with the
CDS backup data sets created by DFSMShsm. Because these
data sets are already managed by DFSMShsm, this class
does not exploit any automatic function.
MC54PRIM Allows migration to ML1 and backup. It is used for data with
medium-low frequency of access, such as some ABARS data
sets.
MC54WORK Manages data sets with a short life. It should be used for the
activity log data sets when they are allocated on DASD.

Chapter 2. Implementing DFSMShsm 25


Table 2 shows the values used to code these four management classes.
Table 2. Values used to code DFSMShsm management classes
SPACE MANAGEMENT AVAILABILITY MANAGEMENT

Expire After Days Non-usage

# GDG Elements on Primary

Number of Backup Versions

Number of Backup Versions


Command or Auto Migrate

Retain Days Extra Backup


Retain Days Only Backup

Admin or User Command


Primary Days Non-usage

Level 1 Days Non-usage

Backup Copy Technique


Expire After Date/Days

Rolled-off GDG Action

Backup Frecuency

Data Set Deleted


Data Set Exists
Partial Release
Retention Limit

Auto Backup
Version

Version

Backup
Name

MC54SPEC NO NO N NONE NONE N R

MC54NMIG NO NO C NONE NONE N

MC54PRIM NO NO Y 3 9999 BOTH 1 2 1 30 5 BOTH Y

MC54WORK 7 NO Y 3 9999 BOTH 1 1 0 BOTH Y

DFSMShsm deletes expired data sets during automatic space management


processing. Page 1 of the Management Class Define panel contains the data
set retention attributes. The retention attributes are processed before the
migration attributes that you specify on the next panel. Page 2 of the
Management Class Define panel contains the migration and GDG
management attributes. Page 3 of the Management Class Define panel
contains the management class backup attributes. The fields on the
Management Class Define panel are explained below.

EXPIRE AFTER DAYS NON-USAGE specifies how much time must elapse since the
last access before a data set or object becomes eligible for expiration.

EXPIRE AFTER DATE/DAYS specifies an absolute date or period after its allocation
for a data set or object to become eligible for expiration. The default for both
fields is NOLIMIT. The priority of EXPIRATION ATTRIBUTES is:
• If both EXPIRATION ATTRIBUTES are NOLIMIT, the data set or object
never expires.
• If one of the EXPIRATION ATTRIBUTES is NOLIMIT, the non-NOLIMIT
values must be used.
• If neither of the EXPIRATION ATTRIBUTES is NOLIMIT, both
EXPIRATION ATTRIBUTES must be satisfied.

RETENTION LIMIT is a required value that limits the use of retention period
(RETPD) and expiration date (EXPDT) values that are explicitly specified in
the job control language (JCL). If the value of a user-specified RETPD or

26 DFSMShsm Primer
EXPDT is within the limits specified by RETENTION LIMIT, it is saved for the
data set. If a user-specified value exceeds a RETENTION LIMIT of nonzero,
the RETENTION LIMIT overrides not only the RETPD/EXPDT values but also
the EXPIRATION ATTRIBUTES values. The default RETENTION LIMIT field
is NOLIMIT. If you specify 0, a user-specified value in the JCL or the data
class derived EXPDT or RETPD is ignored (see Table 3).
Table 3. Retention attribute selection example for space management process

Attribute Case 1 Case 2 Case 3 Case 4 Case 5

Retention Limit 0 50 100 nolimit 100

Expire After Days Non-Usage 50 50 50 50 50

Expire After Date/Days 100 100 100 100 100

RETPD/EXPDT 60 60 60 60

PARTIAL RELEASE applies to non-VSAM and VSAM extended format KSDSs.


You can specify in this field whether, and under what conditions, allocated but
unused space is to be released. The following four options are available for
PARTIAL RELEASE:
Y = Yes, release unused space at space management cycle time.
YI = Yes, immediately. Release unused space when a close is issued for a
data set that was open for output and at space management cycle time.
C = Conditional. If secondary space has been allocated, release unused
space at space management cycle time.
CI = Conditional, immediately. If secondary space has been allocated,
release unused space when a close is issued for a data set that was
open for output and at space management cycle time.
N = No release of unused space.

The PARTIAL RELEASE attribute is not checked during the DFSMShsm


interval migration function or the recall function. If you want allocated but
unused space to be released only when a secondary allocation quantity is
present, specify C.

The default is N, and this only applies during the primary space management
process (PSM).

PRIMARY DAYS NON-USAGE represents the minimum number of days that must
elapse since last access before a data set is eligible for migration. The default
is 2.

Chapter 2. Implementing DFSMShsm 27


LEVEL 1 DAYS NON-USAGE indicates the number of days that must elapse since
the last reference on level 0 before a data set on ML1 can migrate from ML1
to ML2. The default is 60. If you want data sets to migrate directly from level 0
DASD to ML2 tape, specify 0 in the LEVEL 1 DAYS NON-USAGE field. The
days spent on level 0 count toward eligibility for moving to ML2.

COMMAND OR AUTO MIGRATE allows you to specify whether a data set is eligible to
be migrated by both command and automatic processing, by command alone,
or not at all. If you do not want to migrate data sets that belong to a particular
management class, specify NONE.

The GDG MANAGEMENT ATTRIBUTES indicate how many generations of a generation


data group (GDG) to keep on primary storage and what to do with rolled-off
generation data sets (GDSs). But, both the # GDG ELEMENTS ON PRIMARY
and the ROLLED-OFF GDS ACTION fields are optional and have default
values of blank. If left blank, no special treatment results from the data set
being a GDS or a rolled-off GDS.

# GDG ELEMENTS ON PRIMARY indicates how many of the most recent generations
of a GDG to keep on primary storage. Generations that go over the limit
become eligible for migration during the next run of automatic primary space
management independent of the PRIMARY DAYS NON-USAGE. The most
recent generations are eligible for migration only if they satisfy the PRIMARY
DAYS NON-USAGE.

ROLLED-OFF GDS ACTION indicates whether to expire rolled-off GDSs or make


them eligible for migration. If you specify MIGRATE, management class
EXPIRATION ATTRIBUTES will be applied to the data set to determine
whether or not the data set should be deleted; if not, the data is eligible for
migration. If you specify EXPIRE, the rolled-off GDS will be deleted.

The ADMIN OR USER COMMAND BACKUP and AUTO BACKUP fields are
required, and they have default values of BOTH and Y, respectively.

ADMIN OR USER COMMAND BACKUP is used to indicate the authority category for
issuing command backups. NONE indicates that neither command nor auto
processing is permitted. ADMIN indicates that only storage administrators
can issue commands against these data sets. BOTH indicates that both
storage administrators and users can issue commands against these data
sets.

The remaining fields on this panel are required when you specify Y in the
AUTO BACKUP field, or specify BOTH or ADMIN in the ADMIN OR USER
COMMAND BACKUP field.

28 DFSMShsm Primer
BACKUP FREQUENCY specifies how many days must elapse before DFSMShsm
can back up data sets that have changed since the last backup. The default
is 1. If you want to backup changed data sets every time a backup cycle is
run, specify 0.

NUMBER OF BACKUP VERSIONS fields specify the maximum number of backup


versions to retain for a data set. The default is 2 for (DATA SET EXISTS), and 1
for (DATA SET DELETED).

RETAIN DAYS ONLY BACKUP VERSION (DATA SET DELETED) indicates how many days
to keep the most recent backup version of a deleted data set, starting from
the day DFSMShsm recognizes that the data set has been deleted. This
attribute applies only when a data set no longer exists on a level 0 volume or
a migrated volume (ML1 and ML2). The default is 60.

RETAIN DAYS EXTRA BACKUP VERSIONS indicates how many days to keep backup
versions other than the most recent one. Days are calculated from the
creation date of the backup version. The default is 30.

BACKUP COPY TECHNIQUE field specifies whether concurrent copy should be used
during data set backup processing. R indicates that concurrent copy must be
used for backup processing. P indicates that concurrent copy is preferred and
it is used when the data set resides in a volume supported by concurrent
copy. S is the default and indicates that concurrent copy is not used to back
up the data set.

A description of object class transition attributes is beyond the scope of this


book. For further information about this subject refer to the OS/390 V2R10.0
DFSMSdfp Storage Administration Reference, SC26-7331.

2.1.3 Storage group


DFSMShsm processes system-managed DASD volumes in SMS pool storage
groups. A pool storage group is a set of volumes with free space threshold
and paths to the systems within the complex. By placing volumes in a storage
group, the requests of data sets that have common storage requirements can
more easily be satisfied.

In a multiple-systems environment, storage groups can be defined to allow


DFSMShsm automatic functions to be performed for specific storage groups
by specific systems. This is in contrast to allowing storage groups to be
processed by all systems units in a multiple-systems environment. This
function is known as system-affinity.

Chapter 2. Implementing DFSMShsm 29


Storage groups can be defined to activate the DFSMShsm management
functions on their data. This is done using the Pool Storage Group Defined
panel (obtained through option 6 on the ISMF Primary Option Menu panel)
and entering the appropriate information in the fields, as shown in Figure 10.

POOL STORAGE GROUP DEFINE


Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Group Name : SG54HSM
To DEFINE Storage Group, Specify:
Description ==> STORAGE GROUP FOR DFSMSHSM DATA SET
==>
Auto Migrate . . Y (Y, N, I or P) Migrate Sys/Sys Group Name . .
Auto Backup . . Y (Y or N) Backup Sys/Sys Group Name . .
Auto Dump . . . Y (Y or N) Dump Sys/Sys Group Name . . .

Dump Class . . . ONSITE (1 to 8 characters)


Dump Class . . . OFFSITE Dump Class . . .
Dump Class . . . Dump Class . . .

Allocation/migration Threshold: High . . 95 (1-99) Low . . 80 (0-99)


Guaranteed Backup Frequency . . . . . . NOLIMIT (1 to 9999 or NOLIMIT)

DEFINE SMS Storage Group Status . . . N (Y or N)


Use ENTER to Perform Verification and Selection;
Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 10. Pool Storage Group Define panel

The fields on the panel are explained below.

AUTO MIGRATE specifies whether you want the DASD volumes in this storage
group to be eligible for automatic space management processing. Y specifies
that DFSMShsm is to perform automatic primary space management
processing and interval migration. I causes DFSMShsm to perform the same
functions as if Y has been specified, and automatic interval migration
independent of the DFSMShsm SETSYS INTERVALMIGRATION option. P
specifies that data sets are eligible for primary space management but
interval migration is not performed even if SETSYS INTERVALMIGRATION is
specified. N specifies that data sets are not eligible for automatic migration.

AUTO BACKUP specifies whether you want the DASD volumes in this storage
group to be eligible for automatic backup processing. Y specifies that
DFSMShsm is to perform data availability management processing according
to management class requirements.

The storage group and management class are interrelated. For example, if
you set AUTO MIGRATE or AUTO BACKUP to N for the storage group, it will
override the management class migration and backup attributes.

30 DFSMShsm Primer
AUTO DUMP specifies whether you want to automatically dump all DASD
volumes in this storage group. If you specify Y, DFSMShsm performs
automatic dump processing.

MIGRATE, BACKUP, and DUMP Sys/Sys Group NAME ISMF no longer verifies that
specified system or system group names are defined to the base
configuration. You can specify either a system or a system group name in
these fields but a specific system specified might not be defined in the
configuration since it might be defined as part of a system group. Therefore, if
these fields are non-blank, you must take special care to ensure that the
values are correct If the values are incorrect, it could result in the expected
DFSMShsm operation not occurring.

If you specify the SYSTEM NAME, it must match the value of the SYSNAME
parameter in the IEASYSxx member of the respective PARMLIB.

DUMP CLASS can be specified with up to five unique dump class names. To use
these dump classes, you must define their names and parameters, using the
DEFINE command of DFSMShsm. These are optional fields.

ALLOCATION/MIGRATION THRESHOLD specifies an upper (HIGH) and lower (LOW)


space limit for the DASD volumes in a pool storage group. The SMS volume
selection function attempts to avoid allocation of a data set to a given DASD
volume if that allocation will cause that volume's HIGH threshold to be
exceeded. DFSMShsm uses the HIGH threshold value to determine whether
the interval migration function should be performed, and the LOW threshold
value as the threshold goal in reducing the amount of space occupied on a
DASD volume in the storage group during interval migration and primary
space management function. If you specify Y or I for AUTO MIGRATE, you
must specify both a HIGH and a LOW threshold value.

GUARANTEED BACKUP FREQUENCY provides an additional criterion for creating a


backup version and guarantees that a backup version of the data set will be
created after a specified number of days has elapsed, whether or not the data
set has been changed. If you specify NOLIMIT, data sets in the storage group
will be backed up according to their management class specifications. If you
specified Y or I for AUTO BACKUP, this field is required; otherwise it is
optional.

ALTER SMS STORAGE GROUP STATUS indicates whether you want to change the
status of the pool storage group. To leave the storage group status as
ENABLE, accept the default, N.

Chapter 2. Implementing DFSMShsm 31


2.1.4 ACS routines
You must update your set of ACS routines in order to introduce SMS support
for the DFSMShsm data sets.

The definition of DFSMShsm data sets to SMS through the ACS routines is
done by filtering on the data set names. DFSMShsm provides a structured
approach to data set naming in the following ways:
• CDSs and journal data set names are chosen by the system programmer
when DFSMShsm is implemented (as defined in the DFSMShsm starter
set job). The name should comply with installation standards.
• DFSMShsm-owned data as migrated or backup copies are identified by a
specified high-level qualifier (defined to DFSMShsm at implementation),
and by a combination of DFSMShsm generated qualifiers.
• DFSMShsm logs and trace data set names are defined by the system
programmer at implementation time.
• Activity log data set names are defined by DFSMShsm using a naming
structure with a unique high-level qualifier, HSMACT, followed by four
additional qualifiers that have a fixed format. This high-level qualifier can
be changed by the system programmer at installation time.
• CDS backup data set names are either defined according to installation
standards or defaulted by DFSMShsm in an easily identifiable structure.

Figure 113 on page 332 to Figure 126 on page 345 provide some examples
of the ACS code used to manage DFSMShsm data. The system programmer
or the storage administrator must merge this information into the existing
code.

We have defined a high-level qualifier of HSM for our DFSMShsm data sets,
which is reflected in the ACS routines. Figure 113 on page 332 to Figure 129
on page 348 show the following:
• A storage class for high performance and with guaranteed space
(SC54GRT) is assigned to the DFSMShsm control data sets and journal.
The guaranteed space storage attribute allows you to reserve space on
specific system-managed volumes for data sets that have specific
performance or availability requirements. Guaranteed space is specified in
the storage class for the CDSs – migration control data set (MCDS), offline
control data set (OCDS), backup control data set (BCDS) – and the journal
in order to direct them to different volumes behind different control units
and subsystems to maximize performance and minimize data loss in the
event of a hardware failure. This storage class is explicitly specified in the
allocation of these data sets. Only three storage administrator userids,

32 DFSMShsm Primer
MHLRES3, MHLRES4, and MHLRES5, can use the SC54GRT storage
class.
• Data allocated on DFSMShsm-owned volumes (migration and backup) is
excluded from SMS management by assigning a null storage class to
indicate that the data set should not be SMS-managed.
DFSMShsm must be able to direct allocation of data sets it manages to
DFSMShsm-owned storage devices so that, for example, backup versions
of data sets go to backup volumes and migration copies go to migration
volumes. DFSMShsm-owned volumes are not SMS-managed, so a
storage class must not be assigned to DFSMShsm-owned data sets.
• Other DFSMShsm data sets, such as logs and CDS backups, are
recognized and allocated in the SMS volume pools.
• When a data set is recalled or recovered by DFSMShsm, the storage class
is retained if one already exists.

Examples of the parameters used in the SMS classes referenced in these


routines are presented in 2.1.1, “Storage class” on page 18.

Figure 118 on page 337 to Figure 122 on page 341 show sample code
required in the management class ACS routine, which assigns different
management criteria to the DFSMShsm-owned data sets according to their
use and importance.

Figure 123 on page 342 to Figure 126 on page 345 show sample code that
we used in our storage group ACS routine. You may need to create another
storage group and update your storage group ACS routine if want to separate
the DFSMShsm data sets from other data.

2.1.5 SMS update checklist


The following checklist summarizes the activities necessary to update an
existing SMS environment in preparation for installing and activating a
DFSMShsm system:
• Identify the performance and availability requirements for all DFSMShsm
data sets
• Identify the management requirements for the SMS-managed DFSMShsm
data sets
• Define required storage classes
• Define required management classes
• Update storage class ACS routine

Chapter 2. Implementing DFSMShsm 33


• Update management class ACS routine
• Update storage groups
• Translate, verify, and test new configuration
• Activate new configuration

2.2 PROCLIB and PARMLIB setup


Before starting DFSMShsm, data sets key to DFSMShsm operation must be
allocated, and procedures must be created in the appropriate procedure
library. A base set of allocation procedures is found in SYS1.SAMPLIB.
DFSMShsm ships modifiable JCL for you to build your DFSMShsm
environment based on your installation requirements. To obtain the JCL, you
must:
1. Edit member ARCSTRST of SYS1.SAMPLIB. This member contains
instructions describing the fields to be changed.
2. Run member ARCSTRST in data set SYS1.SAMPLIB. This will allocate
data set HSM.SAMPLE.CNTL containing several members that can be
used to perform the installation tasks.
3. Edit member STARTER of HSM.SAMPLE.CNTL. This member contains
basic instructions on how to set up the DFSMShsm environment.
4. Run member STARTER in data set HSM.SAMPLE.CNTL. The STARTER
job will create DFSMSHSM in data set SYS1.PROCLIB, and a sample
ARCCMD00 member in data set SYS1.PARMLIB and will allocate the
DFSMShsm control data sets, journal, logs, and PDA trace data sets.

SYS1.PROCLIB member DFSMSHSM is a procedure to start DFSMShsm. It


allocates the required data sets to DFSMShsm and allows you to specify
several startup options.

Figure 11 shows an example of a DFSMShsm startup procedure that was


created when we ran the STARTER member in HSM.SAMPLE.CNTL. It is
tailored for our primary DFSMShsm system.

34 DFSMShsm Primer
//*******************************************************************/
//DFSMSHSM PROC CMD=00, USE PARMLIB MEMBER ARCCMD00 FOR CMDS
// STR=00, PARMLIB MEMBER FOR STARTUP PARMS
// EMERG=NO, SETS HSM INTO NON-EMERGENCY MODE
//* CDSQ=YES, CDSs SERIALIZED WITH ENQUEUES
//* PDA=YES, PROBLEM DETERMINATION AID
// SIZE=0M, REGION SIZE FOR DFSMSHSM
// DDD=50, MAX DYNAMICALLY ALLOCATED DATASETS
// H=1, PROC.UNIT ID AND LEVEL FUNCTIONS
// P=NO, LEVEL FUNCTIONS
// HM=MAIN HOSTMODE
//*******************************************************************/
//DFSMSHSM EXEC PGM=ARCCTL,DYNAMNBR=&DDD,REGION=&SIZE,TIME=1440,
// PARM=('EMERG=&EMERG','CMD=&CMD',
// 'UID=HSM','HOST=&H','STR=&STR',
// 'PRIMARY=&P','HOSTMODE=&HM')
//*****************************************************************/
//* HSMPARM DD must be deleted from the JCL or made into a */
//* a comment to use Concatenated Parmlib Support */
//*****************************************************************/
//HSMPARM DD DSN=SYS1.PARMLIB,DISP=SHR
//MSYSOUT DD SYSOUT=A
//MSYSIN DD DUMMY
//SYSPRINT DD SYSOUT=A,FREE=CLOSE
//SYSUDUMP DD SYSOUT=A
//*****************************************************************/
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER MCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//*****************************************************************/
//MIGCAT DD DSN=HSM.MCDS,DISP=SHR
//JOURNAL DD DSN=HSM.JRNL,DISP=SHR
//ARCLOGX DD DSN=HSM.HSMLOGX1,DISP=OLD
//ARCLOGY DD DSN=HSM.HSMLOGY1,DISP=OLD
//ARCPDOX DD DSN=HSM.HSMPDOX1,DISP=OLD
//ARCPDOY DD DSN=HSM.HSMPDOY1,DISP=OLD
//*****************************************************************/
//* REMOVE THE NEXT DD STATEMENT IF YOU DO NOT INTEND TO USE */
//* BACKUP AND DUMP. */
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER BCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//*****************************************************************/
//BAKCAT DD DSN=HSM.BCDS,DISP=SHR
//*****************************************************************/
//* REMOVE THE NEXT DD STATEMENT IF YOU DO NOT INTEND TO USE TAPES*/
//* FOR DAILY BACKUP, SPILL BACKUP OR MIGRATION LEVEL 2 */
//* PROCESSING. */
//* THE OCDS MAY NOT EXCEED 1 VOLUME. */
//*****************************************************************/
//OFFCAT DD DSN=HSM.OCDS,DISP=SHR

Figure 11. DFSMShsm example of startup procedure for primary host

Do not include keywords that are not necessary. The EXEC statement of this
sample contains the following parameters:
SIZE Is the DFSMShsm region size.

Chapter 2. Implementing DFSMShsm 35


DDD Is used to calculate the maximum number of data set
allocations that DFSMShsm can hold in anticipation of reuse.
PARM Is used to pass variable information to the processing
program.
The length of the PARM subparameters on the EXEC
statement must not exceed 100 characters (including
commas, excluding parentheses). The PARM parameter of
this sample contains the following subparameters:
CMD Specifies the two-character suffix of the ARCCMDxx member
of the library pointed to by the HSMPARM DD statement. It
contains the parameters that define the DFSMShsm working
options. The default value is 00.
EMERG Overrides the SETSYS EMERGENCY definition (see later)
and allows, in case of errors, DFSMShsm to be started in a
configuration that can be used for recovery. In normal
conditions, this parameter is set to NO (default).
UID Is the ID of the authorized DFSMShsm user.
HOST Represents the unique host identifier for each host. It allows
an optional second character in the value. The function of that
second character is now specified by the PRIMARY= keyword.
The second character, if specified, is considered only if the
PRIMARY= keyword is not specified.
PRIMARY Specify whether this is a primary system (use Y) or a
secondary system (use N). The backup and dump level
functions are done on the primary processing unit. The
automatic secondary space management functions can be
performed on any host. The default value is Y.
HOSTMODE Specifies how this instance of DFSMShsm is related to
various functions of DFSMShsm. HOSTMODE=MAIN
specifies that this DFSMShsm processes implicit requests,
like recalls and deleting migrated data sets, from user address
spaces, processes explicit commands from TSO, like
HSENDCMD and HBACKDS, manages ABARS secondary
address spaces, allows MODIFY commands from a console
and can run an automatic backup, dump, and space
management. HOSTMODE=AUX specifies that this
DFSMShsm allows MODIFY commands from a console and
can run automatic backup, dump, or space management. The
default value is MAIN.

36 DFSMShsm Primer
STR Specifies a PARMLIB member containing DFSMShsm startup
parameters, which are logically concatenated with any
remaining parameters specified on the EXEC statement. The
value for the STR keyword must be two characters.
PDA Specifies that the PDA tracing begins before the SETSYS
PDA command has been processed or the DFSMShsm
initialization has been completed.
CDSQ Specifies that DFSMShsm serializes its control data sets with
a global enqueue product (GRS for example) instead of
serializing with volume reserves. When you specify YES for
this parameter, DFSMShsm serializes the use of the control
data sets (between multiple OS/390 images) with a global
(SYSTEMS) exclusive enqueue and still allows multiple tasks
within a single OS/390 image to access the control data sets
concurrently.

The PARMLIB member that contains additional startup parameters as


specified in STR=00 parameter is shown in Figure 12:
/*****************************************************************/
/* DFSMSHSM ADDITIONAL STARTUP COMMAND MEMBER */
/*****************************************************************/
EMERG=NO,STARTUP=YES,CDSSHR=YES,CDSQ=YES,CDSR=NO

Figure 12. Additional startup parameters

The previous member contains the following additional parameters:


STARTUP Specifies whether startup messages are to be printed at the
operator console. The default value is NO.
CDSSHR Specifies that DFSMShsm will run in a particular multiple
processor or single processor environment instead of letting
DFSMShsm determine the environment. If you specify NO for
this keyword. DFSMShsm does no multiple processor
serialization: no other processor should be concurrently
processing the CDSs. Specifying YES for this keyword causes
DFSMShsm to perform multiple processor serialization of the
type requested by the CDSQ and CDSR keywords. If your
system supports VSAM RLS, you can specify CDSSHR=RLS
to cause DFSMShsm to perform multiprocessor serialization
using RLS (serialization at a record level). The CDSs are
accessed in RLS mode, and any values specified for CDSQ
and CDSR are ignored. Other MVS images access the CDSs
concurrently.

Chapter 2. Implementing DFSMShsm 37


CDSR Specifies that DFSMShsm serializes its CDSs with volume
reserves. If you have a cross-system serialization product, you
can specify CDSQ=YES instead. CDSQ=YES serializes the
CDSs (among multiple MVS images) with a global
(SYSTEMS) exclusive enqueue but allows other tasks within a
single MVS image to access the CDSs concurrently. When a
serialization technique has not been specified, the default
serialization technique depends on the following specified
HOSTMODE. If HOSTMODE=MAIN, DFSMShsm assumes
CDSR=YES. If HOSTMODE=AUX, DFSMShsm indicates an
error with message ARC0006I

The following keywords are not specified in our startup procedure, but are
mentioned in this book and are described here for completeness:
RNAMEDSN Specifies whether to use a new serialization method so that
there is no longer interference between HSMplexes that are
contained within a single GRSplex. When you specify YES for
this parameter, you are invoking the new method of
serialization, which uses the data set name of the CDSs and
the journal. The default value is NO.
RESTART Specifies that DFSMShsm should be restarted for all
DFSMShsm abnormal ends (ABENDS). The format of the
keyword is RESTART=(a,b), where a specifies the name of the
procedure to be started, and b specifies any additional
keywords or parameters to be passed to the procedure. If you
are accessing the CDSs in RLS mode, use the RESTART
keyword so that DFSMShsm automatically restarts after an
SMS VSAM server error.
LOGSW Specifies whether to automatically swap the log data sets at
startup. The default value is NO.
CELLS DFSMShsm uses the cell-pool (CPOOL) function of MVS to
obtain and manage virtual storage in its address space for the
dynamically obtained storage for certain high-usage modules,
and for data areas DFSMShsm frequently gets and frees. The
CELLS parameter provides the cell sizes for five cell pools.
The default value is (200,100,100,50,50).

The DD statements in the procedure point to the following data sets:


HSMPARM Is the library that contains the DFSMShsm SETSYS
parameters. It is typically SYS1.PARMLIB but can be any
other source format library. The member names must be

38 DFSMShsm Primer
ARCCMD followed by a two-character suffix, as indicated in
the CMD parameter of the procedure EXEC statement.
MSYSOUT Is a system data set used by DFSMShsm to interact with MVS
services and to receive messages from the TSO Terminal
Monitor Program (TMP) and with messages issued when
dynamic memory allocation takes place.
MSYSIN Is a system data set used by DFSMShsm for support of TSO
processing. It must point to a DUMMY data set.
SYSPRINT Is the standard DFSMShsm message data set.
SYSUDUMP Is used to collect dumps generated when an error occurs in
the DFSMShsm primary or secondary address spaces. It is
used only if the SETSYS NOSYS1DUMP option has been
requested.
MIGCAT Points to the MCDS.
JOURNAL Points to the journal data set.
ARCLOGX Is one of two data sets to which DFSMShsm sends log
information. It is used as an alternative to the data set pointed
to by ARCLOGY DD.
ARCLOGY Is one of two data sets to which DFSMShsm sends log
information. It is used as an alternative to the data set pointed
to by ARCLOGX DD.
ARCPDOX Is one of two trace data sets to which DFSMShsm sends
information useful for debugging. It is used only when the PDA
trace is activated with a SETSYS parameter. It is not
necessary if SETSYS PDA(NONE) is coded in the
DFSMShsm set of parameters.
ARCPDOY Is used in the same way as the trace data set pointed to by the
ARCPDOX DD. It is used when the other data set is full.
BAKCAT Points to the BCDS.
OFFCAT Points to the OCDS.

Note
Do not add any STEPCAT or JOBCARD statements to any DFSMShsm
started procedure. The results are unpredictable.

Chapter 2. Implementing DFSMShsm 39


2.2.1 Multihost startup procedure
The procedure shown in Figure 11 on page 35 changes when DFSMShsm is
started on a secondary system in a multihost environment (see Figure 13).

//*******************************************************************/
//DFSMSHSM PROC CMD=00, USE PARMLIB MEMBER ARCCMD00 FOR CMDS
// STR=00, PARMLIB MEMBER FOR STARTUP PARMS
// EMERG=NO, SETS HSM INTO NON-EMERGENCY MODE
//* CDSQ=YES, CDSs SERIALIZED WITH ENQUEUES
//* PDA=YES, PROBLEM DETERMINATION AID
// SIZE=0M, REGION SIZE FOR DFSMSHSM
// DDD=50, MAX DYNAMICALLY ALLOCATED DATASETS
// H=2, PROC.UNIT ID AND LEVEL FUNCTIONS
// P=YES, LEVEL FUNCTIONS
// HM=AUX HOSTMODE
//*******************************************************************/
//DFSMSHSM EXEC PGM=ARCCTL,DYNAMNBR=&DDD,REGION=&SIZE,TIME=1440,
// PARM=('EMERG=&EMERG','CMD=&CMD',
// 'UID=HSM','HOST=&H','STR=&STR',
// 'PRIMARY=&P','HOSTMODE=&HM')
//*
//HSMPARM DD DSN=SYS1.PARMLIB,DISP=SHR
//MSYSOUT DD SYSOUT=A
//MSYSIN DD DUMMY
//SYSPRINT DD SYSOUT=A,FREE=CLOSE
//SYSUDUMP DD SYSOUT=A
//*****************************************************************/
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER MCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//*****************************************************************/
//MIGCAT DD DSN=HSM.MCDS,DISP=SHR
//JOURNAL DD DSN=HSM.JRNL,DISP=SHR
//ARCLOGX DD DSN=HSM.HSMLOGX2,DISP=OLD
//ARCLOGY DD DSN=HSM.HSMLOGY2,DISP=OLD
//ARCPDOX DD DSN=HSM.HSMPDOX2,DISP=OLD
//ARCPDOY DD DSN=HSM.HSMPDOY2,DISP=OLD
//*****************************************************************/
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER BCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//*****************************************************************/
//BAKCAT DD DSN=HSM.BCDS,DISP=SHR
//*****************************************************************/
//* THE OCDS MAY NOT EXCEED 1 VOLUME. */
//*****************************************************************/
//OFFCAT DD DSN=HSM.OCDS,DISP=SHR

Figure 13. DFSMShsm startup procedure for secondary system

The following parameters must change for the secondary system:


CMD Specifies the two-character suffix of the ARCCMDxx member
in the library pointed to by the HSMPARM DD statement. In a
multihost environment, the ONLYIF command allows you to
define parameters for multiple hosts within a single
ARCCMDxx PARMLIB member. The single command

40 DFSMShsm Primer
immediately following the ONLYIF command is conditionally
executed when the host name specified on the HSMHOST
parameter matches the host being started.
You can specify a different two-character suffix from that
specified for the primary system startup procedure, to have
the secondary system use a different ARCCMDxx member.
HOST Represents the unique host identifier for each host. It allows
an optional second character in the value. The function of that
second character is now specified by the PRIMARY= keyword.
The second character, if specified, is considered only if the
PRIMARY= keyword is not specified.
PRIMARY Specify whether this is a primary system (use Y) or a
secondary system (use N). The backup and dump level
functions are done on the primary processing unit. The
automatic secondary space management functions can be
performed on any host. The default value is Y.
HOSTMODE Specifies how this instance of DFSMShsm is related to
various functions of DFSMShsm. HOSTMODE=MAIN
specifies that this DFSMShsm processes implicit requests,
like recalls and deleting migrated data sets, from user address
spaces, processes explicit commands from TSO, like
HSENDCMD and HBACKDS, manages ABARS secondary
address spaces, allows MODIFY commands from a console
and can run an automatic backup, dump, and space
management. HOSTMODE=AUX specifies that this
DFSMShsm allows MODIFY commands from a console and
can run automatic backup, dump, or space management. The
default value is MAIN.

The following DD statements in the secondary system must point to the same
data sets as the primary system:
MIGCAT
BAKCAT
OFFCAT
JOURNAL

The following DD statements in the secondary system must point to data sets
that are unique for each system:
ARCLOGX
ARCLOGY
ARCPDOX

Chapter 2. Implementing DFSMShsm 41


ARCPDOY

In a multihost environment, it is advisable to use a data set naming


convention that allows the DFSMShsm system to be identified from the data
set name. For example, a suffix can be used in the data set name that helps
you associate the HOST number as coded in the procedure parameters.

2.2.2 ABARS
On ABACKUP and ARECOVER, DFSMShsm automatically starts a
secondary address space that handles the request. This address space is
started using the procedure name that is specified with the SETSYS
ABARSPROCNAME(name) command in the ARCCMDxx PARMLIB member.
We used DFHSMABR as the procedure name, as shown in Figure 14.

//*****************************************************************/
//* ABARS SECONDARY ADDRESS SPACE STARTUP PROCEDURE */
//*****************************************************************/
//*
//DFHSMABR PROC
//DFHSMABR EXEC PGM=ARCWCTL,REGION=0M
//SYSUDUMP DD SYSOUT=A
//MSYSIN DD DUMMY
//MSYSOUT DD SYSOUT=A
/*

Figure 14. ABARS secondary address space start procedure

2.2.3 Setting up the base SETSYS parameters


The way DFSMShsm works is established by a set of parameters, most of
them identified by the SETSYS command. The general format is:

SETSYS parameter(option)

These parameters are contained in the PARMLIB member pointed to by the


HSMPARM DD statement in the ARCCMDxx started procedure.

These parameters can be divided into four groups that define:


• Base options
• Space management characteristics
• Availability management characteristics
• ABARS support

Details and suggestions on coding this information are discussed in this topic.
Refer to the OS/390 V2R10.0 DFSMShsm Storage Administration Reference,
SC35-0389 for a detailed explanation of each keyword.

42 DFSMShsm Primer
Note: In a multiple address space for DFSMShsm environment, SETSYS
commands with ABARS parameters like ABARSxxx, ARECOVERxxx or
MAXABARSADDRESSSPACE or the SETSYS CSALIMITS command can
only be issued by the host identified as the MAIN host. DFSMShsm ignores
these commands if directed to a host identified as HOSTMODE=AUX.

The base parameters set the basic working options of DFSMShsm. These
parameters are not directly related to a particular function, but they establish
some defaults, such as tape management, that define the way DFSMShsm
implements the available options.
• What is the TSO user ID of the DFSMShsm administrator or system
programmer?
The AUTH command authorizes this user to issue DFSMShsm commands.
The command can be entered in the input stream as many times as
needed to define more than one authorized user. However, there should
be very few users given CONTROL authority because they can grant
authorization to others. The format of this command is:

AUTH uid DATABASEAUTHORITY(USER)

• What is the job entry subsystem (JES)?


DFSMShsm defaults to JES2. If you want to use JES3, you must specify
the JES3 parameter before you specify the first ADDVOL command.

SETSYS JES2
SETSYS JES3

• Do you want secondary host promotion for this DFSMShsm?


DFSMShsm allows secondary hosts to take over functions for a failed
primary host or failed SSM host. If you want this HSM image to be
promoted as primary host only, use statement (a). If you want it to be
promoted as secondary space management (SSM) only, use statement
(b). Use statement (c) for it to be promoted both primary and SSM.

(a) SETSYS PROMOTE(PRIMARYHOST(YES) SSM(NO))


(b) SETSYS PROMOTE(PRIMARYHOST(NO) SSM(YES))
(c) SETSYS PROMOTE(PRIMARYHOST(YES) SSM(YES))

• Do you want DFSMShsm to reblock eligible data sets during recall or


recovery?
All system-reblockable data sets are reblocked during recall and recovery
if they should be. If they are not system reblockable but of selected
categories, this parameter permits DFSMShsm to reblock them. If you do

Chapter 2. Implementing DFSMShsm 43


not want these data sets to be reblocked, use statement format (a). The
format (b) statement allows reblocking during recall or in recover to any
device type supported by DFSMShsm, including target volumes of the
same type as the source volume.

(a) SETSYS NOCONVERSION


(b) SETSYS CONVERSION(REBLOCKTOANY)

• How do I specify data set serialization for data sets being backed up
or migrated?
To prevent a data set from being changed during backup or migration,
access to the data set is controlled using serialization. DFSMShsm
serialization is determined by specifying SETSYS parameters. Use
statement (a) below when you are sharing volumes and a serialization
facility such as global resource serialization (GRS) is not provided. In this
case a reserve is placed on the volume. An example of sharing volumes
without GRS is with a VM or VSE system. Use statement (b) when you are
in a single-system environment or are sharing data between OS/390
systems and are using GRS to serialize at the data set level.

(a) SETSYS DFHSMDATASETSERIALIZATION


(b) SETSYS USERDATASETSERIALIZATION

Notes:
- In DFSMShsm V1R5, the incremental backup function has been
restructured in order to improve the performance. This improvement is
only effective when USERDATASETSERIALIZATION is specified.
- The fast subsequent migration function supports reconnection only in a
USERDATASETSERIALIZATION environment.
- Some data sets, such as multivolume physical sequential data sets, are
processed only with SETSYS USERDATASETSERIALIZATION.
- In a multiple-system environment. Do not specify
USERDATASETSERIALIZATION unless you have a data set
serialization facility installed and enabled on your systems. Otherwise,
serious data integrity problems can occur.
• Do you want to activate a DFSMShsm exit?
You can use DFSMShsm installation exits to customize DFSMShsm
processing according to your installation requirements. These exits are
described in the OS/390 V2R10.0 DFSMS Installation Exits, SC26-7392
manual, where you can find additional information.
If you are not going to use a DFSMShsm exit, specify statement (a) below.

44 DFSMShsm Primer
Statement (b) shows an example of how to activate an exit. In this
example, we are activating the DFSMShsm tape volume exit ARCTVEXT.
This exit is called when a DFSMShsm-owned tape no longer contains valid
data and therefore becomes empty. The ARTVEXT exit is used to tell to
the tape management system that DFSMShsm has released the
ownership of a DFSMShsm tape. If you are using DFSMSrmm and ISV
TMS product, use statement (b). If you are running DFSMShsm and
DFSMSrmm only, you do not have to specify a tape volume exit as
DFSMShsm directly using its EDGTVEXT interface.

(a) SETSYS EXITON( )


(b) SETSYS EXITON(TV)

Note
If you have installed an independent software vendor (ISV) tape
management system, specify statement (b) and ask the tape
management system vendor for its version of ARCTVEXT.

• Do you want to write updated CDS records in the journal data set?
Journaling is necessary, because it is the only way to recover an affected
CDS without losing all updates entered after last backup. The JOURNAL
parameter specifies that DFSMShsm write the BCDS, MCDS, and OCDS
records in the journal data set when it updates them. Statement below
guarantees that each CDS change is recorded immediately to the journal.
If the system is heavily loaded, it is advisable to activate the DASD fast
write function where the journal is allocated.

SETSYS JOURNAL(RECOVERY)

• Do you want SMF to contain DFSMShsm statistics?


If yes, specify statement (a) below with an SMF user code smfid to assign
it to DFSMShsm-generated records. DFSMShsm uses two consecutive
user codes (smfid and smfid+1). The fields are required by the REPORT
command. If you do not want DFSMShsm to write SMF records, use
statement (b).

(a) SETSYS SMF(smfid)


(b) SETSYS NOSMF

Chapter 2. Implementing DFSMShsm 45


• Which SYSOUT class do you want to assign to the DFSMShsm
output?
With this command, the class and number of copies is assigned to the
DFSMShsm procedure output. DFSMShsm defaults are class A and one
copy (A 1).

SETSYS SYSOUT(class copies)

• Do you want the DFSMShsm dump to be written in a system dump


data set?
With statement (a) below, which we recommend, dump is written in a
system dump data set every time an error occurs in the primary or
secondary address space. This format is required if you are using the
Interactive Problem Control System (IPCS). With statement (b),
DFSMShsm dumps are written where indicated with a SYSABEND,
SYSUDUMP, or SYSMDUMP DD statement in the DFSMShsm start
procedure.

(a) SETSYS SYS1DUMP


(b) SETSYS NOSYS1DUMP

• Do you want DFSMShsm to write all activity log messages?


ACTLOGMSGLVL determines which ARC0734I data set movement
messages will be written to the activity log. Statement (a), which we
recommend, specifies that messages will be generated and logged for all
activities. Statement (b) specifies that messages will be generated only for
activities with a nonzero return code. Statement (c) specifies that only the
original space management message is generated.

(a) SETSYS ACTLOGMSGLVL(FULL)


(b) SETSYS ACTLOGMSGLVL(EXCEPTIONLY)
(c) SETSYS ACTLOGMSGLVL(REDUCED)

• Do you want DFSMShsm to write the activity log messages on DASD


or in a SYSOUT queue?
ACTLOGTYPE allows you to choose whether to make the activity logs a
DASD data set (a) or a SYSOUT data set (b). For class, substitute an
alphanumeric character for the class DFSMShsm is to use for output.
DASD specifies that DFSMShsm dynamically allocate DASD data sets
with the high-level qualifier HSMACT.

46 DFSMShsm Primer
The DASD activity logs can be managed by DFSMShsm according to the
SMS management class specifications (see 2.1.2, “Management class” on
page 23).

(a) SETSYS ACTLOGTYPE(DASD)


(b) SETSYS ACTLOGTYPE(SYSOUT(class))

• Do you want DFSMShsm to print information on the system console


and in the activity logs?
Do not code this parameter if you do not want DFSMShsm monitor
messages on the system console. Otherwise, you can select the
information you want by coding STARTUP for messages at DFSMShsm
initialization. MONITOR also the SPACE and VOLUME subparameters.
SPACE is used to print the volume space-use messages at system
console, during space management. VOLUME specifies that data set
processing messages (ARC0734I) are going to be printed on the system
console.

SETSYS MONITOR(STARTUP SPACE VOLUME)

• Do you want warning messages on space utilization inside the CDSs


and the journal?
Code this parameter only if you want DFSMShsm to change the default
threshold value for the CDSs and journal occupancy, that is 80%.

SETSYS MONITOR(JOURNAL(80) BCDS(80) MCDS(80) OCDS(80))

• Do you want to limit the amount of space that DFSMShsm allocates in


the common service area (CSA)?
Reasonable starting values which are also the default values, are shown in
statement (a). If you do not want to limit the amount of space allocated in
the CSA, choose statement (b).

(a) SETSYS CSALIMITS(MWE(4) MAXIMUM(100) ACTIVE(90) INACTIVE(30))


(b) SETSYS NOCSALIMIT

• How many task do you want to assign to the RECYCLE process?


Although a DFSMShsm host can process only one RECYCLE request at a
time, RECYCLE can initiate up to 15 tape processing tasks. Through the
following statement, you can limit the number of tape drives that
RECYCLE will request:

SETSYS MAXRECYCLETASKS(nn)

Chapter 2. Implementing DFSMShsm 47


• Do you want to use the hardware compaction feature on 3480X tape
devices?
The improved data recording capability (IDRC) feature on 3480s, if
installed, can be used on DFSMShsm 3480X output tapes if you code
statement (a). If you do not want to use this feature on 3480X devices,
code statement (b). This parameter is ignored for 3490 and 3590 devices.

(a) SETSYS TAPEHARDWARECOMPACT


(b) SETSYS NOTAPEHARDWARECOMPACT

• Do you want to reuse partially full tapes?


This parameter is used for cartridge-type tape volumes. To enable each
task, with the exception of data set migration, to initially request a scratch
tape, use statement (a) below. Data set migration is excluded to avoid
marking a tape volume full after a command migration of a single data set
to ML2. This option is of value when using automatic cartridge loaders, but
not if the DFSMShsm tape output is being directed to high-capacity tapes,
like the Magstar media tape, as they will not be well utilized.
If you want DFSMShsm to append to tapes that were not marked full when
they were last written to, use statement (b). With statement (b),
DFSMShsm marks tapes full only when the maximum block count
specified in the SETSYS TAPEUTILIZATION parameter is reached.
DFSMShsm automatically processes TAPECOPY requests for tape
volumes marked as full, and partial tapes without alternates are not
selected for copy.
If you specify the global PARTIALTAPE parameter, it applies to both
migration and backup. If you specify a specific function, the parameter
applies only to that function. If you specify a global value and a specific
function in a single command, the command will fail. If you want to specify
this parameter differently for migration and backup, do not code the
sample shown here. Use the statement (c) or (d) instead.

(a) SETSYS PARTIALTAPE(MARKFULL)


(b) SETSYS PARTIALTAPE(REUSE)
(c) SETSYS PARTIALTAPE(MIGRATION(MARKFULL | REUSE)
(d) SETSYS PARTIALTAPE(BACKUP(MARKFULL | REUSE)

Note: When using a VTS subsystem for migration or backup output, the
MARKFULL parameter can improve performance by reducing the need to
remount yesterday’s partial volume in order to extend it today. Additionally,
this usage can reduce the reclamation process of the VTS subsystem
because the physical tape containing the initial partial tape, that was
extended, was not invalidated on a true tape.

48 DFSMShsm Primer
• Do you want to reduce the occurrences of data sets spanning tape
volumes?
In this statement you specify the maximum number of megabytes of tape
that DFSMShsm may leave unused on tape while trying to eliminate
spanning data sets. When there is not enough space to contain the entire
next data set on the current tape without exceeding the requested
maximum utilization, then the next data set begins on an empty tape. The
default value for this parameter was changed by APAR OW32249 and now
is 500 MB. But DFSMShsm recommends a value of 4000MB for all device
types from 3480 through 3590 tape cartridges.

SETSYS TAPESPANSIZE(nnn)

• Do you want DFSMShsm to wait when a tape allocation is requested?


If you select statement (a), DFSMShsm continues other processing when
no device is immediately available and will reissue the allocation request
every 10 seconds for one minute. After seven attempts, DFSMShsm asks
the operator whether to retry or fail the allocation and hence the function.
We recommend that you use the NOWAIT parameter.
If you want DFSMShsm to wait until a tape request is satisfied, use
statement (b). Note that in (b) all DFSMShsm functions requesting
allocations, opens, or closes are stopped until this request is satisfied.
JES3 installations are forced to use WAIT because JES3 schedules tape
drives.

(a) SETSYS INPUTTAPEALLOCATION(NOWAIT)


SETSTS OUTPUTTAPEALLOCATION(NOWAIT)
SETSYS RECYCLETAPEALLOCATION(NOWAIT)

(b) SETSYS INPUTTAPEALLOCATION(WAIT)


SETSYS OUTPUTTAPEALLOCATION(WAIT)
SETSYS RECYCLETAPEALLOCATION(WAIT)

• Do you want DFSMShsm to use its own tape pool?


With statement (a) below, DFSMShsm will request scratch tapes every
time a volume is needed for dump and each time a continuation volume is
needed at end of volume (EOV) for migration and backup. The
SELECTVOLUME specification is typically made in conjunction with the
TAPEDELETION specification. So, according to the TAPEDELETION
specification in statement (a), when DFSMShsm no longer needs a tape
volume, it tells the tape management system that it has released the
ownership of that tape volume. The tape management system then returns
this tape volume to the global scratch pool.

Chapter 2. Implementing DFSMShsm 49


With statement (b), DFSMShsm will select the tape within a defined tape
pool if any are available. It is expected that the installation will have
supplied a set of standard label tapes and identified them to DFSMShsm,
using the ADDVOL command. When a tape volume no longer contains
valid data, the TAPEDELETION specification in statement (b) tells
DFSMShsm to keep it for reuse. If you specify the global parameter, it
applies to all functions (migration, backup and dump). If you specify the
parameter for a specific function, it applies only to that type of function.
We recommended not using specific scratch pools. Global scratch pools
allow you to easily take advantage of automatic cartridge loaders,
reducing the tape mount wait time. Global scratch pools also enable use of
a tape management product like DFSMSrmm.

(a) SETSYS SELECTVOLUME(SCRATCH)


SETSYS TAPEDELETION(SCRATCHTAPE)

(b) SETSYS SELECTVOLUME(SPECIFIC)


SETSYS TAPEDELETION(HSMTAPE)

• Do you want to use installation-defined esoteric unit names for tape


allocations?
DFSMShsm always requests a mount for a specific tape for input
processing, so cartridge loaders are of little value for input. To ensure that
non-cartridge-loader devices are used for input, you can direct
DFSMShsm to use esoteric unit names in a special way that directs a
cartridge to be allocated on a different set of devices for input and for
output. Esoteric tape unit names that have been defined to your OS/390
system must be defined to DFSMShsm before they can be recognized and
used in DFSMShsm commands as valid unit types. All esoterics identified
to DFSMShsm with the SETSYS USERUNITTABLE command must
appear in a single command.
To identify esoteric tape unit names to DFSMShsm, use statement (a)
below. If an esoteric name represents a set of units having automatic
cartridge loaders, and the esoteric name is used to allocate a device for
output, the output esoteric is translated to the generic tape unit equivalent
for mounting the tape for input. If you do not want that translation, you can
specify an alternate unit name translation such as in statement (b).
Substitute eso with the esoteric name you want to use for output
allocations, and esi with the esoteric name you want to use for input
allocations. In statement (b), eso would designate tape drives with
automatic cartridge loaders, and esi would designate tape drives without
automatic cartridge loaders.

50 DFSMShsm Primer
You can use statement (c) if you do not want the translation to occur for
certain esoteric names. In this example, a tape written by DFSMShsm to a
tape associated with the esoteric name eso1 would be allocated for input
in a tape unit also associated with eso1.
If no esoteric tape unit names are identified to DFSMShsm, use statement
(d). Any previously defined esoteric names are no longer known to
DFSMShsm. Statement (d) is the default.

(a) SETSYS USERUNITTABLE(eso1,eso2,eso3,..)


(b) SETSYS USERUNITTABLE(eso1:esi1,eso2:esi2...)
(c) SETSYS USERUNITTABLE(eso1:eso1,eso2:eso2...)
(d) SETSYS NOUSERUNITTABLE

• How long do you want DFSMShsm to wait for a tape mount?


Indicate the number of minutes (maximum 120) that DFSMShsm can wait
for a tape mount before asking the operator about volume availability. The
DFSMShsm default is 15 minutes.

SETSYS MOUNTWAITTIME(10)

• Do you want DFSMShsm to ask the operator about the availability of


tapes for input before using them?
If you want DFSMShsm to ask the operator if the input tapes requested
are available, use statement (a). If you do not want DFSMShsm to issue
this operator request, use statement (b). If all of the input tapes requested
are in an automated or manual tape library, these action messages are not
issued, even if (...TAPES(YES)) has been specified.

(a) SETSYS TAPEINPUTPROMPT(MIGRATIONTAPES(YES))


SETSYS TAPEINPUTPROMPT(BACKUPTAPES(YES))
SETSYS TAPEINPUTPROMPT(DUMPTAPES(YES))

(b) SETSYS TAPEINPUTPROMPT(MIGRATIONTAPES(NO))


SETSYS TAPEINPUTPROMPT(BACKUPTAPES(NO))
SETSYS TAPEINPUTPROMPT(DUMPTAPES(NO))

• Do you want to create a DUPLEX duplicate of your migration and


backup tapes?
DUPLEX allows DFSMShsm to create two tapes concurrently: the original
tape, intended to be kept on site, and the alternate tape, taken off site or
written to a remote tape library. Statement (a) below allows you to duplex
both BACKUP and MIGRATION tapes. If you do not want to duplex your
tapes, use statement (b), or do not specify the DUPLEX parameter on the

Chapter 2. Implementing DFSMShsm 51


SETSYS command. Use statement (c) if you only want to duplex migration
only and statement (d) for duplexing backup only.

(a) SETSYS DUPLEX(MIGRATION(Y) BACKUP(Y))


(b) SETSYS DUPLEX(MIGRATIOM(N) BACKUP(N)
(c) SETSYS DUPLEX(MIGRATIOM(Y) BACKUP(N)
(d) SETSYS DUPLEX(MIGRATIOM(N) BACKUP(Y)

• Do you want to limit the maximum tape utilization?


DFSMShsm provides the TAPECOPY command and the DUPLEX tape
option to create alternate migration and backup copies of cartridge-type
tapes. The usefulness of these copies depends on a one-to-one cartridge
copy. Because not all cartridges of a given type have exactly the same
capacity, DFSMShsm writes only 97% of the capacity of a cartridge by
default. If you want to change the amount of data written to migration and
backup tapes, use statement (a) below. You may have to issue the
SETSYS TAPEUTILIZATION command for each tape unit type you have if
you want to change a particular default.
The LIBRARYMIGRATION and LIBRARYBACKUP subparameters are the
only vehicle by which you can limit the amount of media used in a library
migration cartridge, because esoteric unit names are ignored in an
SMS-managed tape library.
In a duplex tape environment, if you specify NOLIMIT, DFSMShsm uses
the default PERCENTFULL value of 97 percent. This is not likely to be a
problem unless you are targeting a 3590-Bx or vendor drive in 3490
emulation mode. These drives need a percent value of a few hundred to
fully utilize the tape’s capacity. The value of 97 percent is fine if targeting a
3590-Ex drive, even if in 3490 emulation mode.
IBM recommends to use 97 (default) in all cases. If you are using the IBM
3590-Bx drives in emulation mode, the recommended value for
PERCENTFULL is 2200 (for drives with micro-code level prior to 1.9.19.0,
use a value of 1100 instead).

(a) SETSYS TAPEUTILIZATION(UNITTYPE(unit) PERCENTFULL(95))


SETSYS TAPEUTILIZATION(LIBRARYMIGRATION PERCENTFULL(95))
SETSYS TAPEUTILIZATION(LIBRARYBACKUP PERCENTFULL(95))

(b) SETSYS TAPEUTILIZATION(UNITTYPE(unit) PERCENTFULL(100))


SETSYS TAPEUTILIZATION(LIBRARYMIGRATION PERCENTFULL(100))
SETSYS TAPEUTILIZATION(LIBRARYBACKUP PERCENTFULL(95))

(c) SETSYS TAPEUTILIZATION(UNITTYPE(unit) PERCENTFULL(1100))

52 DFSMShsm Primer
• Do you want all migrated and backup copies on DASD to be RACF
indicated?
If the RACF environment is set up as described in 2.3, “Providing security
for DFSMShsm resources” on page 56, with always-call support and
generic profiles defined for migration and backup qualifiers, we
recommend that you use statement (a) below. Migration copies and
backup versions are not RACF indicated.
Use statement (b) to have migration copies and backup versions
RACF-indicated.

(a) SETSYS NORACFIND


(b) SETSYS RACFIND

• How do you want to protect DFSMShsm tapes?


DFSMShsm requires that you select one of three ways to protect tapes. If
you want to protect them with RACF use statement (a) below. In this case,
RACF must be updated as explained in 2.3, “Providing security for
DFSMShsm resources” on page 56. This is the recommended way if
RACF is installed. If RACF is not installed, you can use statement (b). This
will protect tapes with the 99365 expiration date. If you choose statement
(c), DFSMShsm will keep tapes as password indicated so that only
security-authorized programs can access them. If you choose statement
(d) you are using RACF and also expiration dates for protecting
DFSMShsm tapes. These options are fully supported by other security
software products such as CA-TOPSECRET or CA-ACF2. Security
options are not mutually exclusive, but can be used in combination.

(a) SETSYS TAPESECURITY(RACF | RACFINCLUDE)


(b) SETSYS TAPESECURITY(EXPIRATION | EXPIRATIONINCLUDE)
(c) SETSYS TAPESECURITY(PASSWORD)
(d) SETSYS TAPESECURITY(RACF EXPIRATION)

• Do you want the system to overwrite deleted migration and backup


copies of data sets according to the RACF erase-on-scratch flag?
Statement (a) below applies only if RACF is installed. It controls the
overwriting after a migration and backup copy is deleted from a
DFSMShsm-owned DASD volume, only if the erase-on-scratch option is
associated with the RACF profile of the user's data set. Specify statement
(b) if you do not need this overwriting to occur.

(a) SETSYS ERASEONSCRATCH


(b) SETSYS NOERASEONSCRATCH

Chapter 2. Implementing DFSMShsm 53


• Do you want to control whether individual backup requests go to
DASD or tape?
The data set backup commands allow a user to target a specific output
device type. However, if an output device type is not specified, the
SETSYS DSBACKUP command controls whether individual backup
requests go to DASD or tape. It also allows you to define the number of
tasks that are available, up to 64 tasks, to the data set backup function.
The SETSYS DSBACKUP command has three parameters:
DASDSELECTIONSIZE, DASD, and TAPE.

SETSYS DSBACKUP DASDSELECTIONSIZE(maximum standard)

The DASDSELECTIONSIZE (maximum standard) parameter on the


SETSYS DSBACKUP command allows DFSMShsm to balance the
workload between DASD and tape tasks for all WAIT requests that do not
target a device type. DFSMShsm uses a selection process that is based
on data set sizes and the availability of tasks. If the data set is greater than
a specified threshold maximum, then the data set is directed to tape. Any
data set that is less than or equal to a specified threshold standard is directed
to the first available task, either DASD or tape.
To direct command data set backup to tape use statement (a), use
statement (b) for DASD only. This will direct ALL backups to one or the
other, you can also direct individual requests with the TARGET keyword.

(a) SETSYS DSBACKUP(DASD(TASK(0)))


(b) SETSYS DSBACKUP(TAPE(TASK(0)))

For an explanation of SETSYS DSBACKUP parameters, refer to OS/390


V2R10.0 DFSMShsm Storage Administration Reference, SC35-0389.
• Do you want RACF discrete profiles to be copied during data set
backup?
This parameter applies only if RACF is installed. If you use generic profiles
with always-call support, select statement (a) below. However, if you do
not have an always-call environment, use only discrete profiles and
specify statement (b).

(a) SETSYS NOPROFILEBACKUP


(b) SETSYS PROFILEBACKUP

• Do you want to issue authorized DFSMShsm commands in a


non-RACF TSO batch environment?
To do this, the user ID associated with the job must match the user ID
entered with the AUTH command. If RACF is installed, it will pass this

54 DFSMShsm Primer
information to DFSMShsm. In this case, use statement (a) below. If RACF
is not installed, use statement (b). An installation without RACF will have
DFSMShsm retrieve the user ID for TSO batch requests from the
protected step control block (PSCB). An installation must ensure that the
user ID is placed in the PSCB.

(a) SETSYS NOACCEPTPSCBUSERID


(b) SETSYS ACCEPTPSCBUSERID

• Do you want DFSMShsm to compact data sets during migration or


backup?
If you want DFSMShsm to compact data sets during backup and migration
to DASD and during backup and migration to tape, specify statement (a)
below. Optionally, you can choose which functions will use DFSMShsm
compaction. For example, if you only want compaction to occur during
migration to DASD, specify statement (c). We recommend that you specify
statement (d). If you do not want compaction to occur, do not specify the
SETSYS COMPACT command.
If the majority of your migration and backup data goes to IDRC-capable
tape devices or RVA DASD, we recommend that you not specify the
SETSYS COMPACT command.

(a) SETSYS COMPACT(ALL)


(b) SETSYS COMPACT(DASDBACKUP)
(c) SETSYS COMPACT(DASDMIGRATE)
(d) SETSYS COMPACT(DASDBACKUP DASDMIGRATE)
(e) SETSYS COMPACT(TAPEBACKUP)
(f) SETSYS COMPACT(TAPEMIGRATE)

• Do you want to specify the percentage of minimum space saving for


software compaction?
If you request software compaction, DFSMShsm compares any history it
has of the number of bytes written to the total bytes of the original data set
and computes the percentage of bytes saved by compaction. If the saved
percentage is not greater than or equal to the percentage you specified,
DFSMShsm will not compact the data set during subsequent migrations or
backups. The DFSMShsm percentage saved default is 40.

SETSYS COMPACTPERCENT(pct)

• Do you want to optimize DFSMShsm compaction?


If you use the DFSMShsm data compaction feature, you can optimize the
algorithm associating the source and object compaction tables with the
data set types. This is done by passing to DFSMShsm the last-level

Chapter 2. Implementing DFSMShsm 55


qualifier of the data set names that belong to these two groups with the
following statements:

SETSYS SOURCENAMES(src1,src2,......)
SETSYS OBJECTNAMES(obj1,obj2,.......)

2.3 Providing security for DFSMShsm resources


RACF can be used to provide security for your DFSMShsm environment. You
define DFSMShsm resources to RACF for use during authorization checking.
RACF controls which users can issue DFSMShsm commands and access
DFSMShsm data sets and DFSMShsm-owned data sets. DFSMShsm
requests RACF authorization before it allows access to data sets by
non-DFSMShsm-authorized users.

In this section we explain how to define the DFSMShsm started task to RACF,
create RACF profiles to protect DFSMShsm resources, and how to authorize
access to those resources.

2.3.1 Defining a DFSMShsm RACF user ID


For a started procedure to access any of the system's resources, a userid
must be associated with that task. The userid should have all the proper
authorizations for accessing the system resources, therefore it should be
assigned the RACF OPERATIONS attribute. We recommend defining a new
userid for each started procedure rather than using the default started task
userid (for example, STCUSER). In our system we associated userid HSM1
with the DFSMShsm started procedure, and userid ABR1 with the ABARS
started procedure. The following are the RACF commands we used to define
the DFSMShsm user IDs:
ADDUSER hsm1 OPERATIONS DFLTGRP(SYS1) NAME('ITSO DFSMShsm Userid')
ADDUSER abr1 OPERATIONS DFLTGRP(SYS1) NAME('ITSO ABARS Userid')

Note
If you do not specify the DFLTGRP parameters on the ADDUSER
command, the current connect group of the user issuing the ADDUSER
command is used as the default.

56 DFSMShsm Primer
You can also create RACF user IDs by submitting a batch job using the JCL in
Figure 15.
//RACFADDU JOB ,'ADD STC RACF USERS',
// NOTIFY=&SYSUID,
// MSGCLASS=X,
// CLASS=A
//*****************************************************************
//*** THIS JOB WILL CREATE THE DFSMSHSM AND ABARS STC USER IDS **
//*****************************************************************
//S0000010 EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ADDUSER HSM1 DFLTGRP(SYS1) NAME('DFSMSHSM STC USERID') OPERATIONS
ADDUSER ABR1 DFLTGRP(SYS1) NAME('ABARS STC USERID') OPERATIONS
/*

Figure 15. Sample JCL to create a RACF user ID

2.3.2 Identifying started procedures to RACF


Before RACF 2.1, the only way to associate a started procedure with a RACF
user ID was by coding the RACF started procedures table, ICHRIN03. With
RACF 2.1, assigning RACF identities to started procedures has been greatly
simplified by the introduction of the RACF STARTED class. You can add or
modify security definitions for new and existing started procedures by issuing
the RDEFINE and RALTER commands.

Even though the use of the RACF STARTED class is the preferred way of
identifying started procedures to RACF, it is still mandatory to have the
ICHRIN03 module. RACF cannot be initialized if ICHRIN03 is not present in
the system. A dummy ICHRIN03 is shipped and installed with RACF.

2.3.2.1 RACF STARTED class


The STARTED class allows you to assign RACF identities to started
procedures dynamically using the RDEFINE and RALTER commands.
Resource names in the STARTED class have the format
membername.jobname. You assign identities such as the RACF user ID and
group ID, using fields in the STDATA segment. You can define the started
procedure resource, using either a generic profile name or a discrete profile
name. A RACF generic profile describes one or more data sets that have a
similar name structure. A RACF discrete profile describes a specific data set
on a specific volume. In our system we created generic profiles for started
procedures. Issue the following RACF commands to assign RACF identities
to the DFSMShsm and ABARS started procedures:
RDEFINE STARTED (HSM1.*) UACC(NONE) STDATA(USER(HSM54) GROUP(SYS1))
RDEFINE STARTED (ABR1.*) UACC(NONE) STDATA(USER(ABR54) GROUP(SYS1))

Chapter 2. Implementing DFSMShsm 57


SETROPTS RACLIST(STARTED) REFRESH
SETROPTS GENERIC(STARTED) REFRESH

Note
After you have added profiles to the RACF STARTED class, refresh the
in-storage profiles, using the SETROPTS REFRESH command. The
SETROPTS GENERIC command is needed only when you define generic
profiles.

2.3.2.2 Listing the STARTED class profiles


To verify the STARTED class definitions, use the RLIST command:
RLIST STARTED (HSM1.*)
RLIST STARTED (ABR1.*)

Figure 16 shows the output of the first command


READY
rlist started (hsm1.*)
CLASS NAME
----- ----
STARTED HSM1.* (G)
LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING
----- -------- ---------------- ----------- -------
00 MHLRES3 NONE NONE NO
INSTALLATION DATA
-----------------
NONE
APPLICATION DATA
----------------
NONE
AUDITING
--------
FAILURES(READ)
NOTIFY
------
NO USER TO BE NOTIFIED

Figure 16. Output of the RLIST command

2.3.2.3 ICHRIN03 started procedures table


We do not recommend using the RACF started procedures table (ICHRIN03).
The preferred way of adding started procedure users to the RACF database
is by using the STARTED class.

58 DFSMShsm Primer
The sample JCL in Figure 17 shows how to identify the DFSMShsm and
ABARS started procedures to RACF by assembling ICHRIN03. You cannot
enter a generic profile name for the communications address space here;
rather, you must add a new entry for each address space you want to use.
/ICHRIN03 JOB 'STARTED PROC TAB',MSGLEVEL=(1,1),REGION=4096K
//*******************************************************************//
//* ICHRIN03: *//
//* *//
//* RACF INSTALLATION PROCEDURE STEP: CREATE/UPDATE @03C*//
//* STARTED PROCEDURES TABLE. @P2C*//
//* *//
//* NOTE: Please read the section titled "Coding the Started *//
//* Procedures Module" in the System Programming *//
//* Library: RACF. It is important that you are familiar *//
//* with this section before attempting to use or modify *//
//* this sample. *//
//* *//
//*******************************************************************//
//STEP1 EXEC HLASMCL PARM.L=(RENT,XREF,LIST,LET,NCAL)
//* @04C
//C.SYSIN DD *
ICHRIN03 CSECT
TITLE 'ICHRIN03 - STARTED PROCEDURES TABLE'
EJECT
DC XL2'80xx' CHANGE 'xx' TO THE HEX VALUE FOR
THE NUMBER OF ENTRIES IN THE TABLE
*
DC CL8'HSM1 ' PROCNAME - SPECIFY YOUR DFSMShsm
DC CL8'HSM1 ' STARTED TASK USER ID
DC CL8'SYS1 ' GROUP
DC XL1'00' NOT PRIVELEDGED OR TRUSTED
DC XL7'00' RESERVED
*
DC CL8'ABR1 ' PROCNAME - SPECIFY YOUR ABARS
DC CL8'ABR1 ' STARTED TASK USER ID
DC CL8'SYS1 ' GROUP
DC XL1'00' NOT PRIVELEDGED OR TRUSTED
DC XL7'00' RESERVED
*
. .
. .
. .
. .
END
/*
//L.SYSLMOD DD DSN=SYS1.LPALIB, ** MUST BE LIBRARY WITH**
// DISP=SHR,UNIT=YYYY, ** NEW RELEASE OF RACF **
// VOL=SER=XXXXXX
//L.SYSIN DD *
ENTRY ICHRIN03
NAME ICHRIN03(R)
/*
//*

Figure 17. ICHRIN03 sample source

Chapter 2. Implementing DFSMShsm 59


2.3.3 Protecting DFSMShsm data sets
You must protect DFSMShsm resources, such as the CDSs, journal, logs, and
backed up data sets from unauthorized access. In member STARTER of data
set HSM.SAMPLE.CNTL you specify a high-level qualifier (parameter UID) for
the journal, control, and log data sets. You can define a generic RACF data
set profile, to protect the DFSMShsm data sets. In our system we chose a
high-level qualifier of HSM. The following RACF command defines a generic
data set profile with a universal access of NONE:
ADDSD 'HSM.**' UACC(NONE)

After you have created the RACF generic profile for protecting the
DFSMShsm data sets, you must permit users or groups access to the RACF
profile based on their requirements. For example, your storage administrator
would need RACF ALTER access to the CDSs in order to move them to
another volume or to increase their space allocations.

You can give user ID HSMSTOR ALTER access to the DFSMShsm CDSs.
You can use a different qualifier for CDSs, such as HSMCDS, so you can
provide access only to those data sets with the following command:
PERMIT 'HSMCDS.**' ID(HSMSTOR) ACC(ALTER)

2.3.3.1 Listing the generic data set profile


To verify the DFSMShsm generic data set profile, use the LISTDSD
command:
LISTDSD DA('hsm.**') GENERIC

Figure 18 shows the output of the command.

READY
INFORMATION FOR DATASET HSM.** (G)
LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE
----- -------- ---------------- ------- -----
00 SYS1 NONE NO NO
AUDITING
--------
FAILURES(READ)
NOTIFY
--------
NO USER TO BE NOTIFIED
YOUR ACCESS CREATION GROUP DATASET TYPE
----------- -------------- ------------
ALTER SYS1 NON-VSAM
NO INSTALLATION DATA

Figure 18. LISTDSD command output

60 DFSMShsm Primer
2.3.3.2 Protecting DFSMShsm activity logs
DFSMShsm writes its activity logs to DASD if you specify SETSYS
ACTLOGTYPE(DASD) in the ARCCMDxx member of PARMLIB. DFSMShsm
allocates the activity logs with a high-level qualifier of HSMACT. The following
RACF command defines a generic data set profile to protect the activity logs
with a universal access of NONE:
ADDSD 'HSMACT.**' UACC(NONE)

After you have created the RACF generic profile for protecting the
DFSMShsm activity logs, you must permit users or groups access to the
RACF profile based on their requirements. Take into consideration that
someone may use a batch job to access data in the activity logs.

The following RACF command can be used to give userid HSMUSR1 READ
access to the activity logs:
PERMIT 'HSMACT.**' ID(HSMUSR1) UACC(READ)

2.3.3.3 Protecting DFSMShsm tapes


To protect DFSMShsm-managed tapes that have RACF-protected data sets
on them you:
• Install and activate RACF.
• Define to RACF the tapes you want to protect by defining the TAPEVOL
resource class in the RACF class descriptor table.
• Specify the SETSYS TAPESECURITY(RACF) command.

You define the RACF environment to DFSMShsm when you specify the
SETSYS TAPESECURITY(RACF) command. DFSMShsm protects each
backup, migration, and dump tape with RACF.

The way that you define your RACF TAPEVOL resource class is determined
by the number of tapes you want to protect.

Protecting up to 10000 tapes


If you are protecting up to a maximum of 10000 tapes, you define two RACF
resource names in the TAPEVOL resource class:
• HSMABR is the name for aggregate backup and recovery tapes
• HSMHSM is the name for all other DFSMShsm tapes

Issue the following RACF commands:


RDEFINE TAPEVOL HSMABR
RDEFINE TAPEVOL HSMHSM

Chapter 2. Implementing DFSMShsm 61


You can add tapes to RACF before DFSMShsm uses them, and if you chose
this, then you must use the appropriate TAPEVOL to do so. Use the following
command to do it:
RALTER TAPEVOL HSMHSM ADDVOL(volser)

IBM recommends that customers NOT DO THIS, but instead let DFSMShsm
add to the TAPEVOL as encountered for you, automatically.

Protecting more than 10000 tapes


To RACF protect more that 10000 tapes you define multiple RACF resource
names for DFSMShsm tape volume sets in the TAPEVOL resource class. The
resource names are:
• HSMHSM (must be defined)
• HSMABR for aggregate backup and recovery tapes
• DFHSMx

Where, x is a non blank character (alphanumeric, national, and the hyphen)


that corresponds to the last non blank character of the tape volume serial
number. You need to define a DFHSMx resource name for each x value that
exists based on your installation naming standards.

The following RACF commands would add resource names to the TAPEVOL
class for HSMHSM (required), HSMABR (for aggregate backup and recovery
tapes), and DFHSMA (for all tapes with a volume serial number ending with
the letter A):
RDEFINE TAPEVOL HSMHSM
RDEFINE TAPEVOL HSMABR
RDEFINE TAPEVOL DFHSMA

To activate the RACF protection of tape volumes using the DFHSMx resource
names that have been defined, you must issue the following RACF command
on each system in the sysplex:
RALTER TAPEVOL HSMHSM ADDVOL(DFHSM)

You can add RACF protection to the DFSMShsm tape volumes before
DFSMShsm uses them, with the exception of the HSMABR tapes. You must
add the tape volume serial number to the appropriate DFHSMx tape volume
set, based on the last non blank character of the tape volume serial number.
To protect a tape with a volume serial of POK33H you would use the following
RACF command:
RALTER TAPEVOL DFHSMH ADDVOL(POK33H)

62 DFSMShsm Primer
Tapes already protected in the tape volume set of HSMHSM continue to be
protected.

2.3.4 Controlling the use of DFSMShsm commands


There are different types of DFSMShsm commands. You can issue user
commands to process your own data sets or data sets to which you have the
required RACF authorization, for example, HLIST and HRECALL.

Authorized commands are entered primarily by a system operator from the


system console, or by a DFSMShsm authorized user (for example, a system
programmer or storage administrator) from a TSO terminal with the HSEND
command. There is no RACF authorization checking done for DFSMShsm
commands using the system console.

2.3.5 AUTH command


The AUTH command is used to identify users who can issue authorized
DFSMShsm commands and users who can issue DFSMShsm authorized
commands. The AUTH command is also used to add, delete, and change the
authority of other DFSMShsm users. The DFSMShsm storage administrator
should be identified as the user who can change the authority of other
DFSMShsm users. A user defined as authorized through the AUTH command
can issue DFSMShsm commands, bypassing RACF authorization checking.

The AUTH command is specified in the ARCCMDxx member of PARMLIB


during DFSMShsm startup or entered by DFSMShsm users who have the
database authority control attribute.
• How do I authorize a user to issue all DFSMShsm commands and
change the authorization of other users?
The following command allows user ID ITSOHSM to add, delete, or
change the DFSMShsm authorization of other users. It can be placed in
the ARCCMDxx member of PARMLIB or issued by a user with the
database control attribute.
AUTH ITSOHSM DATABASEAUTHORITY(CONTROL)
• How do I authorize a user to issue all DFSMShsm commands?
The following command allows user ID ITSOHSM to issue authorized
commands with the exception of the AUTH command. It can be placed in
the ARCCMDxx member of PARMLIB or issued by a user with the
database control attribute.
AUTH ITSOHSM DATABASEAUTHORITY(USER)

Chapter 2. Implementing DFSMShsm 63


• How do I cancel the authority of a user to issue authorized
DFSMShsm commands?
The command to revoke the authority of a DFSMShsm authorized user
can be issued by a user with the database control attribute or placed in the
ARCCMDxx member of PARMLIB. Use the following command to revoke
the DFSMShsm authority of user ITSOHSM:
AUTH ITSOHSM REVOKE

2.3.6 ARCCATGP group


Issuing the UNCATALOG, RECATALOG, or DELETE NOSCRATCH command
against a migrated data set causes the data set to be recalled before the
operation is performed. It is possible to authorize certain users to issue these
commands without recalling the migrated data sets by connecting the user to
the RACF group ARCCATGP. When a user is logged on under RACF group
ARCCATGP, DFSMShsm bypasses the automatic recall for UNCATALOG,
RECATALOG, and DELETE NOSCRATCH requests for migrated data sets.
The tasks to enable DFSMShsm to bypass automatic recall during catalog
operations are:
1. Define RACF group ARCCATGP, using the following RACF command:
ADDGROUP (ARCCATGP)
2. Connect users who need to perform catalog operations without automatic
recall to ARCCATGP, using the following RACF command:
CONNECT (userid1,. . .,useridn) GROUP(ARCCATGP) AUTHORITY(USE)
3. Each user who needs to perform catalog operations without automatic
recall must log on to TSO specifying the GROUP(ARCCATGP) parameter
on the TSO logon screen (Figure 20) or the GROUP=ARCCATGP
parameter on the JOB statement of a batch job (Figure 19).

//HSMCAT JOB(accounting information),'ARCCATGP Example',


// USER=ITSOHSM,GROUP=ARCCATGP,PASSWORD=password
//STEP1 EXEC PGM=....

Figure 19. JCL specifying RACF group ARCCATGP

64 DFSMShsm Primer
------------------------------- TSO/E LOGON -----------------------------------

Enter LOGON parameters below: RACF LOGON parameters:

Userid ===> MHLRES5

Password ===> New Password ===>

Procedure ===> IKJACCNT Group Ident ===>

Acct Nmbr ===> ACCNT#

Size ===> 6072

Perform ===>

Command ===>

Enter an 'S' before each option desired below:


-Nomail -Nonotice -Reconnect -OIDcard

PF1/PF13 ==> Help PF3/PF15 ==> Logoff PA1 ==> Attention PA2 ==> Reshow
You may request specific help information by entering a '?' in any entry field

Figure 20. TSO/E LOGON panel

2.3.7 Protecting migration and back up data sets


When a data set is migrated or backed up by DFSMShsm it is given a name
based on the prefix you specify in the ARCCMDxx PARMLIB member and
DFSMShsm constants.

The migration copy of a data set has the name:


prefix.HMIG.Tssmmhh.user1.user2.Xydd

Where, prefix is the prefix you specify on the SETSYS MIGRATEPREFIX


command.

The backup version of a data set has the name:


prefix.BACK.Tssmmhh.user1.user2.Xydd

Where, prefix is the prefix you specify on the SETSYS BACKUPPREFIX


command.

Migrated and backed up data sets should not be accessed as regular MVS
data sets. Use generic profiles based on the prefix you specify on the
SETSYS MIGRATEPREFIX and SETSYS BACKUPPREFIX to RACF protect
migrated and backed up data sets. The RACF profiles should be created with
a universal access authority (UACC) of NONE. Only DFSMShsm and your

Chapter 2. Implementing DFSMShsm 65


storage administrator should have reason to access them. The DFSMShsm
started task does not need to be on the access lists, because DFSMShsm
sets itself up as a privileged user to RACF. Users who have the RACF
OPERATIONS attribute will automatically have access to the profiles.

In our system, migrated data sets have the prefix HSM. Use the following
RACF command to define a generic data set profile to protect all migrated
data sets with a universal access of NONE:
ADDSD 'HSM.**' UACC(NONE)

After you have created the RACF generic profile for protecting all migrated
data sets, you must permit users access to the RACF profile based on their
requirements.

2.3.8 RACF protection for ABARS


DFSMShsm-authorized users (specified in the SETSYS AUTH command in
the ARCCMDxx member of PARMLIB) can issue ARECOVER and ABACKUP
commands. ABARS also uses RACF Facility class profiles to permit certain
operators and users to issue the ABACKUP and ARECOVER commands.

You define RACF Facility class profiles and authorize users based on the
level of authorization the user requires. Comprehensive authorization allows
a user to issue the ABACKUP and ARECOVER commands for all aggregates.
RACF will not check the authority of the user to access each data set in a
given aggregate.

Restricted authorization restricts a user to issuing ABACKUP and


ARECOVER commands for only the single aggregate specified in the ABARS
Facility class profile name.

The RACF Facility class profiles have names beginning with STGADMIN
(storage administration). These FACILITY profiles are used to protect ABARS
functions as well as many other SMS functions.

Define the profiles for comprehensive command authority with the following
RACF commands
RDEFINE FACILITY STGADMIN.ARC.ABACKUP
RDEFINE FACILITY STGADMIN.ARC.ARECOVER

The following command authorizes a user to issue the ABACKUP command


for all aggregate groups:
PERMIT STGADMIN.ARC.ABACKUP CLASS(FACILITY) -
ID(user_ID) ACCESS(READ)

66 DFSMShsm Primer
More restricted aggregate backup authority can be defined with profiles
(STGADMIN.ARC.ABACKUP. agname) for each aggregate. Issue the
following command to define a facility class for the ITSOU001 aggregate:
RDEFINE FACILITY STGADMIN.ARC.ABACKUP.ITSOU001

Authority to issue an ABACKUP command for aggregate ITSOU001 is given


to user MHLRES5 by the following command:
PERMIT STGADMIN.ARC.ABACKUP.ITSOU001 CLASS(FACILITY) -
ID(MHLRES5) ACCESS(READ)

Users with this restricted authority must have a minimum of READ access to
all RACF-protected data sets in the aggregate group. If they do not have this
level of access to the data sets, the ABACKUP command fails.

As with the ABACKUP commands, ARECOVER commands can also be


restricted with a profile for each aggregate,
STGADMIN.ARC.ARECOVER.agname. The use of
DSCONFLICT(REPLACE), REPLACE as a conflict resolution data set action
or REPLACE specified by ARCCREXT can also be restricted through the use
of RACF Facility class profile
STGADMIN.ARC.ARECOVER.agname.REPLACE:
RDEFINE FACILITY STGADMIN.ARC.ARECOVER.ITSOU001.REPLACE

2.3.9 RACF protection for concurrent copy


DFSMShsm uses the STGADMIN.ADR.DUMP.CNCURRNT facility class to
authorize the use of the concurrent copy options on the data set backup
commands. Checking for authorization is done prior to invoking DFSMSdss. If
RACF indicates lack of authority, DFSMShsm will only fail the data set backup
request if the concurrent copy request was REQUIRED. If REQUIRED was
not specified and RACF indicates a lack of authority, DFSMShsm continues to
backup the data set as if the concurrent copy keyword was not specified on
the backup command.

Define the profiles for comprehensive command authority with the following
RACF commands:
RDEFINE FACILITY STGADMIN.ADR.DUMP.CNCURRNT

The following command authorizes a user to issue the backup or dump


command with concurrent copy options:
PERMIT STGADMIN.ADR.DUMP.CNCURRNT CLASS(FACILITY) -
ID(user_ID) ACCESS(READ)

Chapter 2. Implementing DFSMShsm 67


2.4 DFSMShsm journal and control data sets
Before starting DFSMShsm, several data sets central to DFSMShsm
operation must be allocated, and procedures must be created in the
appropriate procedure library. DFSMShsm requires a minimum of one, and a
maximum of three CDS, and one journal data set.

In this section we explain the purpose of the CDSs and the journal data set,
how to allocate them, and how DFSMShsm uses them. We also describe the
allocation of an integrated catalog facility (ICF) user catalog and an alias for
DFSMShsm.

We include some common data set allocation techniques and make


suggestions for allocating the data sets from a recovery and performance
aspect. Most of the recommendations that we make are based on tried and
tested algorithms that have been built up over the years. We do not attempt to
describe how the shipped sample parameters are set, but we do provide
enough information to get a DFSMShsm system running.

2.4.1 Starter set JCL modifications


To simplify the setup process, DFSMShsm ships modifiable JCL that allows
you to build your DFSMShsm environment based on your installation
requirements. To obtain the JCL:
1. Edit member ARCSTRST of SYS1.SAMPLIB. This member contains
instructions describing the fields to be changed.
2. Run ARCSTRST. This will allocate an HSM.SAMPLE.CNTL data set with
several members that can be used to perform the installation tasks.

The JCL we use in our implementation of DFSMShsm for this book is a


modification of the examples that are shipped in partitioned data set (PDS)
HSM.SAMPLE.CNTL, member name STARTER.

These examples are based on the assumption that the SMS ACS routines
were updated according to the rules described in 2.2, “PROCLIB and
PARMLIB setup” on page 34.

2.4.2 DFSMShsm alias definition


We recommend that a DFSMShsm alias be defined in an existing user
catalog or a newly allocated catalog before installation. This alias should be
used as a high-level qualifier for all of the DFSMShsm work and control data
sets. The alias HSM is used in the examples in this book. Member STARTER

68 DFSMShsm Primer
in the HSM.SAMPLE.CNTL data set contains sample JCL to allocate the
DFSMShsm catalog alias.

We have separated the steps of the job stream that allocate the ICF catalog,
alias for DFSMShsm, journal, and CDSs and indicate our modifications.
Where applicable we make comments that we believe are worthy of note.

The JCL in Figure 21 invokes IDCAMS to allocate both the catalog and its
associated alias:
//*******************************************************************/
//IDCAMS EXEC PGM=IDCAMS
//*
//HSMMCDS DD UNIT=3390,VOL=SER=HG6622,DISP=SHR
//HSMCAT DD UNIT=3390,DISP=SHR,VOL=SER=HG6621
//*
//*******************************************************************/
//* REMOVE THE NEXT DD STATEMENT IF YOU DO NOT INTEND TO USE BACKUP */
//* AND DUMP. */
//*******************************************************************/
//*
//HSMBCDS DD UNIT=3390,VOL=SER=HG6622,DISP=SHR
//*
//*******************************************************************/
//* REMOVE THE NEXT DD STATEMENT IF YOU DO NOT INTEND TO USE TAPE */
//* VOLUMES FOR DAILY BACKUP VOLUMES, SPILL BACKUP VOLUMES, OR */
//* MIGRATION LEVEL 2 VOLUMES. */
//*******************************************************************/
//*
//HSMOCDS DD UNIT=3390,VOL=SER=HG6622,DISP=SHR
//*
//SYSIN DD *
/* */
/*******************************************************************/
/* THIS JOB ALLOCATES AN INTEGRATED CATALOG FACILITY (ICF) CATALOG */
/* AND ITS ASSOCIATED ALIAS "?UID". */
/* */
/* ****** INTEGRATED CATALOG FACILITY CATALOG REQUIRED ******* */
/* */
/* THIS JOB ALLOCATES A USER CATALOG FOR THE DFSMSHSM CONTROL DATA */
/* SETS (CDS). SEE THE SECTION "DFSMSHSM DATA SETS" IN THE */
/* IMPLEMENTING AND CUSTOMIZING DFSMSHSM BOOK. */
/*******************************************************************/
/* */
DEFINE UCAT(NAME(CATALOG.HSM) -
CYLINDERS(1 1) VOLUME(HG6621) -
FILE(HSMCAT) FREESPACE(10 10) -
RECORDSIZE(4086 4086) -
ICFCATALOG)
IF MAXCC = 0 THEN DO
DEFINE ALIAS(NAME(HSM) RELATE(CATALOG.HSM))
END
/* */

Figure 21. Sample JCL to allocate the ICF catalog and define the alias

Chapter 2. Implementing DFSMShsm 69


2.4.3 Journal and CDS overview
The journal data set is a sequential data set used by DFSMShsm to log all
updates to the DFSMShsm CDSs. It facilitates recovery of a CDS in case of
errors.

The DFSMShsm CDSs are resources that combine with your installation
settings to allow DFSMShsm to manage your storage environment. The
CDSs are virtual storage access method (VSAM) data sets that contain the
control information describing the status of the DFSMShsm managed data
sets and volumes. The following is a description of the three DFSMShsm
control data sets:
MCDS: The migration control data set contains information about the
migrated user or application data sets.
BCDS: The backup control data set contains information about the backup
copies of user or application data sets.
Note: This data set is not required if you do not intend to use
backup and dump.
OCDS: The offline control data set contains information about the data sets
on migration and backup tape volumes used by DFSMShsm.
Note: This data set is not required if you do not intend to use tapes
for daily or spill backup or ML2 processing.

2.4.3.1 CDS allocation


The DFSMShsm CDS allocations are shown in the examples that follow. You
have to tailor some of the JCL and SMS information to match that of your
installation.

BCDS, MCDS & OCDS can be extended beyond 4 GB by using Extended


addressability together with VSAM Record Level Sharing (RLS). For more
information about using VSAM record level sharing, see “2.4.6, “VSAM
Record Level Sharing (RLS)” on page 85”.

Extended addressability CDSs can be single cluster and multivolume or


multicluster and multivolume. When using EA for CDSs, they cannot be
defined with key ranges, but must use dynamic key ranges support. The
MCDS and the BCDS can be represented by up to 4 KSDS EA data sets.
Separate clusters reduce backup processing time by allowing parallel
operations. In addition, if only one cluster is damaged or lost, the recovery
time to forward recover this one cluster would be reduced.

70 DFSMShsm Primer
When a control data set is defined on one volume, it is defined as a VSAM
KSDS cluster. The fact that the control data set may be several VSAM
clusters is managed by DFSMShsm. Based on your calculations for the space
required to define your control data set, you determine the number of
volumes required and, therefore, the number of clusters. The MCDS and
BCDS may each be on more than one cluster; the OCDS may be on only one.

Figure 22 shows the modifications that we have made to the starter set JCL
for allocating the MCDS. We have taken most of the defaults that DFSMShsm
supplies as they give adequate performance:
/****************************************************************/
/* THIS PROCEDURE ASSUMES A SINGLE CLUSTER MCDS. IF MORE THAN */
/* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
/* CDS. */
/****************************************************************/
/* */
IF MAXCC = 0 THEN DO
DEFINE CLUSTER (NAME(HSM.MCDS) VOLUMES(HG6622) -
CYLINDERS(100) FILE(HSMMCDS) -
RECORDSIZE(435 2040) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
SPEED BUFFERSPACE(530432) -
UNIQUE NOWRITECHECK) -
DATA(NAME(HSM.MCDS.DATA) -
CONTROLINTERVALSIZE(12288)) -
INDEX(NAME(HSM.MCDS.INDEX) -
CONTROLINTERVALSIZE(4096))
END
/* */

Figure 22. Sample MCDS allocation statements

Chapter 2. Implementing DFSMShsm 71


Figure 23 shows how we modified the starter set for the BCDS:
/****************************************************************/
/* REMOVE THE NEXT DEFINE COMMAND IF YOU DO NOT */
/* INTEND TO USE BACKUP AND DUMP. */
/* */
/* THIS PROCEDURE ASSUMES A SINGLE CLUSTER BCDS. IF MORE THAN */
/* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
/* CDS. */
/****************************************************************/
/* */
IF MAXCC = 0 THEN DO
DEFINE CLUSTER (NAME(HSM.BCDS) VOLUMES(HG6622) -
CYLINDERS(100) FILE(HSMBCDS) -
RECORDSIZE(6544 6544) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
SPEED BUFFERSPACE(530432) -
UNIQUE NOWRITECHECK) -
DATA(NAME(HSM.BCDS.DATA) -
CONTROLINTERVALSIZE(12288)) -
INDEX(NAME(HSM.BCDS.INDEX) -
CONTROLINTERVALSIZE(4096))
END
/*

Figure 23. Sample BCDS allocation statements

For our OCDS we modified the starter set as shown in Figure 24:
/****************************************************************/
/* REMOVE THE NEXT DEFINE COMMAND IF YOU DO NOT */
/* INTEND TO USE TAPES FOR DAILY BACKUP, SPILL BACKUP, OR */
/* MIGRATION LEVEL 2 PROCESSING. */
/* */
/* THE OCDS MAY NOT EXCEED 1 VOLUME. */
/****************************************************************/
/*
IF MAXCC = 0 THEN DO
DEFINE CLUSTER (NAME(HSM.OCDS) VOLUMES(HG6622) -
CYLINDERS(100) FILE(HSMOCDS) -
RECORDSIZE(1800 2040) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
SPEED BUFFERSPACE(530432) -
UNIQUE NOWRITECHECK) -
DATA(NAME(HSM.OCDS.DATA) -
CONTROLINTERVALSIZE(12288)) -
INDEX(NAME(HSM.OCDS.INDEX) -
CONTROLINTERVALSIZE(4096))
END
/*

Figure 24. Sample OCDS allocation statements

As a general rule, the BCDS is the largest, the MCDS is half its size, and the
OCDS is a fourth of its size. For more information about sizing the CDSs,
refer to OS/390 V2R10.0 DFSMShsm Implementation and Customization
Guide, GC35-0385.

72 DFSMShsm Primer
2.4.3.2 Journal data set allocation
Figure 25 is our modified example of the JCL shipped for journal allocation:
//****************************************************************/
//* THE JOURNAL MUST NOT EXCEED 1 VOLUME, MAY NOT HAVE */
//* SECONDARY ALLOCATION, AND MUST BE ALLOCATED CONTIGUOUS. */
//* ALLOCATE AT LEAST 100 CYLINDERS. */
//****************************************************************/
//LOGALC EXEC PGM=IEFBR14
//*
//JOURNAL DD DSN=HSM.JRNL,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(50),,CONTIG)

Figure 25. Sample journal allocation statements

2.4.4 CDS and journal performance suggestions


When allocating the journal and CDSs, it is important to consider your
required availability and performance levels. Particularly during automatic
functions, there is intense activity on these data sets, and it is important to
keep the I/O response time at a minimum level.

The following is a list of considerations about CDSs and the journal data set:
• Allocate CDSs on a cached DASD and the journal on DASD fast write.
• A CDS cluster cannot be greater than one volume; therefore, a VSAM
cluster must be defined for each CDS volume. The MCDS and BCDS may
each be one to four clusters (volumes); the OCDS may be only one cluster
(volume). When a CDS is defined with more than one cluster, it is referred
to as a multicluster CDS.
• No secondary allocation should be specified for a cluster. To increase
space, consider splitting the CDS up to four separate clusters. If you
specify secondary allocation, be aware of the following:
- Secondary allocation is allowed only for a single-cluster CDS.
- A deadlock may occur.
- The CDS monitor issues a message (ARC0909E or ARC0911E) each
time the monitor threshold is reached. This means that if the CDS
allocation can increase in size; then, for example, the 80% mark will
also grow in size. So, as the CDS increases in size, the monitor
message may be issued more than once.
- ARC0130I will be issued when DFSMShsm is started. This message is
intended to inform you that secondary allocation has been specified for
this CDS.

Chapter 2. Implementing DFSMShsm 73


• The data component of one control data set must not be on the same
volume as the index component of another control data set unless the
index of the first control data set is also on the volume.
• For performance reasons, index components of different control data sets
should not be on the same volume.
• The journal is restricted to one volume and must be allocated with
contiguous space and without secondary allocation.
• Attempt to keep the journal separate from the MCDS, BCDS, and OCDS.
• Allocate CDSs on DASD devices that offer concurrent copy feature to
minimize the outage during CDS Backup, such as RAMAC, RVA and ESS.
• Allocate CDSs and the journal on different volumes from those containing
JES3 data sets or system data sets.
• Allocate each CDS on a separate entire volume if possible, to avoid
contention with other data sets.
• If CDSs and the journal are SMS-managed, they can be assigned to a
storage class with the GUARANTEED SPACE attribute.
• Ensure that the CDSs, CDS backup copies, journal, and journal backup
copies are not allowed to migrate.
• Use different head disk assemblies (HDAs) for CDSs and the journal;
consider using volumes connected to different control units.
• Use the SETSYS CDSVERSIONBACKUP to back up the CDSs and
journal; if possible use concurrent copy.
• Implement and test CDS backup and recovery procedures before you
begin to manage user or application data.
• Once you have tested the CDS backup and recovery procedures,
document them.

2.4.5 CDS and journal backup


The DFSMShsm primary host automatically backs up its CDSs and the
journal, using the SETSYS CDSVERSIONBACKUP parameter. This is done
as the first phase of automatic backup. According to your SETSYS
environment specifications, this backup can be scheduled to DASD or tape.
However, unlike the backup of user data sets, CDSs must be backed up to
only one kind of I/O device. You cannot use a mixture of tape and DASD. If
backup to DASD is implemented, a set of sequential data sets must be
preallocated to which the backup copies will be written.

74 DFSMShsm Primer
We recommend using multiple backup versions that are written to
preallocated data sets. DFSMShsm will change the suffix of the data set
name dynamically and it is similar to that of GDS. The JCL necessary to
allocate these data sets is in member ALLOCBK1 of PDS
HSM.SAMPLE.CNTL.

When you allocate a set of data sets, the SETSYS BACKUPCOPIES(nn)


parameter indicates the number of preallocated data sets for each CDS and
the journal that you want to keep. The default number is 4.

IBM recommends having at least eight, and preferably 14 backups. Some


customers do this by keeping two to four CDSs backups on DASD, then using
the ARCCBEXT to trigger a process to copy the backups to tape, and letting
their tape management system, like DFSMSrmm, keep the tapes for a
designated period, such as 14 days, and then return them to scratch.

Our recommendation is that you use DFSMSdss to back up the CDSs from
within DFSMShsm. For the parameters that you need to define see 2.4.5.3,
“Step for defining the CDS and journal backup environment” on page 80. The
invocation of DFSMSdss checks the structure of the CDSs as it dumps them
and advises you of any errors that may make recovery of the CDSs
impossible.

Because the area of CDS and journal backup can be quite complicated, we
provide a short section, where we show how we set up our environment. We
have included some assumptions, and, if you are certain that they apply to
you, you can use them.

However, if you would like to know more about the parameters and the
various options available, read the more comprehensive section, see 2.4.5.2,
“Creating CDS and journal backups” on page 79, where we explain what each
parameter setting achieves.

2.4.5.1 Shortcut to defining CDS and journal backups


This shortcut to defining your CDS and journal backup environment assumes
that all of the following are true for the CDSs and the journal:
• You will use SETSYS CDSVERSIONBACKUP.
• Your SMS policies do not allow the CDSs and journal to be migrated or
backed up.
• DFSMSdss will be used as the data mover.
• The number of backup copies you want to keep is four.
• You will be backing up to DASD.

Chapter 2. Implementing DFSMShsm 75


• The DFSMShsm generated names will have a high-level qualifier of HSM,
which has already been RACF protected.
Note: The DFSMShsm userid, and the RACF-protected high-level qualifier,
are not related, but customers often chose "HSM" or "DFHSM" for both, for
simplicity reasons.

If all of the above statements are true for you, modify the JCL shown in
Figure 26, and Figure 27 to suit your environment. We have altered the JCL
to reflect our environment and changed the comments within the JCL. The
jobs represent the settings that we used to back up our CDSs and journal for
this book.

76 DFSMShsm Primer
//ALLOCBK EXEC PGM=IEFBR14
//*
//*****************************************************************/
//* THIS SAMPLE JOB ALLOCATES AND CATALOGS THE CONTROL DATA SET*/
//* BACKUP VERSION DATA SETS ON DASD VOLUMES. */
//* */
//* ENSURE THAT BACKUP VERSION DATA SETS ARE PLACED ON VOLUMES */
//* THAT ARE DIFFERENT FROM THE VOLUMES THAT THE CONTROL DATA */
//* SETS ARE ON. */
//* */
//* THIS SAMPLE JOB ALLOCATES FOUR BACKUP COPIES (THE DEFAULT) */
//* FOR EACH CONTROL DATA SET. IF YOU SPECIFY A DIFFERENT */
//* NUMBER OF BACKUP VERSIONS, ENSURE THAT YOU ALLOCATE A */
//* BACKUP COPY FOR EACH OF THE BACKUP VERSIONS YOU SPECIFY. */
//*****************************************************************/
//* */
//* EDIT THIS JCL TO REPLACE THE PARAMETERS DESCRIBED BELOW. */
//* */
//*****************************************************************/
//* PARAMETER PARAMETER DEFINITION
//*
//* ?BKUNIT1 - UNIT TYPE OF VOLUME TO CONTAIN THE FIRST CDS
//* BACKUP VERSION.
//* ?BKUNIT2 - UNIT TYPE OF VOLUME TO CONTAIN THE SECOND CDS
//* BACKUP VERSION.
//* ?BKUNIT3 - UNIT TYPE OF VOLUME TO CONTAIN THE THIRD CDS
//* BACKUP VERSION.
//* ?BKUNIT4 - UNIT TYPE OF VOLUME TO CONTAIN THE FOURTH CDS
//* BACKUP VERSION.
//* ?BKVOL1 - VOLUME SERIAL OF VOLUME TO CONTAIN THE FIRST CDS
//* BACKUP VERSION.
//* ?BKVOL2 - VOLUME SERIAL OF VOLUME TO CONTAIN THE SECOND CDS
//* BACKUP VERSION.
//* ?BKVOL3 - VOLUME SERIAL OF VOLUME TO CONTAIN THE THIRD CDS
//* BACKUP VERSION.
//* ?BKVOL4 - VOLUME SERIAL OF VOLUME TO CONTAIN THE FOURTH CDS
//* BACKUP VERSION.
//* ?SCBVOL1 - STORAGE CLASS NAME FOR BACKUP VERSIONS
//* ?MCDFHSM - MANAGEMENT CLASS NAME OF THE HSM CONSTRUCT
//*
//* ?CDSSIZE - NUMBER OF CYLINDERS ALLOCATED TO CDS BACKUP
//* VERSIONS.
//* ?JNLSIZE - NUMBER OF CYLINDERS ALLOCATED TO JOURNAL DATA
//* SETS.
//* ?UID - AUTHORIZED USER ID (1 TO 7 CHARS) FOR THE HSM-
//* STARTED PROCEDURE. THIS WILL BE USED AS THE
//* HIGH-LEVEL QUALIFIER OF HSM DATA SETS.
//*****************************************************************/
//*
//******************************************************************/
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER MCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//******************************************************************/
//*

Figure 26. Sample JCL to allocate CDS and journal backup data set (part 1 of 2)

Chapter 2. Implementing DFSMShsm 77


//MCDSV1 DD DSN=HSM.MCDS.BACKUP.V0000001,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//MCDSV2 DD DSN=HSM.MCDS.BACKUP.V0000002,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//MCDSV3 DD DSN=HSM.MCDS.BACKUP.V0000003,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//MCDSV4 DD DSN=HSM.MCDS.BACKUP.V0000004,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//*
//******************************************************************/
//* REMOVE THE NEXT FOUR DD STATEMENTS IF YOU DO NOT INTEND TO USE */
//* BACKUP AND DUMP */
//* */
//* THIS PROCEDURE ASSUMES A SINGLE CLUSTER BCDS. IF MORE THAN */
//* ONE VOLUME IS DESIRED, FOLLOW THE RULES FOR A MULTICLUSTER */
//* CDS. */
//******************************************************************/
//*
//BCDSV1 DD DSN=HSM.BCDS.BACKUP.V0000001,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//BCDSV2 DD DSN=HSM.BCDS.BACKUP.V0000002,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//BCDSV3 DD DSN=HSM.BCDS.BACKUP.V0000003,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//BCDSV4 DD DSN=HSM.BCDS.BACKUP.V0000004,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//*
//******************************************************************/
//* REMOVE THE NEXT FOUR DD STATEMENTS IF YOU DO NOT INTEND TO USE */
//* TAPE VOLUMES FOR DAILY BACKUP VOLUMES, SPILL BACKUP VOLUMES, */
//* OR MIGRATION LEVEL 2 VOLUMES. */
//* */
//* THE OCDS MAY NOT EXCEED 1 VOLUME. */
//***************************************************************
//*
//OCDSV1 DD DSN=HSM.OCDS.BACKUP.V0000001,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//OCDSV2 DD DSN=HSM.OCDS.BACKUP.V0000002,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//OCDSV3 DD DSN=HSM.OCDS.BACKUP.V0000003,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//OCDSV4 DD DSN=HSM.OCDS.BACKUP.V0000004,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6722,SPACE=(CYL,(100,5))
//*
//JRNLV1 DD DSN=HSM.JRNL.BACKUP.V0000001,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6622,SPACE=(CYL,(100,5))
//JRNLV2 DD DSN=HSM.JRNL.BACKUP.V0000002,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6622,SPACE=(CYL,(100,5))
//JRNLV3 DD DSN=HSM.JRNL.BACKUP.V0000003,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6622,SPACE=(CYL,(100,5))
//JRNLV4 DD DSN=HSM.JRNL.BACKUP.V0000004,DISP=(,CATLG),UNIT=3390,
// VOL=SER=HG6622,SPACE=(CYL,(100,5))

Figure 27. Sample JCL to allocate CDS and journal backup data set (part 2 of 2)

Once this job has run to completion with no errors, use Interactive Storage
Management Facility (ISMF) to verify that the data sets have been allocated
within the storage and management class that you intended, along with the

78 DFSMShsm Primer
correct volume. Once you are satisfied that this is the case, add the following
to your DFSMShsm ARCCMDxx PARMLIB member (Figure 28):
/*********************************************************************/
/* SAMPLE SETSYS CDSVERSIONBACKUP COMMAND AND SUBPARAMETERS THAT */
/* DEFINE A CDS BACKUP ENVIRONMENT WHERE DSS BACKS UP FOUR COPIES OF */
/* THE CDSS IN PARALLEL TO DASD. */
/*********************************************************************/

SETSYS CDSVERSIONBACKUP(DATAMOVER(DSS) -
BACKUPCOPIES(4) -
BACKUPDEVICECATEGORY(DASD) -
MCDSBACKUPDSN(HSM.MCDS.BACKUP) -
BCDSBACKUPDSN(HSM.BCDS.BACKUP) -
OCDSBACKUPDSN(HSM.OCDS.BACKUP) -
JRNLBACKUPDSN(HSM.JRNL.BACKUP))
/*

Figure 28. Sample SETSYS CDSCONVERSIONBACKUP command

The following describes the backup environment we defined:


• DFSMSdss will back up the CDSs using logical dump.
• The backups will be done in parallel (default when DASD is specified).
• Up to four copies of the CDSs and journal will be kept.
• The DFSMShsm generated names will have a high-level qualifier of HSM.

2.4.5.2 Creating CDS and journal backups


When DFSMShsm is started, it gets environmental and function information
from PARMLIB. There is no requirement that SYS1.PARMLIB be used. The
PARMLIB pointed to by the HSMPARM DD statement in the startup procedure
will use the ARCCMD00 member or an alternate member that you indicate by
the CMD keyword. The SETSYS, DEFINE, and ADDVOL commands that
define the way in which DFSMShsm manages your data are in the PARMLIB
member (see PARMLIB member ARCCMD00 in the starter set).

The SETSYS CDSVERSIONBACKUP command determines how


DFSMShsm backs up your CDSs. Subparameters of the
CDSVERSIONBACKUP command allow you to specify:
• The data mover that backs up the CDSs (DFSMSdss is recommended)
• The number of backup versions to keep for the CDSs
• The device type on which to store the backup versions of the CDSs
• The names of the backup version data sets

Chapter 2. Implementing DFSMShsm 79


By using SMS storage groups and management classes you can:
• Prevent backup (outside CDSVERSIONBACKUP) of the CDSs and the
journal.
• Prevent migration of the CDSs and the journal
• Specify that concurrent copy be used to back up the CDSs, assuming that
they are on volumes connected to a controller that provides concurrent
copy.

2.4.5.3 Step for defining the CDS and journal backup environment
If defining a CDS and journal backup environment is new to you, this
step-by-step example will guide you through the process so that you will be
able to define one that suits your installation needs:
1. Prevent the CDSs and the journal from being backed up as part of user
data set backup. The CDSs and the journal are backed up separately as
specified by the SETSYS CDSVERSIONBACKUP command.
2. Modify the block size for CDS backup version data sets.
Preallocate DASD backup data set copies with a block size equal to
one-half the track size of the DASD device. For example, the half-track
capacity of a 3390 device is 27998.
If the keyword BLKSIZE is specified on the preallocated DASD backup
data set copies, it must be in the range of 7892 to 32760 inclusive.
3. If the CDSs and journal are SMS-managed:
- Place them on volumes that are defined in a storage group with:
AUTO BACKUP ===> NO
Or,
- Associate them with a management class whose attributes are:
AUTO BACKUP ===> N
If the CDSs and the journal are non-SMS-managed, issue the ALTERDS
command to prevent them from being backed up outside
CDSVERSIONBACKUP.
4. Prevent the CDSs and journal from migrating. Allowing the CDSs and the
journal to migrate is inadvisable because you might not be able to recover
should any of the CDSs be damaged.
If the CDSs and journal are SMS-managed:
- Place them on volumes that are defined in a storage group with:
AUTO MIGRATE ===> NO

80 DFSMShsm Primer
Or,
- Associate them with a management class whose attributes are
COMMAND OR AUTO MIGRATE ===> NONE
If the CDSs and journal are non-SMS-managed, issue the SETMIG
command to prevent them from migrating.
5. Determine whether your CDSs are backed up by concurrent copy. If you
want your CDSs to be backed up by concurrent copy you must:
- Ensure that they are associated with a management class Backup
Copy Technique attribute of Concurrent Required or Concurrent
Preferred.
- Ensure that they are on a DASD volume with a
concurrent-copy-capable controller.
- Ensure that you specify DATAMOVER(DSS) in step 5.
6. Determine whether the data mover for the CDSs is DFSMShsm or
DFSMSdss. We recommend DFSMSdss as the data mover, because
DFSMSdss validates the CDSs during backup and supports concurrent
copy.
- If you specify:
SETSYS CDSVERSIONBACKUP(DATAMOVER(DSS))
DFSMShsm invokes DFSMSdss to perform a logical dump of the CDSs
and uses sequential I/O to back up the journal. DFSMSdss validates
the CDSs while backing them up and uses concurrent copy if it was
specified in the management class.
- If you specify:
SETSYS CDSVERSIONBACKUP(DATAMOVER(HSM))
DFSMShsm exports the CDSs and backs up the journal with sequential
I/O. The CDSs are not validated during backup.
7. Choose the number of backup versions you want to keep for the CDSs.
The number of backup versions that DFSMShsm keeps is determined by
the number you specify on the BACKUPCOPIES subparameter of the
SETSYS CDSVERSIONBACKUP command.

Chapter 2. Implementing DFSMShsm 81


Note
Whenever DFSMShsm actively accesses the CDSs in RLS mode,
DFSMSdss must be specified as the datamover for the CDS backup. If
data is directed to tape, the PARALLEL parameter must also be
specified. If either condition is not met during auto CDS version
backup, these values override existing values, and message ARC0793I
is issued. If either of these conditions is not met when BACKVOL CDS
is issued, the command fails.

8. Choose the device category (DASD or tape) to which you want


DFSMShsm to back up your CDSs and journal. Parallel is faster than
serial and is required in order to use concurrent copy.
- If you specify:
SETSYS CDSVERSIONBACKUP(BACKUPDEVICECATEGORY(DASD))
DFSMShsm always backs up the control data sets in parallel to DASD
devices. If you are backing up the CDSs and the journal to DASD, you
must preallocate the backup version data sets. You can preallocate the
DFSMShsm CDS and journal data set by running the starter set job
ALLOCBK1 (see Figure 26 on page 77 and Figure 27 on page 78)
before starting DFSMShsm.
- If you specify:
SETSYS CDSVERSIONBACKUP(BACKUPDEVICECATEGORY(TAPE))
DFSMShsm backs up the CDSs to tape.
Whether tape CDS backups are in parallel is determined by the data
mover you specify and the optional PARALLEL|NOPARALLEL option
for DFSMShsm CDS backup.
- If you specify:
SETSYS CDSVERSIONBACKUP(DATAMOVER(DSS))
CDSs are backed up to tape in parallel. Concurrent copy can be used.
- If you specify:
SETSYS CDSVERSIONBACKUP(DATAMOVER(HSM))
DFSMShsm backs up the CDSs serially. Concurrent copy is not
available, and the CDSs are not validated during backup.
- If you specify:
SETSYS CDSVERSIONBACKUP(DATAMOVER(HSM) PARALLEL)

82 DFSMShsm Primer
DFSMShsm backs up the control data sets to tape in parallel.
Concurrent copy is not available, and the CDSs are not validated
during backup.
If you are backing up the CDSs and the journal to tape, DFSMShsm
dynamically allocates scratch tape volumes so you need not
preallocate backup version data sets.
9. Determine the names for the backup data sets.
You specify the names that are assigned to the backup version data sets
by means of the MCDSBACKUPDSN, BCDSBACKUPDSN,
OCDSBACKUPDS, and JRNLBACKUPDSN subparameters of the
SETSYS CDSVERSIONBACKUP command. Your backup version data set
names can be up to 35 characters (including periods) but cannot end in a
period.

Figure 29 is an example of the SETSYS CDSVERSIONBACKUP command


and its subparameters, as it would appear in PARMLIB member ARCCMDxx.
/*********************************************************************/
/* SAMPLE SETSYS CDSVERSIONBACKUP COMMAND AND SUBPARAMETERS THAT */
/* DEFINE A CDS BACKUP ENVIRONMENT WHERE DSS BACKS UP FOUR COPIES OF */
/* THE CDSS IN PARALLEL TO DASD. */
/*********************************************************************/
/*
SETSYS CDSVERSIONBACKUP(DATAMOVER(DSS) -
BACKUPCOPIES(4) -
BACKUPDEVICECATEGORY(DASD) -
MCDSBACKUPDSN(HSM.MCDS.BACKUP) -
BCDSBACKUPDSN(HSM.BCDS.BACKUP) -
OCDSBACKUPDSN(HSM.OCDS.BACKUP) -
JRNLBACKUPDSN(HSM.JRNL.BACKUP))
/*

Figure 29. Sample ARCCMDxx showing CDS and journal backup data set names

Once all of these steps have been completed successfully, on your next start,
DFSMShsm will use these preallocated data sets to hold the backup copies.

2.4.5.4 Backing up the CDS and journal manually


As automatic backup typically produces good copies of the CDSs and journal,
it is not usually necessary to back them up manually. However, if you are ever
in a position where automatic backup has failed to make successful copies of
the CDSs or journal, you can use DFSMShsm commands to create
successful copies.

Chapter 2. Implementing DFSMShsm 83


Keep the following points in mind before you issue the command to back up
the CDSs and journal manually:
• Do not issue the command during intense DFSMShsm activity as the
CDSs cannot change while they are being backed up.
• Once you have issued the command, the only way to prevent the backup is
to stop DFSMShsm.
• The structural integrity of the CDSs is validated only if you have specified
DATAMOVER(DSS).

Use the DFSMShsm BACKVOL command to back up the CDSs and journal.
With this command you can:
• Identify the data mover as either DFSMShsm or DFSMSdss.
• Specify the backup device category.
• Specify that you want parallel backup to take place.

To back up the CDSs and journal in parallel to DASD, using DFSMSdss as the
data mover, use the following command:

BACKVOL CDS(BACKUPDEVICECATEGORY(DASD) DATAMOVER(DSS))

With this command, a DFSMSdss logical dump is used, which allows you to
use concurrent copy. This may reduce any serialization delays introduced by
the exclusive enqueue that is placed on the CDSs while the backup is taking
place. Additionally validation of the CDSs will take place.

If you were to code DATAMOVER(HSM) instead, access method services


(AMS) would be invoked to export the CDSs. No structural validation is done.

In all cases the journal is backed up using sequential I/O.

If you want to back up the CDSs and journal to tape, use the following
command:

BACKVOL CDS(BACKUPDEVICECATEGORY(TAPE(PARALLEL)))

When PARALLEL is specified, the default data mover is DFSMSdss, so a


DFSMSdss logical dump will be used to back up the CDSs. One tape drive
will be allocated for each CDS and the journal.

If you want to back up the CDSs serially, you have to specify


TAPE(NOPARALLEL).

84 DFSMShsm Primer
Note
If your SETSYS parameters specify DATAMOVER(DSS) or you try to
specify it on the BACKVOL CDS command with TAPE(NOPARALLEL), the
command will fail.

Only one tape drive is allocated for all the CDS backups.

2.4.6 VSAM Record Level Sharing (RLS)


DFSMShsm supports VSAM RLS for accessing the CDSs. RLS enables
DFSMShsm to take advantage of the features of the coupling facility for CDS
access.

Accessing CDSs in RLS mode reduces contention when running primary


space management and automatic backup on two or more processors.
DFSMShsm benefits from the serialization and data cache features of VSAM
RLS and does not have to perform CDS verify or buffer invalidation.

2.4.6.1 Requirements for CDS RLS serialization


CDSs accessed in RLS mode enqueue certain resources differently from
CDSs accessed in non-RLS mode. Before you think about implementing RLS
for your CDSs you must make sure that all the following criteria are met:
• GRS or an equivalent function is implemented.
Note: This is only required if sharing Control Data Sets between multiple
systems. If you have one or more hosts on a single system, it is not
required.
• All operating systems running DFSMShsm must be coupling facility
capable, and the processors must share access to the coupling facility.
• A minimum operating system requirement of MVS/ESA 5.2 or OS/390 2.4
and later.
• DFSMS/MVS V1R4 or later
Note
There is no toleration of DFSMShsm system lower than DFSMS/MVS
V1R4.

• Your CDSs must be SMS-managed.


• All processors in the installation must access the CDSs in RLS mode.
• All DFSMShsm hosts must specify CDSSHR=RLS in the DFSMShsm
startup procedure.

Chapter 2. Implementing DFSMShsm 85


• You must not convert the ARCGPA/ARCRJRN reserve to an enqueue for
performance reasons.
• The CDS's storage class must indicate which coupling facility to use.
• The CDSs must not be key-range KSDSs.
• You must know how to implement recovery for RLS data sets.
• You must specify DFSMSdss as the data mover for
CDSVERSIONBACKUP.
• If CDS backup is directed to tape, the PARALLEL parameter must be
used.

2.4.6.2 Making your CDSs RLS eligible


Before CDSs can be accessed in RLS mode, you must define or alter them to
be RLS eligible, using the LOG(NONE) attribute. You must do this for all your
CDSs (MCDSs, BCDSs, and OCDSs).

The following is an example of how to use the IDCAMS ALTER command to


make the CDSs that we defined previously RLS eligible:
ALTER HSM.MCDS LOG(NONE)

Figure 30 is an example of how we could have used the DEFINE command


when we initially set up our DFSMShsm environment. We show only the
definition for the MCDS, but the same would have to be done for the other
CDSs:
DEFINE CLUSTER (NAME(HSM.MCDS) VOLUMES(HG6622) -
CYLINDERS(100) FILE(HSMMCDS) -
RECORDSIZE(435 2040) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
SPEED BUFFERSPACE(530432) -
UNIQUE NOWRITECHECK LOG(NONE)) -
DATA(NAME(HSM.MCDS.DATA) -
CONTROLINTERVALSIZE(12288)) -
INDEX(NAME(HSM.MCDS.INDEX) -
CONTROLINTERVALSIZE(4096))

Figure 30. Sample DEFINE command for DFSMShsm environment

You must never use the ALL or UNDO parameters of the LOG keyword. If it
ever becomes necessary to change the CDSs back to non-RLS-eligible, use:
ALTER HSM.MCDS NULLIFY(LOG)

86 DFSMShsm Primer
2.4.6.3 Removing key range CDSs
The easiest way to remove key range CDSs is to remove the
KEYRANGE((...)) parameter from the IDCAMS DEFINE DATA statements that
you used to define your CDSs as key range. During startup, DFSMShsm
dynamically calculates the key boundaries for each cluster. You can then use
the QUERY CONTROLDATASETS command to display both the low and high
keys that DFSMShsm calculates for each cluster.

2.4.6.4 Determining the CDS serialization technique


If you need to verify the CDS serialization technique that is currently used,
use the QUERY CONTROLDATASETS command.

If you are using RLS the messages returned are:


ARC0101I QUERY CONTROLDATASETS COMMAND STARTING
ARC0947I CDS SERIALIZATION TECHNIQUE IS RLS

2.4.6.5 RLS implementation


In this section we show you the steps we took to implement VSAM RLS for
our CDSs. In addition to the requirements that we detail in 2.4.6.1,
“Requirements for CDS RLS serialization” on page 85, there are other
considerations that must be met and assumptions that we make about your
system knowledge. You should be familiar with SMS for VSAM RLS, SMS
constructs, SMS classes, SMS configuration, and the coupling facility cache
and lock structures. We do not recommend that you undertake these steps
until you consider the impact that RLS implementation may have on your
system.

It is recommended that any pre-existing VSAM RLS structures be used for


accessing the DFSMShsm CDSs in RLS mode. There is no benefit to
assigning the DFSMShsm CDSs to unique structures.

2.4.6.6 Define the SCHDSs


These are linear data sets that contain information to allow processing if there
is a system failure that may affect RLS. They also act as logs for sharing
support.

There are size considerations for the SHCDS along with a naming convention
that must be adhered to. For comprehensive information about defining these
data sets refer to the OS/390 V2R10.0 DFSMSdfp Storage Administration
Reference, SC26-7331.

Chapter 2. Implementing DFSMShsm 87


We used the JCL in Figure 31 to allocate the SHCDS.
//DEFSHCDS JOB (999,POK),'MHLRES5',CLASS=A,MSGCLASS=T,
// NOTIFY=MHLRES5,TIME=1440,REGION=4M
//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER (NAME(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS1) -
LINEAR SHR(3 3) VOL(SHCDS1) -
CYLINDERS(15 15) )
DEFINE CLUSTER (NAME(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS2) -
LINEAR SHR(3 3) VOL(SHCDS2) -
CYLINDERS(15 15) )
DEFINE CLUSTER (NAME(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS3) -
LINEAR SHR(3 3) VOL(SHCDS3) -
CYLINDERS(15 15) )

Figure 31. Sample SHCDS allocation JCL

2.4.6.7 Coupling facility cache and lock structures


If there is a need to allocate cache and lock structures specifically for
DFSMShsm, use the following recommendations:
• Cache structure: The size of the cache structure should be a minimum of
1MB per DFSMShsm host in the HSMplex. For example, if there are ten
hosts in the HSMplex, then the cache structure should be a minimum of
10MB.
• Lock structure: Use the Table 4 to determine the minimum size for the
lock structure.
Table 4. Minimum Size for Lock Structure

Number of DFSMShsm Hosts Minimum Lock Structure Size

Less than 8 1MB

At least 8, but not more than 23 2MB

At least 24, but not more than 32 3MB

More than 32 4MB

For example, if there are ten DFSMShsm hosts in the HSMplex, then the lock
structure should be a minimum of 2MB.

Some changes to your define CFRM policies will be necessary. The


DFSMShsm policy needs to be defined. We added the structures for cache
and locking to our current CFRM policy definitions, using the administrative
data utility IXCMIAPU as shown in Figure 32.

88 DFSMShsm Primer
//DEFCFRM1 JOB (999,POK),'CFRM',CLASS=A,REGION=4096K,
// MSGCLASS=X,TIME=10,MSGLEVEL=(1,1),NOTIFY=MHLRES5
//STEP1 EXEC PGM=IXCMIAPU
//SYSPRINT DD SYSOUT=*
//SYSABEND DD SYSOUT=*
//SYSIN DD *
DATA TYPE(CFRM) REPORT(YES)
DEFINE POLICY NAME(CFRM19) REPLACE(YES)

CF NAME(CF01)
TYPE(009672)
MFG(IBM)
PLANT(02)
SEQUENCE(000000040104)
PARTITION(1)
CPCID(00)
DUMPSPACE(2048)

CF NAME(CF02)
TYPE(009672)
MFG(IBM)
PLANT(02)
SEQUENCE(000000040104)
PARTITION(1)
CPCID(01)
DUMPSPACE(2048)

STRUCTURE NAME(IGWLOCK00)
SIZE(28600)
INITSIZE(14300)
PREFLIST(CF02,CF01)
REBUILDPERCENT(75)

STRUCTURE NAME(HSMCACHE1)
SIZE(64000)
INITSIZE(32000)
PREFLIST(CF01,CF02)
REBUILDPERCENT(75)

STRUCTURE NAME(HSMCACHE2)
SIZE(64000)
INITSIZE(32000)
PREFLIST(CF02,CF01)
REBUILDPERCENT(75)

Figure 32. CFRM policy definition for RLS access of the DFSMShsm CDSs

Note
The code in Figure 32 does not represent the entire policy data for the
CFRM data set. It represents the CFRM policy that specifies the
requirements for the DFSMShsm RLS structures.

Chapter 2. Implementing DFSMShsm 89


The coupling facility cache structure names that we chose to use are
HSMCACHE1 and HSMCACHE2. The locking structure name is the required
name of IGWLOCK00.

2.4.6.8 Alter the SMS configuration


You have to update the SMS configuration with the coupling facility cache
structure names you just defined. Use the ISMF panels. Select option 8 from
the ISMF Primary Option Menu for Storage Administrators to display the CDS
Application Selection panel (Figure 33).

CDS APPLICATION SELECTION


Command ===>

To Perform Control Data Set Operations, Specify:


CDS Name . . 'SYS1.SMS.SCDS'
(1 to 44 Character Data Set Name or 'Active')

Select one of the following Options:

7 1. Display - Display the Base Configuration


2. Define - Define the Base Configuration
3. Alter - Alter the Base Configuration
4. Validate - Validate the SCDS
5. Activate - Activate the CDS
6. Cache Display - Display CF Cache Structure Names for all CF Cache Sets
7. Cache Update - Define/Alter/Delete CF Cache Sets

If CACHE Display is chosen, Enter CF Cache Set Name . . *


(1 to 8 character CF cache set name or * for all)

Use ENTER to Perform Selection;


Use HELP Command for Help; Use END Command to Exit.

Figure 33. CDS Application Selection panel for cache

We select option 7 and define the cache sets that relate to our coupling
facility cache structure names (Figure 34).

90 DFSMShsm Primer
Panel Utilities Scroll Help
------------------------------------------------------------------------------
CF CACHE SET UPDATE PAGE 1 OF 1
Command ===>

SCDS Name : SYS1.SMS.SCDS


Define/Alter/Delete CF Cache Sets: ( 002 Cache Sets Currently Defined )

Cache Set CF Cache Structure Names


HSM1 HSMCACHE1

HSM2 HSMCACHE2

More CF Cache Sets to Add? . . N (Y/N)

Figure 34. CF Cache Set Update panel

The coupling facility cache structure names must be those that we previously
defined (see 2.4.6.7, “Coupling facility cache and lock structures” on
page 88).

2.4.6.9 Storage class changes


We took the option of altering the storage class where our CDSs were already
defined. The storage class is SC54GRT, and we altered it by selecting
option 4 from the Storage Class Application Selection panel (Figure 35).

Chapter 2. Implementing DFSMShsm 91


Panel Utilities Help
------------------------------------------------------------------------------
STORAGE CLASS APPLICATION SELECTION
Command ===>

To perform Storage Class Operations, Specify:


CDS Name . . . . . . . 'SYS1.SMS.SCDS'
(1 to 44 character data set name or 'Active' )
Storage Class Name . . SC54GRT (For Storage Class List, fully or
partially specified or * for all)
Select one of the following options :
4 1. List - Generate a list of Storage Classes
2. Display - Display a Storage Class
3. Define - Define a Storage Class
4. Alter - Alter a Storage Class
5. Cache Display - Display Storage Classes/Cache Sets
If List Option is chosen,
Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

If Cache Display is Chosen, Specify Cache Structure Name . .

Figure 35. Altering a storage class

We added the coupling facility cache set information (Figure 36).

Panel Utilities Scroll Help


--------------------------------------------------------------------------------
STORAGE CLASS ALTER Page 2 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54GRT

To ALTER Storage Class, Specify:

Guaranteed Space . . . . . . . . . Y (Y or N)
Guaranteed Synchronous Write . . . N (Y or N)
CF Cache Set Name . . . . . . . . HSM1 (up to 8 chars or blank)
CF Direct Weight . . . . . . . . . 5 (1 to 11 or blank)
CF Sequential Weight . . . . . . . 3 (1 to 11 or blank)

Figure 36. Storage Class Alter panel (Page 2 of 2)

To this we added the coupling facility cache set name that we had associated
previously with the coupling facility cache structure name. The greater the
weight value, the higher the importance that it is cached. We chose our
values randomly.

92 DFSMShsm Primer
As the CDSs were already in this storage class, we validated and then
activated our SMS SCDS of SYS1.SMS.SCDS1.

If your data sets are not already allocated to a storage class that allows RLS,
you have to assign them to one.

2.4.6.10 Altering IGDSMSxx parmlib member


To specify to SMS that the RLS address space, SMSVSAM, starts at IPL and
to include other information, we added the following (Figure 37) to our
PARMLIB data set, member IGDSMS54:
SMS ACDS(SYS1.SMS.ACDS) COMMDS(SYS1.SMS.COMMDS)
DEADLOCK_DETECTION(15,4)
SMF_TIME(YES) CF_TIME(1800) RLSINIT(YES)
RLS_MAX_POOL_SIZE(100)

Figure 37. Sample IDGSMSxx PARMLIB to implement RLS

Each MVS system will have its own SMSVSAM address space after IPL if
RLSINIT(YES) is coded.

2.4.7 RACF FACILITY classes


RACF 2.2 provides two new profiles that you can use to restrict access to
certain RLS functions. The two new FACILITY class profiles that are added
are:
• STGADMIN.IGWSHCDS.REPAIR — to use the AMS SHCDS command
• STGADMIN.VSAMRLS.FALLBACK — to use the V
SMS,SMSVSAM,FALLBACK command

If you want to limit the access to these commands, you have to set up these
profiles and authorize users to them.

2.4.8 Activating the SMSVSAM address space


To activate the SMSVSAM address space, an IPL of the MVS system is
necessary. To verify that the SMSVSAM address space has started on your
system, issue the following command:

D SMS,SMSVSAM,ALL

The information that is returned will tell you whether your system is active and
what the status is of the SMS complex.

Chapter 2. Implementing DFSMShsm 93


2.4.8.1 Activating the SHCDS
If your SHCDS is already active, there is no need to activate it. However if this
is your first implementation of RLS, you have to issue the following
commands, modified to represent the names you have chosen for your
SHCDSs:
VARY SMS,SHCDS(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS1),NEW
VARY SMS,SHCDS(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS2),NEW
VARY SMS,SHCDS(SYS1.DFPSHCDS.WTSCPLX1.VSHCDS2),NEWSPARE

These commands will:


• Activate the new primary SHCDS
• Activate the new secondary SHCDS
• Activate a spare SHCDS

2.4.8.2 DFSMShsm procedure changes


To your DFSMShsm started procedure member in SYS1.PROCLIB you have
to add the following to the PROC statement:

CDSSHR=RLS

and you must add the following to your EXEC statement:

'CDSSHR=&CDSSHR'

2.4.8.3 RLS implementation checklist


To review, these are the steps that you need to follow to implement RLS
access for the DFSMShsm CDSs:
1. Make sure that all sharing systems are at the prerequisite levels of
software.
2. If not already defined, use IDCAMS to define SHCDSs and make sure that
SHAREOPTION(3,3) is specified.
3. Define your coupling facility cache and lock structures.
4. Alter your SMS configuration to include the cache set information.
5. Create or alter a storage class that contains the cache set information.
6. Assign the CDSs to the new or altered storage class.
7. Alter SYS1.PARMLIB member IGDSMSxx with the RLS parameters.
8. Define the new RLS profiles in the RACF Facility class and authorize
users.

94 DFSMShsm Primer
9. Schedule an IPL of the MVS systems and make sure that the SMSVSAM
address space becomes active.
10.Activate the SHCDSs.

2.5 Multicluster control data sets


As the DFSMShsm workload increases in your installation, so will the activity
that each of the CDSs is required to record. As CDSs grow, they can require
more space than the physical DASD devices allow (for example, the capacity
of a 3390-3 is 2.8 GB). If this occurs, the CDSs can be split across multiple
volumes to accommodate their larger size. Only the MCDS and BCDS can be
allocated up to four clusters.

If, however, your site has not experienced any problems with the space
requirements of your CDSs, we do not recommend that you implement a
multicluster environment. If you have experienced space problems you may
want to first try increasing the size of your CDSs to relieve the space problem.
If you find that the space required for your CDS requires more than one
volume, you need to split your CDS.

IBM recommends the use of non-key-range multicluster CDSs. The following


sections applies only to non-key-range data sets.

For more information about defining CDSs without key-ranges, see 2.4.6.3,
“Removing key range CDSs” on page 87.

2.5.1 Multicluster performance considerations


Multicluster CDSs are a related group of VSAM clusters with the following
requirements:
• CDSs cannot be empty when starting DFSMShsm. The MCDS must be
defined such that the high key for the first cluster must be greater than
X'10' \ C'MHCR'.
• All clusters in a multicluster CDS must be cataloged in the same user catalog.
• All clusters must be on DASD of the same category.
• Only primary allocation may be specified for the index and data; no
secondary allocation may be specified for either the index or data.
• The index and data are limited to one volume; they cannot be on different
volumes.

Chapter 2. Implementing DFSMShsm 95


• For a multicluster BCDS, the RECORDSIZE and data
CONTROLINTERVALSIZE for each cluster depend on the maximum
number of backup versions you want to be able to keep for any data set.
• CDSs accessed by RLS cannot be defined as key-range data sets. If
previous CDSs were defined as multicluster and used key ranges, they
must be redefined without key ranges. DFSMShsm will dynamically
calculate the key boundaries for the redefined CDSs.

We recommend that if possible you attempt to keep each cluster on separate


DASD subsystems to improve performance and to reduce recovery time
should it be necessary.

2.5.2 Conversion steps


Once you have decided that you want to implement a multicluster CDS, there
are a number of steps to take. The steps described below assume a
familiarity with DFSMShsm and that there is a requirement at your site to
adopt multicluster CDSs.

Follow these steps to implement a multicluster environment:


1. Stop DFSMShsm on all OS/390 images.
2. Back up the CDS with the AMS EXPORT command.
3. Determine whether to split the CDS into two, three, or four clusters.
4. Modify the JCL in Figure 38 to suit your installation's requirements.

96 DFSMShsm Primer
.
//HSMCDS JOB ,MSGLEVEL=(1,1)
//*******************************************************************/
//* SAMPLE JCL THAT ALLOCATES NON-KEY-RANGE MULTICLUSTER */
//* RLS-ELIGIBLE MIGRATION CONTROL DATA SETS. */
//*******************************************************************/
//*
//STEP1 EXEC PGM=IDCAMS,REGION=512K
//SYSPRINT DD SYSOUT=A
//SYSUDUMP DD SYSOUT=A
//SYSIN DD *
DEFINE CLUSTER (NAME(HSM.RLS.MCDS1) -
STORAGECLASS(SC54GRT) -
CYLINDERS(2) NOIMBED NOREPLICATE -
RECORDSIZE(200 2040) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
UNIQUE LOG(NONE)) -
DATA -
(NAME(DFHSM.RLS.MCDS1.DATA) -
CONTROLINTERVALSIZE(4096)) -
INDEX -
(NAME(DFHSM.RLS.MCDS1.INDEX) -
CONTROLINTERVALSIZE(4096))

DEFINE CLUSTER (NAME(DFHSM.RLS.MCDS2) -


STORAGECLASS(SC54GRT) -
CYLINDERS(2) NOIMBED NOREPLICATE -
RECORDSIZE(200 2040) FREESPACE(0 0) -
INDEXED KEYS(44 0) SHAREOPTIONS(3 3) -
UNIQUE LOG(NONE)) -
DATA -
(NAME(DFHSM.RLS.MCDS2.DATA) -
CONTROLINTERVALSIZE(4096)) -
INDEX -
(NAME(DFHSM.RLS.MCDS2.INDEX) -
CONTROLINTERVALSIZE(4096))

Figure 38. Sample JCL for non-key-range multicluster MCDS

5. Copy the old CDS to the new multicluster CDS with the AMS REPRO
command, as shown Figure 39.

Chapter 2. Implementing DFSMShsm 97


//******************************************************************/
//* COPY THE OLD CONTROL DATA SETS INTO THE NEWLY DEFINED */
//* NON-KEY-RANGE MULTICLUSTER CONTROL DATA SETS. */
//* NOTE: THE FROMKEY/TOKEY VALUES ARE ONLY SAMPLES. THE ACTUAL */
//* PARAMETERS USED FOR THESE KEYWORDS SHOULD BE DERIVED FROM */
//* ACTUAL CDSS BEING USED. */
//******************************************************************/
//*
//STEP2 EXEC PGM=IDCAMS,REGION=512K
//SYSPRINT DD SYSOUT=A
//SYSUDUMP DD SYSOUT=A
//SYSIN DD *
REPRO INDATASET(HSM.MCDS) OUTDATASET(HSM.RLS.MCDS1) -
FROMKEY(X'00') TOKEY(MIDDLE.KEY1)
REPRO INDATASET(HSM.MCDS) OUTDATASET(HSM.RLS.MCDS2) -
FROMKEY(MIDDLE.KEY2) TOKEY(X'FF')
/*

Figure 39. Sample JCL for non-key-range multicluster REPRO

6. Modify your DFSMShsm startup procedure in SYS1.PROCLIB and in other


JCL (such as DCOLLECT and ARCIMPRT) that references the
multicluster CDS. There must be a separate DD card for each cluster of a
multicluster CDS. The ddnames should be MIGCAT, MIGCAT2, MIGCAT3,
and MIGCAT4 or BAKCAT, BAKCAT2, BAKCAT3, and BAKCAT4.
7. If you back up your CDSs to DASD, preallocate new CDS backup data
sets. You need backup versions for each cluster in the CDS.
Note
Do not delete the current CDS. Instead, maintain it for a period of time
until you determine that the new CDS is valid.

8. Make backup copies of the CDSs.


9. Monitor the growth of the multicluster CDS.

Once all these steps have completed successfully, DFSMShsm will use the
multicluster CDSs.

2.6 CDS backup procedures


You can backup DFSMShsm CDSs in a variety of ways, depending on your
hardware and system level. System performance is directly related to the time
it takes to backup the CDSs and the journal, because al DFSMShsm activity
and all JES2/JES3 setup and initialization activity is suspended during this
process. By improving the performance of CDSs and journal backup, you can
increase the time that system-wide serialization is in effect. To decrease the
time required to backup the CDSs and the journal data sets, it is possible to

98 DFSMShsm Primer
use some backup technics. Here we discuss using concurrent copy,
SnapShot and virtual concurrent copy as your backup procedures.

2.6.1 Concurrent copy


Concurrent copy is a combined hardware, Licensed Internal Code (LIC), and
software systems management solution that creates data dumps or copies
while allowing end-user processing to continue.

When DFSMShsm uses concurrent copy to back up the control data sets, the
period of time during which system functions are suspended is dramatically
reduced. DFSMShsm reserves the data sets only for as long as it takes to
initialize a concurrent copy session for each of them and to back up and
nullify the journal. (DFSMShsm always backs up the journal itself, not using
DFSMSdss and consequently without concurrent copy.) Once these
operations are complete, DFSMShsm releases the CDSs for other processing
but continues with the backup because the data sets are now protected by
concurrent copy. This action can reduce to only a few minutes the period of
time during which DFSMShsm functions (and, in JES3 systems, job initiation)
are suspended. This capability makes it possible to reduce the time required
to restart DFSMShsm after a failure if a backup copy of one of the CDSs is
required.

To use concurrent copy for CDS backup, you must:


• Allocate the CDSs on system-managed volumes attached to DASD
subsystems that have concurrent copy available
• Ensure that the CDSs receive a management class as described below
• Specify that DFSMShsm use DFSMSdss as the data mover

DFSMShsm uses concurrent copy for automatic backup only when


processing system-managed data sets. If your CDSs are not located on
system-managed volumes, you will need to reallocate them.

When you reallocate the DFSMShsm CDSs, specify (or ensure that your ACS
routines select) a storage class with GUARANTEED SPACE=YES and a
management class containing the following specifications:
• Expiration limits (EXPIRE AFTER DAYS NON-USAGE and EXPIRE
AFTER DATE/DAYS) and RETENTION PERIOD set to NOLIMIT.
• COMMAND or AUTO MIGRATE set to NONE.
• ADMIN or USER COMMAND BACKUP set to NONE.

Chapter 2. Implementing DFSMShsm 99


• BACKUP COPY TECHNIQUE set to CONCURRENT PREFERRED. We
recommend that you specify PREFERRED rather than REQUIRED
because PREFERRED ensures that DFSMShsm backs up the CDSs even
if concurrent copy is not available. If you specify CONCURRENT
REQUIRED and concurrent copy is not available (for example, because of
a cache failure), DFSMShsm does not back up the CDSs.

If you use tape as your backup device for the CDSs, also specify the
PARALLEL option to request that DFSMShsm backup the CDSs in parallel. If
you do not specify PARALLEL, DFSMShsm backs up the CDSs to tape
one-by-one, reducing the benefit of concurrent copy. DFSMShsm always
backs up the CDSs to DASD in parallel. If contention for tape drives is a
problem in your installation, consider changing your CDS backup device to
DASD when you implement concurrent copy.

Concurrent copy makes it possible to take backups more frequently, reducing


the time required to bring a backup copy “up to date” from the DFSMShsm
journal. You can take a backup of the CDSs at any time using the DFSMShsm
BACKVOL CDS command. In addition to using this command to take more
frequent CDS backups, you might also need to use this command if a system
problem causes CDS backup to fail after the concurrent copy sessions are
initialized.

2.6.2 Virtual concurrent copy


Virtual concurrent copy provides a copy operation similar to concurrent copy
by using a combination of RVA, SnapShot, and DFSMSdss. If you are already
using concurrent copy to back up the CDSs, and the device they reside on is
an RVA, you do not have to take any additional action. Virtual concurrent copy
will be automatically invoked.

You invoke virtual concurrent copy by specifying the CONCURRENT keyword


on a DFSMSdss COPY or DUMP statement. When the CONCURRENT
keyword is specified on a DFSMSdss COPY command and all the
requirements for DFSMSdss SnapShot are met, DFSMSdss tries to perform a
DFSMSdss SnapShot. In this case the logical and physical completion of the
copy occur at the same time.

The benefit of virtual concurrent copy is that it can be performed in the


following circumstances, when a DFSMSdss SnapShot cannot:
• The data needs to be manipulated (DUMP command used, reblocked,
track packed to unlike) and the source resides on an RVA.

100 DFSMShsm Primer


• The source and target reside on different RVAs, and DFSMSdss is the
data mover.
• The source resides on an RVA, the target is a non-RVA device, and
DFSMSdss is the data mover.
• A multivolume source data set spans multiple RVAs, and DFSMSdss is the
data mover.
• A multivolume source data set resides on a combination of RVAs and
devices connected to an IBM 3990-6 control unit, and DFSMSdss is the
data mover.

To perform a virtual concurrent copy, space must be made available in the


same RVA subsystem as the source data set. During a virtual concurrent
copy, data is "snapped" from its source location to an intermediate location.
This intermediate location is known as the working space data set (WSDS).
Data is gradually copied from the WSDS to the target location.

So for virtual concurrent copy to be successful, even though the concurrent


copy criteria have been met, you must have predefined at least one WSDS,
but it is more likely that you will have to allocate multiple WSDSs.

The allocation requirements, catalog search, system data mover (SDM),


recommendations, performance, and restrictions for WSDSs are
comprehensively covered in Implementing DFSMSdss SnapShot and Virtual
Concurrent Copy, SG24-5268. We recommend that you obtain a copy of the
redbook before you implement virtual concurrent copy in your installation.

2.7 Space management


In this section we present the parameters required to define the
characteristics of DFSMShsm space management. Space management
identifies a set of functions, such as:
• Migration from level 0 to ML1
• Migration from ML1 to ML2
• Migration from level 0 to ML2
• Recall from ML1 and ML2 to level 0
• Extent reduction
• Release of allocated but unused space
• Scratch obsolete or expired data sets

Chapter 2. Implementing DFSMShsm 101


• Reconnect unchanged data sets recalled from ML2 tape to their original
tapes
• Clean up obsolete records from CDSs and DFSMShsm volumes

There are two features we should mention as they allows more flexibility on
space management functions:
1. Fast subsequent migration
Fast subsequent migration is a new feature of DFSMShsm version 2
release 10.
When a data set that has been migrated to ML2 tape is recalled, the
migration copy of the data set remains on the tape. DFSMShsm CDS
records recognize that copy as an invalid copy. When the data set that is
recalled is re migrated in the normal manner, it is copied to a new tape.
Eventually, tapes with invalid data sets are recycled, and only the still-valid
data is consolidated onto new tapes.
The fast subsequent migration function allows data sets recalled from ML2
tape (but not changed, recreated or backed up) can be reconnected to the
original ML2 tape. This eliminates unnecessary data movement resulting
from remigration and reduces the need to recycle these tapes.
Reconnection can occur during individual data set migration or during
volume migration. Both SMS and non-SMS data sets are supported;
however, reconnection is only supported in a SETSYS
USERDATASETSERIALIZATION environment.
Data sets recalled from down level DFSMShsm are not candidates for
reconnection. If a data set is recalled from down level DFSMShsm and
DFSMShsm Release 10 needs to migrate it, it will not reconnect and use
normal migration technique.
During the recall function, DFSMShsm marks a data set as a candidate for
reconnection, only if it meets all of the following conditions:
- The data set is recalled from ML2 tape.
- The data set does not span tapes.
- The SETSYS TAPEMIGRATION(RECONNECT(NONE)) option is not in
effect.
- SETSYS USERDATSETSERIALIZATION is the specified option.
DFSMShsm does not attempt reconnection, if either of the following is
true:
- The MIGRATE command specifies the CONVERT parameter.
- The ARCHMIG macro specifies the FORCML1=YES parameter.

102 DFSMShsm Primer


A data set can be reconnected, only if it meets all of the following
conditions:
- DFSMShsm marks the data set as reconnect able at recall.
- The data set has not changed since it was last recalled.
- DFSMShsm has not backed up the data set since it was last recalled.
- The ML2 tape has not been recycled since the data set was last
recalled.
- The SETSYS TAPEMIGRATION(RECONNECT) option allows
reconnection.
- The SETSYS USERDATASETSERIALIZATION option is in effect.
- The catalog entry for the migrating data set has not changed since it
was last recalled.
The migration cleanup function may keep MCD records for reconnectable
data sets longer than for non-reconnectable data sets. This increases the
likelihood that DFSMShsm will reconnect the data set at the next
migration. A new parameter RECONNECTDAYS has been added to
command SETSYS MIGRATIONCLEANUPDAYS to cater for this. For
more information on this command, see DFSMShsm Storage
Administration Reference.|
Note
If you specify either the RECONNECT(ALL) or the
RECONNECT(ML2DIRECTEDONLY) parameters, ensure that no other
product in the installation has reset the change flag in the VTOC data
set entry. If it has, DFSMShsm will be unaware that the data set has
changed since it was last recalled. Once the data set changes, the ML2
migration copy can no longer be used for reconnection.

Other program products include DFSMSdss. Using the RESET


keyword — either within the DFSMShsm DUMPCLASS or externally in
DFSMSdss batch jobs — can affect DFSMShsm processing.

2. Tape take away by recall


This feature was introduced on the previous release of the product.
If recall needs a data set that is on a tape volume being used for ML2
output, then recall causes the output task to relinquish that tape and
continue its output using a different tape. This applies to all forms of
migration: primary space management, interval migration, secondary
space management, command data set migration, and command volume
migration. It also applies to recycle output. The recall function also causes

Chapter 2. Implementing DFSMShsm 103


tapes to be taken away from other tasks, such as recycle input, tapecopy
input, and from recall itself.
A take away does not happen instantaneously, the recall task does not
wait, but leaves this recall on the queue to be retried at approximately
two-minute intervals. This enables recalls that are readily performed to
proceed. When migration or recycle processing is complete for the data
set being processed, the allocated volume is released and a new volume
is selected for migration or recycle processing.
When DFSMShsm is doing recall mount optimization, which means that
several recalls occur end to end while a tape is continuously mounted.
Since this could go on for an indefinite length of time, DFSMShsm has the
SETSYS option TAPERECALLLIMITS. TAPERECALLLIMITS provides a
time value after which a tape can be taken away from recall by recall on
another DFSMShsm host. The takeaway occurs only if the request on the
other host is of higher priority than the request that would otherwise be
performed without demounting the tape. The priority is usually based on
time of arrival, but the priority can be changed by using the ARCRPEXT
installation exit.
When recall completes its use of a tape taken away from other tasks, the
tape is released and is available for continued use by other tasks.

You should consider the following parameters when setting up the


DFSMShsm space management options:
• How do I specify Fast Subsequent Migration?
You can specify whether you want DFSMShsm to reconnect a data set that
has been recalled from a single ML2 tape to that same migration copy. If you
do not want to perform reconnection, use statement (a). If you want all data
sets that are eligible for migration to reconnect to the ML2 tape, even if the
data set would otherwise be migrated to ML1, use statement (b). If you want
reconnection only on data sets that are eligible for direct migration to ML2
tapes, use statement (c).

(a) SETSYS TAPEMIGRATION(RECONNECT(NONE))


(b) SETSYS TAPEMIGRATION(RECONNECT(ALL))
(c) SETSYS TAPEMIGRATION(RECONNECT(ML2DIRECTEDONLY))

• Do you want to migrate data sets to ML2 tape?


If you plan to migrate the data sets on ML1 to ML2 tape, use statement (a)
below. If you want your non-SMS-managed data sets on DFSMShsm
managed volumes to migrate directly to tape, use statement (b). If you do
not want to use tapes for data migration, use statement (c). In the latter
case, ML2 tape is selected only when the data set belongs to a

104 DFSMShsm Primer


management class indicating that the migration should be directly to ML2
tape or the ARCMDEXT exit redirects data sets to ML2 tape. Management
class attribute LEVEL-1-DAYS-NON-USAGE = NOLIMIT prohibits SMS-managed
data sets from migrating to ML2 tape.
Note that the selection of one of these statements must be consistent with
the contents of the SMS management classes implemented in the
installation.

(a) SETSYS TAPEMIGRATION(ML2TAPE)


(b) SETSYS TAPEMIGRATION(DIRECT)
(c) SETSYS TAPEMIGRATION(NONE)

• Do you want to use a special unit to allocate tapes for migration?


This parameter is related to the selection of the previous parameter. If you
want DFSMShsm to always allocate the ML2 output unit with a given unit
name, specify either statement (a), (b,) or (c) below. If neither (a), (b), nor
(c) is specified and you want DFSMShsm to use a special unit type when a
nonspecific allocation is made during ML2 migration, specify statement
(d). If you specify an esoteric name, code it in the SETSYS
USERUNITTABLE parameter, as explained in 2.2.3, “Setting up the base
SETSYS parameters” on page 42.

(a) SETSYS TAPEMIGRATION(DIRECT(TAPE(unittype)))


(b) SETSYS TAPEMIGRATION(ML2TAPE(TAPE(unittype)))
(c) SETSYS TAPEMIGRATION(NONE(ROUTETOTAPE(TAPE(unittype))))
(d) SETSYS MIGUNITNAME(unitname)

• What minimum level of valid data is required before recycling an ML2


tape?
If you want to use a different percentage value for ML2 than you use for
backup tapes, you must use this parameter, which specifies the maximum
percentage (pct) of valid data on a migration tape that causes it to be
processed by the recycle function. Substitute a number from 0 to 99. The
RECYCLE command issuer can override it when actually requesting this
function.

SETSYS ML2RECYCLEPERCENT(pct)

• How many recalls do you want to run concurrently?


Substitute a decimal number from 1 to 15 for the number of concurrent
recall tasks. You can specify 15 as a good starting point.

SETSYS MAXRECALLTASKS(nn)

Chapter 2. Implementing DFSMShsm 105


• Do you want to specify the number of tasks allowed to recall data
sets from tape?
Specify the maximum number (nn) of tape recall requests that DFSMShsm
should handle. The number must be lower than or equal to the value
specified with SETSYS MAXRECALLTASKS and lower than the number of
tape drives you have installed, because each tape recall task requires a
dedicated tape unit.

SETSYS TAPEMAXRECALLTASKS(nn)

• How many automatic volume migration tasks do you want to run in


parallel?
DFSMShsm can run up to 15 tasks in parallel on each host. Each
manages one volume at a time and requires a dedicated tape unit when
automatic volume migration is directed to tape. In this case you need to
specify a number that is less than or equal to the number of tape drives
you have available; if you duplex your migration tapes, this number must
be half the number of available tape drives, at maximum. Choose the
number of tasks (nn) you want to run and use the following statement:

SETSYS MAXMIGRATIONTASKS(nn)

• How many interval migration tasks do you want to run in parallel?


This parameter applies to the processing of primary volumes and
SMS-managed volumes. It specifies the maximum number of interval
migration tasks that can run concurrently. In a direct-to-tape environment,
you must have a sufficient number of tape drives to support this number of
tasks. The value that you specify with this parameter does not have any
relationship with the SETSYS MAXMIGRATIONTASKS value. Choose the
number of tasks (nn) you want to run and use the following statement:

SETSYS MAXINTERVALTASKS(nn)

• When do you want to start the automatic space management


functions?
Specify the planned start (hhmm1) and stop (hhmm2) time for running
primary space management functions. If you specify hhmm1 as zero
(0000), DFSMShsm will not start automatic primary space management.
For cycle, substitute a string of alphabetic Ys and Ns. Each of them
represents a day in the cycle. Specify Y as the day primary space
management is to run. Specify N as the day when automatic primary
space management is not to run. You can represent up to a 31-day cycle
with the Ys and Ns. The CYCLESTARTDATE subparameter specifies the

106 DFSMShsm Primer


start date of a cycle. However, the date (yyyy/mm/dd) cannot be a date in
the future. The first cycle day begins at the start time of this function
regardless of when the new calendar day begins.
Processing of automatic secondary space management can be similarly
specified. The primary and secondary space management functions can
have independent cycles, dates, and times of execution on each system in
the enterprise.
The choice between activating or not activating this function on the system
must be consistent with the migration and system name information in the
SMS storage groups.
We recommend you run secondary space management before primary
space management to ensure space on ML1 volumes.

SETSYS PRIMARYSPMGMTSTART(hhmm3 hhmm4)


DEFINE PRIMARYSPMGMTCYCLE(cycle CYCLESTARTDATE(yyyy/mm/dd))
SETSYS SECONDARYSPMGMTSTART(hhmm1 hhmm2)
DEFINE SECONDARYSPMGMTCYCLE(cycle CYCLESTARTDATE(yyyy/mm/dd))

• Which high-level qualifier do you want to use for the name of


DFSMShsm migrated data sets?
The high-level qualifier can be used as a RACF generic profile to protect
these copies against unauthorized access. If you do not specify this
parameter on any SETSYS command, the prefix for the migrated data sets
is the UID that you specified in the DFSMShsm startup procedure. In our
installation, we used UID=HSM54 in our DFSMShsm startup procedure, so
our migrated data sets prefix is HSM54.

SETSYS MIGRATEPREFIX(prefix)

• Do you want to perform hourly migration outside the primary space


management window?
The purpose of interval migration is to prevent the DFSMShsm-managed
volumes from running out of space during the day. DFSMShsm normally
does a space check every hour. Therefore, if you request interval
migration, DFSMShsm uses this hourly space check to determine on
which volumes interval migration is done. The interval migration will then
occur on the volumes that have exceeded their maximum occupancy
threshold, which you specified in the storage group.
The SETSYS INTERVAL/NOINTERVALMIGRATION parameter affects
only those storage groups that have AUTOMIG=Y, and affects non-SMS

Chapter 2. Implementing DFSMShsm 107


volumes. For SMS storage groups with AUTOMIG=I, we will run Interval
always, independent of this parameter.

(a) SETSYS INTERVALMIGRATION


(b) SETSYS NOINTERVALMIGRATION

• How long do you want to keep obsoleted records in the MCDS?


Data sets that are eligible for ML2 reconnection with the fast subsequent
migration function may have their MCD records retained for a longer
period of time than for non reconnect able data sets. This increases the
likelihood of a reconnection when the data set next migrates. However,
keeping the MCD records longer (while increasing the likelihood of
reconnection) also causes growth in the size of the MCDS.
Specify the number of days that you want to keep the MCDS records for
recalled data sets (recalldays) and the number of days that you want to
keep the daily and volume statistics records (statdays), predicted
remigration date to control retention of the MCD record for reconnect able
data sets (reconnectdays). The predicted remigration date is based on the
number of days that the data set was unreferenced prior to the date of its last
migration. MCD records for reconnect able data sets are kept until they meet
both the recalldays and the reconnectdays criteria before DFSMShsm
deletes them during the secondary space management function. For
recalldays, substitute a number from 0 to 999; for statdays, substitute a
number from 1 to 999.

SETSYS MIGRATIONCLEANUPDAYS(recalldays statdays reconnectdays)

• Do you want to scratch expired data sets?


If you select statement (a) below, DFSMShsm scratches expired data sets
that have explicit expiration dates. The expiration attributes in the
management class control the expiration of data sets that do not have an
expiration date in their data set volume table of contents (VTOC) entry.
However, data sets with an expiration date in the data set VTOC entry are
not controlled by the management class and require this SETSYS
parameter to control their deletion. Statement (b) specifies that
DFSMShsm ignore the expiration date during space management
processing. NOSCRATCH is the default value.

(a) SETSYS EXPIREDDATASETS(SCRATCH)


(b) SETSYS EXPIREDDATASETS(NOSCRATCH)

108 DFSMShsm Primer


• What is the maximum number of extents desired for a non-VSAM data
set?
Specify the maximum number of extents desired for a non-VSAM data set
in statement (a) below. When this number is reached, during primary
space management, DFSMShsm migrates and recalls the data set
performing an extent reduction. The value 10 is a good starting point.
If you do not want DFSMShsm to do extent reduction, use statement (b).

(a) SETSYS MAXEXTENTS(nn)


(b) SETSYS MAXEXTENTS(0)

• Do you want to use the SDSP facility for the migrated data sets?
If you want to use the SDSP facility, use statement (a). IBM recommends a
150KB size, which allows the fact that this would probably compress to
75KB, and take up 1.5 3390 tracks in an SDSP, or two tracks in a
traditional data set, representing a significant reduction. You can use a 60
KB size if you use RVA for ML1 volumes and you turn compression off.
Specifying SMALLDATASETPACKING requires that you define at least a
number of SDSP data sets equal to the maximum number of concurrent
volume migration tasks that could be running in your complex. SDSP data
sets are allocated on ML1 volumes and defined in the ADDVOL command
for the volume on which it resides. The SDSP data sets should be
reorganized periodically to prevent out of space conditions.
Use statement (b) if you do not want to use the SDSP facility.

(a) SETSYS SMALLDATASETPACKING(KB(150))


(b) SETSYS NOSMALLDATASETPACKING

• Do you want to use a particular tape unit to recycle migration tapes?


Select the unit type you want to use to allocate output tapes during a
migration tape recycle. If you want to use an esoteric, you must also define
it with the SETSYS USERUNITTABLE parameter. If you want to use an
SMS-managed tape library for RECYCLE output, make sure your ACS
routines were coded to accept this unittype as valid for SMS allocations.

SETSYS RECYCLEOUTPUT(MIGRATION(unittype))

• Do you want DFSMShsm to use software compaction for data sets


migrated to DASD?
We recommend that you specify statement (a) in order to use software
compaction for data sets when migrating to DASD (ML1), unless you plan

Chapter 2. Implementing DFSMShsm 109


to have RVA DASD in your ML1 pool. Specify statement (b), if you do not
want software compaction to occur.

(a) SETSYS COMPACT(DASDMIGRATE)


(b) SETSYS COMPACT(NODASDMIGRATE)

• Do you want DFSMShsm to use software compaction for tape


migrated data?
If you do not want software compaction to occur when migrating directly to
tape, use statement (a). This is the recommended choice when IDRC is
available on the tape units used by DFSMShsm. If you want DFSMShsm to
do software compaction when migrating directly to tape from level 0
volumes, use statement (b). Note that, if IDRC is to be used on 3480X
devices, you also have to specify TAPEHARDWARECOMPACT.

(a) SETSYS COMPACT(NOTAPEMIGRATE)


(b) SETSYS COMPACT(TAPEMIGRATE)

• Do you want to extend partially filled tapes?


If you coded this parameter with the base set of options, do not code it
here.
If you want DFSMShsm to extend migration tapes that were not completely
written when used last, use statement (a) below. Otherwise, use statement
(b).
When a migration tape volume is in use by a migration or recycle task, and
a recall for a data set in this tape is issued, the tape is taken away from the
output task, as the recall has priority. A migration tape taken away
because of a data set recall is not related to the PARTIALTAPE option.
With APAR OW30676, a taken away tape is not marked full.
Note
The MARKFULL option can waste a large amount of capacity if Magstar
cartridges are being used.

(a) SETSYS PARTIALTAPE(REUSE)


(b) SETSYS PARTIALTAPE(MARKFULL)

2.8 Availability management


DFSMShsm availability management is a function that facilitates the storage
and retrieval of usable copies of data should online copies become lost or

110 DFSMShsm Primer


damaged in any way. We show you the basic DFSMShsm settings that allow
you to decide how best to manage your data, namely, how you can:
• Make daily incremental backup copies of changed and original data sets
• Periodically dump DFSMShsm-managed and ML1 volumes
• Use command availability management outside the automatic functions
• Perform individual data set and volume restores
• Perform backup and recovery of a predefined set of data

The tasks for controlling the availability management of SMS-managed


storage are accomplished by adding DFSMShsm commands to the
ARCCMDxx member and by specifying attributes in the SMS storage groups,
storage classes, and management classes. We assume that you are familiar
enough with SMS to access the ISMF panels to change the various attributes
and that you have update authority to them.

We show you the attributes that need to be changed to implement a basic


availability management environment along with descriptions of the
DFSMShsm commands that need to be added to the ARCCMDxx member.

2.8.1 Getting started with backup availability management


In this section we introduce you to some of the basic commands, functions,
and terminology associated with backup availability management.
• What do you mean by backup?
Backup is the process of copying a data set from a level 0 to a daily
backup volume. This copy is referred to as the backup version .
• What is the difference between backup and dump?
The backup function operates at a data set level, whereas the dump
function backs up the entire allocated space on the volume.
• How do I specify whether automatic backup is done or not?
The AUTO BACKUP attribute of the storage group lets DFSMShsm know
that you want it to perform automatic incremental backup on the volumes
assigned to that storage group. If you specify:

Auto Backup . . Y (Y or N)

Automatic backup is eligible to run on the volumes in the storage group.


• Does Auto Backup ensure that all the data sets get backed up?

Chapter 2. Implementing DFSMShsm 111


No. If the volume itself is eligible for automatic backup, data sets are
backed up according to the specifications in their management class. If the
volume is not in a storage group that is eligible for automatic backup, the
backup attributes for data sets on that volume are ignored. The storage
group attributes and the management class attributes work together. For
this reason we always point out in which class a particular attribute exists
and whether it interacts with another attribute.
• Which backup attributes are available in the management class?
Take for example the attributes shown in Figure 40 for one of the
management classes, MC54PRIM, that we have defined.

Panel Utilities Scroll Help


-----------------------------------------------------------------------------
MANAGEMENT CLASS ALTER Page 3 of 5
Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54PRIM

To ALTER Management Class, Specify:


Backup Attributes
Backup Frequency . . . . . . . . 1 (0 to 9999 or blank)
Number of Backup Vers . . . . . . 2 (1 to 100 or blank)
(Data Set Exists)
Number of Backup Vers . . . . . . 1 (0 to 100 or blank)
(Data Set Deleted)
Retain days only Backup Ver . . . 30 (1 to 9999, NOLIMIT or blank)
(Data Set Deleted)
Retain days extra Backup Vers . . 5 (1 to 9999, NOLIMIT or blank)
Admin or User command Backup . . BOTH (BOTH, ADMIN or NONE)
Auto Backup . . . . . . . . . . . Y (Y or N)
Backup Copy Technique . . . . . . S (P=Conc Preferred, R=Conc
Required or S=Standard)

Figure 40. Management class backup attributes

Without going into much detail at all, what this means for the management
class MC54PRIM is that:
- On the days that automatic backup runs, one day must elapse before it
is backed up again and it has changed since the last backup.
- Two backup versions are retained while the data set exists.
- One backup version is retained for 30 days after the data set is deleted.
- Extra backup versions are retained for five days after they are created.
- Any users can issue commands to back up data sets.
- Automatic backup is to process eligible data sets.

112 DFSMShsm Primer


- Concurrent copy is not used.
• What do the individual parameters in that management class do?
Each parameter works closely with one another to ensure that a backup
copy of your data is available should you ever need it. There is no global
setting that is applicable to all sites, so you must make a decision, based
on your user's requirements, as to the management class definitions that
are most appropriate.
• How do I specify the frequency of backup and what does it mean?
The management class backup attribute BACKUP FREQUENCY
determines how frequently changed data sets are backed up
automatically. It specifies the amount of days that must have elapsed since
the last backup. In our example we will back up the data set every time the
volume is processed for automatic backup if it has changed.
• How do I improve incremental backup performance?
Users who specify the SETSYS DFSMSHSMDATASETSERIALIZATION
option will not receive the performance improvement to the incremental
backup function that is introduced in DFSMShsm Version 1 Release 5.
Only use the SETSYS DFHSMDATASETSERIALIZATION command if your
environment requires it.
Otherwise, use the SETSYS USERDATASETSERIALIZATION command.
• Is there a way that I can guarantee the frequency of backup?
Use the storage group attribute, GUARANTEED BACKUP FREQUENCY.
By using this parameter you can also speed up volume recovery from data
set backups by reducing the total number of tapes that have to be
mounted to recover the volume.
Figure 41 shows the panel where you can alter the guaranteed backup
frequency parameter.

Chapter 2. Implementing DFSMShsm 113


Panel Utilities Help
------------------------------------------------------------------------------
POOL STORAGE GROUP ALTER
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Group Name : SG54HSM
To ALTER Storage Group, Specify:
Description ==> STORAGE GROUP FOR DFSMSHSM DATA SET
==>
Auto Migrate . . Y (Y, N, I or P) Migrate Sys/Sys Group Name . .
Auto Backup . . Y (Y or N) Backup Sys/Sys Group Name . .
Auto Dump . . . Y (Y or N) Dump Sys/Sys Group Name . . .

Dump Class . . . ONSITE (1 to 8 characters)


Dump Class . . . OFFSITE Dump Class . . .
Dump Class . . . Dump Class . . .

Allocation/migration Threshold: High . . 95 (1-99) Low . . 80 (0-99)


Guaranteed Backup Frequency . . . . . . 7 (1 to 9999 or NOLIMIT)

ALTER SMS Storage Group Status . . . N (Y or N)

Figure 41. Pool Storage Group Alter panel

We have the value for GUARANTEED BACKUP FREQUENCY set to 7. A


value less than 7 may produce a large backup load on your system and is
not recommended.
• What is the difference between GUARANTEED BACKUP FREQUENCY
and BACKUP FREQUENCY?
Setting GUARANTEED BACKUP FREQUENCY (GBF) attribute causes
data sets to be backed up more frequently, and BACKUP FREQUENCY
causes data sets to be backed up less frequently. For example, if a data
set changes once a month, then a GBF of seven days means it will be
backed up weekly, four to five times per month, rather than monthly.
Likewise, if a data set changes every day, and Backup Frequency is set to
seven days, then the data set is only backed up once per week, rather than
seven times per week.
GBF is often used more to: (a) backup always opened data sets like
Databases and HFS file systems, or (b) reduce the number of tapes
needed to recover a volume, by only having to go back to the last nn days
worth of tapes.
Backup Frequency is used mostly to reduce the amount of data processed
by Backup, to meet window requirements, for example. It can be used also
to increase how far back you can go to recover. A data set that is backed
up daily, with two backup versions, you can only go back to two days.

114 DFSMShsm Primer


However, if you change the backup frequency to seven days, then you can
go back two weeks, although you won't have the most recent, perhaps, of
the data set when lost.
• How can I use the data set changed bit to back up data sets?
There are some situations where you may have data sets that do not have
the data set changed indicator in the format 1 DSCB turned on. For
example, if you are switching to DFSMShsm from another storage
management product, or you were using DFSMSdss batch jobs with
DUMP RESET as your primary method of performing incremental
backups. All newly created data sets have the change indicator on, so
unless a product turns it off, they stay on indefinitely.
DFSMShsm will use this field to decide whether a data set needs to be
backed up. DFSMShsm has a parameter where you can ask that a copy of
the data set is taken regardless of the setting of this bit. The parameter
options are:

SETSYS INCREMENTALBACKUP(ORIGINAL)
SETSYS INCREMENTALBACKUP(CHANGEDONLY)

Specifying ORIGINAL means that a copy is taken for each data set that
either has change bit set to off and a backup version does not already
exist or data set with change bit set to on. Specifying CHANGEDONLY
means that only data sets with the data set changed indicator set to on are
backed up.
For the first few cycles of DFSMShsm automatic backup we recommend
that you specify ORIGINAL. Over time you may want to alter it to
CHANGEDONLY once you are more confident of the data that is being
backed up.
• How do I specify the number of backup versions to keep for an
existing data set?
The management class attribute NUMBER OF BACKUP VERSIONS
(DATA SET EXISTS) allows you to set the maximum number of backup
versions to retain for a data set. In our management class we have set this
to 2. This means that the two most recent copies of the data set will be
kept.
• How do I specify the number of backup versions to keep for a data
set that has been deleted?
The management class attribute NUMBER OF BACKUP VERSIONS
(DATA SET DELETED) allows you to set the maximum number of backup

Chapter 2. Implementing DFSMShsm 115


versions to retain once a data set has been deleted. For example, if you
set this to 1, only the most recent copy of the data set will be kept.
• How can I make sure that the only backup version of a data set that
has been deleted from primary or migration volumes exists for a
certain period of time?
By using the RETAIN DAYS ONLY BACKUP VERSION (DATA SET
DELETED), you can keep the most recent version. For example, if you set
this to 30, the backup version would be kept for 30 days after the data set
had been deleted before it is erased.
• How do I keep the extra backup versions that I have been collecting?
The RETAIN DAYS EXTRA BACKUP VERSIONS allows you to keep all
but the most recent copy for a specified number of days. For example, if
you specify 5, any extra versions will be kept for five days. The most recent
copy is not affected by the setting of this parameter.
• How does DFSMShsm decide whether a data set has been deleted?
DFSMShsm makes this decision as part of EXPIREBV processing. If you
have never run EXPIREBV processing before, you may want to double
check your management class settings before running EXPIREBV for the
first time.
• How can I control who has the ability to back up data sets by
command?
By using the ADMIN OR USER COMMAND BACKUP, you can decide
whether the storage administrator, or end user, or both or even no one can
back up the data sets by command. The settings are fairly
self-explanatory:
ADMIN Only the storage administrator can perform command backups.
BOTH End users as well as the storage administrator can perform
command backups.
NONE Neither end users nor the storage administrator can perform
command backups.
In our example we have both end users and storage administrators using
command backup. However, this setting applies only to this particular
management class.
• Within the management class I have specified AUTO BACKUP as Y.
Does this mean that automatic backup will be performed?
No. This is a parameter that is affected by another within the management
class. If you have specified ADMIN OR USER COMMAND BACKUP as

116 DFSMShsm Primer


NONE, then regardless of the AUTO BACKUP attribute setting, data sets
associated with this management class are not backed up. Also, if you
specify Y, then you are required to fill in the other backup attribute fields.
Also in the storage group where the data set belongs, the AUTO BACKUP
attribute has to be defined as Y.
The example that we have used allows automatic backup to be performed
as we have specified BOTH and Y.
• If I want to back up data sets using concurrent copy, what do I have
to do?
Concurrent copy applies only to data sets residing on level 0 volumes and
will not process either ICF catalogs or PDSs. Use of concurrent copy for
data set backup is justified only if the data set is database related and
there is significant value in having the data set serialized for as short a
duration as possible.
However, if you have the necessary hardware to support concurrent copy,
three options are available to you through the management class BACKUP
COPY TECHNIQUE attribute.
R CONCURRENT REQUIRED
Concurrent copy must be used for backup. Backup will fail for data sets
that do not reside on volumes supported by concurrent copy or are
otherwise unavailable for concurrent copy.
P CONCURRENT PREFERRED
Concurrent copy should be used for backup. A data set is backed up
without concurrent copy if it does not reside on a volume supported by
concurrent copy or is otherwise unavailable for concurrent copy.
S STANDARD
Data sets are backed up without concurrent copy.
If your data is allocated on an RVA, and you are using concurrent copy to
back up your data sets, no changes are necessary to use virtual
concurrent copy. Refer to 2.6.2, “Virtual concurrent copy” on page 100 for
additional information about the function of concurrent copy and virtual
concurrent copy. We also recommend that you read Implementing
Concurrent Copy, GG24-3990 and Implementing DFSMSdss SnapShot
and Virtual Concurrent Copy, SG24-5268. Both of these redbooks provide
an excellent background and implementation methodology for concurrent
copy and virtual concurrent copy.

Chapter 2. Implementing DFSMShsm 117


• Is that all I have to do to ensure that concurrent copy is used for my
data sets?
No. The storage class parameter, ACCESSIBILITY, affects where your
data sets are placed on concurrent copy capable devices. In this field you
can specify whether allocation to a concurrent copy capable device is
required (C), preferred (P), discouraged (S), or ignored (N) during volume
selection. Specifying a management class Backup Copy Technique as R
(required) does not affect the placement of data sets on a concurrent copy
volume.
Figure 42 shows how to set your storage class such that concurrent copy
can be used.
Panel Utilities Scroll Help
-------------------------------------------------------------------------------
STORAGE CLASS ALTER Page 1 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54GRT
To ALTER Storage Class, Specify:
Description ==> STORCLASS FOR GUARANTEED SPACE ALLOCATION
==>
Performance Objectives
Direct Millisecond Response . . . . 5 (1 to 999 or blank)
Direct Bias . . . . . . . . . . . . (R, W or blank)
Sequential Millisecond Response . . (1 to 999 or blank)
Sequential Bias . . . . . . . . . . (R, W or blank)
Initial Access Response Seconds . . 5 (0 to 9999 or blank)
Sustained Data Rate (MB/sec) . . . (0 to 999 or blank)
Availability . . . . . . . . . . . . S (C, P ,S or N)
Accessibility . . . . . . . . . . . P (C, P ,S or N)
Backup . . . . . . . . . . . . . . (Y, N or Blank)
Versioning . . . . . . . . . . . . (Y, N or Blank)

Figure 42. Storage class settings for concurrent copy

• Are there any settings that I need to make to my ARCCMDxx


PARMLIB member for automatic backup?
Yes. If you want automatic backup to start and finish automatically, you
have to set up a SETSYS parameter. For example, if you were to specify:

SETSYS AUTOBACKUPSTART(0100 0200 0300)

you are asking DFSMShsm to:


- Plan to start automatic backup at 0100.
- Start automatic backup no later than 0200.
- Start automatic backup no later than 0300 on any additional volumes.

118 DFSMShsm Primer


If DFSMShsm does not start automatic backup between 0100 and 0200 in
the example we have given, automatic backup will not be done that day.
After 0300, no additional DASD volumes will be started. Those already
started will run to completion.
• Can I issue the same SETSYS command at the console?
Yes. There is no requirement that this SETSYS command be added to
your ARCCMDxx PARMLIB member. However our recommendation is that
you do add it.
• How can I ensure that all my eligible primary volumes are backed up
before automatic backup completes?
Include only an automatic backup start window as follows:

SETSYS AUTOBACKUPSTART(0100 0200)

The omission of the third parameter (0300) tells DFSMShsm that all
eligible primary volumes are to be backed up.
• How do I tell DFSMShsm the days on which I want automatic backup
to run?
You tell DFSMShsm the days you want automatic backup to run through
the DEFINE command:

DEFINE BACKUP(YYYYYYN CYCLESTARTDATE(1999/01/06))

If you want DFSMShsm to perform automatic backup, you must specify


this in your ARCCMDxx PARMLIB member.
This command establishes a 7-day backup cycle that starts on Monday, 6
January. Sunday is a day off for automatic backup. Specifying
CYCLESTARTDATE means that the cycle will stay the same through each
initialization of DFSMShsm. We recommend that you code your DEFINE
similar to the example. You may find that it is easier to work with a
seven-day cycle than a long string of Ys and Ns.
If you are running automatic backup every day, then we recommend that
you use a one-day backup cycle to reduce the number of partial tapes in
use.
Your string of alphabetic Ys and Ns can represent up to 31 days in the
cycle.

Chapter 2. Implementing DFSMShsm 119


• How do I specify the backup units to which I want the backup
versions to go?
DFSMShsm can use either DASD or tape as target volumes. To direct your
backup versions to tape and to a generic or esoteric that you have
previously defined, you would code the following:

SETSYS BACKUP(TAPE(ETAPE))

In this case all backups would go to tape and to the esoteric name of
ETAPE, which you can set up to include the 3480 tape units that have
automatic cartridge loaders.
To direct your backups to DASD, you would code the following:

SETSYS BACKUP(DASD)

• How do I set up an esoteric name for my devices so that DFSMShsm


can use them?
First you have to define the esoteric tape unit names to MVS during your
system I/O generation. Then you can use the DFSMShsm SETSYS
USERUNITTABLE to make them known to DFSMShsm.
For example if you had defined ACL as all 3490 devices with automatic
cartridge loaders, the command you would add to your ARCCMDxx
member or issue from the console would be:

SETSYS USERUNITTABLE(ACL:3490)

Once you have done this, DFSMShsm will honor this esoteric name
wherever you code it. Output will go to ACL drives, but input can use any
3490 drive.
• How do I limit the amount of data that is written to a cartridge-type
device?
DFSMShsm recognizes that not all tapes have the same capacity. This is
required if you use the TAPECOPY or DUPLEX capabilities for producing
a second copy of an ML2 or backup tape. DFSMShsm provides you the
flexibility to define the level of fullness that you want for your tapes. The
following command allows you to specify the percentage of fullness that
you believe is appropriate to your site

SETSYS TAPEUTILIZATION(UNITTYPE(ACL) PERCENTFULL(97))

This command limits those devices within the esoteric group of ACL to
filling 97% of the tapes. You can issue this command for as many unit

120 DFSMShsm Primer


types and esoterics that you have at your site. One SETSYS
TAPEUTILIZATION command is required for each unique unit name.
• How do I limit the data that is written to a backup tape when it is in a
tape library?
Because esoteric unit names are ignored within a tape library, you would
use the following command:

SETSYS TAPEUTILIZATION(LIBRARYBACKUP PERCENTFULL(97))

This command specifies the desired level for a backup tape stored in a
tape library.
• How do I make more than one copy of a backup tape at the same
time?
By using the duplex tape capability of DFSMShsm, you can create two
copies concurrently, The intention is for one to be kept onsite and the other
to be stored remotely. With the following command you can make the
copies concurrently

SETSYS DUPLEX(BACKUP(Y))

The DUPLEX tape function is an alternative to the TAPECOPY function.


Over time the use of DUPLEX may make the TAPECOPY function all but
forgotten in your environment.
• How can I RACF protect my backup versions by using a generic
profile?
DFSMShsm generates its own name for the tape data set that contains the
backup versions. It creates a name of the format:

prefix.BACK.Tssmmhh.user1.user2.Xyddd

Where, prefix is the UID that you specified in the DFSMShsm startup
procedure or coded in the following command:

SETSYS BACKUPPREFIX(HSM)

You can use this prefix to create a RACF generic profile that will protect all
of your backup copies. Protecting DFSMShsm resources and data sets
using RACF is discussed in 2.3, “Providing security for DFSMShsm
resources” on page 56.

Chapter 2. Implementing DFSMShsm 121


• Can I also use the BACKUPPREFIX to prevent backup copies from
being allocated to SMS-managed volumes?
Yes. You can update your ACS routines so that DFSMShsm backup copies
are assigned to non-SMS-managed volumes and volumes that
DFSMShsm has chosen.
• How can I increase the number of volume backup tasks that can run,
and what should I consider before doing so?
DFSMShsm can have up to 15 volume backup tasks running concurrently
in each processor. The following command is the one that affects the
number of backup tasks:

SETSYS MAXBACKUPTASKS(3)

In this case a maximum of three backup tasks can run concurrently.


You have to consider the number of tape units you have available and the
number of DASD volumes to back up. Each task will have its own target
tape drive and its own source DASD to process. There is no point in
specifying the maximum number of tasks (15) if you only have one tape
drive or only 5 DASD volumes to process. If you use duplex tape, you will
need two tape units for every backup task. You should also consider the
system workload at the time that you run automatic backup.
• What is spill processing?
If you are backing up to DASD and the volume becomes full, DFSMShsm
moves older backup versions of data sets to other volumes known as spill
volumes. These volumes are usually tape. We recommend that you back
up to tape, so spill processing will be available. To prevent spill process,
use the following SETSYS command:

SETSYS NOSPILL

• What happens if automatic backup comes across a data set that is in


use?
To guarantee the integrity of a data set DFSMShsm tries to serialize on
system resources to indicate whether a data set is in use or not,
recognizing the fact that a backup of a data set that may be changing is
better than no backup at all. DFSMShsm provides two options, so you can
make your own decision.
First there are those data sets that you do not expect to be in use but are
open for update. This command allows you to retry the backup of a data

122 DFSMShsm Primer


set once more after a delay of 10 minutes, and if it is still in use, back up
the data set up anyway:

SETSYS BACKUP(INUSE(RETRY(Y) DELAY(10) SERIALIZATION(PREFERRED)))

If you were to specify SERIALIZATION(REQUIRED) and the data set was


still in use the second time around, DFSMShsm would fail the backup.
The second case applies when you know for sure that the data set is going
to be open for update most of the time. Now you have a choice. You can
either use the installation-wide exit ARCBDEXT to back up the data set
without serialization or fail the operation. The SETSYS INUSE
subparameters can also apply in this situation, but the exit gives you the
flexibility to override them for a particular data set.
• What happens during automatic backup?
Automatic backup is performed in four phases:
1. Backing up the CDSs
2. Moving backup versions
3. Backing up migrated data sets
4. Backing up DFSMShsm-managed volumes
However, if you are in a multiprocessor environment, only the primary
processor performs the first three phases.
• Does this mean that I should take any special steps to ensure that I
do not impact other functions within DFSMShsm?
In a multiprocessor environment, always start automatic backup on the
primary host processor about 10 to 30 minutes before you start it on any
others, depending on the expected time to accomplish the first three
phases of automatic backup. This allows the CDSs to be backed up, and
the other processors do not have to wait for the CDSs.
Another tip is to run automatic backup before space management so that
backup versions created with the BACKDS command are moved off the
ML1 volumes where they temporarily reside.
• Is there a way in which I can back up data sets in a batch
environment?
Yes. DFSMShsm supplies a program to allow you to perform what is
known as an in line backup. The program that you execute is called
ARCINBAK. It allows you to back up data sets in the middle of a job by the
addition of a new step to the job. In the example below note that the DD
names to identify the data sets that you want backed up are identified as

Chapter 2. Implementing DFSMShsm 123


BACKnn. The data set names associated with these DDs will not be
backed up. A DD name prefix of anything other than BACK is not allowed.
The JCL in Figure 43 is an example of how to use ARCINBAK:

//JOBNAME JOB . . . ,USER=USERID,PASSWORD=USERPSWD


//STEP1 EXEC PGM=USERPGM
//SYSPRINT DD SYSOUT=A
//DSET1 DD DSN=USERID.N03.GDG(-1),DISP=OLD
//DSET2 DD DSN=USERID.N03.PSFB,DISP=OLD
//DSET3 DD DSN=USERID.N04.PSFB,DISP=OLD
//DSET4 DD DSN=USERID.N03.KSDS,DISP=OLD
/*
//STEP2 EXEC PGM=ARCINBAK
//ARCPRINT DD SYSOUT=A
//ARCSNAP DD SYSOUT=A
//* ----------------------------------------------------------------
//* BACKUP OF GDG DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//BACK01 DD DSN=*.STEP1.DSET1,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF NON-VSAM DATA SET SHOULD BE SUCCESSFUL.
//BACK02 DD DSN=*.STEP1.DSET2,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF VSAM DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//BACK03 DD DSN=*.STEP1.DSET4,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF GDG DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//BACK04 DD DSN=USERID.N01.GDG.G0001V00,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF NON-VSAM DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//BACK05 DD DSN=USERID.N01.PSFB,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF UNCATALOGED DATA SET SHOULD FAIL.
//* ----------------------------------------------------------------
//BACK06 DD DSN=USERID.N02.UNCAT,VOL=SER=VOL003,UNIT=3390,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF VSAM DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//* ----------------------------------------------------------------
//BACK07 DD DSN=USERID.N01.KSDS,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF OPEN IN-USE VSAM DATA SET SHOULD BE SUCCESSFUL.
//* ----------------------------------------------------------------
//BACK08 DD DSN=USERID.N02.KSDS,DISP=SHR
//* ----------------------------------------------------------------
//* BACKUP OF RACF PROTECTED NON-VSAM DATA SET
//* BY AN UNAUTHORIZED USER SHOULD FAIL.
//* ----------------------------------------------------------------
//BACK09 DD DSN=USERXX.N02.PSFB,DISP=SHR
/*

Figure 43. Sample ARCINBAK JCL

124 DFSMShsm Primer


• Can I manually backup individual data set to a specified output
device?
Yes. The data set backup by command function provides the following
capabilities:
- Up to 64 data sets per host can be backed up at one time.
- Data sets can be backed up directly to DASD or to tape.
If you want to backup to DASD, use statement (a). If you want to backup to
tape, use statement (b).

(a) BACKDS dsname TARGET(DASD) NOWAIT


(b) BACKDS dsname TARGET(TAPE) NOWAIT

• Can I manually backup data set using Concurrent Copy?


Yes. Providing you are authorized to use Concurrent Copy option and the
data set resides on the volume that support concurrent copy. The syntax
is:

BACKDS dsname CC(PREFERRED)


BACKDS dsname CC(REQUIRED)

- PREFERRED indicates that you want to use concurrent copy as the


backup method, if it is available. If concurrent copy is not available, the
data set will be backed up as if this keyword were not specified.
- REQUIRED indicates that concurrent copy must be used as the backup
method and that the data set backup should fail if concurrent copy is
not available.
You can also specify the STANDARD keyword, which indicates that you want
to use a standard backup method (without using concurrent copy). The
standard backup method may possibly override a management class option
to use concurrent copy.
We recommend that you specify PREFERRED rather than REQUIRED
because PREFERRED ensures that DFSMShsm backs up the CDSs even
if concurrent copy is not available. If you specify CONCURRENT
REQUIRED and concurrent copy is not available (for example, because of
a cache failure), DFSMShsm does not back up the data set.
• Can I control tape resources of data set backup command?
To control tape resources for data set backup command, use command:

SETSYS DSBACKUP(TAPE(DEMOUNTDELAY(MAXIDLETASKS(mm) MINUTES(min)

Chapter 2. Implementing DFSMShsm 125


Where MAXIDLETASKS(mm) specifies the maximum number of idle
backup tasks which are allowed to keep tape volumes allocated even after
command backup has finished using it.
MINUTES(min) specifies how long to keep idle command backup tasks
alive.
• How can I release tapes that mounted for data set backup command?
If you plan ahead, use statement (a) or (b). For unplanned activities, use
statement (c)

(a) DEFINE SWITCHTAPES(DSBACKUP)


(b) DEFINE SWITCHTAPES(DSBACKUP(hhmm))
(c) HOLD BACKUP(DSCOMMAND))

Where hhmm is the time to release tapes based on the local time where
the processor runs
• Can I use the TSO/E terminal monitor program (TMP) in a batch
environment to back up data sets?
Yes. Program IKJEFT01 sets up a TSO/E environment from which you can
issue TSO/E commands. You can create a batch job that runs the
IKJEFT01 program and issues the HBACKDS command. To back up a
data set using the HBACKDS command you must have RACF UPDATE
authority to the data set. You can specify a data set name filter as a
parameter of the HBACKDS command. You can use the CHANGEDONLY
parameter to indicate whether DFSMShsm should back up only those
specified data sets that have the changed bits on in their data set VTOC
entries. The JCL in Figure 44 gives an example of using the HBACKDS
command in batch:
//BACKUP JOB (999,POK),'HBACKDS',CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//TMP EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSPROC DD DISP=SHR,DSN=SYS1.TEST1.CLIST
//SYSTSIN DD *
HBACKDS ('MHLRES5.DSN*.**') CHANGEDONLY
/*

Figure 44. Sample JCL to issue HBACKDS command in batch

126 DFSMShsm Primer


• Can I backup all data sets in one or more volumes/storage groups?
Yes. if you want to backup all data sets in one or more volumes, use
statement (a). If you want to backup all data sets in one or more Storage
Groups, use statement (b)

(a) BACKVOL VOLUMES(volser,......,volser)


(b) BACKVOL STORAGEGROUP(sgn,......,sgn)

• Can I use aggregate backup and recovery support (ABARS) with


TSO/E terminal monitor program (TMP) in a batch environment to
back up data sets?
Yes. The ABARS component of DFSMShsm provides for data backup on a
predefined set of data, known as an aggregate with the ABACKUP
command. The ABACKUP command can be issued in the batch
environment using the IKJEFT01 program. RACF Facility class support
allows the security administrator to authorize application owners and
system programs to issue the ABACKUP command for specific
aggregates. For more information about ABARS refer to 2.8.4, “Aggregate
Backup and Recovery Support (ABARS)” on page 137.

2.8.2 Availability management settings summary


So that you do not have to wade through all the different pages associated
with this topic, we show without any explanation the storage group, storage
class, management class, and DFSMShsm ARCCMDxx PARMLIB member
changes that we implemented on our system. Use this summary as a quick
reference and memory aid.

Chapter 2. Implementing DFSMShsm 127


Figure 45 shows the Management Class Alter panel.

Panel Utilities Scroll Help


-----------------------------------------------------------------------------
MANAGEMENT CLASS ALTER Page 3 of 5
Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54PRIM

To ALTER Management Class, Specify:


Backup Attributes
Backup Frequency . . . . . . . . 1 (0 to 9999 or blank)
Number of Backup Vers . . . . . . 2 (1 to 100 or blank)
(Data Set Exists)
Number of Backup Vers . . . . . . 1 (0 to 100 or blank)
(Data Set Deleted)
Retain days only Backup Ver . . . 30 (1 to 9999, NOLIMIT or blank)
(Data Set Deleted)
Retain days extra Backup Vers . . 5 (1 to 9999, NOLIMIT or blank)
Admin or User command Backup . . BOTH (BOTH, ADMIN or NONE)
Auto Backup . . . . . . . . . . . Y (Y or N)
Backup Copy Technique . . . . . . S (P=Conc Preferred, R=Conc
Required or S=Standard)

Figure 45. Management class backup attributes

Figure 46 shows the Pool Storage Group Alter panel.

Panel Utilities Help


------------------------------------------------------------------------------
POOL STORAGE GROUP ALTER
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Group Name : SG54HSM
To ALTER Storage Group, Specify:
Description ==> STORAGE GROUP FOR DFSMSHSM DATA SET
==>
Auto Migrate . . Y (Y, N, I or P) Migrate Sys/Sys Group Name . .
Auto Backup . . Y (Y or N) Backup Sys/Sys Group Name . .
Auto Dump . . . Y (Y or N) Dump Sys/Sys Group Name . . .

Dump Class . . . ONSITE (1 to 8 characters)


Dump Class . . . OFFSITE Dump Class . . .
Dump Class . . . Dump Class . . .

Allocation/migration Threshold: High . . 95 (1-99) Low . . 80 (0-99)


Guaranteed Backup Frequency . . . . . . 7 (1 to 9999 or NOLIMIT)

ALTER SMS Storage Group Status . . . N (Y or N)

Figure 46. Storage group attributes

128 DFSMShsm Primer


Figure 47 shows the Storage Class Alter panel.
Panel Utilities Scroll Help
-------------------------------------------------------------------------------
STORAGE CLASS ALTER Page 1 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54GRT
To ALTER Storage Class, Specify:
Description ==> STORCLASS FOR GUARANTEED SPACE ALLOCATION
==>
Performance Objectives
Direct Millisecond Response . . . . 5 (1 to 999 or blank)
Direct Bias . . . . . . . . . . . . (R, W or blank)
Sequential Millisecond Response . . (1 to 999 or blank)
Sequential Bias . . . . . . . . . . (R, W or blank)
Initial Access Response Seconds . . 5 (0 to 9999 or blank)
Sustained Data Rate (MB/sec) . . . (0 to 999 or blank)
Availability . . . . . . . . . . . . S (C, P ,S or N)
Accessibility . . . . . . . . . . . P (C, P ,S or N)
Backup . . . . . . . . . . . . . . (Y, N or Blank)
Versioning . . . . . . . . . . . . (Y, N or Blank)

Figure 47. Storage Class Alter panel

Figure 48 and Figure 49 shows the DFSMShsm ARCCMDxx PARMLIB


settings that relate to automatic backup and which we will use in this book:

DEFINE BACKUP(YYYYYYN /* DIRECT DFSMSHSM TO BACKUP ELIGIBLE*/ -


CYCLESTARTDATE(1997/01/06)) /* DATA SETS DAILY TO TWO VOLUMES*/
/* (DUPLEX IS ON FOR BACKUP) STARTING*/
/* MONDAY 6TH, JANUARY 1997 */
/* NO BACKUPS ON SUNDAYS */

SETSYS /* ACTIVATE THE BACKUP, DUMP AND */ -


BACKUP(TAPE(3490)) /* RECOVERY FUNCTIONS OF DFSMSHSM */

SETSYS -
AUTOBACKUPSTART(0100 0200 0300)
/* AB START AT 0100 OR NO LATER THAN */
/* 0200, NO AB AFTER 0300 */

SETSYS /* HSM IS HLQ FOR BACKED UP DATA SETS*/ -


BACKUPPREFIX(HSM)

Figure 48. Sample ARCCMD54 parmlib member (part 1 of 2)

Chapter 2. Implementing DFSMShsm 129


SETSYS /* MAXIMUM 3 BACKUP TASKS */ -
MAXBACKUPTASKS(3) /* BACKUP ALL VOLUMES WITH AB */ -
NOSKIPABPRIMARY /* ATTRIBUTE */

SETSYS /* AB TO DASD NOT USED. SPILL TURNED */ -


NOSPILL /* OFF */

SETSYS /* MAKE INITIAL BACKUP COPIES OF DATA*/ -


INCREMENTALBACKUP(CHANGEDONLY) /* SETS DESPITE THE SETTING OF THE */
/* CHANGE BIT (DS1DSCHA) */

SETSYS /* ISSUE ARC0310A AFTER 10 MINUTES IF*/ -


MOUNTWAITTIME(10) /* NO MOUNT */

SETSYS /* USE 3490 FOR BACKUP */ -


UNITNAME(3590-1)
SETSYS /* ISSUE ARC0313A, ARC0314A, ARC0366A*/ -
TAPEINPUTPROMPT(BACKUPTAPES(YES))

SETSYS /* MAKE TWO BACKUP COPIES */ -


DUPLEX(BACKUP(Y) MIGRATION(N))

SETSYS /* CONTROL BACKDS TO DASD OR TAPE */ -


DSBACKUP (DASDSELECTIONSIZE(3000 250) DASD(TASKS(2)) -
TAPE(TASKS(2) DEMOUNTDELAY(MINUTES(60) MAXIDLETASKS(0))))

SETSYS /* UTILIZE 97% OF TAPE CARTRIDGE */ -


TAPEUTILIZATION( -
UNITTYPE(3590-1) PERCENTFUL(97))

SETSYS /* DO NOT SPAN TAPES FOR DATA SETS */ -


TAPESPANSIZE(100) /* 100 MBS OR LESS IN SIZE */ -

SETSYS /* RECYCLED TAPES RETURN TO THE */ -


TAPEDELETION( /* GLOBAL SCRATCH POOL */ -
BACKUP(SCRATCHTAPE) -
MIGRATION(SCRATCHTAPE) -
DUMP(SCRATCHTAPE))

SETSYS /* AT EOV SELECT PRIVATE SCRATCH */ -


SELECTVOLUME( /* VOLUME */ -
BACKUP(SCRATCH) -
MIGRATION(SCRATCH) -
DUMP(SCRATCH))

SETSYS /* IDRC USED WHEN 3480X */ -


TAPEHARDWARECOMPACT

SETSYS /* DO NOT MARK TAPES FULL EARLY BUT */ -


PARTIALTAPE( /* EXTEND THEM AT NEXT OPPORTUNITY */ -
BACKUP(REUSE) -
MIGRATION(REUSE))

Figure 49. Sample ARCCMD54 parmlib member (part 2 of 2)

130 DFSMShsm Primer


2.8.3 Getting started with dump availability management
The process of copying all data from a DASD volume to a tape volume is
called volume dump. The dump of the entire volume is performed by
DFSMShsm invoking DFSMSdss through an application interface. The entire
allocated space of DFSMShsm-managed DASD volumes and ML1 volumes is
dumped. Volumes not in storage groups or not ADDVOLed to DFSMShsm are
dumped only by command.

In this section we show you how to:


- Set up SMS so that automatic dump will be performed
- Specify the volumes that will be dumped
- Make more than one dump copy at a time
- Specify dump class attributes, which include stacking multiple dump
generations on a single Magstar cartridge
- Setup your dump cycle
- Use concurrent copy to dump volumes
• How do I specify the volumes to dump?
DFSMShsm needs to be told which volumes to dump and to which dump
class, through the storage group specifications.Figure 46 on page 128
shows the Pool Storage Group Alter panel that allows you to specify
whether you want automatic dump to be performed. Specifying Y tells
DFSMShsm to perform automatic dump for all volumes in the storage
group.
• What is a dump class and how is it used?
A dump class is a predefined DFSMShsm-named set of characteristics
that describe how volume dumps are managed. With the Pool Storage
Group Alter panel you can define or alter the dump classes to which the
output is directed.
The definition of the attributes is done outside ISMF, using DFSMShsm
commands.
The example shown in Figure 46 on page 128 indicates that we want to
direct our output to two dump classes: ONSITE and OFFSITE. You can
specify up to five dump classes.
• How many copies of my dumped volume can I make concurrently?
The maximum number of dump classes that you can specify is five; it is
the maximum that you can dump to concurrently with automatic dump.

Chapter 2. Implementing DFSMShsm 131


• There must be potential for a lot of dump copies to be created. How
does DFSMShsm refer to them?
DFSMShsm refers to each successive full-volume dump of a volume as a
generation. Each dump copy in a generation is associated with a different
dump class.
• Can automatic dump exploit the increased capacity of Magstar
cartridges?
Yes. This is achieved by use of the STACK option when you define your
dump class. With this option you can stack a specified number of
DFSMShsm invoked DFSMSdss physical volume dumps to a single
cartridge (or stream of cartridges) as separate files during automatic
dump processing.
• Can DFSMSdss Stand Alone services restore dumps that are stacked
on a Magstar cartridge?
Yes. The Stand-Alone services of DFSMSdss enable you to specify a FILE
parameter on the RESTORE command. The FILE parameter specifies the
relative position, from the beginning of the tape volume, where the dump
data set begins. For more information about DFSMSdss Stand-Alone
services, refer to the OS/390 V2R10.0 DFSMSdss Storage Administration
Reference, SC35-0394. This function is available at DFSMS/MVS 1.4 level
or later.
• What if DFSMShsm encounters an error while writing to one of the
dump copies?
Should this happen, DFSMSdss discontinues writing to dump copies on
which errors occur. DFSMSdss creates the multiple copies and continues
its full-volume dump process as long as one output copy is good.
DFSMShsm then discards the contents of only the bad copies and issues
an appropriate message to indicate the type of failure.
If all copies fail, the full-volume dump is failed.
• How do I specify the starting and ending times for automatic dump?
You have to update your ARCCMDxx PARMLIB member with a statement
similar to this:

SETSYS AUTODUMPSTART(0400 0500 0600)

In this example automatic dump will start between 4 a.m. and 5 a.m. and
will not process any volumes after 6 a.m.

132 DFSMShsm Primer


• How do I make sure that DFSMShsm dumps all volumes?
If you were to code:

SETSYS AUTODUMPSTART(0400 0500)

DFSMShsm would not stop automatic dump processing until all volumes
had been dumped. The key is to omit the third parameter and just specify
your automatic dump start window.
• Can I adjust the number of tracks that are read for each EXCP in the
same way that I can for DFSMSdss?
If you are familiar with DFSMSdss, you know that you can choose the
DASD I/O buffering technique to use, using the following command:

SETSYS DUMPIO(n,m)

Where, n indicates the DFSMSdss buffering technique for physical dump


(BACKVOL with DUMP parameter or during automatic dump), and m
indicates the value used for DFSMSdss logical dump when DFSMShsm
uses DFSMSdss to move a data set.
The values for n and m are:
1 DFSMSdss reads one track at a time.
2 DFSMSdss reads two tracks at a time.
3 DFSMSdss reads three tracks at a time.
4 DFSMSdss reads one cylinder at a time.
The settings that you specify for this parameter will affect your real and
virtual storage requirements. Before you decide to specify anything other
than the default for n, which is 1, or the default for m, which is 4, we
recommend that you read the OS/390 V2R10.0 DFSMShsm
Implementation and Customization Guide , GC35-0385.
• How do I specify that I want concurrent copy to be used for volume
dumps?
If you have concurrent copy capability and want it used for volume dumps,
specify this command which causes DFSMSdss to use concurrent copy
when performing full-volume dumps:

SETSYS VOLUMEDUMP(CC)

Chapter 2. Implementing DFSMShsm 133


• What is the maximum number of dump tasks that I can run
concurrently and how do I specify it?
DFSMShsm can run up to 32 concurrent dump tasks per host. This does
not limit the number of dump copies as up to five dump copies can be
made under each dump task. This sample command to add to your
ARCCMDxx member allows up to three dump tasks to run concurrently:

SETSYS MAXDUMPTASKS(3)

• What should I take into consideration when specifying the number of


dump tasks?
You have to consider the amount of tape units that you expect to have
available during automatic dump processing. To determine the amount of
tape drives needed, multiply the number of dump classes for each volume
by the number of dump tasks. If this number exceeds the number of tape
drives that you expect to have available, you have to lower your
MAXDUMPTASKS parameter. If this number is below the number of tape
drives that you expect to have available, you can raise your
MAXDUMPTASKS parameter.
• How can I specify the days on which I would like automatic dump to
occur?
Use the DFSMShsm DEFINE DUMPCYCLE command:

DEFINE DUMPCYCLE (NNNNNNY CYCLESTARTDATE(2000/01/06))

This command establishes a 7-day dump cycle that starts on Monday, 6th
of January. Automatic dump will run only on Sunday. Specifying
CYCLESTARTDATE means that the cycle will stay the same through each
initialization of DFSMShsm. We recommend that you code your DEFINE
similar to the example. You may find that it is easier to work with a
seven-day cycle than a long string of Ys and Ns. This command can be
added to your ARCCMDxx PARMLIB member.
• Is that all I need to do to let automatic dump take place?
No. You must now define at least one dump class so that automatic dump
has somewhere to direct the copies.
• How do I define a dump class and what are the attributes I can
associate with it?
You create dump classes by using the DFSMShsm DEFINE DUMPCLASS
command. As there are a lot of considerations that your installation may
want to take into account, we briefly explain what you can achieve on
dump class definition, the parameters that you can specify, and the

134 DFSMShsm Primer


DFSMShsm default (highlighted) on the DEFINE DUMPCLASS command.
Later we will show you a sample definition that we will use throughout this
book.
For our examples we define a dump class called ONSITE. With the
DEFINE DUMPCLASS command you can specify:
• The name of the dump class:

DEFINE DUMPCLASS(ONSITE)

• Whether dump volumes are available for reuse when invalidated:

DEFINE DUMPCLASS(ONSITE AUTOREUSE | NOAUTOREUSE)

• Whether data set restore is allowed from a full-volume dump copy:

DEFINE DUMPCLASS(ONSITE DATASETRESTORE | NODATASETRESTORE)

• That a dump be taken only on a particular day in the dump cycle:

DEFINE DUMPCLASS(ONSITE DAY(day))

Note
If DAY is not specified, and the FREQUENCY parameter is met, and
it is a Y day in the dump cycle, the volume will be dumped.

• That a particular dump class be disabled for output only:

DEFINE DUMPCLASS(ONSITE DISABLE)

Note
Issuing the DEFINE command without specifying DISABLE will
enable a dump class.

• The disposition of dump volumes:

DEFINE DUMPCLASS(ONSITE DISPOSITION(‘SUNDAY DUMP IS GOOD’))

Note
This will insert the disposition statement into message ARC0637I,
which is issued for each successful dump copy.

• The minimum number of days between volume dumps to a class:

DEFINE DUMPCLASS(ONSITE FREQUENCY(days | 7))

Chapter 2. Implementing DFSMShsm 135


• Whether the data set changed indicator is to be reset by DFSMSdss for
each data set following a full-volume dump:

DEFINE DUMPCLASS(ONSITE RESET | NORESET)

Note
Do not use RESET if you want incremental backup to make a
backup version. RESET is not used if the DASD volume is also
being managed by DFSMShsm backup.

• When the data on the dump volumes becomes invalid:

DEFINE DUMPCLASS(ONSITE RETENTIONPERIOD(days | NOLIMIT))

• How many dump copies DFSMShsm should place on a dump volume


assigned during one invocation of automatic dump:

DEFINE DUMPCLASS(ONSITE STACK(nn))

Note
Where nn is a value from 1 to 99

• The expiration date to use in the tape header label:

DEFINE DUMPCLASS(ONSITE TAPEXPIRATIONDATE(yyyyddd | yyddd))

Note
This setting is effective only if you have specified a SETSYS
command of EXPIRATION or EXPIRATIONINCLUDE. The setting of
this may be meaningful to certain tape management systems, and
some values may mean never expire.

• The type of tape unit to use for the dump tapes:

DEFINE DUMPCLASS(ONSITE UNIT(unittype))

Note
You can use a generic name or an esoteric name defined with the
SETSYS USERUNITTABLE command in place of unittype.

136 DFSMShsm Primer


• The number of generations for which copies of the VTOC of dumped
volumes will be kept:

DEFINE DUMPCLASS(ONSITE VTOCCOPIES(copies | 2))

• Can you show an example of the DEFINE DUMPCLASS command?


The examples that we show here are those that we use in this book. We
have two dump classes defined: ONSITE and OFFSITE.
The definitions for ONSITE are:

DEFINE DUMPCLASS(ONSITE UNIT(3590-1) -


RETPD(15) AUTOREUSE -
DATASETRESTORE VTOCCOPIES(4) -
DAY(7) -
DISPOSITION('ONSITE DUMP SUNDAY'))

Note
In our ONSITE dump class we have specified AUTOREUSE and
NORESET (default value). If SETSYS
TAPEDELETION(SCRATCHTAPE) is in effect, AUTOREUSE has no
meaning. The use of RESET subparameter can cause data integrity
problems for Fast Subsequent Migration.

The definitions for OFFSITE are in Figure 50.


DEFINE DUMPCLASS(OFFSITE UNIT(3590-1) -
FREQUENCY(7) RETPD(356) -
NOAUTOREUSE -
NODATASETRESTORE NORESET -
DISPOSITION('OFFSITE DUMP') -
VTOCCOPIES(0))

Figure 50. OFFSITE dump class definitions

2.8.4 Aggregate Backup and Recovery Support (ABARS)


ABARS is a component of DFSMShsm that performs data backup and
recovery processes on a predefined set of data known as an aggregate.

With DFSMShsm Version 2 Release 10, ABARS extends its support of user
tapes to support data sets that reside on user tapes that have a block size
greater than 32 kilobytes (KB).

Chapter 2. Implementing DFSMShsm 137


In this section we show you how to:
- Define an aggregate group
- Define a selection data set
- Define an instruction data set
- Set your ABARS-related SETSYS commands
- Perform an aggregate backup (ABACKUP)
- Perform an aggregate recover (ARECOVER)
• What is an aggregate group and how do I define one?
An aggregate group identifies through ISMF your selection data set name,
instruction data set name, and the management control information
required to perform ABACKUP.
Figure 51 shows the ISMF Aggregate Group Application Selection panel
that is displayed after selecting option 9 from the ISMF main entry panel

AGGREGATE GROUP APPLICATION SELECTION


Command ===>

To Perform Aggregate Group Operations, Specify:


CDS Name . . . . . . . . 'SYS1.SMS.SCDS'
(1 to 44 Character Data Set Name or 'Active')
Aggregate Group Name . . PAY1 (for Aggregate Group List, fully or
Partially Specified or * for All)
Select one of the following Options:
3 1. List - Generate a list of Aggregate Groups
2. Display - Display an Aggregate Group
3. Define - Define an Aggregate Group
4. Alter - Alter an Aggregate Group
5. Abackup - Backup an Aggregate Group
6. Arecover - Recover an Aggregate Group

If List Option is Chosen,


Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

Use ENTER to Perform Selection;


Use HELP Command for Help; Use END Command to Exit.

Figure 51. ISMF Aggregate Group Application Selection panel

We have chosen to call our aggregate group PAY1.


Once you have selected a name for your aggregate group and pressed
Enter, you are presented with the panels shown in Figure 52 and
Figure 53.

138 DFSMShsm Primer


.
Panel Utilities Scroll Help
-----------------------------------------------------------------------------
AGGREGATE GROUP DEFINE Page 1 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Aggregate Group Name : PAY1

To DEFINE Aggregate Group, Specify:


Description ==> PAYROLL DATA
==>

Backup Attributes
Number of Copies . . . . . . . 1 (1 to 15)
Management Class Name . . . . . MC54NMIG (1 to 8 characters, to be
defined in current SCDS)

Output Data Set Name Prefix . . . YCJABARS


(1 to 33 Characters)
Account . . . . . . . . . . . . .
(1 to 32 Characters)

Figure 52. Aggregate Group Define panel

AGGREGATE GROUP ALTER Page 2 of 2


Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Aggregate Group Name : PAY1
To Edit a Data Set, Specify Number . . 6 (1, 2, 3, 4, 5, or 6)
Selection Data Sets: (1 to 44 characters)
1 ===> 'ABARS.PAY1.SELECT'
Member Name ===> (1 to 8 characters)
2 ===>
Member Name ===> (1 to 8 characters)
3 ===>
Member Name ===> (1 to 8 characters)
4 ===>
Member Name ===> (1 to 8 characters)
5 ===>
Member Name ===> (1 to 8 characters)

Instruction Data Set: (1 to 44 characters)


6 ===> 'ABARS.PAY1.INSTRUCT'

Figure 53. Aggregate Group Alter panel

Chapter 2. Implementing DFSMShsm 139


In Figure 52, you can see that we have chosen to describe our aggregate
group, PAY1, as PAYROLL DATA, make two copies of output files, take our
management class definitions from management class MC54NMIG, and
use ABARS.PAY1 as the data set prefix for the output data sets created by
ABACKUP.
In Figure 53 we have chosen to call our selection data set
YCJABARS.ABARS.PAY1.SELECT and our instruction data set
YCJABARS.ABARS.PAY1.INSTRUCT.
• What is a selection data set and does ABARS use it?
A selection data set lists the names of the data sets to be processed
during ABACKUP. You can create a selection data set by means of the
Aggregate Group Alter panel, or you can predefine one yourself. Here we
show you how to set up a basic aggregate with an INCLUDE statement.
However, there are other parameters that you can specify in your selection
data set. The OS/390 V2R10.0 DFSMShsm Storage Administration Guide,
SC35-0388 comprehensively details these additional optional parameters:
- EXCLUDE
- ACCOMPANY
- ACCOMPANYEXCLUDE
- ALLOCATE
- ALLOCATEEXCLUDE
Our selection data set, which we created from the ISMF panels, is called
ABARS.PAY1.SELECT and has the following INCLUDE statement

INCLUDE(MHLRES5.PAY1.**)

ABACKUP uses this statement and selects cataloged data sets that have
a high-level qualifier of MHLRES5 and a second-level qualifier of PAY1.
• What is an instruction data set and how is it used?
The instruction data set is an optional data set that is free-form text meant
to include information necessary in assisting with the recovery process at
the recovery site.
You may find it useful to include the following types of information:
- SMS attributes
- Description of the application
- RACF environment
- Software requirements
- Hardware requirements
- Unique application dependencies

140 DFSMShsm Primer


Our instruction data set, ABARS.PAY1.INSTRUCT, contains the following
basic information:

THIS IS THE PAYROLL COLLECTION OF DATA SETS.


ABACKUP WAS FROM SMS 2.10
RESTORE TO 2.10 SYSTEM ONLY.

• Are there any changes that I have to make to the management


classes to use ABARS?
In our sample management class, MC54NMIG, we specified our attributes
for ABACKUP as shown in Figure 54:.

MANAGEMENT CLASS ALTER Page 5 of 5


Command ===>

SCDS Name . . . . . . : SYS1.SMS.SCDS


Management Class Name : MC54NMIG

To ALTER Management Class, Specify:


AGGREGATE Backup Attributes:
# Versions . . . . . . . . 4 (1 to 9999, NOLIMIT or blank)
Retain Only Version . . . 5 (1 to 9999, NOLIMIT or blank)
Unit . . . . . . . . . . D (D=days, W=weeks, M=months, Y=years or
blank)
Retain Extra Versions . . 5 (1 to 9999, NOLIMIT or blank)
Unit . . . . . . . . . . D (D=days, W=weeks, M=months, Y=years or
blank)
Copy Serialization . . . . C (C=continue, F=fail or blank)
Abackup Copy Technique . . S (P=Conc Preferred, R=Conc Required or
S=Standard)

Use ENTER to Perform Verification; Use UP Command to View previous Panel;


Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.

Figure 54. Management Class Alter panel 5

For this management class we asked that:


- The maximum number of aggregate versions kept is 4.
- The most recent backup version of an aggregate group is kept for 5
days.
- The next most recent backup version of an aggregate group is kept for
5 days.
- ABACKUP should continue if an enqueue failure is encountered.
- Concurrent copy is not used to perform ABACKUP.

Chapter 2. Implementing DFSMShsm 141


• Do I need to make any changes to my ARCCMDxx member for ABARS
use?
Consider adding the parameters that you need to your ARCCMDxx
PARMLIB member. Figure 55 is a sample of the definitions that we used
on our system:

SETSYS /* RECOVER DATA SET AGGREGATES TO */ -


ARECOVERUNITNAME(3590-1) /* 3590-1 TAPE DEVICES. */

SETSYS /* START ONLY ONE SECONDARY ADDRESS */ -


MAXABARSADDRESSSPACE(1) /* SPACE FOR BACKING UP AND */
/* RECOVERING AGGREGATED DATA SETS */

SETSYS /* START THE SECONDARY ADDRESS */ -


ABARSPROCNAME(DFHSMABR) /* SPACE WITH THE STARTUP PROCEDURE */
/* NAMED DFHSMABR. */

SETSYS /* WRITE THE ABARS ACTIVITY LOG TO */ -


ABARSACTLOGTYPE(DASD) /* DASD */

SETSYS /* LOG ALL ABARS MESSAGES */ -


ABARSACTLOGMSGLVL(FULL)
SETSYS /* RECOVER ML2 DATA SETS TO TAPE. */ -
ARECOVERML2UNIT(3590-1)

SETSYS /* USE 90% OF THE AVAILABLE TAPE FOR */ -


ARECOVERPERCENTUTILIZED(090) /* ARECOVERY TAPES. */

SETSYS /* BACKUP AGGREGATES TO 3590-1 */ -


ABARSUNITNAME(3590-1) /* DEVICES.

SETSYS /* BACKUP ABARS DATA SETS WITH TWO */ -


ABARSBUFFERS(2) /* DATA MOVEMENT BUFFERS. */

SETSYS /* SPECIFY ABARS TO STACK THE */ -


ABARSTAPES(STACK) /* ABACKUP OUTPUT ONTO A MINIMUM */
/* NUMBER OF TAPE VOLUMES */
SETSYS /* ABARS ACTIVITY LOG WILL NOT BE */ -
ABARSDELETEACTIVITY(N) /* AUTOMATICALLY DELETED DURING */
/* ABARS PROCESSING */

SETSYS /* SET PERFORMANCE OF BACKING UP */ -


ABARSOPTIMIZE(3) /* LEVEL 0 DASD DATASETS */

SETSYS /* TARGET DATASET IS TO BE ASSIGNED */ -


ARECOVERTGTGDS(SOURCE) /* SOURCE STATUS */

SETSYS /* ALLOWS RECOVERY OF A LEVEL 0 */ -


ABARSVOLCOUNT(ANY) /* DASD DATA SET UP TO 59 VOLUMES */

Figure 55. Sample ABARS definitions

We do not go into detail as to what each of these options allows. Our intent
is to show the considerations that you need to take into account should
you decide that you want to implement ABARS.

142 DFSMShsm Primer


• Do I need to start an ABARS secondary address space?
No. However, if you want to use ABARS, you must define a procedure that
DFSMShsm will use and must be added to SYS1.PROCLIB. You do not
have to issue an MVS START command for (in our case) the procedure
DFHSMABR. DFSMShsm schedules the start internally when an
ABACKUP or ARECOVER task starts. For more information about the
ABARS procedure refer to 2.2.2, “ABARS” on page 42.
• How do I perform an ABACKUP?
As long as you have first specified the data sets that you want to back up
in your selection data set, you can use the DFSMShsm ABACKUP
command or ISMF panels to back up the data sets to tape.
In the following figures we show how to use the ISMF panels to perform
ABACKUP. In Figure 56 we select option 5 to drive our ABACKUP.

AGGREGATE GROUP APPLICATION SELECTION


Command ===>

To Perform Aggregate Group Operations, Specify:


CDS Name . . . . . . . . 'ACTIVE'
(1 to 44 Character Data Set Name or 'Active')
Aggregate Group Name . . PAY1 (for Aggregate Group List, fully or
Partially Specified or * for All)
Select one of the following Options:
5 1. List - Generate a list of Aggregate Groups
2. Display - Display an Aggregate Group
3. Define - Define an Aggregate Group
4. Alter - Alter an Aggregate Group
5. Abackup - Backup an Aggregate Group
6. Arecover - Recover an Aggregate Group

If List Option is Chosen,


Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

Figure 56. ABACKUP entry panel

You are prompted to specify ACTIVE for the CDS name for the ABACKUP.
In Figure 57, we specify the following for the ABACKUP command for
aggregate group PAY1:
- 3590-1 as the unit name for the ABACKUP output files
- Processing option of 2 to create backup copies of the aggregate data
sets
Note
If we had chosen option 1, Verify would determine whether any
errors exist that would prevent successful completion of ABACKUP.

Chapter 2. Implementing DFSMShsm 143


- We do not want to wait for ABACKUP to complete before we are
returned to ISMF.
- Output files will be stacked onto the minimum number of tapes.
- The default SETSYS ABARSOPTIMIZE value will be taken.
- Data sets will not be deleted after they have been processed.
- The list of data sets that have been backed up will be written to a data
set called MHLRES5.ABARS.
- We want to process the data sets wherever they reside.
The SETSYS ABARSKIP parameter is used to specify which type of data
sets that ABACKUP processing should skip. If a data set in aggregate
group is on a volume or volumes that are protected by any remote copy
method (PPRC or XRC) and you do not want them to be processed by
ABACKUP then you specify:

SETSYS ABARSKIP(PPRC)
SETSYS ABARSKIP(XRC)

AGGREGATE GROUP BACKUP


Command ===>

CDS Name : ACTIVE

Aggregate Group Name . . PAY1

Unit Name . . . . . . . . 3590-1


Processing Option . . . . 2 (1=Verify, 2=Execute)
Wait for Completion . . . N (Y or N)
Stack / Nostack . . . . . S (S=STACK, N=NOSTACK
or blank)
Optimize . . . . . . . . (1 to 4 or blank)
Delete Data Sets After Abackup . . N (Y or N)

Filter Output Data Set Name (1 to 44 Characters)


===> MHLRES5.ABARS

Process only L0 ML1 ML2 USERTAPE

Figure 57. Aggregate Group Backup panel

Figure 58 shows the ABACKUP command with the options we specified in


Figure 57. We can submit the ABACKUP job by selecting option 1, which
will schedule an ABACKUP task.

144 DFSMShsm Primer


AGGREGATE GROUP BACKUP
Command ===>

DFHSM Command and Processing Option:


NOWAIT ABACKUP PAY1 UNIT(3590-1) EXECUTE STACK
FILTEROUTPUTDATASET('MHLRES5.ABARS')

Enter 1 to Submit DFHSM ABACKUP COMMAND


Enter 2 to Save Generated ABACKUP PARAMETERS

Select Option . . 1 (1=SUBMIT, 2=SAVE)

Figure 58. ABACKUP ISMF panel 2

• How do I check whether ABACKUP has been successful?


The activity log on DASD contains all the messages relating to ABARS.
On our system the data set name that is generated is:

HSMACT.H1.ABACKUP.PAY1.D98210.T133233

You can see that the aggregate name that is being backed up is included
as a qualifier for easy identification.
• What does the output that is generated look like?
The output to the data set includes the DFSMSdss JCL and job log, the
data sets that have been successfully backed up and, if any have failed, an
indication as to the reason.
The output that is written to the data set looks like this:

Chapter 2. Implementing DFSMShsm 145


PAGE 0001 DFSMSHSM 1.4.0 DATA FACILITY HIERARCHICAL STORAGE MANAGER 98.210
13:32
ARC6054I AGGREGATE BACKUP STARTING FOR AGGREGATE GROUP PAY1, AT 13:32:33, STARTED
TASK = ABARS54.ABAR0132
ARC6030I ACTIVITY LOG FOR AGGREGATE GROUP PAY1 WILL BE ROUTED TO
HSMACT.H1.ABACKUP.PAY1.D98210.T133233
ARC6004I 0061 ABACKUP PAGE 0001 5695-DF175 DFSMSDSS V1R4.0 DATA SET SERVICES
1998.210 13:39
ARC6004I 0061 ABACKUP ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC
CLASS CHK DEFAULT TO YES
ARC6004I 0061 ABACKUP ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT
DEFAULT TO †
ARC6004I 0061 ABACKUP DUMP DATASET(FILTERDD(SYS00006)) -
ARC6004I 0061 ABACKUP OUTDDNAME(SYS00004, -
ARC6004I 0061 ABACKUP SYS00005 -
ARC6004I 0061 ABACKUP ) OPTIMIZE(3) SPHERE -
ARC6004I 0061 ABACKUP ALLDATA(*) FORCECP(0) -

ARC6004I 0061 ABACKUP SHARE TOLERATE(ENQFAILURE)


ARC6004I 0061 ABACKUP ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO
COMMAND 'DUMP '
ARC6004I 0061 ABACKUP ADR109I (R/I)-RI01 (01), 1998.210 13:39:19 INITIAL SCAN OF
USER CONTROL STATEMENTS COMPLETED.
ARC6004I 0061 ABACKUP ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR
THIS TASK
ARC6004I 0061 ABACKUP ADR006I (001)-SETUP(01), 1998.210 13:39:19 EXECUTION BEGINS
ARC6075I TAPE VOLUME M195AX SUCCESSFULLY ADDED TO ABARS RACF TAPE VOLUME SET
ARC6075I TAPE VOLUME M195AV SUCCESSFULLY ADDED TO ABARS RACF TAPE VOLUME SET
ARC6004I 0061 ABACKUP ADR801I (001)-DTDSC(01),
ARC6004I 0061 ABACKUP DATA SET FILTERING IS COMPLETE. 11 OF 11 DATA SETS WERE
SELECTED: 0 FAILED SERIALIZATION AND 0
ARC6004I 0061 ABACKUP FAILED FOR
ARC6004I 0061 ABACKUP OTHER REASONS.
ARC6004I 0061 ABACKUP ADR454I (001)-DTDSC(01), THE FOLLOWING DATA SETS WERE
SUCCESSFULLY PROCESSED
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARYA
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY1
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY2
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY3
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY4
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY5
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY6
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY7
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY8
ARC6004I 0061 ABACKUP MHLRES5.PAY1.SALARY9
ARC6004I 0061 ABACKUP ADR013I (001)-CLTSK(01), 1998.210 13:40:26 TASK COMPLETED WITH
RETURN CODE 0000
ARC6004I 0061 ABACKUP ADR012I (SCH)-DSSU (01),

146 DFSMShsm Primer


ARC6004I 0061 ABACKUP 1998.210 13:40:26 DFSMSDSS PROCESSING COMPLETE. HIGHEST RETURN
CODE IS 0000
ARC6004I 0061 ABACKUP PAGE 0001 5695-DF175 DFSMSDSS V1R4.0 DATA SET SERVICES
1998.210 13:40
ARC6004I 0061 ABACKUP ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC
CLASS CHK DEFAULT TO YES
ARC6004I 0061 ABACKUP ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT
DEFAULT TO †
ARC6004I 0061 ABACKUP DUMP DATASET(INCLUDE( -
ARC6004I 0061 ABACKUP MHLRES5.ABARS.PAY1.INSTRUCT , -
ARC6004I 0061 ABACKUP HSMACT.H1.ABACKUP.PAY1.D98210.T133233 )) -
ARC6004I 0061 ABACKUP OUTDDNAME(SYS00004, -
ARC6004I 0061 ABACKUP SYS00005 -
PAGE 0002 DFSMSHSM 1.4.0 DATA FACILITY HIERARCHICAL STORAGE MANAGER 98.210
13:32
ARC6004I 0061 ABACKUP ) OPTIMIZE(3) SPHERE -
ARC6004I 0061 ABACKUP ALLDATA(*) FORCECP(0) -
ARC6004I 0061 ABACKUP SHARE TOLERATE(ENQFAILURE)
ARC6004I 0061 ABACKUP ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO
COMMAND 'DUMP '
ARC6004I 0061 ABACKUP ADR109I (R/I)-RI01 (01), 1998.210 13:40:31 INITIAL SCAN OF
USER CONTROL STATEMENTS COMPLETED.
ARC6004I 0061 ABACKUP ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR
THIS TASK
ARC6004I 0061 ABACKUP ADR006I (001)-SETUP(01), 1998.210 13:40:31 EXECUTION BEGINS
ARC6004I 0061 ABACKUP ADR801I (001)-DTDSC(01),
DATA SET FILTERING IS COMPLETE. 2 OF 2 DATA SETS WERE SELECTED: 0 FAILED
SERIALIZATION AND 0 FAILED FOR
ARC6004I 0061 ABACKUP OTHER REASONS.
ARC6004I 0061 ABACKUP ADR454I (001)-DTDSC(01), THE FOLLOWING DATA SETS WERE
SUCCESSFULLY PROCESSED
ARC6004I 0061 ABACKUP MHLRES5.ABARS.PAY1.INSTRUCT
ARC6004I 0061 ABACKUP HSMACT.H1.ABACKUP.PAY1.D98210.T133233
ARC6004I 0061 ABACKUP ADR013I (001)-CLTSK(01), 1998.210 13:40:47 TASK COMPLETED WITH
RETURN CODE 0000
ARC6004I 0061 ABACKUP ADR012I (SCH)-DSSU (01),
1998.210 13:40:47 DFSMSDSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000
ARC6382I ACTIVITY LOG HSMACT.H1.ABACKUP.PAY1.D98210.T133233 HAS BEEN SUCCESSFULLY
BACKED UP
ARC6382I INSTRUCTION DATA SET MHLRES5.ABARS.PAY1.INSTRUCT HAS BEEN SUCCESSFULLY
BACKED UP
ARC6369I STORAGE REQUIREMENTS FOR AGGREGATE GROUP PAY1 ARE: L0=11K, ML1=0, ML2=0,
TOTAL=11K

Chapter 2. Implementing DFSMShsm 147


ARC6061I VOLUMES USED FOR CONTROL FILE ABARS.PAY1.C.C01V0001 DURING AGGREGATE
BACKUP FOR AGGREGATE GROUP PAY1 ARE:
M195AX
ARC6060I VOLUMES USED FOR DATA FILE ABARS.PAY1.D.C01V0001 DURING AGGREGATE
BACKUP FOR AGGREGATE GROUP PAY1 ARE:
M195AX
ARC6071I VOLUMES USED FOR INSTRUCTION/ACTIVITY LOG FILE ABARS.PAY1.I.C01V0001
DURING AGGREGATE BACKUP FOR AGGREGATE
GROUP PAY1 ARE:
M195AX
ARC6061I VOLUMES USED FOR CONTROL FILE ABARS.PAY1.C.C02V0001 DURING AGGREGATE
BACKUP FOR AGGREGATE GROUP PAY1 ARE:
M195AV
ARC6060I VOLUMES USED FOR DATA FILE ABARS.PAY1.D.C02V0001 DURING AGGREGATE
BACKUP FOR AGGREGATE GROUP PAY1 ARE:
M195AV
ARC6071I VOLUMES USED FOR INSTRUCTION/ACTIVITY LOG FILE ABARS.PAY1.I.C02V0001
DURING AGGREGATE BACKUP FOR AGGREGATE
GROUP PAY1 ARE:
M195AV
ARC6055I AGGREGATE BACKUP HAS COMPLETED FOR AGGREGATE GROUP PAY1, AT 13:40:52,
RETCODE = 000

• If anything should happen to this aggregate group of data sets, how


do I perform an ARECOVER?
We show you how to perform a basic ARECOVER using aggregate group
PAY1. We take all the defaults and specify the minimum amount of
information to show you the ease with which ABARS allows a recovery
operation to take place.
In our case we are performing an ARECOVER on the assumption that we
have lost all of our data sets that had a qualifier of MHLRES5.PAY1. We
show only the panels that are related to our operation, not all of the
possible combinations that you can specify on an ARECOVER operation.
The redbook DFSMShsm ABARS and Mainstar Solutions, SG24-5089,
offers comprehensive coverage and suggestions about ABARS as does
the manual OS/390 V2R10.0 DFSMShsm Storage Administration Guide,
SC35-0388.
We now look at the panel flow that allows you to perform an ARECOVER
of aggregate group PAY1.
In Figure 59, select option 6 to get into the ARECOVER ISMF panels.

148 DFSMShsm Primer


AGGREGATE GROUP APPLICATION SELECTION
Command ===>

To Perform Aggregate Group Operations, Specify:


CDS Name . . . . . . . . 'ACTIVE'
(1 to 44 Character Data Set Name or 'Active')
Aggregate Group Name . . PAY1 (for Aggregate Group List, fully or
Partially Specified or * for All)
Select one of the following Options:
6 1. List - Generate a list of Aggregate Groups
2. Display - Display an Aggregate Group
3. Define - Define an Aggregate Group
4. Alter - Alter an Aggregate Group
5. Abackup - Backup an Aggregate Group
6. Arecover - Recover an Aggregate Group

If List Option is Chosen,


Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

Figure 59. Arecover option on Aggregate Group Application Selection panel

You are prompted to specify ACTIVE for the CDS name for the
ARECOVER.
The entries that we made in Figure 60 for our ARECOVER indicate:
- The aggregate group name PAY1
- That we want data sets recovered to ML1 DASD to be backed up next
time automatic backup runs
- That migrated data sets are recovered to ML1 DASD
- No rename of data sets is to take place
- No conflict resolution of data set names is to take place

Chapter 2. Implementing DFSMShsm 149


AGGREGATE GROUP RECOVER Page 1 of 7
Command ===>

Abackup Control Dataset . . ABARS.PAY1.C.C01V0001


(1 to 44 Characters)
Xmit . . . . . . . . . . . N (Y or N)
Stack / Nostack . . . . . (S=STACK, N=NOSTACK or blank)

Aggregate Group Name . . . . PAY1


Date . . . . . . . . . . . (yyyy/mm/dd)
Version . . . . . . . . . (1 to 9999)

Processing Option . . . . . 3 (1=Prepare, 2=Verify, 3=Execute)


Wait for Completion . . . . N (Y or N)
Target GDG Data Set Status (A=ACTIVE, D=DEFERRED, R=ROLLEDOFF,
S=SOURCE or blank)
Volume Count . . . . . . . . (A=ANY, N=NONE or blank)
Recover Instruction Data Set . . N (Y or N)
Recover Activity Log . . . . . . N (Y or N)

Figure 60. Aggregate Group Recover panel (Page 1 of 7)

The entries we made in Figure 60 for our ARECOVER indicate:


- Our control data set name
- That our ABACKUP files were not transmitted to the ARECOVER site
- A processing option of execute
- That we do not want to wait for ARECOVER to complete before we are
returned to ISMF
- We do not want the instruction data set or activity log to be recovered
Once we have completed the Aggregate Group Recover, Page 1 of 7
panel, we are presented with Page 2 of 7 (Figure 61).
Figure 62 shows the ARECOVER JCL that is generated as a result of the
options that we have specified. As we want to submit this ARECOVER
JCL, we select option 2.

150 DFSMShsm Primer


AGGREGATE GROUP RECOVER Page 2 of 7
Command ===>

AGGREGATE GROUP NAME: PAY1

Model Entity . . . .
(1 to 44 Characters)
Target Unit Name . .

Target Utilization Percentage . . (1 to 100)

Backup Migrated Data Sets . . . . Y (Y or N)


New Migration Level . . . . . . . 1 (1=ML1, 2=ML2, 3=SOURCELEVEL)

Rename All to High Level Qualifier . . (1 to 8 characters)


Rename Selected Data Sets . . . . . . . N (Y or N)

Specify Conflict Resolution Option . . N (Y or N)

Figure 61. Aggregate Group Recover panel (Page 2 of 7)

AGGREGATE GROUP RECOVER Page 7 of 7


Command ===>

DFHSM Command and Processing Option:


NOWAIT ARECOVER AGGREGATE(PAY1)
EXECUTE
MIGRATEDDATA(ML1)

Enter 1 to Submit DFHSM ARECOVER COMMAND


Enter 2 to Save Generated ARECOVER PARAMETERS

Select Option . . 2 (1=SUBMIT, 2=SAVE)

Figure 62. Aggregate Group Recover panel (Page 7 of 7)

• How do I know whether the ARECOVER has been successful?


In much the same way as with ABACKUP, you are provided with an
ARECOVER activity log. In our example the generated name is:

HSMACT.H1.ARECOVER.PAY1.D98210.T152431

The output that is written to the data set looks like this:

Chapter 2. Implementing DFSMShsm 151


PAGE 0001 DFSMSHSM 1.4.0 DATA FACILITY HIERARCHICAL STORAGE MANAGER 98.210
15:24
ARC6102I AGGREGATE RECOVERY STARTING USING CONTROL FILE DATA SET
ABARS.PAY1.C.C01V0001, AT 15:24:31,
STARTED TASK = ABARS54.ABAR0130
ARC6030I ACTIVITY LOG FOR CONTROL FILE DATA SET ABARS.PAY1.C.C01V0001 WILL BE ROUTED
TO
HSMACT.H1.ARECOVER.PAY1.D98210.T152431
ARC6115I AGGREGATE RECOVERY USING CONTROL FILE DATA SET ABARS.PAY1.C.C01V0001 WILL
USE VOLUMES
M195AX
ARC6162I ARPOOL NOT FOUND FOR AGGREGATE GROUP PAY1 USING CONTROL FILE DATA SET
ABARS.PAY1.C.C01V0001 - ARECOVER WILL
CONTINUE
ARC6004I 001D ARECOVER PAGE 0001 5695-DF175 DFSMSDSS V1R4.0 DATA SET SERVICES
1998.210 15:27
ARC6004I 001D ARECOVER ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC
CLASS CHK DEFAULT TO YES
ARC6004I 001D ARECOVER RESTORE DATASET(FILTERDD(SYS00004)) -
ARC6004I 001D ARECOVER INDDNAME(SYS00002) -
ARC6004I 001D ARECOVER SPHERE -
ARC6004I 001D ARECOVER TGTGDS(SOURCE ) -
ARC6004I 001D ARECOVER CATALOG FORCE FORCECP(0)
ARC6004I 001D ARECOVER ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO
COMMAND 'RESTORE '
ARC6004I 001D ARECOVER ADR109I (R/I)-RI01 (01), 1998.210 15:27:32 INITIAL SCAN OF
USER CONTROL STATEMENTS COMPLETED.
ARC6004I 001D ARECOVER ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR
THIS TASK
ARC6004I 001D ARECOVER ADR006I (001)-SETUP(01), 1998.210 15:27:32 EXECUTION BEGINS
ARC6004I 001D ARECOVER ADR780I (001)-TDDS (01),
ARC6004I 001D ARECOVER THE INPUT DUMP DATA SET BEING PROCESSED IS IN LOGICAL DATA
SET FORMAT AND WAS CREATED BY
ARC6004I 001D ARECOVER DFSMSDSS VERSION
ARC6004I 001D ARECOVER 1 RELEASE 4 MODIFICATION LEVEL 0
ARC6004I 001D ARECOVER ADR396I (001)-NEWDS(01), DATA SET MHLRES5.PAY1.SALARY
ALLOCATED, ON VOLUME(S): TOTTS2
ARC6004I 001D ARECOVER ADR465I (001)-DALOC(01),
ARC6004I 001D ARECOVER DATA SET MHLRES5.PAY1.SALARY HAS BEEN CATALOGED IN CATALOG
CATALOG.TOTICF2.VTOTCAT
ARC6004I 001D ARECOVER ADR489I (001)-TDLOG(01), DATA SET MHLRES5.PAY1.SALARY WAS
RESTORED
ARC6004I 001D ARECOVER ADR396I (001)-NEWDS(01), DATA SET MHLRES5.PAY1.SALARYA
ALLOCATED, ON VOLUME(S): TOTTS2

152 DFSMShsm Primer


ARC6004I 001D ARECOVER ADR465I (001)-DALOC(01),
ARC6004I 001D ARECOVER DATA SET MHLRES5.PAY1.SALARYA HAS BEEN CATALOGED IN
CATALOG CATALOG.TOTICF2.VTOTCAT
ARC6004I 001D ARECOVER ADR489I (001)-TDLOG(01), DATA SET MHLRES5.PAY1.SALARYA
WAS RESTORED

ARC6004I 001D ARECOVER ADR396I (001)-NEWDS(01), DATA SET MHLRES5.PAY1.SALARY1


ALLOCATED, ON VOLUME(S): TOTTS2
ARC6004I 001D ARECOVER ADR465I (001)-DALOC(01),
ARC6004I 001D ARECOVER DATA SET MHLRES5.PAY1.SALARY1 HAS BEEN CATALOGED IN
CATALOG CATALOG.TOTICF2.VTOTCAT
ARC6004I 001D ARECOVER ADR489I (001)-TDLOG(01), DATA SET MHLRES5.PAY1.SALARY1
WAS RESTORED
ARC6004I 001D ARECOVER ADR396I (001)-NEWDS(01), DATA SET MHLRES5.PAY1.SALARY2
ALLOCATED, ON VOLUME(S): TOTTS2
ARC6004I 001D ARECOVER ADR465I (001)-DALOC(01),
ARC6004I 001D ARECOVER DATA SET MHLRES5.PAY1.SALARY2 HAS BEEN CATALOGED IN
CATALOG CATALOG.TOTICF2.VTOTCAT
ARC6004I 001D ARECOVER ADR489I (001)-TDLOG(01), DATA SET MHLRES5.PAY1.SALARY2
WAS RESTORED
ARC6004I 001D ARECOVER ADR396I (001)-NEWDS(01), DATA SET MHLRES5.PAY1.SALARY3
ALLOCATED, ON VOLUME(S): TOTTS2
ARC6004I 001D ARECOVER ADR465I (001)-DALOC(01),
ARC6004I 001D ARECOVER ADR454I (001)-TDLOG(01), THE FOLLOWING DATA SETS WERE
SUCCESSFULLY PROCESSED
ARC6004I 001D ARECOVER MHLRES5.PAY1.SALARY
ARC6004I 001D ARECOVER MHLRES5.PAY1.SALARYA
ARC6004I 001D ARECOVER MHLRES5.PAY1.SALARY1
ARC6004I 001D ARECOVER MHLRES5.PAY1.SALARY2
ARC6004I 001D ARECOVER ADR013I (001)-CLTSK(01), 1998.210 15:27:43 TASK COMPLETED
WITH RETURN CODE 0000
ARC6004I 001D ARECOVER ADR012I (SCH)-DSSU (01),
ARC6004I 001D ARECOVER 1998.210 15:27:43 DFSMSDSS PROCESSING COMPLETE. HIGHEST
RETURN CODE IS 0000
ARC6116I THE FOLLOWING DATA SETS WERE SUCCESSFULLY RECOVERED USING AGGREGATE
GROUP PAY1:
MHLRES5.PAY1.SALARY
MHLRES5.PAY1.SALARYA
MHLRES5.PAY1.SALARY1
MHLRES5.PAY1.SALARY2
ARC6103I AGGREGATE RECOVERY HAS COMPLETED FOR AGGREGATE GROUP PAY1, USING
CONTROL FILE DATA SET ABARS.PAY1.C.C01V0001,
AT 15:27:43, RETCODE = 000

The information includes the DFSMSdss generated JCL and job log and
messages that indicate the completion (successful or not) of the
ARECOVER. This ARECOVER has successfully restored all of our data
sets.
The example that we have shown is a very simple one. Many installations
will not be able to implement solutions as easy as this. For sites that are
using SMS the implementation of ABARS is recommended.

Chapter 2. Implementing DFSMShsm 153


2.9 Command availability management
We have shown how you can back up or dump your data automatically.
However, there may come a time when you want to back up data sets or
dump volumes outside the automatic start times.

The data set backup by command function provides the following capabilities:
- Up to 64 data sets per host can be backed up at one time
- Data sets can be backed up directly to DASD or to tape
- Users can demount continuously mounted backup tapes
- User can tailor the times when DFSMShsm demounts a tape

In this section we show you how to:


- Dump a volume to a specified dump class
- Back up an individual data set to DASD or to Tape
- Back up an individual data set using Concurrent Copy option
- Back up eligible changed data sets
- Back up all supported data sets on a volume
- Back up cataloged data sets using a filter

We do not show you all possible variations of the commands. Those that we
show perform the most basic of functions available for each command. As
your familiarity with DFSMShsm grows, you may want to investigate
variations of the commands that we show here.
• How do I dump an entire volume with one single command?
An entire volume can be dumped by using the following command (in this
case the volser of the volume is HG6602):

BACKVOL VOLUME(HG6601) DUMP

• Is there any way that I can specify the dump class to which I would
like the dump to go?
By issuing the following command for the same volume you would be able
to target the dump to up to five dump classes:

BACKVOL VOLUME(HG6602) -
DUMP(DUMPCLASS(ONSITE,OFFSITE))

These dump classes must have already been defined by means of the
DFSMShsm DEFINE command.

154 DFSMShsm Primer


• How do I dump stacking all the volumes in a specific storage group?
By issuing the following command, you can stack all the volume dumps for
a given storage group in the same high capacity cartridge:

BACKVOL STORAGEGROUP(sgn) -
DUMP(DUMPCLASS(class,class,...) STACK(nn)

• How do I back up individual data sets to DASD or Tape?


The data set backup by command function provides the following capabilities:
- Up to 64 data sets per host can be backed up at one time.
- Data sets can be backed up directly to DASD or to tape.
You can back up data sets to DASD by using the following commands:

BACKDS dsname TARGET(DASD)

Or to tape, you could use:

HBACKDS dsname TARGET(TAPE)

To issue the BACKDS command you need to be authorized to do so. The


end-user HBACKDS command only requires data set level authorization,
and it allows filtering to be used. You can also use the ARCINBAK
program and the ARCHBACK macro to submit data set backup requests.
• How do I back up individual data sets using Concurrent Copy option?
Providing you are authorized to use Concurrent Copy option and the data
set resides on the volume that support concurrent copy. The syntax is:

BACKDS dsname CC(PREFERRED)


BACKDS dsname CC(REQUIRED)

- PREFERRED indicates that you want to use concurrent copy as the


backup method, if it is available. If concurrent copy is not available, the
data set will be backed up as if this keyword were not specified.
- REQUIRED indicates that concurrent copy must be used as the backup
method and that the data set backup should fail if concurrent copy is
not available.
You can also specify the STANDARD keyword, which indicates that you want
to use a standard backup method (without using concurrent copy). The
standard backup method may possibly override a management class option
to use concurrent copy.

Chapter 2. Implementing DFSMShsm 155


• Is there a parameter in the management class that needs to be set to
allow the backup to be taken?
Yes. If you remember we said that DFSMShsm will check the management
class of the data set to determine the value of the ADMIN OR USER
COMMAND BACKUP ATTRIBUTE. If the value is set to:
ADMIN Only the storage administrator can perform command backups,
using either command, but end users cannot.
BOTH Storage administrators can perform command backups, using
either command, and end users can use the HBACKDS
command.
NONE Command backup cannot be done.
• Can I back up all data sets on one or more volumes?
By using the following command, all data sets on volume or volumes
would be backed up (if they are eligible and backup is permitted):

BACKVOL VOLUMES(volser,......,volser) TOTAL

• Can I back up all individual data sets on one or more Storage


Groups?
By using the following command, all data sets on volume or volumes
would be backed up (if they are eligible and backup is permitted):

BACKVOL STORAGEGROUP(sgn,......,sgn) TOTAL

• What do you mean by eligible data sets for incremental backup?


DFSMShsm goes through all entries for data sets on a volume and those
that it deems eligible have:
- The management class ADMIN OR USER COMMAND BACKUP
attribute of ADMIN or BOTH
- The management class AUTO BACKUP attribute value of Y
- Eligibility, as determined by the data-set-changed indicator, as follows:
• If the data-set-changed indicator is off and SETSYS
INCREMENTALBACKUP(ORIGINAL) is specified, DFSMShsm
backs up the data set if a previous backup version does not exist.
• If the data-set-changed indicator is on and DFSMShsm can
determine a last backup date, DFSMShsm backs up the data set if
the number of days since the last backup date equals or exceeds
the value specified with the management class BACKUP
FREQUENCY attribute.

156 DFSMShsm Primer


• If the data-set-changed indicator is on but DFSMShsm cannot
determine a last backup date (indicating a new data set),
DFSMShsm backs up the data set.
• How do I back up only eligible data sets that have changed?
To back up only the changed data sets that exist on one or more volumes,
use statement (a). For changed data sets that exist on one or more
Storage Groups, use statement (b)

(a) BACKVOL VOLUMES(volser,......,volser)


(b) BACKVOL STORAGEGROUP(sgn,......,sgn)

• As a TSO user, is it possible to back up selected data sets by using


filtering similar to ISPF rules?
Yes. DFSMShsm supports the following wildcard symbols:
% One and only one character in a qualifier.
%% Up to eight percent signs can be specified in each qualifier.
* One or more characters in one qualifier.
** Zero or more qualifiers (the double asterisk cannot precede or follow
any characters; it must be preceded and followed by either a period
or a blank).
In addition to filtering, you could also specify whether DFSMShsm should
back up only those non migrated data sets that have never been backed
up or have been changed since being backed up. This is accomplished by
adding the CHANGEDONLY parameter to the HBACKDS command.
If you wanted to back up all cataloged data sets for a TSO user with a
high-level qualifier of MHLRES5, you would issue this command:

HBACKDS ‘MHLRES5.**’

Variations of these commands exist and are more complicated, but the
above examples should give you an idea of the basics that you have to
work with.

2.10 Recovery and restore


The recovery and restore process, which could be considered the opposite of
backup and dump, is not an automatic process. DFSMShsm will not
automatically recover or restore data if it becomes damaged. The recover and
restore process is driven by commands.

Chapter 2. Implementing DFSMShsm 157


In this topic we show you how to:
- Recover the most recent version of a data set
- Restore a data set from a dump copy
- Restore a volume from a dump copy and update it from incremental
backup versions
- Restore a volume from a full-volume dump copy
- Recover a volume from DFSMShsm backup versions
• Is there anything I need to know before I attempt to perform either
data set or volume recovery or restore?
The recovery process has two restrictions:
- DFSMShsm cannot recover a data set to a migration volume.
- DFSMShsm cannot recover a data set that is currently migrated unless
it is non-VSAM and NEWNAME is specified.
• Are there any SETSYS parameters that will facilitate data set
recovery?
You must have the following coded if you want to use recovery or restore:

SETSYS BACKUP

You also want to consider the number of data set recovery tasks that you
want to run concurrently. The number of tasks is affected by the following
parameter:

SETSYS MAXRECOVERTASKS(nn)

Where, nn can be any number between 1 and 64.


• Should I set MAXDSRECOVERTASKS to 64 to get the maximum
performance from DFSMShsm within recovery?
No. To decide how many tasks DFSMShsm should run, you must consider
how many tape units are available. Additionally the number of tasks used
in recovering a given volume is limited by the number of backup tape
volumes required.

158 DFSMShsm Primer


• How do I recover the most recent copy of a data set from either a
dump or backup copy?
If no data set of the same name exists in the system catalog, you can use
either of the following commands:

HRECOVER dsname
RECOVER dsname

Where, dsname is the name of the data set that you want to recover.
DFSMShsm chooses the most recently created version of the data set for
you. You do not have to identify where the most recent copy is yourself
before you put the command together.
• What is the difference between HRECOVER and RECOVER?
HRECOVER can be issued by any user; however, the RECOVER
command can be issued only by DFSMShsm-authorized users.
• How do I recover a data set if a catalog entry already exists for it?
The following two forms of the command recover a specific data set but
give it a new name:

HRECOVER dsname NEWNAME(newdsname)


RECOVER dsname NEWNAME(newdsname)

Where, dsname is the name of the data set that you want to recover and
newdsname is the new name that you want it to be called.
• Is there any way that I can just replace the data set if it exists?
By using either of the following commands you can replace an existing,
cataloged data set with the recovered version:

HRECOVER dsname REPLACE


RECOVER dsname REPLACE

• How do I restore a data set from a DFSMShsm dump copy?


If you are a DFSMShsm-authorized user, you can request that a data set
be restored from a dump copy, rather than from a backup version. The
following command restores the latest dump copy from available dump
volumes. If the data set already exists, you would have to add the
REPLACE optional parameter for the data set to be successfully restored.

RECOVER dsname FROMDUMP

Chapter 2. Implementing DFSMShsm 159


• What happens if an out-of-space condition occurs when I am
recovering an SMS-managed data set?
If this does happen and the messages that you get indicate that there is
not enough space, retry the RECOVER command but this time add the
DFDSSOPTION keyword:

RECOVER dsname DFDSSOPTION(VOLCOUNT(ANY))

This will allow the data set to extend to as many volumes as required,
provided that space is available within the same storage group.
• How do I combine the restore of an entire volume with full-volume
recovery?
One of the first things to consider for a volume restore with update is
whether it is likely that one of your users may try to start using a data set
in the period between the restore and the incremental recovery. In this
situation, we suggest that you put the SMS-managed volume in DISALL
status.
Once you are satisfied that the volume is in DISALL status, there are three
variations of the command that you could use.
In all these examples we assume that:
- The DASD volume to be recovered has a volser of OLD001.
- The DASD unit type is a 3390.
- The volume restore will be done to a spare DASD volume of NEW001,
which will change to OLD001 during the restore operation.
- You know either the dump class, dump volume, or dump generation
from which you want to restore.
- You want an incremental volume recovery process to follow
immediately the restore as part of the same request.
To recover from a specific dump volume with a volser of DMP001, you
would use the following command:

RECOVER * TOVOLUME(OLD001) UNIT(3390) -


FROMDUMP(DUMPVOLUME(DMP001) APPLYINCREMENTAL) -
TARGETVOLUME(NEW001)

160 DFSMShsm Primer


To recover from a specific dump class of ONSITE, you would use the
following command:

RECOVER * TOVOLUME(OLD001) UNIT(3390) -


FROMDUMP(DUMPCLASS(ONSITE) APPLYINCREMENTAL) -
TARGETVOLUME(NEW001)

To recover from a specific dump generation that was the most recent, you
would use the following command:

RECOVER * TOVOLUME(OLD001) UNIT(3390) -


FROMDUMP(DUMPGENERATION(0) APPLYINCREMENTAL) -
TARGETVOLUME(NEW001)

• Once I have done this, the volume is then completely restored?


Not necessarily. You must still check all the messages related to this
restore and recovery process. For instance, if the volume being recovered
contains part of a multivolume data set, that partial data set is not
recovered. The data set will be listed as not recovered, and you have the
opportunity to recover the data set by other means.
• How do I just restore from a full-volume dump?
DFSMShsm invokes DFSMSdss to perform a full-volume restore if the
following command is used:

RECOVER * TOVOLUME(OLD001) UNIT(3390) -


FROMDUMP TARGETVOLUME(NEW001)

DFSMShsm restores from the most recent dump copy. It searches its
entire dump inventory to determine the most recent dump copy.
• Is there a way that I could limit the selection of dump copies
searched?
By adding to the previous command this parameter:

DATE(00/07/27)

You would be asking DFSMShsm to recover the latest dump copy that was
made on or before July 27, 2000. If you knew that the DASD volume was
good on a certain date, you might use this parameter to choose a dump
taken on or before that date. This may cut down the time it takes to find the
most recent copy if you know approximately the date when a dump copy
may have been taken.

Chapter 2. Implementing DFSMShsm 161


• When I am restoring a volume, can I also specify either the dump
class, dump volume, or dump generation?
Yes. The same parameters are valid whether or not you are subsequently
performing volume recovery.
• Is it possible to recover a volume from just incremental backup
versions?
Volume recovery or incremental volume recovery recovers a volume at the
data set level to the level of its latest backup. Therefore each supported
data set on the volume is at the most recent level unless it has changed
since the last time it was backed up.
The following command causes volume recovery from incremental backup
versions that were backed up on or after July 27, 2000:

RECOVER * TOVOLUME(OLD001) UNIT(3390) DATE(00/07/27)

• What drives the incremental recovery process?


During this phase of DFSMShsm processing, the latest level of the VTOC
copy data set is used.

We have shown some examples of the commands that you can use to
complement your backup and dump processes. There are many variations
that you can apply at your installation and that are relevant to your
environment.

2.11 Multiple DFSMShsm hosts environment


Multiple Address Spaces for DFSMShsm allows an account to start multiple
DFSMShsm address spaces in one OS/390 image in the same HSMplex
(sharing the same set of control data sets), with each host having an identifier
unique among the whole set of DFSMShsm hosts in all the OS/390 images of
the HSMplex.

Multiple DFSMShsm hosts can exist within a single OS/390 image, and/or
multiple DFSMShsm across multiple OS/390 images.

2.11.1 Defining a primary DFSMShsm


In an environment with multiple DFSMShsm hosts (in one or multiple OS/390
images), define one host as the “primary DFSMShsm”. This host
automatically performs those functions of backup and dump that are not
related to one data set or volume. The following “level functions” are included:
• Backing up control data sets as the first phase of automatic backup

162 DFSMShsm Primer


• Backing up data sets that have migrated before being backed up
• Moving backup versions of data sets from migration level 1 volumes to
backup volumes
• Deleting expired dump copies automatically
• Deleting excess dump VTOC copy data sets

The storage administrator must specify the primary DFSMShsm in the


DFSMShsm startup procedure, or as a parameter on the START command.
See Figure 11 on page 35 for more details and example. If no primary
DFSMShsm has been specified, DFSMShsm does not perform level functions
listed above. If you start more than one primary DFSMShsm, DFSMShsm
may process the level functions more than once a day.

The primary host can be either a MAIN or an AUX host. Having an AUX host
designated as the primary host reduces contention between its “level
functions” and the responsibilities unique to the MAIN host, such as recalls
and deletes.

2.11.2 Defining all DFSMShsm hosts in a multihost environment


In a multiple DFSMShsm-host environment, ensure that the host identifier for
each host is unique by considering how you specify the HOST=x keyword of
the DFSMShsm startup procedure. x represents the unique host identifier for
each host. For more details and example, see 2.2, “PROCLIB and PARMLIB
setup” on page 34.

If you choose to use a single startup procedure in starting multiple


DFSMShsm hosts in a single OS/390 image, you have two alternatives to
identify these startups for subsequent MODIFY commands:
S procname.id1,HOST=A,HOSTMODE=MAIN,other parms
S procname.id2,HOST=B,PRIMARY=Y,HOSTMODE=AUX,other parms

The common procedure should specify PRIMARY=N, so that you only have to
override it for the one primary host.
Or,
S procname,JOBNAME=id1,HOST=A,HOSTMODE=MAIN,other parms
S procname,JOBNAME=id2,HOST=B,PRIMARY=Y,HOSTMODE=AUX,other parms

If you need to issue the same command to multiple DFSMShsm hosts started
with identifiers that have the same set of leading characters, you can use an
asterisk wildcard with the MODIFY command:
F id*,command

Chapter 2. Implementing DFSMShsm 163


2.11.3 Resource serialization attributes
Data set integrity is of major importance. In both a single DFSMShsm-host
environment and a multiple DFSMShsm-host environment, serialization of
resources ensures their integrity. DFSMShsm serializes data sets with either
of two methods:
• Volume reserve: DFSMShsm issues reserves against the source volume
to protect data sets during volume processing. The protection is requested
by the RESERVE macro.
• Global enqueue: User data sets can be protected with the ENQ and DEQ
macros.

2.11.3.1 Global resource serialization (GRS)


In the GRS, user data sets are protected by associating them with the
SYSDSN resource and then passing the SYSDSN token to the other images
in the GRSplex.The SYSDSN resource is passed to cross-system (global)
enqueues. DFSMShsm shares its resources according to OS/390-defined
ranges of control known as scopes in GRS terminology.

2.11.3.2 CDS sharing considerations


If you intend to run DFSMShsm in a multiple processor configuration or within
a sysplex, there are considerations for the VSAM share options of the CDSs.
This is important to prevent any form of integrity exposure and any interlock
of the DFSMShsm CDSs.

If you are in a multiple OS/390 image configuration, the CDSs must reside on
shared DASD. Specify the type of serialization you want by using the CDSQ,
CDSR, or CDSSHR keywords.

To provide protection against an interlock condition without a GRS product


installed you must protect your CDSs by:
• Allocating a CDS and the catalog it is cataloged in on the same volume.
• Ensuring CDSs are not placed on ML1 volumes.
• Ensuring CDSs are not placed on the same volume with system resource
data sets.

There are two methods for defining the share options for the DFSMShsm
CDSs.

164 DFSMShsm Primer


Method 1 — VSAM SHAREOPTIONS(2 3)
The following share option strategy will provide maximum protection against
accidental non-DFSMShsm concurrent updates:
• Use GRS and define the DFSMShsm CDSs with VSAM
SHAREOPTIONS(2 3).
• Exclude the SYSVSAM resources related to the CDS components from
being passed around the GRS ring.
Cross-region share option 2 allows only one processor at a time to open a
data set for output. In this case we expect the open to be performed by
DFSMShsm. No jobs will be able to update the CDSs apart from
DFSMShsm.
Add the following statements to the GRSRNLxx PARMLIB member:
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(MCDS-index-name)
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(MCDS-data-name)
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(BCDS-index-name)
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(BCDS-data-name)
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(OCDS-index-name)
RNLDEF RNL(EXCL) TYPE(GENERIC) QNAME(SYSVSAM) RNAME(OCDS-data-name)

Some additional considerations apply when you use this sharing strategy:
• Reserve contentions can occur when a GRS product is not installed and
that system processes DFSMShsm and applications concurrently with
VSAM data sets on the same volume.
• Specify DISP=SHR for read-only utilities.
• Specify DISP=OLD for any utility that will alter the CDSs.
• Do not reorganize your CDSs while DFSMShsm is running on any
processor that uses those CDSs.

Method 2 — VSAM SHAREOPTIONS(3 3)


The DFSMShsm starter set will allocate the CDSs with VSAM
SHAREOPTIONS(3 3) to allow DFSMShsm to be easily started in a multiple
processor environment with GRS or equivalent function. DFSMShsm
provides an appropriate serialization protocol to ensure read and update
integrity of the CDSs. If you choose to implement VSAM RLS, which we
discuss in 2.4.6, “VSAM Record Level Sharing (RLS)” on page 85, this is the
share option that you must specify.

It is important to note that if either of these share options is chosen, a data


integrity exposure may exist if DFSMShsm is not active on all connected
processors. Strictly control any CDS reorganization or maintenance

Chapter 2. Implementing DFSMShsm 165


procedure such that the utility job is allocated with a disposition of OLD
(DISP=OLD).

2.11.3.3 Volume considerations in a multiple DFSMShsm-host


Consider the following when you implement DFSMShsm in a multiple
DFSMShsm-host environment:
• DFSMShsm does not reserve the volume containing a user’s data set if
the user issues a request to migrate or back up the data set, but depends
upon global serialization of the SYSDSN resource.
• While DFSMShsm calculates the free space of a volume, it reserves the
volume. This can interfere, momentarily, with the response time for the
functions that require access to that volume.
• Run automatic primary space management, backup, and dump during
periods of low system use and low interactive user activity to reduce
contention for data sets among processors. When a DFSMShsm managed
volume is being processed by space management or backup in a
DFHSMDATASETSERIALIZATION environment, other processors can
have performance problems if they attempt to access the volume. To
eliminate these performance problems, consider using
USERDATASETSERIALIZATION instead, which will require Global
Resource Serialization, if multiple OS/390 images are involved. You can
use USERDATASETSERIALIZATION if you have multiple hosts in a single
OS/390 image without GRS.

2.11.3.4 Multitasking considerations


When you run multiple tasks in a multihost configuration, consider the most
effective use of your OS/390 image and the number of DFSMShsm hosts
running within each of those OS/390 images. For example, you may ask
whether it is more efficient to perform eight tasks with one OS/390 image or
four tasks with two OS/390 images. The answer is that for space
management and backup, it is generally better to perform eight tasks with one
OS/390 image and distribute those tasks across multiple hosts running in that
OS/390 image. The reason that one OS/390 image offers better performance
than two is a result of DFSMShsm’s CDS-sharing protocol.

For performance reasons, run several migration or backup tasks in one


OS/390 image versus running a few tasks in each of multiple host
environment; however for CDSSHR=RLS, it is better to spread out the tasking
across multiple DFSMShsm.

Performance tests show that it is best to run six to eight tasks per host for
migration, backup or dump. Therefore, if you wanted to run 30 migration

166 DFSMShsm Primer


tasks, it would be better to run them with five hosts, with six tasks each,
rather than 15 tasks on two hosts or three tasks on ten hosts.

2.12 DFSMShsm in a sysplex environment


A sysplex is a collection of OS/390 systems that cooperate, using certain
hardware and software products, to process workloads. The products that
make up a sysplex provide greater availability, easier systems management,
and improved growth potential over a conventional computer system of
comparable processing power.

There are two types of sysplexes: base and parallel.


• A base sysplex is a sysplex implementation without a coupling facility.
• A parallel sysplex is a sysplex implementation with a coupling facility.

One or more processors with DFSMShsm installed and running that share a
common MCDS, OCDS, BCDS, and journal is called an HSMplex.

One or more OS/390 systems that use global serialization to serialize access
to shared resources (for example, data sets on shared DASD volumes) is
called a GRSplex.

If you are running DFSMShsm in a sysplex environment, the following four


functions can greatly enhance your ability to successfully manage that
environment:
• Single GRSplex Serialization: allows each HSMplex, within a single
GRSplex, to operate without interfering with any other HSMplex.
• Secondary Host Promotion: allows one DFSMShsm host to automatically
assume the unique functions of another DFSMShsm host that has failed.
• Control Data Set Extended Addressability: allows CDSs to grow beyond
the 4 GB size limit.
• Record Level Sharing: Allows CDSs to be accessed in record level sharing
(RLS) mode. For information about record level sharing, see 2.4.6, “VSAM
Record Level Sharing (RLS)” on page 85.

2.12.1 Single GRSplex serialization in a sysplex environment


If two HSMplexes exist within a sysplex environment, one HSMplex interferes
with the other HSMplex whenever DFSMShsm tries to update CDSs in
non-RLS mode or when it is performing other functions, such as level 1 to
level 2 migration. This interference occurs because each HSMplex, although

Chapter 2. Implementing DFSMShsm 167


having unique resources, uses the same resource names for global
serialization.

Within a GRSplex, you can now place multiple HSMplexes into a single
GRSplex. The single GRSplex serialization function allows DFSMShsm to
translate minor global resource names to unique values within the HSMplex,
thus avoiding interference between HSMplexes.

All DFSMShsm hosts within an HSMplex must use the same translation
technique. If a host detects an inconsistency in the translation technique, the
detecting host immediately shuts down.

The new startup keyword RNAMEDSN specifies whether you want to keep
the old translation technique or use the newer technique. The RNAMEDSN
keyword directs DFSMShsm to perform the new translation technique.

When you specify RNAMEDSN=Y, DFSMShsm invokes the new method of


translation, which uses the CDS and journal data set names. When you
specify N, you are saying that you want to continue to keep the old method of
translation; however, in a sysplex with multiple HSMplexes, one HSMplex may
interfere with another. The default for the RNAMEDSN keyword is N.

Compatibility considerations
Consider the following coexistence issues before you run DFSMShsm within
an HSMplex:
• If all DFSMShsm hosts within one HSMplex are running at DFSMS/MVS
Version 1 Release 5. All DFSMShsm hosts must use the same
serialization method. If not, at least one of the hosts will shut down (that is,
each host detecting a mismatch will shut down).
• If an HSMplex has both Version 1 Release 5 and pre-Version 1 Release 5
running concurrently, then the Version 1 Release 5 hosts cannot specify
RNAMEDSN=Y. If RNAMEDSN=Y is specified, hosts that detect the
mismatched serialization method will shut down.
• If two or more HSMplexes are running concurrently. Each HSMplex using
an old serialization method will interfere with other HSMplexes.
HSMplexes using the new serialization method will not interfere with other
HSMplexes. However, in a two-HSMplex environment, one can use the old
method and the other can use the new method; neither one will interfere
with the other.

168 DFSMShsm Primer


2.12.2 Secondary host promotion
DFSMShsm allows secondary hosts to take over functions for a failed primary
host or secondary space management (SSM) from a failed host. Secondary
host promotion ensures continuous availability of DFSMShsm functions.

The following definitions are key to understanding the concept of secondary


host promotion:
• An original host is a host that is assigned to perform primary host or SSM
responsibilities.
• A secondary host is a host that is not assigned to perform primary host or
SSM responsibilities.
• A primary host is a host that performs primary level functions such as:
- Hourly space checks (for interval migration and recall of non-SMS data)
- Automatic CDS backup
- Automatic movement of backup versions from ML1 to tape
- Automatic backup of migrated data sets on ML1
- Expiration of dump copies
- Deletion of excess dump VTOC copy data sets
• An SSM host is generally the only host that performs SSM functions.
• A host is said to be promoted when that host takes over the primary or SSM
(or both) host responsibilities from an original host.
• A host is said to be demoted when it has had its primary or SSM (or both)
host responsibilities taken over by another host. There is always a
corresponding promoted host for each demoted host, and vice versa.

2.12.2.1 Enabling secondary host


For either a base or parallel sysplex, DFSMShsm, using XCF, can enable
secondary hosts to take over any unique functions that are performed by the
failed primary host or failed SSM host. There can be three types of failures:
• DFSMShsm placed in emergency mode
• DFSMShsm address space failures
• Entire OS/390 image failures

The following requirements apply to the use of secondary host promotion:


• XCF must be configured on the system that DFSMShsm is active on and
be running in multisystem mode.

Chapter 2. Implementing DFSMShsm 169


• If the ARCCBEXT exit is used by the primary host, it must be available for
use on all hosts eligible to be promoted for the primary host. If the
ARCMMEXT exit is used by the SSM host, it must be available for use on
all hosts eligible to be promoted for the SSM host.
• The CDS backup data sets must be cataloged on all systems that are eligible
to be promoted for primary host responsibilities.
• In a multisystem environment, DFSMShsm always sets the option to
NOSWAP.

To enable secondary host promotion, specify the SETSYS PROMOTE


command:

SETSYS PROMOTE(PRIMARYHOST(YES | NO) SSM(YES | NO))

Where,
PRIMARYHOST(YES | NO): indicate whether you want this host to take over
primary host responsibilities for a failed or not. The default value is NO.
SSM(YES | NO): indicate whether you want this host to take over the SSM
responsibilities for a failed host or not. The default value is NO.

Notes:
• This parameter is ignored when the system is running in LOCAL mode. If the
system is running in MONOPLEX mode, the secondary host promotion
function is active, but is unable to perform actions because cross-host
connections are not enabled.
• An SSM host is not eligible to be promoted for another SSM host.
• The SETSYS command does not trigger promotion. That is, a host can only
be eligible to be promoted for hosts that fail after the SETSYS command has
been issued.
• Do not make a host eligible for promotion if its workload conflicts with
responsibilities of the original host or if it is active on a significantly slower
processor.

2.12.2.2 How secondary host promotion works


When a primary or SSM host becomes disabled, all DFSMShsm hosts in the
HSMplex are notified through XCF. Any host that is eligible to perform the
functions of the failed host will attempt to take over for the failed host. The
first host that successfully takes over for the failed host becomes the
promoted host. There is no means available for assigning an order to which
hosts take over the functions of a failed host.

170 DFSMShsm Primer


If an original host is both a primary and an SSM host, its responsibilities can be
taken over by two separate hosts.

If the promoted host itself fails, then any remaining host that is eligible for
promotion will take over. If additional failures occur, promotion continues until
there are no remaining hosts that are eligible for promotion.

If a secondary host fails while it is promoted for an original host and there are
no remaining active hosts eligible for promotion, then of any of the secondary
hosts that become re enabled before the original host does, only that host
that was last promoted for the original host can become the promoted host.

2.12.2.3 Configuring automatic backup hosts in an HSMplex


If you are using secondary host promotion, take special care when you are
configuring automatic backup in an HSMplex.
• First, there should be more than one automatic backup host. This ensures
that volume backups of managed volumes are performed even when the
primary host is disabled.
Note: Promoted hosts only take over unique functions of the original host.
They do not take over functions that can be performed by other hosts.
• Second, if a secondary automatic backup host is eligible to be promoted
for the primary host, then its backup window should be offset from the
original primary host’s window in a way that it can take over from where
the original primary host left off. For example, its start time could
correspond with the average time that the primary host finishes its unique
automatic backup functions.
Note: These scenarios assume that the primary host is always an automatic
backup host.

2.12.2.4 How the take back function works


When an original host is re-enabled to perform its unique responsibilities
(through a restart or by leaving emergency mode), the take back process
begins. The take back process involves the following procedures:
• The promoted host recognizes that the original host is enabled and gives up
the responsibilities that it took over (by resetting its windows, its cycles, and
its exit settings to the values that existed before it became promoted).
Note: Any changes made to the window and the cycle while the host was
promoted will be lost.
• Until the promoted hosts give them back, the original host does not perform
any of the responsibilities that were taken over by the promoted hosts.

Chapter 2. Implementing DFSMShsm 171


2.12.3 Control data set extended addressability in a sysplex
VSAM extended addressability is a function that allows you to define each CDS,
so that the CDSs can grow beyond 16GB in the case of MCDS and BCDS and
beyond 4GB in the case of OCDS.

DFSMShsm supports VSAM KSDS extended addressability (EA) capability


that uses record level sharing (RLS) access mode for its CDSs.

Because EA KSDS data sets do not allow definition of explicit key-range


values, DFSMShsm supports EA multicluster configurations with its own
implicit, dynamic key ranges. This multicluster support allows up to four
KSDS EA data sets to represent the MCDS and BCDS. Multicluster support
reduces backup processing time by allowing parallel operations. For more
information about dynamic key ranges in a multiple DFSMShsm-host
environment, see 2.5, “Multicluster control data sets” on page 95.

Extended addressability considerations


The following considerations or requirements may affect extended
addressability for your CDSs:
• Mixing EF clusters and non-EF clusters is permissible because each
cluster is treated as a separate entity. However if any cluster is accessed
in RLS mode, then all clusters must be accessed in RLS mode.

172 DFSMShsm Primer


Chapter 3. Operation considerations

In this chapter we describe the following DFSMShsm that the system operator
performs:
• Partitioning DFSMShsm functions
• Starting DFSMShsm
• Stopping DFSMShsm
• Holding DFSMShsm functions
• Releasing DFSMShsm functions
• Canceling queued DFSMShsm requests
• Restarting DFSMShsm after an abnormal end
• Changing DFSMShsm control parameters

We recommend that system operators take the time to become familiar with
the DFSMShsm commands discussed in this chapter, their function, and their
purpose.

3.1 Partitioning DFSMShsm functions


One OS/390 image may have more than one DFSMShsm host. In a sysplex,
multiple OS/390 images may each have one or more hosts, all sharing the
same set of control data sets (an HSMplex).

There are two possible modes of host activity that you can specify at startup
time for any host: HOSTMODE=MAIN (the default) and HOSTMODE=AUX.
• HOSTMODE=MAIN: This DFSMShsm host is responsible for:
- Processing implicit requests, such as recalls, or deletes migrated data
sets, from user address spaces
- Processes explicit commands from TSO, such as HSENDCMD and
HBACKDS, as well as requests from batch jobs, such as ARCINBAK
- Manages ABARS secondary address spaces
- Allows MODIFY commands from a console
- Can run automatic backup, dump, and space management
• HOSTMODE=AUX: This DFSMShsm host can:
- Allow MODIFY commands from a console
- Run automatic backup, dump, and space management

© Copyright IBM Corp. 1998, 2000 173


There are several advantages to starting more than one DFSMShsm host in
an OS390 image:
• Less work per address space and less contention between functions,
because each SYSZTIOT resource serializes only functions in its address
space.
• Each address space that is doing some part of DFSMShsm’s work can
have an appropriate MVS dispatching priority for that type of work.
• Provide a larger number of tasks that perform any given DFSMShsm
function, for example, migration.
• DFSMShsm functions that operate in more than one address space allow
more MIPs that are allocated to DFSMShsm functions.

However, you should consider the most effective use of your OS/390 image
and the number of DFSMShsm hosts running within each of those OS/390
images. For more details, see 2.11.3.4, “Multitasking considerations” on
page 166.

3.2 Starting DFSMShsm


Before starting DFSMShsm you must create a startup procedure in your
PROCLIB data set and an ARCCMDxx member, which contains a series of
commands, created in your PARMLIB data set. Refer to 2.2, “PROCLIB and
PARMLIB setup” on page 34 for detailed information about creating and
customizing your DFSMShsm PROCLIB and PARMLIB members.
• Is it possible to automatically start DFSMShsm?
At the system’s initial program load (IPL) time, you can specify that
DFSMShsm is started automatically as part of the IPL process. This is
accomplished by use of the PARMLIB member COMMNDxx that you are
using in response to the request:

IEA101A SPECIFY SYSTEM PARAMETERS

This reply would direct the IPL process to use PARMLIB member
COMMNDxx:

R 0,CLPA,CMD=xx

To start DFSMShsm automatically, you would need to have placed a start


command that refers to your DFSMShsm started procedure in member

174 DFSMShsm Primer


COMMNDxx. In our system we named our start procedure HSM1 so we
coded the following in our PARMLIB member:

COM=’S HSM1’

This will cause the start command for DFSMShsm to be automatically


issued.
Note: To enable a multiple address space environment for DFSMShsm,
you must specify a new keyword HOSTMODE in the DFSMShsm start
procedure.
• Is it possible to start DFSMShsm manually?
If you have not added the command to start DFSMShsm in your
COMMNDxx PARMLIB member, you can start DFSMShsm manually once
your system is active by entering a start command at the system console.
In our system we waited until the system control program initialized and
then issued the following command for our HSM1 procedure:

S HSM1

• How can I tell whether DFSMShsm initialization has been successful?


There are two messages on the operator console with respect to
DFSMShsm initialization. The first message that you should look for is:

ARC0001I DFSMSHSM 2.10.0 STARTING HOST=1 IN 550

This self-explanatory message indicates that Version 2 Release 10 of


DFSMShsm is starting.
The second message to look for is:

ARC0008I DFSMSHSM INITIALIZATION SUCCESSFUL

This message indicates that DFSMShsm has initialized successfully and is


now ready to start receiving commands.You may want to verify this by
issuing a DFSMShsm command such as QUERY ACTIVE and ensure that
a response is received.
• What is the secondary address space and how do I start it?
An ABARS secondary address space is automatically started by
DFSMShsm when required. You specify the maximum number of
concurrent secondary address spaces, using the
MAXABARSADDRESSSPACE parameter on the SETSYS command.
When DFSMShsm is started, the OS/390 operating system reads the
ABARS startup procedure to get information about the ABARS secondary
address space.

Chapter 3. Operation considerations 175


• Can I start DFSMShsm as a batch job?
No. DFSMShsm can be run only as a started task.

3.3 Stopping DFSMShsm


Although it is not necessary to schedule regular starting and stopping of
DFSMShsm, you will have to shut down DFSMShsm for a system IPL, to run
maintenance against the DFSMShsm CDSs, or because of a problem with
DFSMShsm itself. Here we show you how to stop DFSMShsm and provide
some useful information pertaining to its shutdown.
• What is the recommended way to stop DFSMShsm?
We recommend that whenever it is necessary to shut down DFSMShsm
that you use the MVS MODIFY command from the system console. In our
sample system, HSM1, use statement (a) causes no promotion of a
secondary host. Statement (b) makes the host eligible to have its unique
functions taken over by a promotable host.
(a) F HSM1, STOP
(b) F HSM1, STOP PROMOTE

This causes an orderly shutdown of DFSMShsm.


• What is meant by an orderly shutdown in DFSMShsm terms?
An orderly shutdown of DFSMShsm causes all ABARS secondary address
spaces and each attached subtask to end. The CDSs are closed (unless
DFSMShsm is running in a multiple host environment), and the job log,
DFSMShsm log, and activity log information is spooled to the printer.
• Is this the only way that I can stop DFSMShsm?
You can also issue the MVS STOP command to cause an orderly
shutdown of DFSMShsm. If you were to issue the following command, an
orderly shutdown would occur:

P HSM1

• How can I tell whether the shutdown has been successful?


There are two messages that you should pay attention to. The first
message advises you that the STOP command has been issued:

ARC0016I DFSMSHSM SHUTDOWN HAS BEEN REQUESTED

176 DFSMShsm Primer


The next message that you should look for is this, which tells you that
shutdown has completed successfully:

ARC0002I DFSMSHSM SHUTDOWN HAS COMPLETED

• Are there any other parameters that I can specify on the DFSMShsm
STOP command?
Yes. You can specify the DUMP parameter on the STOP command:

F HSM1,STOP DUMP

If you issue the STOP command with the DUMP parameter, an orderly
shutdown does not take place, and processing is stopped immediately.
DFSMShsm takes a dump of the DFSMShsm address space before it
stops processing. It also makes the host eligible to have its unique functions
taken over by a promotable host. We do not recommend that you use the
dump parameter as valuable information can be lost. If you need a dump
of the DFSMShsm address space for diagnosis purposes, we recommend
using the MVS DUMP command. Refer to 5.7.4, “SVC dumps” on
page 268 for additional information about the use of the MVS DUMP
command.
• I issued the DFSMShsm STOP command but nothing seemed to
happen. Should I issue it again?
No. Issue the DFSMShsm STOP command only once.
• The shutdown seems to be taking a long time to complete. What is
happening as part of shutdown?
DFSMShsm completes the current functions, usually ending them at a
data set level, and consolidates SMF type 30 records as part of its
shutdown. That is why it may take a while.
• How often does DFSMShsm check for shutdown?
As some commands and volume functions take a long time to complete,
DFSMShsm periodically checks for a shutdown having been requested to
prevent a delay in the shutdown process.
• What happens to DFSMShsm commands that have been entered but
did not complete because DFSMShsm was shutdown?
As long as OS/390 has not been IPLed since DFSMShsm was shut down,
user and HSENDCMD commands that did not complete are restarted as
part of the DFSMShsm initialization process.

Chapter 3. Operation considerations 177


3.4 Holding DFSMShsm functions
The HOLD command is used to selectively prevent or interrupt DFSMShsm
functions from running without stopping DFSMShsm. You could use the
command to prevent tape-related processing if, for example, you were drive
constrained at a particular moment in time or if there were hardware errors.

For functions that process on a volume basis (backup, dump, migration, and
recover) you can choose whether you want to interrupt the function at the end
of the data set that is being processed or at the end of the volume that is
being processed.

The HOLD command attempts to terminate the process at a reasonable


point, such that the function can be restarted or re-issued at a later time. A
function is held until it is released or DFSMShsm is shut down and restarted.
Depending on the HOLD command you issue, you can prevent processing of
all DFSMShsm functions or selectively choose the following functions to be
held:
• Command, automatic secondary, and automatic volume space
management
• Only automatic secondary and automatic volume space management
• Recall and deletion of a migrated data set
• Command backup and automatic backup
• Only automatic backup
• Aggregate backup
• Aggregate recovery
• Command dump and automatic dump
• Only automatic dump
• Audit command processing
• List
• Report
• Recovery and restore
• Recycle
• Logging
• Tape copy
• Tape replace

178 DFSMShsm Primer


• Expiring backup versions

There is a lot of flexibility with the HOLD command. We discuss the HOLD
commands that you will use most. For more details on the HOLD command
refer to the OS/390 V2R10.0 DFSMShsm Storage Administration Reference,
SC35-0389.
• Why might I want to issue the HOLD command?
Using the HOLD command is a flexible alternative to stopping DFSMShsm
during your prime working day. If the activity within DFSMShsm seems to
be causing problems in terms of the demands that it is placing on system
resources, you can selectively increase the amount of functions that are
held. If possible, allow recall and recover processing to continue so that
users can access their migrated and backed up data. Once the system or
DFSMShsm problem is resolved, you can release the held functions on a
selective basis.
Another approach would be to hold everything and then gradually release
at a function level.
• What happens to functions that have been held after a restart of
DFSMShsm?
If a function has been held by the HOLD command, it is released once
DFSMShsm has restarted successfully.
• Who can issue the HOLD command?
The HOLD command can be issued from the OS/390 system console or by
a DFSMShsm-authorized user from a TSO terminal, using the
HSENDCMD command.
• How do I hold all DFSMShsm functions?
All processing can be held by issuing the following command:

F HSM1,HOLD ALL

• How can I hold all automatic volume and automatic secondary space
management processing?
To prevent or interrupt automatic volume and automatic secondary space
management, issue either of the following commands:

F HSM1,HOLD AUTOMIGRATION
F HSM1,HOLD MIGRATION(AUTO)

These commands do not prevent the running of any space management


commands that were issued by command.

Chapter 3. Operation considerations 179


• How do I control whether the current operation finishes processing at
the end of a data set or the end of a volume?
You can influence the point at which current processing finishes for the
following DFSMShsm functions:
- Space management (automatic or command)
- Backup (automatic or command)
- Dump (automatic or command)
- Recover
- Restore
Two optional parameters can be specified on the HOLD command:

ENDOFDATASET or EOD
ENDOFVOLUME or EOV

The DFSMShsm default is at the end of data set, except for the dump
function, where it is end of volume. A requested volume dump is done in
its entirety and then DFSMShsm stops dump processing if the DUMP
function is held.
• How can I prevent tape recall requests from TSO users?
If you were to issue the following command you would allow only recall
requests from tape submitted from batch jobs and all nontape volumes to
be processed:

F HSM1,HOLD RECALL(TAPE(TSO))

Note
Recalls from tape volumes that are already mounted will be satisfied.

• How can I prevent all recalls from tape volumes?


Issue the following command:

F HSM1,HOLD RECALL(TAPE)

• How can I prevent backup individual data set by command?


- Statement (a) prevents all data set backups by command.
- Statement (b) prevents only data set backups by command that are
directed to ML1 DASD.
- Statement (c) prevents only data set backups by command that are
directed to tape.

180 DFSMShsm Primer


- Statement (d) specifies that you want command data set backup to
demount any mounted tapes at the end of the current data set or
immediately.
(a) F HSM1,HOLD BACKUP(DSCOMMAND)
(b) F HSM1,HOLD BACKUP(DSCOMMAND(DASD))
(c) F HSM1,HOLD BACKUP(DSCOMMAND(TAPE))
(d) F HSM1,HOLD BACKUP(DSCOMMAND(SWITCHTAPES))

• How can I tell what has been held by the HOLD command?
When you issue the following command you receive a series of messages
that indicate which functions have been held:

F HSM1,QUERY ACTIVE

3.5 Releasing DFSMShsm functions


As you might expect, if there is a command to prevent or interrupt
DFSMShsm processing, there must be a command to perform the opposite of
this. Any function that can be held can be released with the RELEASE
command.

The only time that functions will not be released is if journaling has been
disabled. Once journaling has been disabled, it holds all DFSMShsm
functions. The RELEASE command will not be effective until the CDSs have
been successfully backed up.
• Who can issue the RELEASE command?
The RELEASE command can be issued from the system console or also
submitted by a DFSMShsm-authorized user from a TSO terminal, using
the HSENDCMD.
• In the examples shown for the HOLD command, what are the
corresponding RELEASE commands?
We show the HOLD command and its corresponding RELEASE command
in the examples that follow.
F HSM1,HOLD ALL
F HSM1,RELEASE ALL

F HSM1,HOLD AUTOMIGRATION
F HSM1,RELEASE AUTOMIGRATION

Chapter 3. Operation considerations 181


F HSM1,HOLD RECALL(TAPE(TSO))
F HSM1,HOLD RELEASE RECALL(TAPE(TSO))

F HSM1,HOLD RECALL(TAPE)
F HSM1,RELEASE RECALL(TAPE)

• Can I release backup individual data set command?


Yes. Statement (a) allows data set backup by command resumes
processing. Statement (b) allows only data set backup by command that
are directed to ML1 DASD and statement (c) allows only data set backup
by command that are directed to tape
(a) F HSM1,RELEASE BACKUP(DSCOMMAND)
(b) F HSM1,RELEASE BACKUP(DSCOMMAND(DASD)
(c) F HSM1,RELEASE BACKUP(DSCOMMAND(TAPE))

• Can I release auto migration if I have held migration?


No. If you hold the main function, you cannot issue a RELEASE for one of
its subfunctions. In this case the following messages would be issued:
F HSM1,HOLD MIGRATION
ARC0100I HOLD COMMAND COMPLETED
F HSM1,RELEASE AUTOMIGRATION
ARC0111I SUBFUNCTION MIGRATION(AUTO) CANNOT BE 831
ARC0111I (CONT.) RELEASED WHILE MAIN FUNCTION MIGRATION IS HELD
ARC0100I RELEASE COMMAND COMPLETED

• If I release a main function, will any associated sub functions be


released?
Yes.

There are as many variations of the RELEASE command as there are for the
HOLD command. For further reference and for a comprehensive list of the
commands, refer to the OS/390 V2R10.0 DFSMShsm Storage Administration
Reference, SC35-0389.

182 DFSMShsm Primer


3.6 Canceling queued DFSMShsm requests
DFSMShsm allows you to cancel queued requests. A queued request is a
request that has not yet been selected for processing by DFSMShsm. Once a
request has been selected for processing it cannot be canceled by any
DFSMShsm command.

However, if you have the DFSMS Optimizer HSM Monitor/Tuner installed, you
can cancel active tasks under the following functions:
• Primary space management
• Secondary space management
• Automatic backup
• Automatic dump
• Interval migration

For more information, please refer to the DFSMS Optimizer: The New HSM
Monitor/Tuner , SG24-5248.

In this section we will discuss the CANCEL command and give examples of
its uses.
• Who can issue the CANCEL command?
The CANCEL command is primarily issued by the system operators from
the system console. Additionally they can also be submitted by a
DFSMShsm-authorized user from a TSO terminal.
• What can I cancel?
For DFSMShsm queued requests, you can cancel:
- An individual request
- All requests submitted from a user ID
- All requests related to a specific data set name
• How can I find out which requests can be canceled?
You have to issue the DFSMShsm QUERY command to find the request
numbers, user IDs, or data set names that you want to cancel. Use the
following command to display all DFSMShsm requests:

F HSM1,QUERY REQUEST

Refer to 6.2, “Query command” on page 285 for more information about
the QUERY command.
• If I issue the QUERY ACTIVE command, can I cancel any of the
requests listed in the command output?

Chapter 3. Operation considerations 183


No. The requests listed as a result of the QUERY ACTIVE command are
already being processed and are not available for the CANCEL command.
• How do I cancel requests for a single request?
Once you have determined the request number, issue the following
command:

F HSM1,CANCEL REQUEST(num)

Where, num represents the number of the request you want to cancel.
• How do I cancel the requests for a particular user?
You would issue the following command to cancel the requests for user
VIALLI:

F HSM1,CANCEL USER(VIALLI)

• How would I cancel requests for a particular data set?


To cancel a request for data set name CHELSEA.RBEST you would issue
the following command:

F HSM1,CANCEL DSNAME(CHELSEA.RBEST)

• Can I issue the CANCEL command to cancel a CANCEL command


that I accidentally entered?
No. It is not possible to cancel a CANCEL command. Neither the CANCEL
nor the QUERY command can be canceled.

For further information about the CANCEL command please refer to the
OS/390 V2R10.0 DFSMShsm Storage Administration Reference, SC35-0389.

3.7 Restarting DFSMShsm after an abnormal end


DFSMShsm attempts to recover after any abnormal terminations. If
DFSMShsm cannot recover from the abnormal end and the RESTART
keyword is coded in the PROC statement of the startup procedure,
DFSMShsm restarts itself. For more information on the PROCLIB setup, refer
to 2.2, “PROCLIB and PARMLIB setup” on page 34.

If an abnormal end occurs that interrupts MVS processing, and as long as the
extended common service area (ECSA) is not destroyed, DFSMShsm can
continue to process waiting requests. Additionally, if DFSMShsm is restarted,
it will process any requests that are waiting in the ECSA.

184 DFSMShsm Primer


• How can I tell whether an abnormal end has occurred?
If a task processing within the DFSMShsm address space has abnormally
ended, the following message is issued:

ARC0003I taskname TASK ABENDED, CODE abendcode IN MODULE modname AT


OFFSET offset, STORAGE LOCATION location

This message provides you with information either to investigate the


problem yourself or to raise an incident with IBM Software Support.
• Will the ARC0003I message be issued for tasks within the ABARS
secondary address space?
No. ABARS issues the following variation of the message:

ARC6035E taskname TASK ABENDED, CODE abendcode IN MODULE modname AT


OFFSET offset, STORAGE LOCATION location

This message provides you with information either to investigate the


problem yourself or to raise an incident with IBM Software Support.
• What else should I consider after an abnormal end has occurred?
Try to understand the area of processing that was affected. DFSMShsm
attempts recovery in most cases, but the ultimate responsibility lies with
the user to determine whether any further recovery actions are required.
You should use these as valuable sources of information to analyze any
problems:
- System log
- DFSMShsm activity logs
- DFSMShsm PDA trace
- DFSMShsm generated dumps
• What will happen to the automatic functions of DFSMShsm?
If the recovery from an abnormal end has taken a long time, you may need
to extend the windows for your automatic schedule. The DFSMShsm
restart can occur after the automatic function window has been closed or
the automatic function window may be shortened because of the abnormal
end so that all volumes will not be processed in the remaining time
available.
Consider issuing the SETSYS command to adjust the automatic functions
window. See 3.8, “Changing DFSMShsm control parameters” on
page 186.

Chapter 3. Operation considerations 185


Although it is not possible to document all of the possible reasons and
recovery actions for a DFSMShsm abnormal end, just being aware of the
information to look for may help you to prevent or recover easily from any
interruption to your environment.

3.8 Changing DFSMShsm control parameters


Each time you start DFSMShsm, a subset of parameters is established by
default. You may want to change the defaults during normal operation,
change the times that the automatic functions are scheduled to run, or
increase the number of tasks related to a specific function.

Use the SETSYS command to change your control parameters. In this


section we show you some examples that give an idea of the ease with which
you can issue the SETSYS commands, and the effect that they will have on
your environment. The SETSYS command can be coded in your ARCCMDxx
PARMLIB member, as described in 2.2, “PROCLIB and PARMLIB setup” on
page 34.
• Who can issue the SETSYS command?
Primarily we would expect that a DFSMShsm-authorized storage
administrator would issue these commands, using the HSENDCMD from a
TSO terminal. These commands can also be issued by the system
operator from the system console.
• How can I modify the timings of the automatic functions?
In our example we issue the command from the system console, using the
MVS MODIFY command. The following commands will override the
current settings for automatic primary and secondary space management,
backup, and dump:
F HSM1,SETSYS PRIMARYSPMGMSTART(0400 0500)
F HSM1,SETSYS SECONDARYSPMGMSTART(0200 0300)
F HSM1,SETSYS AUTOBACKUPSTART(0600 0700 0800)
F HSM1,SETSYS AUTODUMPSTART(0900 1000 1100)

Note
These are examples only and not intended for use on your system.

186 DFSMShsm Primer


• How can I alter the maximum number of migration and backup tasks?
Issue the following commands:

F HSM1,SETSYS MAXMIGRATIONTASKS(6)
F HSM1,SETSYS MAXBACKUPTASKS(9)

There are many SETSYS commands that you can change during normal
operation. The SETSYS commands are documented in the OS/390 V2R10.0
DFSMShsm Storage Administration Reference, SC35-0389.

Chapter 3. Operation considerations 187


188 DFSMShsm Primer
Chapter 4. DFSMShsm tape processing

DFSMShsm uses tapes for functions as backup, migration, dump, tape copy,
recycle of tape backup or ML2 volumes, and ABARS processing. You
implement a DFSMShsm tape processing environment by specifying
SETSYS commands in the DFSMShsm PARMLIB member ARCCMDxx.

The tape environment is determined by the definition of the library


environment (tape library or nonlibrary), tape management policy, device
management policy, and performance management policy. You can also
define an SMS-managed tape environment (includes a tape management
library) or a non-SMS-managed tape environment (a nonlibrary environment).

DFSMShsm uses tape scratch pools for output functions (for example,
backup and dump). You can define a global scratch pool or a specific scratch
pool. A global scratch pool is a repository of empty scratch tapes for use by
anyone. A specific scratch pool is a repository of empty scratch tapes whose
use is restricted to a specific user or set of users. Global scratch pools are
recommended because mount requests can be responded to more quickly
and easily than when tapes reside in a specific scratch pool. Using a global
scratch pool you can easily take advantage of automatic cartridge loaders,
reducing the tape mount wait time. Global scratch pools also enable use of a
tape management product like DFSMSrmm.

The life cycle of a tape is also determined by the SETSYS commands you
specify in the DFSMShsm ARCCMDxx member of PARMLIB. The SETSYS
commands manage the tape as it enters a scratch pool, is inventoried as
active data by DFSMShsm, is recycled (if it is a backup or migration tape),
and is finally returned to the scratch pool.

How DFSMShsm tape management is performed at your site is determined


by a number of factors, such as:
• How DFSMShsm interacts with DFSMSrmm and other tape management
systems
• Tape pool types that you can use
• Processing backup and migration tapes
• How tapes are marked at the end of a function
• Allowing SMS to manage your tape media

We describe the DFSMShsm tape requirements in a tape management


system and a non-tape management system. SMS-managed tape

© Copyright IBM Corp. 1998, 2000 189


environments refer to environments that support using the SMS ACS routines
to direct tape allocations, including IBM 3494 and IBM 3495 Tape Library
Data Server, and the IBM 3494 Virtual Tape Server. Non-SMS-managed
environments refer to environments that rely on esoteric tape devices to
determine allocation, such as stand alone tape drive models, IBM 3494 Tape
Library Data Server models managed by Basic Tape Library Support (BTLS),
and the non-IBM tape robotic systems.

We highlight the security measures that should be implemented for


DFSMShsm tape processing with DFSMSrmm and describe enhancements
that have been provided for tape processing. Optimum tape utilization is
described with the use of tape emulation capabilities. Customization of the
DFSMSrmm VRSs is provided as are examples for vault movement to your
vault or to off-site data storage.

4.1 DFSMShsm tape media


DFSMShsm tape processing functions support single file tapes. You cannot
create either multiple file reel-type backup or migration tapes. Support of
reel-type tapes is limited to the following functions:
• Recall or recovery of data sets that currently reside on reel-type tapes
• Creation of dump volumes
• Creation of CDS Version Backup tapes
• ABARS functions

Single-file cartridges are, as the term implies, written in single-file format on


cartridges from type 3480 up to the current cartridges available. It provides
performance advantages in I/O and system serialization reduction, as well as
recovery advantages through AUDIT MEDIACONTROLS and TAPECOPY
functions as they are only functional against single-file format cartridges.

Multiple file tape reels are associated with devices before type 3480.

4.2 Global and specific scratch pools


When a DFSMShsm output function fills a tape, it requests another tape to
continue output processing. Tapes are obtained from a scratch pool. The
scratch pool can be either a global scratch pool or a specific scratch pool.

When referring to a global scratch pool, you are referring to a pool of tapes
that are not defined to DFSMShsm. When DFSMShsm requests a scratch

190 DFSMShsm Primer


tape to be mounted, it creates a record in the OCDS. The record is stored by
DFSMShsm in the OCDS for the duration of its use by DFSMShsm, after
which it is deleted, and the tape returns to the global scratch pool. When a
scratch tape from the global scratch pool is used by DFSMShsm, its status is
changed to private. Global scratch pools work well with tape management
systems like DFSMSrmm.

A specific scratch pool consists of tapes that are predefined to DFSMShsm


and can be used only by DFSMShsm. These tapes are manually added to
DFSMShsm with the ADDVOL command. For example, to add tape POK001
for use by DFSMShsm started procedure HSM1 as a backup tape in an
automatic tape library (ATL), issue the following command:

F HSM1, ADDVOL POK001 BACKUP UNIT(3590-1)

We recommend that you use global scratch pools, as we will see in the next
topic. Output processing in a global scratch pool environment calls for any
scratch cartridge that significantly reduces the mount wait time, especially
when using devices with automatic cartridge loaders or in an automated tape
library.

4.3 DFSMShsm and tape management system interaction


DFSMShsm communicates with other components of your OS/390 system
through exits, including your tape management system. ARCTVEXT is the
installation-wide exit that allows communication between DFSMShsm and
your tape management system, with the exception of DFSMSrmm.
• How do I tell DFSMShsm to enable the ARCTVEXT installation-wide
exit?
To tell DFSMShsm to enable the ARCTVEXT installation-wide, add the
following SETSYS command in the ARCCMDxx PARMLIB member:

SETSYS EXITON(ARCTVEXT)

From DFSMS/MVS Version 1 Release 4, the EDGTVEXT general-use


programming interface is called by DFSMShsm to communicate with
DFSMSrmm. DFSMShsm automatically calls DFSMSrmm to process
tapes that are to be returned to the DFSMShsm tape pool or deleted from
DFSMShsm.

Chapter 4. DFSMShsm tape processing 191


• How do I tell DFSMShsm to use the EDGTVEXT programming
interface to communicate with DFSMSrmm?
The interface between DFSMShsm and DFSMSrmm is automatically in
place when you install DFSMS/MVS. A benefit of this interaction is that
DFSMSrmm can prevent DFSMShsm from overwriting its own control data
set backup, automatic dump, ABARS, and copies of backup or migration
tapes.

4.3.1 Interaction between DFSMShsm and DFSMSrmm


DFSMSrmm manages all tape media, such as cartridge system tapes and
3420 reels, as well as other removable media you define to it. For example,
DFSMSrmm can record the shelf location for optical disks and track their vital
record status; it does not manage the objects on optical disks.

With DFSMSrmm you can manage:


• A removable media library, which incorporates all other libraries, such as:
- System-managed tape libraries; for example, the automated IBM 3494
Tape Library Dataserver and IBM Magstar 3494 Virtual Tape Servers
- Non-system-managed tape libraries or traditional tape libraries
• Storage locations that are on-site and off-site

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 is comprised of shelf locations that you define to
DFSMSrmm.

DFSMSrmm records the complete inventory of the removable media library


and storage locations in the DFSMSrmm control data set which is a VSAM
key-sequenced data set.

DFSMSrmm manages the movement of volumes among all library types and
storage locations. This lets you control where a volume, and hence a data
set, resides and how long it is retained.

DFSMSrmm can provide enhanced management functions for the tape


volumes that DFSMShsm uses for each of its tape functions. The way the two
products work together depends on how you are using each of them in your
installation. For example, DFSMSrmm can manage the movement of tapes
that must be sent out of the library for disaster recovery.

DFSMSrmm provides the DFSMSrmm EDGTVEXT and EDGDFHSM


programming interfaces for use by products like DFSMShsm and Tivoli

192 DFSMShsm Primer


Storage Manager for using DFSMSrmm tape management. DFSMSrmm
treats DFSMShsm like any other user and retains volumes based on retention
period and vital record specifications.

The DFSMSrmm EDGTVEXT and EDGDFHSM programming interfaces


support products that require DFSMSrmm to maintain the correct volume
status. For more information on these programming interfaces, see OS/390
V2R10.0 DFSMSrmm Implementation and Customization Guide, SC26-7334.

In a DFSMSrmm global pool environment, the only tapes that DFSMShsm


knows about are the tapes that it has used and have not yet expired.
DFSMShsm does not maintain its own pool of scratch tapes and knows
nothing of any tapes outside its control.

Note
There are exceptions to this, as DFSMShsm can manage its own specific
tapes in coexistence with a global scratch pool environment. This is not
recommended, however.

When DFSMShsm calls for a scratch tape, DFSMSrmm honors the request,
and DFSMShsm uses the tape to write to. DFSMSrmm creates a master
control record, and DFSMShsm creates a record in the DFSMShsm CDS.

4.3.1.1 Authorizing DFSMShsm to DFSMSrmm resources


Before you can use DFSMSrmm with DFSMShsm, you are required to
authorize DFSMShsm to some DFSMSrmm resources. If you have multiple
DFSMShsm USER IDs, for example in a multisystem or multihost
environment, and any DFSMShsm ID can create tapes or return tapes to
scratch status or return tapes to the DFSMShsm tape pool, you must
authorize each DFSMShsm USER ID.

For details on DFSMSrmm implementation, refer to OS/390 V2R10.0


DFSMSrmm Implementation and Customization Guide, SC26-7334.
• How to authorize DFSMShsm to DFSMSrmm resources?
Each DFSMShsm host has its own user ID, which must be authorized to
the DFSMSrmm RACF Facility class profiles. Use this method:
- Create a Facility class profile for the DFSMShsm user ID, which in our
case is hsmid:

RDEFINE FACILITY STGADMIN.EDG.OWNER.hsmid

Chapter 4. DFSMShsm tape processing 193


- Next, permit hsmid to this profile and to additional DFSMSrmm profiles,
which should already be defined on a DFSMSrmm system:
PERMIT STGADMIN.EDG.OWNER.hsmid CLASS(FACILITY) ID(hsmid) ACCESS(UPDATE)
PERMIT STGADMIN.EDG.RELEASE CLASS(FACILITY) ID(hsmid) ACCESS(READ)
PERMIT STGADMIN.EDG.MASTER CLASS(FACILITY) ID(hsmid) ACCESS(READ)

Note
If the STGADMIN.EDG.RELEASE and STGADMIN.EDG.MASTER
Facility class profiles are not defined, contact your security
administrator before continuing. If you do not define these Facility
class profiles properly, severe cartridge RELEASE problems can
occur in DFSMSrmm

After you permit the DFSMShsm user ID to the Facility class profiles,
refresh your RACF facility class profiles, using this command:

SETROPTS GENERIC(FACILITY) REFRESH

4.3.1.2 Retaining DFSMShsm using expiration dates


DFSMShsm tapes can be retained in two ways. It can be retained by
DFSMShsm passing an expiration date parameter to DFSMSrmm with a
value of 99365 in the ARCCMDxx member of PARMLIB. For example:

SETSYS TAPESECURITY(EXPIRATION)
SETSYS CDSVERSIONBACKUP(BACKUPCOPIES(4) -
BACKUPDEVICECATEGORY(TAPE(PARALLEL UNITNAME(3490) -
EXPDT(99365)))

The SETSYS TAPESECURITY(EXPIRATION) startup parameter tells


DFSMShsm to control the expiration of its tapes. DFSMSrmm acknowledges
that DFSMShsm has control of the tape and does not manage it until
DFSMShsm releases it, or until the tape is deleted with the DELVOL
command. In the previous SETSYS command we also specify
EXPDT(99365) for backups of CDSs. This value 99365 is used by
DFSMShsm to specify that the backup versions of the CDSs never expire.

194 DFSMShsm Primer


If you want to use this retention method, you must specify
MAXRETPD(NOLIMIT) in the DFSMSrmm PARMLIB member EDGRMMxx:
OPTION OPMODE(P) -
DSNAME(RMM.CONTROL.DSET) -
JRNLNAME(RMM.JOURNAL.DSET) -
BACKUPPROC(EDGCDSBK) -
SCRATCHPROC(EDGXPROC) -
JOURNALFULL(75) -
RETAINBY(SET) -
MOVEBY(SET) -
CATRETPD(0) -
RETPD(0) -
MAXRETPD(NOLIMIT) -
VRSEL(OLD) -
VRSMIN(1,INFO) -
VRSCHANGE(INFO) -
MASTEROVERWRITE(LAST) -
BLP(RMM) -
SMFAUD(248) -
SMFSEC(249)

VLPOOL RACF(N) TYPE(S) EXPDTCHECK(O) MEDIANAME(3590) -


DESCRIPTION('3590 POOL') PREFIX(TST*) NAME(PL3590)

VLPOOL RACF(N) TYPE(S) EXPDTCHECK(O) MEDIANAME(3490) -


DESCRIPTION('3490 POOL') PREFIX(HGT*) NAME(PL3490)

VLPOOL RACF(N) TYPE(S) EXPDTCHECK(O) MEDIANAME(3480) -


DESCRIPTION('DEFAULT POOL') PREFIX(*) NAME(PL3480)

MNTMSG MSGID(IEF233A) ID(1) VOLUME(15) RACK(999)

REJECT ANYUSE(ADS*)
REJECT ANYUSE(MHL*)
REJECT ANYUSE(DB*)
REJECT ANYUSE(MXX*)
REJECT ANYUSE(THS*)

If you use a global scratch tape pool for DFSMShsm tapes, you need a way to
manage tapes protected with expiration dates set by DFSMShsm. To help
you manage this situation, DFSMSrmm lets you automate the responses to
expiration date protection messages for scratch pool tape volumes. Use the
parmlib member VLPOOL command to setup this automation. DFSMSrmm
automatically lets your users reuse the volumes in the pool without operator
intervention and without creating data integrity exposures.

4.3.1.3 Retaining DFSMShsm with DFSMSrmm using VRS


The tapes can also be retained by using DFSMSrmm Vital Record
Specifications (VRSs).

Chapter 4. DFSMShsm tape processing 195


DFSMSrmm provides policy management for movement and retention at the
data set level. Every tape data set can have a policy, and each policy can
specify movement as well as retention. The retention and movement policies
you define to DFSMSrmm are known as VRSs. You use them to indicate how
long and where you want to keep data sets or volumes. You also use them to
define how volumes are to be moved among the libraries that DFSMSrmm
supports and the storage locations defined for vital records and disaster
recovery purposes.

VRSs, are used for managing your site's vaulting requirements for either
on-site or off-site storage. This is not limited to DFSMShsm as many
application batch jobs also create backups that require movement, either to
your on-site vault or to an off-site location. VRSs allow you to specify data set
name masks, required locations, and how to retain your tapes, in
easy-to-follow panels that are delivered with DFSMSrmm. Here we look at
some of the DFSMSrmm panels and discuss DFSMShsm considerations.
• How do I get into the DFSMSrmm VRS panels?
You can access the Removable Media Manager panels through ISMF in
your TSO/E session as shown in Figure 63.

Panel Help
------------------------------------------------------------------------------
ISMF PRIMARY OPTION MENU - DFSMS V2R10
Enter Selection or Command ===>

Select one of the following options and press Enter:

0 ISMF Profile - Specify ISMF User Profile


1 Data Set - Perform Functions Against Data Sets
2 Volume - Perform Functions Against Volumes
3 Management Class - Specify Data Set Backup and Migration Criteria
4 Data Class - Specify Data Set Allocation Parameters
5 Storage Class - Specify Data Set Performance and Availability
6 Storage Group - Specify Volume Names and Free Space Thresholds
7 Automatic Class Selection - Specify ACS Routines and Test Criteria
8 Control Data Set - Specify System Names and Default Criteria
9 Aggregate Group - Specify Data Set Recovery Parameters
10 Library Management - Specify Library and Drive Configurations
11 Enhanced ACS Management - Perform Enhanced Test/Configuration Management
C Data Collection - Process Data Collection Function
L List - Perform Functions Against Saved ISMF Lists
R Removable Media Manager - Perform Functions Against Removable Media

Figure 63. The ISMF Primary Option Menu

From the ISMF Primary Option Menu, select option R to access the
Removable Media Manager (see Figure 64).

196 DFSMShsm Primer


Panel Help
------------------------------------------------------------------------------
REMOVABLE MEDIA MANAGER (DFSMSrmm)
Option ===>

0 OPTIONS - Specify dialog options and defaults


1 USER - General user facilities
2 LIBRARIAN - Librarian functions
3 ADMINISTRATOR - Administrator functions
4 SUPPORT - System support facilities
5 COMMANDS - Full DFSMSrmm structured dialog
6 LOCAL - Installation defined dialog
X EXIT - Exit DFSMSrmm Dialog

Enter selected option or END command. For more info., enter HELP or PF1.

5647-A01 (C) COPYRIGHT 1993,2000 IBM CORPORATION

Figure 64. Removable Media Manager panel

Enter option 3, Administrator, which takes you to the DFSMSrmm


Administrator Menu shown in Figure 65.

Panel Help
------------------------------------------------------------------------------
DFSMSrmm Administrator Menu
Option ===>

0 OPTIONS - Specify dialog options and defaults


1 VOLUME - Display or change volume information
2 OWNER - Display or change owner information
3 VRS - Vital record specifications

Enter selected option or END command. For more info., enter HELP or PF1.

5647-A01 (C) COPYRIGHT 1993,2000 IBM CORPORATION

Figure 65. DFSMSrmm Administrator Menu

Chapter 4. DFSMShsm tape processing 197


Select option 3, VRS, to enter the DFSMSrmm Vital Record Specification
Menu as shown in Figure 66.

Panel Help
------------------------------------------------------------------------------
DFSMSrmm Vital Record Specification Menu
Option ===>

0 OPTIONS - Specify dialog options and defaults


1 DISPLAY - Display a vital record specification
2 ADD - Add a vital record specification
3 CHANGE - Change a vital record specification
4 DELETE - Delete a vital record specification
5 SEARCH - Search for vital record specification

Enter selected option or END command. For more info., enter HELP or PF1.

5647-A01 (C) COPYRIGHT 1993,2000 IBM CORPORATION

Figure 66. DFSMSrmm Vital Record Specification Menu

From here you can display, create, alter, delete, and perform searches for
all of your vital records relating to DFSMShsm.
• How do I create a VRS entry to have my DFSMShsm dump tapes sent
off site for two weeks?
To add a vital record specification, from the DFSMSrmm Vital Record
Specification Menu, select option 2, Add, which takes you to the
DFSMSrmm Add Vital Record Specification panel (Figure 67). Enter the
DFSMShsm volume dump data set name that your installation is using.
We are using HSM as the high-level qualifier for our DFSMShsm
environment, so HSM.DMP.** is our dump data set name profile.

198 DFSMShsm Primer


Panel Help
------------------------------------------------------------------------------
DFSMSrmm Add Vital Record Specification
Command ===>

Specify one of the following:


Data set mask . . 'HSM.DMP.**'
Job name mask . .

Volume serial . . ( May be generic )

VRS name . . . .

Figure 67. DFSMSrmm Add Vital Record Specification panel

You are presented with the DFSMSrmm Add Data Set VRS panel
(Figure 68) where you specify your requirements for on-site or off-site
storage (for example, how to retain the tapes and the amount of time to
retain the tapes).

Panel Help
------------------------------------------------------------------------------
DFSMSrmm Add Data Set VRS
Command ===>

Data set mask . : 'HSM.DMP.**' GDG . . NO


Job name mask . :

Count . . . . 99999 Retention type . . . . . . DAYS


While cataloged . . . . . . NO
Delay . . . . 0 Days Until expired . . . . . . . NO

Location . . . . . . LOCAL
Number in location 14
Priority . . . . . . 0
Release options:
Next VRS in chain . . Expiry date ignore . . . . NO
Chain using . . . Scratch immediate . . . . . NO

Owner . . . . . . HSMTASK
Description . . .

Figure 68. DFSMSrmm Add Data Set VRS panel

Chapter 4. DFSMShsm tape processing 199


Table 5 provides information about the fields in the DFSMSrmm Add Data
Set VRS panel. For detailed information about the panel fields, refer to the
OS/390 V2R10.0 DFSMSrmm Implementation and Customization Guide,
SC26-7334.
Table 5. Vital Record Specification description table

Field Field Description

Data set mask Specify the fully or partially qualified data set name.

Job name mask This can be left blank because DFSMShsm creates the tapes.

GDG DFSMShsm does not create GDGs, so enter NO.

Description Any valid description that is meaningful for the VRS.

Owner As DFSMShsm will be a large user of your tape resources, it


should have its own DFSMSrmm owner created. In this case
we created HSMTASK as the owner for all DFSMShsm tapes.
The DFSMSrmm Implementation and Customization Guide
describes how to create an owner.

Retention type If you want to send your tapes offsite or to the vault for a specific
period, for example, 14 days for your dump tapes, specify
DAYS. This value will relate to the Store number in location
field.

While Cataloged Specify NO for DFSMShsm data sets.

Until expired Specify NO for DFSMShsm data sets.

Location Valid entries are HOME, LOCAL, DISTANT, and REMOTE, but
refer to the DFSMSrmm Implementation and Customization
Guide.

Delete date This field specifies the date when the VRS is to be deleted.
DFSMSrmm uses the default value of 1999/365, which means
never delete.

Vital record count 99999 indicates that all vital records are kept.

Delay You can delay the movement of your offsite data. A zero
indicates to move the tapes immediately; 1 indicates to move
the tapes the following day.

Store number in location This value indicates the number of days that any particular tape
is to stay offsite. We used DAYS in the Retention type field so
our tapes will stay offsite for 14 days in location LOCAL.
(LOCAL can be any storage facility in the nearby area).

Next VRS name Use this field only if you are planning on staging your tape
movements; for example, DISTANT, then REMOTE, then
LOCAL.This field points to the next VRS to look at in the chain.

200 DFSMShsm Primer


• How do I check my current VRS definitions to ensure I do not
duplicate any?
You can search for all of your currently defined VRSs, using option 5,
Search, on the DFSMSrmm Vital Records Specification Menu as shown in
Figure 69. This selection will display the DFSMSrmm Search VRSs panel:

Panel Help
------------------------------------------------------------------------------
DFSMSrmm Search VRSs
Command ===>

Optionally specify one of:


Data set mask '**.**' GDG . .
Job name mask ( Yes or No )
Volume serial Retention type . . .
VRS name . . . While cataloged . . ( Yes or No )
Until expired . . . ( Yes or No )

Location . . . . Release options:


Next VRS in chain Expiry date ignore ( Yes or No )
Chain using . . Scratch immediate ( Yes or No )

Owner . . . . . . *
Limit . . . . . . ( Limit search to first nnnn VRSs.
Default = 10 )

The following line commands will be available:


C - Change VRS D - Delete VRS

Figure 69. DFSMSrmm Search VRSs panel

To display all current VRS definitions, enter asterisks in the Data set mask
and Owner fields. Set Limit to a high number as the default is only 10.
• What kind of VRS should I create for daily backup tapes that are to
remain on site?
Use the example shown in Figure 70 to add your VRS for your daily
DFSMShsm backup tapes. The way in which DFSMShsm dump tapes and
DFSMShsm backup tapes are processed has changed somewhat.

Chapter 4. DFSMShsm tape processing 201


Panel Help
------------------------------------------------------------------------------
DFSMSrmm Add Data Set VRS
Command ===>

Data set mask . : 'HSM.BACKTAPE.DATASET' GDG . . NO


Job name mask . :

Count . . . . 99999 Retention type . . . . . . CYCLES


While cataloged . . . . . . NO
Delay . . . . 0 Days Until expired . . . . . . . NO

Location . . . . . . HOME
Number in location 99999
Priority . . . . . . 0
Release options:
Next VRS in chain . . Expiry date ignore . . . . NO
Chain using . . . Scratch immediate . . . . . NO

Owner . . . . . . HSMTAPES
Description . . . HSM BACKUP TAPES
Delete date . . . 1999/365 ( YYYY/DDD )

Figure 70. Defining a VRS for DFSMShsm backup tapes

In this example, we have changed three fields:


- Retention type
- Location
- Store number in location
Retention type has been changed to CYCLES because we want any tape
using this VRS to continue to use it until it is either recycled, expires
naturally, or is deleted.
Location can be changed to HOME if you do not want daily backup tapes
sent off site.
Store number in location is changed to 99999, which is the DFSMSrmm
default. This works with the CYCLES selection to ensure that all tapes are
retained in location HOME.
• Do I create a VRS for my migrated data and have it defined the same
as my VRS for on-site backup?
Yes. Your site policy may vary in terms of how your backup and migration
data is treated, but for on-site migrated data, it would be the same except
for the data set mask.

202 DFSMShsm Primer


• If I created a more generic VRS, would it create a problem?
No it would not. If you create a VRS with a data set name mask of
HSM.DMP.** (which we have) and then later create another VRS with a
data set name mask of HSM.**, DFSMSrmm will use the more specific
VRS definition when possible.

4.3.1.4 Recommendations for using DFSMShsm with DFSMSrmm


If you plan to use DFSMSrmm with DFSMShsm you must be careful with your
definitions. Use the following general recommendations:
• Use global scratch pool for DFSMSrmm so you can have a single scratch
pool for all users of tape and so you can gain any benefits available from
pre-mounting of scratch tapes in cartridge loaders.
• Use RACF tape security to ensure data security on your system.
• Follow the naming conventions for DFSMShsm data sets. Refer to OS/390
V2R10.0 DFSMShsm Implementation and Customization Guide,
GC35-0385, for details.
• The following are the DFSMShsm parameters that we suggest.
For the system options, specify:

SETSYS EXITOFF(ARCTVEXT)
SETSYS SELECTVOLUME(SCRATCH)
SETSYS TAPEDELETION(SCRATCH)
SETSYS TAPESECURITY(RACF)
SETSYS PARTIALTAPE(MARKFULL)

EXITOFF(ARCTVEXT) Specify this parameter if DFSMSrmm is the only tape


management system product. If it is the case DFSMShsm always calls the
DFSMSrmm programming interface EDGTVEXT.
SELECTVOLUME(SCRATCH) This parameter makes DFSMShsm to issue a
non-specific mount request for output tapes which can be satisfied by any
empty tape that it is acceptable to both DFSMShsm and DFSMSrmm.
PARTIALTAPE(MARKFULL) This parameter must be specified if one of the
following conditions fits your installation:
- You are using automatic cartridge loaders so DFSMShsm marks
partially used volumes as full. The first output tape of each task will be
a non-specific mount, getting faster tape mounts. You can specify
migration and backup options separately.
- You want to get duplicate volumes for migration and backup data and
move them to a storage location in a timely manner. If you mark the
tapes full then you prevent a task’s last tape, that is only partially filled,

Chapter 4. DFSMShsm tape processing 203


from remaining in the library an additional 24 hours before being
duplicated the next day for disaster protection.
- You use TAPECOPY or the DUPLEX tape feature to duplicate tapes
and ship them to a storage location. TAPECOPY only processes full
volumes. If you use MARKFULL to end one day’s cycle and begin
another day’s cycle, volumes will be duplicated and shipped to the
storage location as quickly as possible. Using the DUPLEX tape
feature means that both the original and copy tapes are created at the
same time. DFSMSrmm ships the DUPLEX copy to the storage
location as quickly as possible. This might create problems if
DFSMShsm expects to continue writing to the tape the next day.
Marking the DUPLEX tapes full allows DFSMSrmm to process both
TAPECOPY copies and DUPLEX tapes in the same way.
For dump definitions, specify:

DEFINE DUMPCLASS(class -
AUTOREUSE -
RETENTIONPERIOD(days))

RETENTIONPERIOD instead of TAPEEXPIRATIONDATE to allow the tapes to


be reused or written to by any other program without their needing to be
reinitialized after DFSMShsm expires them.
AUTOREUSE makes the tapes to return to the scratch pool as soon as data
on the tape are invalidated. This option is needed for DFSMShsm to call
DFSMSrmm to release the tape volume. It is needed to issue a DELVOL
command for each tape after it is returned to the locale of the tape drives.
Do not use AUTOREUSE for a DFSMShsm-managed pool when also
removing tapes from the vicinity of the tape drives. This is because
DFSMShsm might select a remotely located tape before DFSMSrmm is
able to cause the tape’s physical return to the locale of the tape drives.

4.4 Disaster recovery considerations


The premise for disaster recovery is that you will have copies of all your
critical data sets stored at a location separate from your computer site and
that a computer system of approximately the same capabilities will be
available to be used to resume operations.

The ABACKUP and ARECOVER functions available with ABARS facility


provide comprehensive recovery of your data in case of a disaster.

204 DFSMShsm Primer


However, you also need protection against damage or loss of your backup
and ML2 tape volumes. DFSMShsm allows you to make copies of your
backup and ML2, single-file-format tape volumes for storage at a site different
from the computer site or for use at the computer site to recover lost or
damaged tape volumes.

To provide disaster backup, two things are necessary: (1) a way to make
copies of DFSMShsm-owned tape volumes and to identify the copied
volumes to DFSMShsm; and (2) a way to cause DFSMShsm to use the
copied volumes instead of the original volumes. To fulfill these needs,
DFSMShsm provides the duplex tape option or the TAPECOPY command,
and the TAPEREPL command.

The TAPECOPY function of DFSMShsm is discussed in 4.4.2, “TAPECOPY”


on page 207.

The duplex tape option is an alternative to TAPECOPY processing and is


applicable to backup and migration volumes.

4.4.1 Duplex tape


The duplex tape option provides an alternative to TAPECOPY processing for
backup and migration cartridge-type tapes. Two tapes are created
concurrently with one designated the original, the other the alternate. The
intent is that the original tape be kept on site, while the alternate can either be
created in a remote tape library, or taken off site. If you have an adequate
number of tape drives, the duplex tape option is recommended over
TAPECOPY.
• How I do invoke the duplex tape option?
The option to duplex either backup or migration or both is determined by
the following SETSYS parameter:

SETSYS DUPLEX(BACKUP(Y|N) MIGRATION(Y|N)


SETSYS DUPLEX(BACKUP(Y) MIGRATION(Y)

In the second line duplexing is turned on for both backup and migration
and means that two tapes are created concurrently. One is designated the
original, with the intention of being kept on site, and the other the
alternate, with the intention of being taken off site or created in a remote
location.

Chapter 4. DFSMShsm tape processing 205


• What are the tape data set names of the tape copies that are created?
The pair of tapes maintain the original versus alternate distinction. The
original tape volume will have one of the following data set names,
depending on under which function it was created:

prefix.HMIGTAPE.DATASET
prefix.BACKTAPE.DATASET

The alternate tape volumes will have names of the following format:

prefix.COPY.HMIGTAPE.DATASET
prefix.COPY.BACKTAPE.DATASET

• Are these data set name formats compatible with tapes created by
the TAPECOPY command?
Yes. This format allows tapes created by the duplex tape option to be
compatible with those created by TAPECOPY.
• Must the original and alternate copies be the same tape geometry?
Yes. Although it would be possible in an SMS-managed tape library to
direct the alternate tape volume to a different tape library with a different
geometry, this is not recommended or supported. The intention of the
duplex tape option is to make sure that you have an alternate copy that is
exactly the same in all respects as the original.
• Are there any special considerations that I need to take into account
before switching on duplexing?
As two copies are going to be created concurrently, you will need at least
two output devices for each backup or migration task that is going to run.
This includes the RECYCLE function of DFSMShsm as well. If duplex is in
use for a function, each recycle task needs three tape drives: one for input
and two for output.
• How does DFSMShsm select the tapes for the duplex option?
The tape selection process is the following:
- A partial tape and its alternate are selected.
- If no partial tapes with alternates are found, an empty ADDVOLed
volume with a scratch volume as an alternate are selected.
- If there are no empty ADDVOLed volumes, two scratch volumes are
selected.

206 DFSMShsm Primer


• What happen if a problem occurs when duplexing a tape?
If there is a problem when creating the alternate tape using the duplex
tape option, DFSMShsm automatically schedules internal TAPECOPY
processing to ensure that valid alternate tapes exist.
If the original tape is demounted before being filled it is marked as
duplexed but unavailable for output until the alternate is successfully
created.

Duplex tape does not support SETSYS TAPEUTILIZATION NOLIMIT set for
the output unit being duplexed. This is because the alternate tape must
match the original tape exactly, and with SETSYS TAPEUTILIZATION set to
NOLIMIT this is impossible to guarantee, since either tape could be longer
than the other. When TAPEUTILIZATION is set to NOLIMIT, the duplex tape
option causes the tapes to reach a logical EOV when they are 97% full.

For more details on duplex tape processing refer to the OS/390 V2R10.0
DFSMShsm Storage Administration Guide, SC35-0388.

4.4.2 TAPECOPY
• What does the TAPECOPY command allow me to do?
As its name suggests, the DFSMShsm TAPECOPY command allows you
to make copies of your single-file-format DFSMShsm-owned cartridge
tapes. The copies of the original tape are known as alternates and the
terminology is similar to that used in tape duplexing.
• Do I need to ADDVOL the tape volumes before I make a copy?
No. The alternate volumes start as scratch volumes. This prevents
backup, dump, or ML2 tapes from being used as alternate volumes.
• Which commands can I use to make tape copies?
TAPECOPY allows you to copy categories of tapes:

TAPECOPY BACKUP
TAPECOPY MIGRATIONLEVEL2
TAPECOPY ALL

These commands cause copies to be taken of full tapes that do not


already have an alternate copy.
You can make copies of all volumes categorized as either ML2, backup (or
both), or of individual tape volumes. You can issue one TAPECOPY
command per DFSMShsm host as long as the requests do not overlap.

Chapter 4. DFSMShsm tape processing 207


For example, you can issue a TAPECOPY ML2 command on one host and
a TAPECOPY BACKUP command on another host.
• |f my tapes are not already full, what do I need to do?
If you already have the following specified in your ARCCMDxx PARMLIB
member:

SETSYS PARTIALTAPE(MARKFULL)

There is nothing else that you need to do as you are asking DFSMShsm to
mark partially filled tapes full at the end of each task. If, instead of
MARKFULL, you have coded REUSE in your ARCCMDxx PARMLIB
member, you have to issue the SETSYS command as above. After a few
backup and migration cycles, the volumes will be marked as full.
Alternatively you could issue one of the following commands to mark the
volumes as full:

DELVOL volser BACKUP(MARKFULL)


DELVOL volser MIGRATION(MARKFULL)

Will the DELVOL cause the volume to be deleted from DFSMShsm's


inventory?
No. When the MARKFULL parameter is specified, the only processing that
takes place is to mark the volume as full. A delete of the volume does not
take place.
• I thought that ML2 tape volumes were not marked as full at the end of
data set migration. What will happen then?
ML2 tape volumes are not marked as full at the end of data set migration.
There is an exception for ML2 tapes, even in a MARKFULL environment.
ML2 tapes are not marked as full after data set migration for a simple
reason: If, for example, command migration caused one data set to
migrate to tape, that tape would be an ML2 tape for just one data set. This
is not smart tape utilization, so ML2 tapes remain as partially filled until a
TAPECOPY command is issued for that volume. TAPECOPY, in a
MARKFULL environment, marks ML2 volumes as full and makes the copy.
• Can I make copies of individual volumes?
Yes. Use a version of the following command:

TAPECOPY ORIGINALVOLUMES(ovol1,ovol2,ovoln)
TAPECOPY ORIGINALVOLUMES(ovol1,ovol2,ovoln) -
ALTERNATEVOLUMES(avol1,avol2,avoln)

208 DFSMShsm Primer


This command causes a copy of the volume or volumes that you specify
with the ovol parameters. If you use the first form of the command, a
default volume serial number of PRIVAT is used for the alternate tape
volumes. PRIVAT indicates to DFSMShsm that a scratch volume be
mounted for each alternate tape volume. However, if you use the second
form of the command, DFSMShsm uses the volumes you specify with the
ALTERNATEVOLUMES parameter to become the alternate volumes. If
you use the ALTERNATEVOLUMES parameter, you must specify exactly
the same number of volumes with the ALTERNATEVOLUMES parameter
as you specified with the ORIGINALVOLUMES parameter. There is a
one-to-one correspondence between the original volumes and alternate
volumes that you specify. That is, ovol1 is copied to avol1, ovol2 is copied
to avol2, and so forth.
• What are the tape data set names of the tape copies that are created?
The original tape volume will have one of the following data set names
depending on the function under which it was created:

prefix.HMIGTAPE.DATASET
prefix.BACKTAPE.DATASET

The alternate tape volumes will have names of the following format:

prefix.COPY.HMIGTAPE.DATASET
prefix.COPY.BACKTAPE.DATASET

• How does DFSMShsm keep track of the alternate volume?


The alternate volume serial is recorded in the TTOC record of the original
tape.
• Over time if I explicitly copy an original volume to a number of
alternate volumes, which volume will DFSMShsm use as the
alternate?
DFSMShsm records only the most recent copy of the volume in the TTOC
record.
An ARC0436I message is issued each time you make a copy when one
already exists.
• How can I obtain a list of tape volumes that are marked full and do
not have alternate tape volumes?
Issue the following command to get a list of those volumes:

LIST TTOC SELECT(NOALTERNATEVOLUME)

Chapter 4. DFSMShsm tape processing 209


• Is it possible to use the volume list that is returned as input to a
TAPECOPY command?
Yes. You can use the following TAPECOPY command:

TAPECOPY INDATASET(volcopy.list.dsname)

Where volcopy.list.dsname is the name of the dataset including the list of


volumes you want create an alternate tape volume for. You can use an
edited version of the output from the LIST command to generate this list of
volumes. For more information about specifying this parameter, refer to
the OS/390 V2R10.0 DFSMShsm Storage Administration Reference,
SC35-0389.

4.4.3 TAPEREPL
If an original ML2 or backup volume is lost or damaged, the volume can be
replaced with its alternate volume.
• How do I replace an original tape volume that is lost or damaged?
Use the TAPEREPL command to replace an original volume.
• How do I use the TAPEREPL command to replace an original volume?
If your original volume with a volser of AAAAAA has become lost or
damaged, and assuming that an alternate exists, you would issue the
following DFSMShsm command:

TAPEREPL ORIGINALVOLUMES(AAAAAA)

Once this command has successfully completed, all references to the


original tape have been replaced by references to what was its alternate
tape, and the original tape is disposed of as specified in the
TAPEDELETION option.
• How can I know if one tape has alternate volume?
This information is recorded in the TTOC of the original volume, so you
can issue the following command:

LIST TTOC(volser)

• Do I still have an alternate tape volume after a TAPEREPL?


No. You must issue the TAPECOPY command to make a new copy of the
volume. If, for example, the volume that replaced volser AAAAAA had a

210 DFSMShsm Primer


volser of BBBBBB (that is to say, BBBBBB was the alternate), you would
have to issue the following command:

TAPECOPY ORIGINALVOLUMES(BBBBBB)

Once this command completes, you have a new alternate should it be


required.
• How DFSMShsm notifies the completion of the TAPEREPL
command?
When the TAPEREPL command successfully replaces a tape volume,
DFSMShsm issues the ARC0427I message and invokes the tape-volume
exit ARCTVEXT to indicate to a tape management product that the original
volume can be returned to scratch. There are two situations in which
ARCTVEXT is not invoked, one is when you are using DFSMSrmm a your
tape management system and the other is when you use the optional
subparameter DISASTERALTERNATEVOLUME with the TAPEREPL
command.
• What are disaster alternate volumes?
DFSMShsm provides a way, given that you have created alternate tapes
or have duplexed alternate tapes, to use those alternates in place of the
original tapes for doing recalls or recovers. The designation of “disaster
alternate volumes” helps distinguish between alternate volumes initially
present at the recovery site and the alternate volumes created later at the
recovery site.
• When may I need to work with disaster alternate volumes?
You may need to use your alternate volumes on the recovery site in case
of a real disaster or for doing a disaster recovery test. For doing it you
must specify the following commands:

TAPEREPL ALL DISASTERALTERNATEVOLUMES


SETSYS DISASTERMODE

DISASTERALTERNATEVOLUMES parameter causes each alternate


volume to be flagged as a disaster alternate volume. Only base OCDS

Chapter 4. DFSMShsm tape processing 211


TTOC records of ML2 and backup tapes that have alternate volumes are
updated.
Note
When the DAVOLUMES option is used, DFSMShsm does not invoke
the tape-volume exit ARCTVEXT, since the original tape is not being
totally replaced. For example, if this is done for a disaster recovery test,
the resulting control data sets may be discarded after the test, and the
original tapes again used at the home site.

DFSMShsm invokes ARCTVEXT when the complete replacement is


done, using TAPEREPL without the DAVOLUMES option.

SETSYS DISASTERMODE specifies that DFSMShsm has established a


tape substitution mode. While DFSMShsm is running in disaster mode, it
checks the TTOC record of the original tape volume to see if a disaster
alternate volume exits and if so, request the use of it to return the data.
• What must I do when finishing to use disaster alternate volumes?
Once you have finished to use the disaster alternate volumes you can
reset the flag with the following command:

TAPEREPL ONLYDISASTERALTERNATES(RESET)

Or if you are recovering from a real disaster and you want to return to your
original site, then you need to convert all disaster alternate volumes to
original tapes. For doing this you must issue the following command:

TAPEREPL ONLYDISASTERALTERNATES

4.4.4 Using DFSMShsm alternate tapes with DFSMSrmm


In previous sections we have seen how to create alternate tapes for
DFSMShsm owned tape volumes. The major use of these alternate tapes is
to use them at a remote site in case of a disaster.

The process for using alternate volumes as disaster alternate volumes is the
following:
1. Have a copy of the DFSMShsm control data sets at the disaster site.
2. Perform a TAPEREPL specifying the DISASTERALTERNATE parameter.
This flags each existing alternate tape as a disaster alternate.
3. Place DFSMShsm in DISASTER mode. When in disaster mode
DFSMShsm dynamically checks before mounting an input tape whether

212 DFSMShsm Primer


the needed data resides on a tape having a disaster alternate. If it does,
the disaster alternate is requested.

DFSMSrmm recognizes when DFSMShsm is opening tape data set s and


tolerates the data set names that DFSMShsm uses as long as the last 17
characters of the data set name match.

When you perform a true replacement using the TAPEREPL command,


without the DISASTERALTERNATE keyword, DFSMShsm uses the data set
name it uses for the original tapes.

4.4.5 ABARS
Aggregate Backup and Recovery Support (ABARS) performs data backup
and recovery processes, on a predefined set of data called an aggregate.
During backup processing, the data is packaged as a single entity in
preparation for taking it off-site. This enables the recovery of individual
applications in user-priority sequence.

In most cases, the output of ABACKUP is directed to tape media. Tape media
is chosen because it is easily transported from one location to another. Along
with this ease of movement comes the task of managing the tape contents,
location, and security.

Many sites manage tapes with a tape management system (DFSMSrmm, for
example) and DFSMShsm. A tape begins its life as a scratch tape, is used by
DFSMShsm to store data, and is returned to the tape management system to
be reused as a scratch tape. To implement this form of concurrent tape
management, communications must be coordinated whenever you define the
environment and data sets for the use of a tape management system.
• How to authorize ABARS to DFSMSrmm resources?
- Create a Facility class profile for the ABARS user ID, which in our case
is abarsid :

RDEFINE FACILITY STGADMIN.EDG.OWNER.abarsid

- Next, permit abarsid to this profile and to additional DFSMSrmm


profiles, which should already be defined on a DFSMSrmm system:
PE STGADMIN.EDG.OWNER.abarsid CLASS(FACILITY) ID(abarsid) ACCESS(UPDATE)
PE STGADMIN.EDG.RELEASE CLASS(FACILITY) ID(abarsid) ACCESS(READ)
PE STGADMIN.EDG.MASTER CLASS(FACILITY) ID(abarsid) ACCESS(READ)

For more details on how ABARS works see 2.2.2, “ABARS” on page 42 and
2.8.4, “Aggregate Backup and Recovery Support (ABARS)” on page 137.

Chapter 4. DFSMShsm tape processing 213


4.5 SMS-managed tape libraries
A system-managed tape library consists of tape volumes and tape devices
that are defined in the tape configuration database. The tape configuration
database is an integrated catalog facility user catalog marked as a volume
catalog (VOLCAT) containing tape volumes and tape library records. A
system-managed tape library can be either automated or manual.

An automated tape library (ATL) is a device consisting of robotic components,


cartridge storage areas (or shelves), tape subsystems, and controlling
hardware and software, together with the set of tape volumes that reside in
the library and can be mounted on the library tape drives.

A manual tape library (MTL) is a set of tape drives and the set of
system-managed volumes the operator can mount manually on those drives.

4.5.1 SMS-managed tape library definition


The implementation of SMS-managed tape libraries involves several tasks.
These tasks are fully described in the OS/390 V2R10.0 DFSMS OAM PISA
for Tape Libraries, SC35-0392. For a detailed description of the steps you
must follow to implement an SMS-managed tape library, see the redbook IBM
Magstar Tape Products Family: A Practical Guide, SG24-4632.

To implement DFSMShsm functions in an SMS-managed tape library, follow


these steps:
• Determine which tape functions you want to process in a tape library.
• Set up a global scratch pool.
• Define or update a data class to compact tape library data.
• Define or update a storage class to enable a storage group.
• Define or update a storage group to associate tape devices with the
library.
• Set up or update ACS routines to filter data sets to the library.
• Define or update the DFSMShsm tape environment in the ARCCMDxx
PARMLIB member.

4.5.1.1 Determine which functions to process in a tape library


Tape libraries can process any DFSMShsm tape functions. You must decide
which DFSMShsm functions to process in a tape library. Each DFSMShsm
function uses a unique tape data set name. An ACS routine can recognize the
functions you want to process in an SMS-managed tape library by the data

214 DFSMShsm Primer


set names. Table 6 shows the data set name patterns generated by
DFSMShsm according to the function it is performing. You may use the data
set name patterns as filters for ACS selection.
Table 6. DFSMShsm tape data set names and unit type passed to the ACS

DFSMShsm Function Tape Data Set Names Commands with unittype Restrictions

Backup to original prefix.BACKTAPE.DATASET SETSYS BACKUP(TAPE(unittype))

Backup to alternate prefix.COPY.BACKTAPE.DATASET

Recycle of backup tapes to original prefix.BACKTAPE.DATASET SETSYS


RECYCLEOUTPUT(BACKUP(unittype))
Recycle of backup tapes to alternate prefix.COPY.BACKTAPE.DATASET

Migration to original prefix.HMIGTAPE.DATASET SETSYS TAPEMIGRATION( -


DIRECT(TAPE(unittype)) |
Migration to alternate prefix.COPY.HMIGTAPE.DATASET ML2TAPE(TAPE(unittype)) |
NONE(ROUTETOTAPE(unittype))

Recycle of migration tapes to prefix.HMIGTAPE.DATASET SETSYS


original RECYCLEOUTPUT(MIGRATION(unittype))

Recycle of migration tapes to prefix.COPY.HMIGTAPE.DATASET


alternate

Dump prefix.DMP.dclass.Vvolser.Dyyddd.Tssmmhh DEFINE DUMPCLASS(class


UNIT(unittype))

Spill prefix.BACKTAPE.DATASET SETSYS SPILL(TAPE(unittype))

Tapecopy of backup tapes prefix.COPY.BACKTAPE.DATASET TAPECOPY ALTERNATEUNITNAME


(unittype1,unittype2))

Tapecopy of migration tapes prefix.COPY.HMIGTAPE.DATASET TAPECOPY


ALTERNATE3590UNITNAME
(unittype1,unittype2)

CDS backup Datamover=HSM uid.BCDS.BACKUP.Vnnnnnn SETSYS CDSVERSIONBACKUP


uid.MCDS.BACKUP.Vnnnnnn (BACKUPDEVICECATEGORY -
uid.OCDS.BACKUP.Vnnnnnnn (TAPE UNITNAME(unittype)))
uid.JRNL.BACKUP.Vnnnnnn

CDS backup Datamover=DSS uid.BCDS.BACKUP.Dnnnnnn


uid.MCDS.BACKUP.Dnnnnnn
uid.OCDS.BACKUP.Dnnnnnnn
uid.JRNL.BACKUP.Dnnnnnn

ABARS processing outputdatasetprefix.C.CccVnnnn ABACKUP agname UNIT(unittype)


outputdatasetprefix.D.CccVnnnn
outputdatasetprefix.I.CccVnnnn
outputdatasetprefix.O.CccVnnnn

4.5.1.2 Set up a global scratch pool


A global scratch pool is a repository of empty tapes for use by anyone. The
tape volumes are not individually known by DFSMShsm while they are
members of the scratch pool. When a scratch tape is mounted and written to
by DFSMShsm, it becomes a private tape and is removed from the scratch

Chapter 4. DFSMShsm tape processing 215


pool. When tapes used by DFSMShsm no longer contain valid data, they are
returned to the global scratch pool for use by anyone, and DFSMShsm
removes all knowledge of their existence.

Global scratch pools are recommended because mount requests can be


responded to more quickly and more easily than when tapes reside in a
specific scratch pool. Using a global scratch pool enables easy exploitation of
cartridge loaders (including cartridge loaders in tape-library-resident devices)
and works well with tape management systems such as DFSMSrmm. Ensure
that tapes entered into an SMS-managed tape library global scratch pool are
assigned a scratch status.

If you plan to use a global scratch pool, ensure that the following commands
are present in your ARCCMDxx PARMLIB member.

SETSYS SELECTVOLUME(SCRATCH)
SETSYS TAPEDELETION(SCRATCHTAPE)
SETSYS PARTIALTAPE(REUSE)

4.5.1.3 Defining a Data Class


The data class construct can provide the tape devices and media type
information for tape data sets. The attributes you can specify in a data class
construct are:
• The type of media to use
• Whether the data is to be compacted
• Recording technology (18 track, 36 track, 128 track or 256 track)

You may have different tape devices and different media types at your
installation, so you may have to assign specific data classes for the selection
of specific devices and tape media.

To define a data class, go to ISMF Primary Option Menu and select option 4,
Data Class, as shown in Figure 71.

216 DFSMShsm Primer


Panel Help
------------------------------------------------------------------------------
ISMF PRIMARY OPTION MENU - DFSMS V2R10
Enter Selection or Command ===> 4

Select one of the following options and press Enter:

0 ISMF Profile - Specify ISMF User Profile


1 Data Set - Perform Functions Against Data Sets
2 Volume - Perform Functions Against Volumes
3 Management Class - Specify Data Set Backup and Migration Criteria
4 Data Class - Specify Data Set Allocation Parameters
5 Storage Class - Specify Data Set Performance and Availability
6 Storage Group - Specify Volume Names and Free Space Thresholds
7 Automatic Class Selection - Specify ACS Routines and Test Criteria
8 Control Data Set - Specify System Names and Default Criteria
9 Aggregate Group - Specify Data Set Recovery Parameters
10 Library Management - Specify Library and Drive Configurations
11 Enhanced ACS Management - Perform Enhanced Test/Configuration Management
C Data Collection - Process Data Collection Function
L List - Perform Functions Against Saved ISMF Lists
R Removable Media Manager - Perform Functions Against Removable Media

Figure 71. Accessing the data class panels from the ISMF Primary Option Menu

On the Data Class Application Selection panel, select option 3, Define, to


define the data classes you need. On Figure 72 we are going to define a
data class named DC54236:

Panel Utilities Help


------------------------------------------------------------------------------
DATA CLASS APPLICATION SELECTION
Command ===>

To perform Data Class Operations, Specify:


CDS Name . . . . . . 'SYS1.SMS.SCDS'
(1 to 44 character data set name or 'Active' )
Data Class Name . . DC54236 (For Data Class List, fully or partially
specified or * for all)

Select one of the following options :


3 1. List - Generate a list of Data Classes
2. Display - Display a Data Class
3. Define - Define a Data Class
4. Alter - Alter a Data Class

If List Option is chosen,


Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

Figure 72. Data Class Application Selection panel

Chapter 4. DFSMShsm tape processing 217


On page 2 of the Data Class Define panel (Figure 73) we define the data
class attributes that are applicable to tape data sets:

Panel Utilities Scroll Help


------------------------------------------------------------------------------
DATA CLASS DEFINE Page 2 of 3
Command ===>

SCDS Name . . . : SYS1.SMS.SCDS


Data Class Name : DC54236
To DEFINE Data Class, Specify:
Retpd or Expdt . . . . . . (0 to 9999, YYYY/MM/DD or blank)
Volume Count . . . . . . . 1 (1 to 59 or blank)
Add'l Volume Amount . . . (P=Primary, S=Secondary or blank)
Imbed . . . . . . . . . . . (Y, N or blank)
Replicate . . . . . . . . . (Y, N or blank)
CIsize Data . . . . . . . . (1 to 32768 or blank)
% Freespace CI . . . . . . (0 to 100 or blank)
CA . . . . . . (0 to 100 or blank)
Shareoptions Xregion . . . (1 to 4 or blank)
Xsystem . . . (3, 4 or blank)
Compaction . . . . . . . . y (Y, N, T, G or blank)
Media Interchange
Media Type . . . . . . . 2 (1, 2, 3, 4 or blank)
Recording Technology . . 256 (18, 36, 128, 256 or blank)

Figure 73. Data Class Define panel (page 2 of 3)

The Data Class Define panel fields that affect tape device and media
selection are explained below.

Compaction specifies whether or not data compaction should be selected for


data sets assigned to this data class. We recommend that you always set the
compaction to YES, even if you plan to direct DFSMShsm output tapes to a
virtual tape server (VTS).

Media Type specifies the tape cartridge media used for data sets associated
with this data class. The possible Media Type values are:
1 For MEDIA1 (3490 standard, 400MB physical; CST)
2 For MEDIA2 (3490 enhanced, 800MB physical; ECCST)
3 For MEDIA3 (3590 standard, 10GB physical; HPCT)
4 For MEDIA4 (3590 extended, 20GB physical; EHPCT)
blank Cartridge type not specified

Recording Technology specifies the number of tracks on tape cartridges used


for data sets associated with this data class. For MEDIA1 and MEDIA2 tapes,
this value must be 36; for MEDIA3 and MEDIA4 tapes, it can be 128 or 256.

218 DFSMShsm Primer


DFSMShsm is a good candidate to use large capacity tapes. If you plan to
direct your DFSMShsm tape output to an SMS-managed library, we
recommend using MEDIA3 or MEDIA4.

If you plan to direct your DFSMShsm tapes to a VTS, we recommend that you
define the logical volumes as MEDIA2 tapes (ECCST) and set the
TAPEUTILIZATION as:

SETSYS TAPEUTILIZATION(LIBRARYMIGRATION PERTENTFULL(100))


SETSYS TAPEUTILIZATION(LIBRARYBACKUP PERCENTFULL(100))

4.5.1.4 Defining a Storage Class


A data set can be SMS-managed only when a storage class is assigned to it.
For tape data sets, specialized performance and availability services are not
required.

You can define the storage class for tapes with defaults, because none of the
attributes applies to SMS-managed tape. See Figure 74 for an example of a
storage class definition for SMS-managed tape:

Panel Utilities Scroll Help


------------------------------------------------------------------------------
STORAGE CLASS DEFINE Page 1 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54TAPE
To DEFINE Storage Class, Specify:
Description ==> Storage Class for Tape Data Sets
==>
Performance Objectives
Direct Millisecond Response . . . . (1 to 999 or blank)
Direct Bias . . . . . . . . . . . . (R, W or blank)
Sequential Millisecond Response . . (1 to 999 or blank)
Sequential Bias . . . . . . . . . . (R, W or blank)
Initial Access Response Seconds . . (0 to 9999 or blank)
Sustained Data Rate (MB/sec) . . . (0 to 999 or blank)
Availability . . . . . . . . . . . . N (C, P ,S or N)
Accessibility . . . . . . . . . . . N (C, P ,S or N)
Backup . . . . . . . . . . . . . . (Y, N or Blank)
Versioning . . . . . . . . . . . . (Y, N or Blank)

Chapter 4. DFSMShsm tape processing 219


Panel Utilities Scroll Help
------------------------------------------------------------------------------
STORAGE CLASS DEFINE Page 2 of 2
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Class Name : SC54TAPE

To DEFINE Storage Class, Specify:

Guaranteed Space . . . . . . . . . N (Y or N)
Guaranteed Synchronous Write . . . N (Y or N)
CF Cache Set Name . . . . . . . . (up to 8 chars or blank)
CF Direct Weight . . . . . . . . . (1 to 11 or blank)
CF Sequential Weight . . . . . . . (1 to 11 or blank)

Figure 74. Storage Class Define panels

4.5.1.5 Defining a Storage Group


Storage group type TAPE is provided to classify tape cartridges in SMS. A
tape storage group consists of tape libraries and the tape cartridges
associated with them.

To define a new storage group, go to the ISMF Primary Option Menu (see
Figure 71 on page 217) and select option 6, Storage Group. This brings you

220 DFSMShsm Primer


to the Storage Group Application Selection panel (Figure 75). In this example,
we are going to define a tape storage group called SG54OFFS.

Panel Utilities Help


------------------------------------------------------------------------------
STORAGE GROUP APPLICATION SELECTION
Command ===>

To perform Storage Group Operations, Specify:


CDS Name . . . . . . . 'SYS1.SMS.SCDS'
(1 to 44 character data set name or 'Active' )
Storage Group Name . . sg54offs (For Storage Group List, fully or
partially specified or * for all)
Storage Group Type . . tape (VIO, POOL, DUMMY, OBJECT, OBJECT
BACKUP, or TAPE)

Select one of the following options :


2 1. List - Generate a list of Storage Groups
2. Define - Define a Storage Group
3. Alter - Alter a Storage Group
4. Volume - Display, Define, Alter or Delete Volume Information

If List Option is chosen,


Enter "/" to select option Respecify View Criteria
Respecify Sort Criteria

Figure 75. Storage Group Application Selection panel

Figure 76 shows the Tape Storage Group Define panel. On this panel we
define the tape library names that are associated with this storage group. We
specify the name of our off-site tape library, SG54OFFS.

Chapter 4. DFSMShsm tape processing 221


Panel Utilities Help
------------------------------------------------------------------------------
TAPE STORAGE GROUP DEFINE
Command ===>

SCDS Name . . . . . : SYS1.SMS.SCDS


Storage Group Name : SG54OFFS

To DEFINE Storage Group, Specify:

Description ==> Offsite tape library


==>

Library Names (1 to 8 characters each):


===> ATLOFFS ===> ===> ===>
===> ===> ===> ===>

DEFINE SMS Storage Group Status . . Y (Y or N)

Figure 76. Tape Storage Group Define panel

Figure 77 shows the panel that results from specifying Y for the DEFINE SMS
Storage Group Status field in Figure 92 on page 263. This panel enables you
to specify the storage group status for each system in the same SMSplex. In
our example, systems SC63, SC64 and SC65 are enabled to this storage
group.

222 DFSMShsm Primer


.
Panel Utilities Scroll Help
------------------------------------------------------------------------------
SMS STORAGE GROUP STATUS DEFINE Page 1 of 2
Command ===>

SCDS Name . . . . : SYS1.SMS.SCDS


Storage Group Name : SG54OFFS
Storage Group Type : TAPE
To DEFINE Storage Group System/ ( Possible SMS SG
Sys Group Status, Specify: Status for each:
- Pool SG Type
System/Sys SMS SG System/Sys SMS SG NOTCON, ENABLE
Group Name Status Group Name Status DISALL, DISNEW
---------- ------ ---------- ------ QUIALL, QUINEW
SC63 ===> ENABLE SC64 ===> ENABLE - Tape SG Type
SC65 ===> ENABLE ===> NOTCON, ENABLE,
===> ===> DISALL, DISNEW )
===> ===>
===> ===> * SYS GROUP = sysplex
===> ===> minus Systems in the
===> ===> Sysplex explicitly
===> ===> defined in the SCDS

Figure 77. SMS Storage Group Status Define panel

4.5.1.6 Setting up the ACS routines


When DFSMShsm requests a tape device allocation from the OS/390
operating system, ACS routines are invoked, and the data set name, unit
type, and normal ACS variables are passed to the routines. The ACS routines
use this information to provide a storage class and a tape storage group that
are associated with a tape library.

You can tell SMS which DFSMShsm functions are being directed to
SMS-managed tape by building filter lists that include the data set names
generated by the specifics functions that you want to go to an SMS-managed
tape library (see Table 6 on page 215).

If you are using duplex tape, you can tell SMS to route your DFSMShsm
original tape allocations to one tape library and the alternate (duplex) tape
allocations to a different tape library, which could be an off-site tape library
that you could use in a disaster recovery situation. Figure 78 shows how you
can filter the original and the duplexed tape data set names. HSM is the prefix
for our DFSMShsm tape data set names.

Chapter 4. DFSMShsm tape processing 223


/*********************************************************************/
FITLIST &SMS_MANAGED_TAPE_DSN INCLUDE
('HSM.BACKTAPE.DATASET','HSM.HMIGTAPE.DATASET',
HSM.DMP.*.V*.D*.T*)
/*********************************************************************/
FITLIST &HSM_OFFSITE_TAPE_DSN INCLUDE
('HSM.COPY.BACKTAPE.DATASET','HSM.COPY.HMIGTAPE.DATASET')
/*********************************************************************/
FITLIST &VALID_DASD_UNIT INCLUDE
('3380','3390','SYSDA','SYSALLDA','')
/*********************************************************************/
FITLIST &VALID_TAPE_UNIT INCLUDE
('3490','3480','3590',TAPE*,'T3480','T3490','T3590','AFF=')
/*********************************************************************/

Figure 78. Filter list of original and alternate tapes

This example shows two separate data set name filter lists for DFSMShsm
tape data:
SMS_MANAGED_TAPE_DSN Where we include the data set names that
our DFSMShsm generates for our original
backup, migration, and dump tapes
HSM_OFFSITE_TAPE_DSN Where we include the duplex tapes

Figure 79, Figure 80, and Figure 81 on page 227 show examples of ACS
routines that direct the DFSMShsm backup and migration tape data to
SMS-managed tape libraries. We used the filter lists shown in Figure 78 in
these four ACS routine samples.

224 DFSMShsm Primer


PROC &DATACLAS
/********************************************************************/
.
(PUT FILTLISTS HERE) .
.
/********************************************************************/
SELECT /* MAIN LOGIC BLOCKS */
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
/********************************************************************/
/* TAILOR AND SET DATACLAS FOR SMS-MANAGED TAPE SUBTYPES IF THEY */
/* EXIST */
/********************************************************************/
/* REPEAT THIS BLOCK FOR EACH SMS-MANAGED TAPE SUBTYPE THAT HAS A */
/* DIFFERENT DATA CLASS */
/********************************************************************/
WHEN (&DSN EQ &SMS_MANAGED_TAPE_DSN OR
&DSN EQ &HSM_OFFSITE_TAPE_DSN)
DO
SET &DATACLAS ='DC54236'
EXIT
END /* DO */
/********************************************************************/
/* ADD OTHERWISE FOR TAPE DATA HERE IF EITHER TAPE MOUNT MANAGEMENT */
/* OR SMS-MANAGED TAPE SUBTYPES EXIST */
/********************************************************************/
END /* TAPE ALLOCATION SELECT */
/********************************************************************/
/* THIS OTHERWISE IS FOR ALLOCATIONS OTHER THAN DASD, TAPE, OR */
/* OPTICAL */
/********************************************************************/
OTHERWISE /* NON-MANAGED DEVICES */
DO
SET &DATACLAS = ''
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 79. Sample data class ACS code for: migration, backup, dump tapes

Figure 79 shows that this ACS routine sets the DC54236 data class to our
DFSMShsm tape data. This data class was defined to use MEDIA2 Enhanced
capacity cartridge system tape (ECCST) (see 4.5.1.3, “Defining a Data Class”
on page 216).

Figure 80 shows sample code in the storage class ACS routine, which
assigns a storage class SC54TAPE to DFSMShsm tape data sets.

Chapter 4. DFSMShsm tape processing 225


.

PROC &STORCLAS
/********************************************************************/
(PUT FILTLISTS HERE) .
/********************************************************************/
SELECT /* MAIN LOGIC BLOCKS */
/********************************************************************/
/* TAILOR AND SET STORCLAS FOR SMS-MANAGED TAPE SUBTYPES IF THEY */
/* EXIST */
/********************************************************************/
/* REPEAT THIS BLOCK FOR EACH SMS-MANAGED TAPE SUBTYPE THAT HAS A */
/* DIFFERENT STORAGE CLASS */
/********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
WHEN (&DSN EQ &SMS_MANAGED_TAPE_DSN OR
&DSN EQ &HSM_OFFSITE_TAPE_DSN)
DO
SET &STORCLAS ='SC54236'
EXIT
END /* DO */
/********************************************************************/
/* ADD OTHERWISE FOR TAPE DATA HERE IF EITHER TAPE MOUNT MANAGEMENT */
/* OR SMS-MANAGED TAPE SUBTYPES EXIST */
/********************************************************************/
END /* TAPE ALLOCATION SELECT */
/********************************************************************/
/* THIS OTHERWISE IS FOR ALLOCATIONS OTHER THAN DASD, TAPE, OR */
/* OPTICAL */
/********************************************************************/
OTHERWISE /* NON-MANAGED DEVICES */
DO
SET &STORCLAS = ''
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 80. Sample storage class ACS code for: migration, backup, dump tapes

Figure 81 shows sample code for a storage group ACS routine. Dump,
backup, and migration original tapes are allocated in the SG54TAPE storage
group, where a local ATL is defined. Backup and migration alternate tapes
are allocated in the SG54OFFS storage group, where an off-site tape library
is defined.

226 DFSMShsm Primer


SMS-managed tape data does not have to have a management class
associated with it, so we do not assign any management class to DFSMShsm
migration and backup tape data sets.

PROC &STORGRP
/********************************************************************/
.
(PUT FILTLISTS HERE) .
.
/********************************************************************/
SELECT /* MAIN LOGIC BLOCKS */
/********************************************************************/
/* TAILOR AND SET STORGRP FOR SMS-MANAGED TAPE SUBTYPES */
/********************************************************************/
/* REPEAT THIS BLOCK FOR EACH SMS-MANAGED TAPE SUBTYPE THAT HAS A */
/* DIFFERENT STORAGE GROUP */
/********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
WHEN (&DSN EQ &SMS_MANAGED_TAPE_DSN
DO
SET &STORGRP ='SG54TAPE'
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_OFFSITE_TAPE_DSN)
DO
SET &STORGRP ='SG54OFFS'
EXIT
END /* DO */
END /* TAPE ALLOCATION SELECT */
OTHERWISE /* UNEXPECTED DEVICES */
DO
SET &STORGRP ='SG54HSM'
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 81. Sample storage group ACS code for: backup, migration, dump tapes

Chapter 4. DFSMShsm tape processing 227


4.5.1.7 Define the tape library in ARCCMDxx
Figure 82 shows the sample SETSYS commands that define a typical
SMS-managed tape library environment.

/********************************************************************/
/* SETSYS COMMANDS IN THE ARCCMDXX PARMLIB MEMBER THAT DEFINE THE */
/* DFSMSHSM ENVIRONMENT FOR AN SMS-MANAGED TAPE LIBRARY */
/********************************************************************/
/*
SETSYS DUPLEX(BACKUP(Y) MGRATION(Y))
SETSYS SELECTVOLUME(SCRATCH)
SETSYS PARTIALTAPE(MARKFULL)
SETSYS TAPEDELETION(SCRATCHTAPE)
SETSYS BACKUP(TAPE)
SETSYS TAPEMIGRATION(ML2TAPE)
SETSYS TAPESECURITY(RACFINCLUDE EXPIRATIONINCLUDE)
DEFINE DUMPCLASS(ATLHSM -
NODATASETRESTORE NORESET AUTOREUSE -
DISPOSITION(‘AUTOMATE LOCATION’))
/*

Figure 82. Sample SETSYS ATL definition commands in ARCCMDxx

SETSYS DUPLEX causes DFSMShsm to create two tapes concurrently during


migration or backup processing: the original and its alternate.

SETSYS SELECTVOLUME(SCRATCH) specifies that DFSMShsm select scratch tapes


from the global scratch pool.

SETSYS PARTIALTAPE(MARKFULL) Marking tapes full enables full exploitation of


the cartridge loaders because the cartridge loaders can be filled with scratch
tapes between tape processing windows.

SETSYS TAPEDELETION(SCRATCHTAPE) specifies that recycled migration and


backup tapes, along with expired dump tapes, are going to be returned to a
global scratch pool.

SETSYS BACKUP(TAPE) specifies that backup processing is to tape devices.

SETSYS TAPEMIGRATION(ML2TAPE) specifies that ML2 media is tape.

SETSYS TAPESECURITY(RACFINCLUDE EXPIRATIONINCLUDE) specifies that


DFSMShsm protects its tape volumes by adding them to a RACF tape volume
set of DFSMShsm but also with expiration dates, as most of the tape
management systems do.

DEFINE DUMPCLASS defines the parameters for dump processing. The


AUTOREUSE parameter is especially useful for tape libraries; it causes the
dump tapes, when expired, to return to the global scratch pool for reuse.

228 DFSMShsm Primer


4.5.2 Using RECYCLE to move data into the ATL
DFSMShsm starts writing data to the ATL according to how you have set up
the ACS environment, but you are left with many volumes containing valid
data sets on your old media, 3480 cartridges, for example. You can use the
DFSMShsm RECYCLE function to move your backup or migration data to the
ATL.

Update your ARCCMDxx PARMLIB member with the SETSYS


RECYCLEOUTPUT command to specify to which media type your backup
and migration data sets are recycled.

SETSYS RECYCLEOUTPUT(BACKUP(unittype) MIGRATION(unittype))

You can selectively move data into the ATL, depending on time constraints,
rack limitations and savings, or any number of factors. For example, if you
want to slowly move your data into the ATL, you can start with your
DFSMShsm backup data only and allow natural attrition to take its course.

SETSYS RECYCLEOUTPUT(BACKUP(3590-1))

Alternatively, for fast migration to the ATL, you can specify both BACKUP and
MIGRATION and then command RECYCLE your old volumes.

SETSYS RECYCLEOUTPUT(BACKUP(3590-1),MIGRATION(3590-1))
then
RECYCLE EXECUTE VOLUME(volser)
RECYCLE EXECUTE VOLUME(volser) FORCE

You can also use the RECYCLE command to selectively include or exclude
tape ranges. For example, if you choose to recycle all tapes, regardless of
whether the are backup or migration tapes, into the ATL and are not
concerned with how full they are, you can use the following command:

HSEND RECYCLE EXECUTE ALL SELECT(INCLUDE(RANGE(volserF:volserQ))) -


PERCENTVALID(100)

Or you can recycle only backup tapes less than 30% utilized.

HSEND RECYCLE EXECUTE BACKUP -


SELECT(INCLUDE(RANGE(volserF:volserQ))) -
PERCENTVALID(30)

Where, volserF and volserQ are the first and last volsers, respectively, in the
range that you chose to recycle.

Chapter 4. DFSMShsm tape processing 229


4.6 Emulating 3490 cartridges on a 3590 device
It is a common practice in most of the installations to emulate one tape
subsystem by another. Virtual tape, as well as new technologies, emulates
prior technologies. Since the cartridges are not interchangeable, DFSMShsm
has added support for four subcategories that indicate that they use 3490
cartridges. They include:
• 3590 Model E 256 track recording
• 3590 Model B 128 track recording
• Virtual Tape Server
• And all others whose device type is 3490

Additionally, DFSMShsm supports the following subcategories of 3590


cartridges:
• 3590 Model E 256 track recording
• 3590 Model B 128 track recording

This additional support enables multiple use of these technologies


concurrently for the same function within the same HSMplex as long as their
output use is on different DFSMShsm hosts. This support improves the install
of new technologies to improve performance and capacity.

The 3490E emulation feature can be used with Magstar 3590 Tape Drives
attached to an A50 or A60 controller installed in a 3590 Model A14
stand-alone solution, or in rack-mounted subsystem solutions.
Note
This feature is not available when the 3590 Model A50 or A60 is installed in
a Magstar 3494 Tape Library.

• Why would I emulate using a 3490 cartridge?


You would have to use the 3490E emulation of 3590 for one of these
reasons:
- You do not have the minimum software installed to support the 3590
Magstar tapes as real 3590 devices, but you have the minimum
support for 3490E.
- You have installed a StorageTek (STK) ATL and want to install the IBM
3590 Magstar in it. In this case, an IBM 3590-C12/C14 is attached to
the STK ATL. IBM 3590 drives must be defined as 3490E emulated
devices.

230 DFSMShsm Primer


Using the 3590 as emulated 3490E you can:
- Solve capacity and performance problems. The capacity of an IBM
Magstar cartridge is approximately 12 times that of an IBM 3490E tape
drive using ECCST (if using 3590B cartridges) and it can grow up to 48
times if using 3590E cartridges. Also, the performance of the IBM
Magstar tape drives may substantially improve throughput for certain
tape applications.
- Maximize investment protection. Later, you can move the IBM
Magstar cartridges and install the tape drives in an IBM ATL, such as
the IBM 3494.
- Invest in extendable technology. You are investing in a technology
that is going to be extended in the future.
- Prepare for the future. You are preparing to take full advantage of all
functions and features of the IBM Magstar technology.
• What updates do I make to ARCCMDxx?
The setup presented below is required when you install IBM 3590 drives
and you want to use in 3490 emulation mode with DFSMShsm.
a. Direct DFSMShsm output to 3590 emulated devices.
Specify which DFSMShsm functions should use on 3590 devices in
3490 emulation mode. In this example, all DFSMShsm functions are
directed to 3590 in 3490 emulation mode devices. EMUL3490 is an
example of an esoteric unit name for these emulated devices, and
ESO3480 refers to existing IBM 3480 tape drives. The esoteric that you
use must be defined to MVS and then identified to DFSMShsm with
SETSYS USERUNITTABLE before it can be used on other DFSMShsm
commands

SETSYS USERUNITTABLE(ESO3480:ESO3480, EMUL3490:EMUL3490)


SETSYS BACKUP(TAPE(EMUL3490)) -
TAPEMIGRATION(ML2TAPE(TAPE(EMUL3490))) -
RECYCLEOUTPUT(BACKUP(EMUL3490) MIGRATION(EMUL3490))
DEFINE DUMPCLASS(classname UNIT(EMUL3490))

Note that you have to specify your existing esoteric ESO3480 on the
SETSYS USERUNITTABLE command, even if it is no longer used for
output, to allow your 3480 volumes associated with that esoteric name
to be used for input.

Chapter 4. DFSMShsm tape processing 231


b. Avoid attempts to extend the native 3490E cartridges on 3590
devices.
Existing cartridges that were previously used for the same DFSMShsm
functions for which 3590 cartridges will be used must be excluded from
selection by DFSMShsm as they could be directed to a 3590-attached
drive for output.
DFSMShsm can select any of the following for output on a 3490E drive:
• An empty or a partially filled ECCST cartridge
• An empty CST cartridge
• A partially filled CST cartridge in 36-track format
You have to mark full all partially filled 36-track backup and migration
volumes and delete all empty CST and ECCST cartridges to prevent
their selection by DFSMShsm. Note that dump volumes are always
automatically marked full by DFSMShsm.
DFSMShsm can select a partially filled cartridge for output on a
3590-attached drive even if the cartridge was previously written to
another device type. The esoteric name on which a tape was first
written does not have to be the same when the tape is later used. The
unit name associated with a volume does not prevent the volume from
being selected for output if it is different from the unit name specified
for the DFSMShsm function. DFSMShsm extracts the common
technology such as from the esoteric name set of drives that is used for
the output function, and, if a writable tape fits that technology, it can be
selected for output.
Use the LIST command to create a list of partial or available tapes,
and, for each volser on the list, submit a DELVOL command to mark it
full or delete it:

LIST TTOC SELECT(BACKUP NOTFULL) ODS(DSN)


LIST TTOC SELECT(ML2 NOTFULL) ODS(dsn)
LIST DUMPVOLUME SELECT(AVAILABLE) ODS(dsn)

DELVOL volser BACKUP(MARKFULL)


DELVOL volser MIGRATION(MARKFULL)

DELVOL volser BACKUP(PURGE)


DELVOL volser MIGRATION(PURGE)
DELVOL volser DUMP(PURGE)

c. Retain read access to existing DFSMShsm cartridges.


For each volume that DFSMShsm uses it records a unit name that will
be used for subsequent allocations of the tape for input. Even if an

232 DFSMShsm Primer


esoteric name is used for selecting the output device was specified
when the volume was defined using the ADDVOL command, a generic
unit name may be recorded for the volume once it has been used. If
this generic unit name is 3480, 3480x, or 3490, DFSMShsm may ask
them to be mounted in a 3590-attached device.
The LIST command allows you to identify those volumes that show
device type 3480, 3480X, or 3490. If you have redefined an existing
esoteric to point to the new 3590-attached drives, you have to change
those as well. Then enter an ADDVOL command to make each change.
The esoteric that you use must be defined to MVS and then identified
to DFSMShsm before it can be used in an ADDVOL command. In this
example, ESO3480 is used as an esoteric for existing 3480 drives, and
EMUL3490 is used for the 3590-attached drives:

LIST ML2(TAPE) ODS(dsn)


LIST BVOL ODS(dsn)
LIST DVL ODS(dsn)

SETSYS USERUNITTABLE(ESO3480:ESO3480, EMUL3490:EMUL3490)

ADDVOL volser UNIT(ESO3480) MIG(ML2)


ADDVOL volser UNIT(ESO3480) BACKUP(DAILY)
ADDVOL volser UNIT(ESO3480) BACKUP(SPILL)
ADDVOL volser UNIT(ESO3480) DUMP

d. Set the PERCENTFULL parameter.


The capacity of a 3590 cartridge can be up to 48 times that of an
ECCST cartridge. We recommend setting the PERCENTFULL value to
2200%, when using 3590B cartridges, to ensure that a tape can be
duplexed or copied to another tape, even if the length of the alternate
tape is shorter than the original. If you are using 3590E drives then use
the default value (97%) for PERCENTFULL.

SETSYS TAPEUTILIZATION(UNIT(EMUL3490) PERCENTFULL(2200))

e. Recycle old tapes.


Once your DFSMShsm environment is up and running using
3590-attached drives in 3490 emulation mode, you may want to run
RECYCLE to move migration and backup tapes to 3590 cartridges.
Statement (a) specifies that all tapes within the CST000 – CST099
range will be recycled, and their valid data will be moved to the new
3590 cartridges, as we have specified in the SETSYS
RECYCLEOUTPUT command in the ARCCMDxx member of
PARMLIB. In this example, we are assuming that the old tapes we want

Chapter 4. DFSMShsm tape processing 233


to recycle are in the range specified. Statement (b) is an example of
recycling, all tapes that have 30% or less of valid data in them.

(a) RECYCLE ALL EXECUTE SELECT(INCLUDE(RANGE(CST000:CST099))) -


PERCENTVALID(100)
(b) RECYCLE ALL EXECUTE PERCENTVALID(30)

f. Setup ABARS processing.


The aggregate backup function of ABARS creates the following files on
tape volumes, which can then be transported to the recovery site:
• Data file
• Control file
• Instruction/activity log file (optional)
The output files are physical sequential data sets. Each of these files
must be written to a separate physical tape volume (or volumes, as the
files may extend several volumes). The size of the data file can be very
large, making it a good candidate for 3590 cartridges. The control and
instruction files tend to be much smaller, so you may want to write them
on smaller capacity media. However, ABARS does not allow you to
specify the output unit individually for these files. The unit name
specified in the ABACKUP command applies to all three files.
To allocate the aggregate backup and ABARS files to 3590 in 3490
emulation mode devices, issue this command:

ABACKUP aggregatename EXECUTE UNIT(EMUL3490)

EMUL3490 is the esoteric unit name for our IBM 3590 in 3490
emulation mode.
• What updates do I make to DFSMSrmm?
There are no additional definitions to include in DFSMSrmm. If you do not
have already defined volume pools to DFSMSrmm, you have to define a
new volume pool by adding the following definition in EGDRMMxx
member of PARMLIB:

VPOOL PREFIX(M*0 TYPE(SCRATCH) MEDIANAME(3590) -


DESCRIPTION(‘3590 SCRATCH POOL’) RACF(N) EXPDTCHECK(N)

234 DFSMShsm Primer


Then, use DFSMSrmm subcommands ADDRACK and ADDVOLUME to
define the new volumes in your system:

RMM ADDRACK M00000 COUNT(100)

RMM ADDVOLUME M00000 COUNT(1000 POOL(M*)-


STATUS(SCRATCH) INIT(Y) MEDIANAME(3590)

4.7 Reducing recall processing time


In a multihost environment DFSMShsm can experience delays during
recall processing when the SETSYS TAPERECALLLIMITS command is
not specified. This optional parameter specifies how long a single tape can
remain mounted before DFSMShsm checks to see whether there are
higher priority recall requests waiting to process from the same system or
another host.
• What is the syntax of the TAPERECALLIMITS parameter to add to
ARCCMDxx?

SETSYS TAPERECALLLIMITS(TASK(time) TAPE(time))

• What happens if I do not specify the TAPERECALLLIMITS parameter?


DFSMShsm uses the default values for this parameter:

SETSYS TAPERECALLLIMITS(TASK(15) TAPE(20))

• What do the optional subparameters of TAPERECALLLIMITS specify?


TASK specifies the number of minutes that a recall task has on a single tape
mount before DFSMShsm checks for any higher priority recalls on that
host, provided the maximum number of tape recall tasks are active. If a
higher priority is task is found, DFSMShsm will complete its current recall
task, demount the tape, and process the new higher priority task.
TAPE specifies the number of minutes that a recall task has on a single tape
mount before additional multihost criteria are considered. If a higher
priority task is found on another DFSMShsm host, DFSMShsm will
complete the current recall task and demount the tape for use on the other
host.
Once this action has been performed, DFSMShsm excludes any recall
request from that tape to allow the host system(s) time to retry their
delayed requests and catch up.

Chapter 4. DFSMShsm tape processing 235


So in the default setting of TASK(15), DFSMShsm will process recalls from
a single tape mount for 15 minutes before checking for higher priority tasks
on that system, which it will honor if it finds any.
In the default setting of TAPE(20), DFSMShsm will process recalls from a
single tape mount for 20 minutes before checking for higher priority tasks
on another host, which it will honor if it finds any.
• How would I know whether a tape was demounted for use on another
system?
You will see the following message:

ARC0312I RECALLS FROM TAPE volser TERMINATED FOR USAGE BY HOST h

Where, h is the identifier of the host with the highest priority recall request.
• What if I have many tape drives but I never have tape recall requests
queued up behind each other?
In this instance the TAPERECALLLIMITS would most likely not interrupt
recall processing for a higher priority recall request; it would have already
been satisfied on another tape drive.

4.8 Optimizing tape usage


In an average installation, 50% of tape data sets have inactive data — data
written once and never read again. Most inactive data sets are point-in-time
backups. These are application-initiated data set backups used only if an
application or system failure occurs. Although data set backup is critical,
application-initiated backups to tape make poor use of the tape media and
subsystem, and require many costly operator tape mounts. The remaining
tape data sets, active data, cause the same inefficiencies in tape cartridge
use. However, they are usually not very active; 60% - 90% of all tape data
sets have all accesses on the same calendar date.

You can use system-managed storage facilities to optimize management of


both inactive and active tape data sets. Tape mount management helps you
understand your tape workload and use advanced tape hardware and
DFSMS facilities to:
• Reduce tape mounts
Data sets that are good candidates to tape mount management are written
to a system-managed DASD buffer instead of a tape. They are
subsequently written to tape by DFSMShsm, along with other data sets,
and are automatically retrieved by DFSMShsm if accessed.

236 DFSMShsm Primer


• Reduce tape library inventory and maximize media usage
Tape mount management candidates are written by DFSMShsm to tape in
single-file, compacted form. DFSMShsm attempts to fill the entire tape
volume before using another volume.
• Improve turnaround time for batch jobs depending on tape data sets
Most tape processing jobs are queued on tape drives, not mount time or
tape I/O. This is because, when the drive is finally allocated, very little
data is written to the cartridge. Batch jobs using data sets that are written
to the system-managed DASD buffer do not wait for tape mounts, and can
perform I/O at DASD or cache speed.

4.8.1 Tape mount management


Depending on your installation's current tape practices, you can maximize the
use of your tape resources and even improve batch job throughput by
implementing tape mount management (TMM).

TMM is a method of managing tape data sets within the SMS storage
hierarchy. Here is how TMM works:
1. Tape data sets are categorized according to size, pattern of usage, and
other criteria, so that appropriate SMS policies can be assigned to TMM
candidates.
2. Data sets written to tape are intercepted at allocation and, if eligible for
tape mount management, redirected to a system-managed DASD pool.
The pool serves as a staging area for these data sets until they are
migrated to tape by DFSMShsm. The location of the data is transparent to
the application program.
3. During interval migration, DFSMShsm checks the occupancy of the DASD
buffer storage group to ensure that space is available when needed,
migrating data sets to a lower level of the storage hierarchy when they are
no longer required on primary DASD volumes.
4. DFSMShsm eventually moves the data to tape, using single-file format
and data compaction to create full tape cartridges.
5. If an application later requests a data set, DFSMShsm automatically
recalls it from where it resides in the storage hierarchy and allocates it on
primary DASD for access.

This process can significantly reduce tape mounts and the number of
cartridges required to store the data.

Chapter 4. DFSMShsm tape processing 237


4.8.1.1 TMM implementation plan
Implementing TMM requires careful planning. The following are the major
tasks you should include in your implementation plan:
1. Analyze your current tape environment.
2. Simulate the proposed TMM environment.
3. Select DASD volumes to satisfy buffer requirements.
4. Define SMS constructs for the candidate data sets.
5. Create the ACS routines, or update the current ones.
6. Tune DFSMShsm operations.

4.8.1.2 Volume mount analyzer


Volume mount analyzer (VMA) is a tool that can help you analyze your
installation's current tape environment. It uses system management facility
(SMF) data to analyze tape mount activity of a certain period and produces
reports that help you:
• Get information about tape mount events, such as data set name, job
name, program, and data set size.
• Evaluate the tape hardware configuration.
• Determine which data sets are good candidates for TMM.
• Determine data class and management class requirements for TMM
candidates.
• Determine patterns that could be used as ACS filters for inclusion in TMM
or exclusion from TMM.
• Determine the resources that are needed, and the benefits of the TMM
implementation at your installation.

VMA can create reports that tell you what are the best management class
options for the TMM candidates, and the amount of primary DASD and ML1
DASD. These reports also show you the additional tape mount activity that
should occur with DFSMShsm as a result of TMM implementation.

For detailed procedures on performing a volume mount analysis and


interpreting the results, see OS/390 V2R10.0 DFSMS: Using the Volume
Mount Analyzer, SC26-7342.

238 DFSMShsm Primer


4.8.1.3 DFSMShsm parameters and TMM
Figure 83 is an example of the SETSYS commands that are applicable to a
TMM implementation.

/********************************************************************/
/* SETSYS COMMANDS IN THE ARCCMDXX PARMLIB MEMBER THAT DEFINE THE */
/* DFSMSHSM ENVIRONMENT FOR TMM IMPLMENTATION */
/********************************************************************/
/*
SETSYS COMPACT(DASDMIGRATE)
SETSYS SELECTVOLUME(SCRATCH)
SETSYS PARTIALTAPE(REUSE)
SETSYS TAPEDELETION(SCRATCHTAPE)
SETSYS TAPEMIGRATION(ML2TAPE)
SETSYS TAPESECURITY(RACFINCLUDE)
ADDVOL HSM21D UNIT(3390) MIGRATION(MIGRATIONLEVEL1 -
NOSMALLDATASETPACKING) -
THRESHOLD(90)
/*

Figure 83. SETSYS parameters for TMM

SETSYS COMPACT(DASDMIGRATE) causes DFSMShsm to compress the data sets


when migrating to DASD. This option should be used only if some of the TMM
data goes to ML1. It should not be used if RVA DASD is used for ML1.

SETSYS SELECTVOLUME(SCRATCH) specifies that DFSMShsm select scratch tapes


from a global scratch pool.

SETSYS PARTIALTAPE(REUSE) specifies that DFSMShsm try to reuse tapes that


are partially filled with DFSMShsm data. This makes better use of the tape
media.

SETSYS TAPEDELETION(SCRATCHTAPE) specifies that recycled migration and


backup tapes, along with expired dump tapes, are going to be returned to a
global scratch pool.

SETSYS TAPEMIGRATION(ML2TAPE) specifies that ML2 media is tape.

SETSYS TAPESECURITY(RACFINCLUDE) specifies that DFSMShsm protect its tape


volumes by adding them to a RACF tape volume set of DFSMShsm.

ADDVOL can be used to add the ML1 volumes that are needed. VMA tells you
how much additional ML1 DASD space is needed for TMM implementation.

4.8.2 Virtual Tape Server


The IBM Virtual Tape Server is a data stacking solution. DFSMShsm has its
own functions that allow full utilization of the tape cartridge.

Chapter 4. DFSMShsm tape processing 239


Using the VTS subsystem in an DFSMShsm environment does not bring any
special advantage from a capacity point of view, because you create virtual
volumes, which, once copied, fill a stacked volume completely. You can have
the same results from direct use of a physical tape drive, leaving VTS storage
for other applications that are better candidates for VTS management.

From another perspective, there might be reasons to use VTS with


DFSMShsm.

In most of the installations there are a limited amount of native drives which
limits the number of DFSMShsm tasks that can be run concurrently. The
unique VTS capability of having up to 64 virtual drives available can help to
circumvent drive-peak bottlenecks for those environments.

DFSMShsm data can be put into a VTS, specifying the correct values to
some parameters that can affect DFSMShsm performance.

You may consider the following recommendations:


• Utilization of virtual volumes:

SETSYS TAPEUTILIZATION(LIBRARYBACKUP PERCENTFULL(97))


SETSYS TAPEUTILIZATION(LIBRARYMIGRATION PERCENTFULL(100))

Using a high value for backup tapes helps you minimize the number of
virtual volumes. Using a lower value for migration tapes does not produce
the expected results in speeding up the recall processing time, so it is
recommended to specify the same values used for native drives.
• Select what type of scratch pool to use:

SETSYS SELECTVOLUME(SCRATCH)
SETSYS PARTIALTAPE(MARKFULL)
SETSYS TAPEDELETION(SCRATCHTAPE)

Using a global scratch pool, you benefit from a fast mount time by using
the fast-ready attribute for the scratch category. The MARKFULL
parameter does not mean a waste of space using VTS, because the
stacked volume contains only the written data of each logical volume
copied and the same applies to the TVC.
• Reduce the tape spanning:

SETSYS TAPESPANSIZE(800)

Using a high value reduces tape spanning. This will reduce the number of
virtual volumes that need to be recalled to satisfy DFSMShsm
recall/recover requests. With VTS, you can be very generous with the

240 DFSMShsm Primer


value, as no space is wasted. For example, TAPESPANSIZE of 800 would
mean that any data set less than 800 MB will not fit on the remaining
space of a virtual volume will be started on a fresh new virtual volume.
Note
The maximum value was recently increased to 4000 MB and the
default value has been changed to 500 MB.

The following is a summary of the different DFSMShsm functions and the


benefit they can get by using VTS:
• Backups of DFSMShsm Control Data Sets: The backup of DFSMShsm
control data sets (CDSs) can easily be done in a VTS subsystem,
exploiting the benefit of using virtual volumes instead of physical volumes,
which might otherwise be under utilized.
• ABARS: The purpose of the DFSMShsm ABARS function is disaster
recovery. Therefore, ABARS should not be directed in a VTS subsystem.
However, if the VTS subsystem is installed off site, the virtual volumes
created reside in the VTS, with no strong need to eject them. We
recommend the use of the default ABARS SETSYS
ABARSTAPES(STACK) parameter. Using NOSTACK adds certain minutes
of stage mount time during ARACOVER, that it is not acceptable in most
installations.
ABARS function can be used to export data from the VTS subsystem.
• Volume Dumps: Using VTS as output for the DFSMShsm AUTODUMP
function, do not specify the DEFINE DUMPCLASS(dclass STACK(nn)) or
BACKVOL SG(sgname)|VOLUMES(volser) DUMP(dclass STACK(10))
parameters. This parameters were introduced to force DFSMShsm to use
the capacity of native Magstar cartridges. If used with VTS, they cause
unnecessary multivolume files. We recommend using the default value,
which is NOSTACK.
• Migrate/Recall (DFSMShsm Level 2): The only problem that should be
considered when using a VTS as DFSMShsm level 2 is the recall process
throughput of the VTS subsystem. Consider how many recall tasks are
started at the same time and compare that number with the number of
physical drives of your VTS subsystem. For example, if your installation
often has more than 10 tape recall tasks at one time, you probably need
two VTS subsystems to satisfy this throughput request, because all
migrated data sets may already have been copied into stacked volumes
and may not be in the TVC.
• Backup and Recovery: Unlike the DFSMShsm RECALL operation,
RECOVERY usually has lower frequency in an DFSMShsm environment.

Chapter 4. DFSMShsm tape processing 241


Therefore, using VTS for DFSMShsm backup and recovery functions
benefits you without impacting DFSMShsm performance. However, be
careful to review your DFSMShsm performance requirements before
migrating DFSMShsm RECOVERY to the VTS subsystem.
• TAPECOPY: The DFSMShsm TAPECOPY function requires that original
and target tape volumes are of the same media type and use the same
recording technology. Using a VTS without the EHPO feature as target for
the TAPECOPY operation can cause problems because VTS virtual
volumes are specified with an IDRC compaction ratio of 1:1 and can have
a capacity smaller than native input volumes.
• RECYCLE: The DFSMShsm RECYCLE function reduces the number of
logical volumes inside the VTS but when started can cause bottlenecks in
the VTS subsystem recall process. If you have a VTS subsystem with
three physical drives, use a maximum of two concurrent DFSMShsm
RECYCLE tasks. If you have a VTS subsystem with six physical drives,
use no more than five concurrent DFSMShsm RECYCLE tasks.
Select the RECYCLEPERCENT carefully, bearing in mind that:
- What you will free up is logical volumes residing on a stacked volume
with hundreds of other logical volumes.
- The space occupied by the logical volume will be freed up only if and
when the logical volume is used (overwritten) again.
- To RECYCLE, the VTS has to load the input volumes into the TVC.

For more information on how to use VTS, see IBM Magstar Virtual Tape
Server: Planning, Implementing and Monitoring, SG24-2229.

242 DFSMShsm Primer


Part 3. Maintenance, monitoring and tuning

We have set the environment for DFSMShsm to work, fitting our


requirements. Now we need to maintain our DFSMShsm environment for
getting reasonable performance.

This part documents the different activities needed to maintain the


DFSMShsm-owned data, how to monitor DFSMShsm activity and what things
we can do for tuning, if it does not provide the expected level of service.

© Copyright IBM Corp. 1998, 2000 243


244 DFSMShsm Primer
Chapter 5. Administration tasks

To keep DFSMShsm up and running, the storage administrator needs to


perform these administrative activities on a regular basis:
• Expiring old data set backup versions
• Recycling tapes and converting to new tape volumes
• Moving data sets to new DASD volumes
• Reorganizing the CDSs
• Merging the CDSs
• Journal data set maintenance
• Problem determination
• Auditing DFSMShsm

We use the HSENDCMD command to issue DFSMShsm storage


administrator or system programmer commands to DFSMShsm from a TSO
terminal. You must be authorized by the DFSMShsm AUTH command or by
RACF to issue these commands. See 2.3.5, “AUTH command” on page 63 for
more information about authorizing users to issue system administrator
commands.

5.1 Expiring backup versions


Availability management of DFSMShsm does not automatically delete backup
versions when the related user data set is deleted. Over time a number of
unneeded backup versions can be accumulated on backup volumes. You can
use the EXPIREBV command to find and delete these unneeded backup
versions based on the most recent status of the data set.

The EXPIREBV command causes DFSMShsm to search the BCDS for old,
unwanted backup versions and to delete them (or just display information
about them) based on the attributes in the management class for each data
set.

You can use the EXPIREBV command with the DISPLAY parameter to see
which backup copies are eligible for deletion. The following command places
a list of the eligible backup versions into the specified output data set:

HSENDCMD EXPIREBV DISPLAY OUTDATASET(‘dsname’)

© Copyright IBM Corp. 1998, 2000 245


If you browse the data set pointed to by the OUTDATASET parameter, you
will find the output from this command (see Figure 84).

DISPLAY OF BACKUP VERSIONS ELIGIBLE FOR EXPIRATION AT 19:59:13 ON 2000/10/16 FOR SYSTEM=SC63

COMMAND INPUT: (DEFAULTS)

DSNAME = HGPARK.S0000 EXISTS, AS SMS


MANAGEMENT CLASS USED = MCGOML2

BACKUP VERSION DSNAME SYS GEN RET BACK


CAT NMBR AGE VERS PROF
HSM.BACK.T324118.HGPARK.S0000.J0229 YES 001 061 NO NO
END OF DISPLAY - 00000001 BACKUP VERSIONS ELIGIBLE FOR EXPIRATION

Figure 84. Output from EXPIREBV DISPLAY command

To expire the backup versions, issue the following command:

HSENDCMD EXPIREBV EXECUTE

The output from the EXPIREBV EXECUTE command can be found in the
backup activity log (for more about activity logs, see 5.7.2, “Activity logs” on
page 266).

When you initially use EXPIREBV, you must issue it twice to delete unwanted
versions. The first time you issue the EXPIREBV command, DFSMShsm
determines that the user data set was scratched and stores the date of the
first EXPIREBV execution as the scratch date in the DFSMShsm BCDS data
set record (MCB). You can look at this date by using the following command:

HSENDCMD FIXCDS B ‘dsname’ OUTDATASET(‘out_dsname’)

In the data set pointed to by the OUTDATASET parameter, you will see the
MCB record for the data set (see Figure 85). The date EXPIREBV determined
as the date on which the user data set was deleted is at offset X’48’. A
subsequent EXPIREBV EXECUTE command deletes the unwanted backup
versions when the requested time has passed. The requested time is

246 DFSMShsm Primer


specified in the management class for SMS data sets, or in the EXPIREBV
command for non-SMS data sets.

FIXCDS B ′ MHLTST4.C2SMSUP ′ OUTDATASET(′ MHLRES4.FIX.LIST′ )

MCH= 01102000 B0D4411D A32CDD01 B0D31AFC 177F5C06 * M L *

+0000 C8E2D4F1 F4C4FFFF 00000000 00000000 16104368 0098210F 40007FF8 00508000 *HSM14D 8 *

+0020 00000001 00008837 00000012 0000A000 00020002 0002FFFF 0098210C 00000000 * *

+0040 00000000 00000000 0098211F 00000000 C8E2D44B C2C1C3D2 4BE3F4F3 F1F0F1F6 * HSM.BACK.T431016*

+0060 4BD4C8D3 E3E2E3F4 4BC3F2E2 D4E2E4D7 4BC9F8F2 F1F04040 40404040 C8E2D4F1 *.MHLTST4.C2SMSUP.I8210 HSM1*

+0080 F4C3C200 0098210F 00000002 00000000 C8E2D44B C2C1C3D2 4BE3F5F6 F0F9F1F6 *4CB HSM.BACK.T560916*

+00A0 4BD4C8D3 E3E2E3F4 4BC3F2E2 D4E2E4D7 4BC9F8F2 F1F04040 40404040 C8E2D4F1 *.MHLTST4.C2SMSUP.I8210 HSM1*

+00C0 F4C3C200 0098210F 00000001 00000000 *4CB *

ARC0197I TYPE B, KEY MHLTST4.C2SMSUP, FIXCDS DISPLAY SUCCESSFUL

Figure 85. Example of a FIXCDS display of an MCB record

We recommend that you run the EXPIREBV EXECUTE command on a


regular basis.

The EXPIREBV command allows you to delete all expired backup versions
from all of your backup volumes. You can also delete the backup versions of
specific data sets by issuing the BDELETE or HBDELETE commands.

The following command can delete the specified backup version nn of dsname:

HSEND BDELETE (dsname) VERSION(nn)

5.2 Recycling tape volumes


As time goes by, migrated data sets expire, are recalled, or are marked for
deletion by DELETE and HDELETE commands. Similarly, tape backup data
sets are rolled off by automatic backup, or they are marked for deletion by
BDELETE, HBDELETE, and EXPIREBV commands. Those data sets are still
physically occupying space on the tape volumes. Over time, the tape volumes
on which the invalidated data resides become fragmented, resulting in
inefficiently used tape media.

In an environment where there is a lot of recall activity due to a poorly tuned


environment, you may have many partial tapes. These tapes were taken
away from a migration or recycle task due to a recall for a data set.

Chapter 5. Administration tasks 247


To remove the invalid data sets and consolidate the valid data on fewer tape
volumes, you can use the RECYCLE command.

You specify to DFSMShsm when a tape becomes eligible for recycle


processing by setting a threshold value on the SETSYS RECYCLEPERCENT
and ML2RECYCLEPERCENT parameters in the ARCCMDxx member. You
can also specify a value for the PERCENTVALID subparameter of the
RECYCLE command if you need to override the SETSYS values.

Optionally, you may want to specify the maximum number of ML2 partial
tapes you may have in your HSMplex that are not associated with an ML2
output task. Use the ML2PARTIALSNOTASSOCIATEDGOAL parameter of
the SETSYS command, as explained in 2.7, “Space management” on
page 101.

Here we describe the most common commands you can use to consolidate
the DFSMShsm-owned tape data. The RECYCLE command can be issued
from an operator console or by using the HSENDCMD command. The
HSENDCMD command allows you to issue the RECYCLE command from
any TSO user ID that you have authorized with the AUTH command.
• How do I display the tape volumes eligible for recycle?
The DISPLAY parameter of the RECYCLE command allows you to see
which tapes have a low percentage of valid data. This percentage may
have been specified with the SETSYS ML2RECYCLEPERCENT
parameter, the SETSYS RECYCLEPERCENT, or the PERCENTVALID
parameter of the RECYCLE command.
You can use any of the following statements, depending on the set of
tapes that you want to recycle:
(a) displays all of the eligible tapes
(b) displays both daily and spill backups eligible to recycle
(c) displays only daily backup tapes eligible to recycle
(d) displays the spill volumes eligible to recycle
(e) displays only ML2 tapes eligible to recycle

(a) HSENDCMD RECYCLE DISPLAY ALL


(b) HSENDCMD RECYCLE DISPLAY BACKUP
(c) HSENDCMD RECYCLE DISPLAY DAILY(day)
(d) HSENDCMD RECYCLE DISPLAY SPILL
(e) HSENDCMD RECYCLE DISPLAY ML2

248 DFSMShsm Primer


• How do I generate a list of the volumes eligible for recycle?
The VERIFY parameter of the RECYCLE command allows you to get two
lists of the eligible volumes:
- A pull list that operators can use to manually pull the required tapes for
the RECYCLE processing. The pull list is made up of small groups of
alphabetized volser lists. The pull groups are listed in the sequence in
which recycle processing will most likely request them
- A mount list that aids operators with the mount order of tapes being
recycled. The mount list is in the anticipated order of the tape mounts
that RECYCLE processing will request. The list of tapes is grouped
according to the category (for example, ML2 and SPILL) requested.
These lists can be helpful in an environment with a large number of tape
cartridges and without automated tape libraries.
Both lists are dynamically allocated to either to the data set having the
prefix that you specified with the TAPELIST PREFIX(tapelist_prefix)
parameter or to a fully qualified data set name with the RECYCLE
command TAPELIST FULLDSNAME(tapelist_dsn) parameter. If none of
the previous parameters has been specified in the RECYCLE command
then DFSMShsm writes the output to the SYSOUT class specified by the
SETSYS parameter. The data set is deallocated when the command
completes.
The following command causes DFSMShsm to look for all eligible ML2
tapes and create the pull and mount lists in a data set that will have prefix
as its high- level qualifier:

HSENDCMD RECYCLE ML2 VERIFY TAPELIST(PREFIX(prefix))

If all of your tape volumes are in automated tape libraries, the output from
the TAPELIST or VERIFY parameters will benefit you as a reporting tool.
• How do I start the recycle process?
The EXECUTE parameter of the RECYCLE command specifies that
DFSMShsm should recycle a specific tape volume, a category of backup
volumes, tape ML2 volumes, or a combination of all volumes. Volumes
that meet the eligibility criteria are recycled.
The PERCENTVALID parameter specifies the maximum percentage of
valid data that a volume can have and still be eligible for recycling.
The following command causes DFSMShsm to recycle all eligible ML2
tapes that contain 25% or less valid data:

HSENDCMD RECYCLE ML2 EXECUTE PERCENTVALID(25)

Chapter 5. Administration tasks 249


If you have selected the SCRATCHTAPE option on the SETSYS
TAPEDELETION parameter, DFSMShsm tells the tape management
system that it has released the ownership of the tape volume, so it can be
returned to the installation's scratch tape pool. If SETSYS
TAPEDELETION(HSMTAPE) is specified the empty tape remains in the
DFSMShsm-owned tape pool for the exclusive use of DFSMShsm. We do
not recommend that you specify TAPEDELETION(HSMTAPE).
The tape security environment you select may have an effect after recycle
processing. If PASSWORD or EXPIRATION has been selected as one of
the SETSYS TAPESECURITY parameters, a recycled tape must be re
initialized in order to be used outside DFSMShsm.
We recommend that you recycle your tapes on a regular basis, to avoid
running out of scratch or DFSMShsm-owned tapes. You may choose a
window of less tape activity at your installation in order to run the
RECYCLE.
Finally, consider the tape copies of recycled volumes. After a tape has
been recycled, the tape copy is no longer useful. When you process the
RECYCLE command, DFSMShsm invalidates alternate or duplex tapes at
the same time that it invalidates the tapes from which they were copied.
• Can I limit the number of volumes that are recycled at one time?
Yes. The LIMIT parameter allows you to specify that RECYCLE should
quiesce after the net specified number of tapes has been returned to
scratch status. The following command causes RECYCLE processing to
quiesce after a net of 40 tapes is returned to scratch status. Net is
determined by tapes read in for input minus tapes written to for output.

HSENDCMD RECYCLE ML2 EXECUTE PERCENTVALID(25) LIMIT(40)

Using our example, during the RECYCLE process you may empty 44 ML2
tapes, but mount 4 scratch tapes for output. This results in the net 40
tapes, and so RECYCLE processing will quiesce after processing a total of
44 tapes. The LIMIT parameter is subject to the number of tapes allowed
by the PERCENTVALID parameter.

5.2.1 Conversion to another tape media


You can use the RECYCLE command to substitute your old tapes for new
media type tapes. You can choose the tape volumes that will be replaced by
using the SELECT parameter of the RECYCLE command. The SELECT
parameter provides increased granularity to filter out tapes that are
considered eligible by the percent valid criteria but do not meet the range that
is specified with the SELECT parameter.

250 DFSMShsm Primer


• Can I specify a range of old media type to convert to a new one?
Yes. The command below causes DFSMShsm to recycle all tape volumes
that have volsers in the range of TAPE00 through TAPE99. This command
could be used if you are planning to convert from 3490 media tapes to
3590 media. The TAPE00 through TAPE99 range in our example is the
range of volsers of our old 3490 tapes. All of the tapes in the range will be
recycled, as we are using the PERCENTVALID(100)parameter.

HSENDCMD RECYCLE ALL EXECUTE SELECT(INCLUDE(RANGE(TAPE00:TAPE99))) -


PERCENTVALID(100)

• How do I exclude a range of tapes from the conversion process?


You can use the following command if you know that one of your tapes,
within the range of tape volsers that will be recycled, is not available. For
example, the operator cannot find tape volume TAPE04, so we exclude it
from the recycle processing:

HSENDCMD RECYCLE ALL EXECUTE SELECT(INCLUDE(RANGE(TAPE00:TAPE99))) -


PERCENTVALID(100) EXCLUDE(RANGE(TAPE04:TAPE04)))

You can find a detailed example of migrating from 3480, 3480x, 3490 and
3490E tapes to IBM 3590 Magstar emulating 3490E tapes in 4.6, “Emulating
3490 cartridges on a 3590 device” on page 230.

5.2.2 Recycle performance


A host can run only one RECYCLE command at a time. One RECYCLE
command, however, can run up to 15 recycling tasks simultaneously. Two
tape drives are required for each task, one for input and one for output. The
more tape drives you use, the faster recycle processing proceeds.

If you issue a recycle command against all ML2 tape volumes and SETSYS
MAXRECYCLETASKS is set to 15, DFSMShsm processes 15 tapes at the
same time, requiring 30 tape drives.

The SETSYS MAXRECYCLETASKS parameter allows you to dynamically


change the number of recycle tape processing tasks, even during recycle
processing, to any number from one to 15. The default is two
recycle-processing tasks.

DFSMShsm can use three data buffers for RECYCLE processing, with the
following exceptions:
• The FORCE parameter is specified on the RECYCLE command; or

Chapter 5. Administration tasks 251


• The NOLIMIT option is specified on the SETSYS TAPEUTILIZATION
command.

5.3 Moving data sets to new DASD volumes


Over time you will most likely replace existing DASD volumes with new ones.
This will require that you move the data sets on your level 0, level 1, and ML2
volumes to the new devices.

5.3.1 Converting level 0 DASD volumes


DFSMSdss can be used to perform a device conversion of level 0 DASD
volumes. There are migration tools that use mirroring to convert the old
DASD volumes to new ones. You can also use DFSMShsm to move a single
data set or an entire level 0 volume to other level 0 volumes.

The following command moves all DASD data sets that are on level 0 volume
to other level 0 volumes.

HSENDCMD MIGRATE VOLUME(volser) DAYS(0) CONVERT

When processing SMS-managed data sets, you cannot direct the movement
to a specific volume. Although you can specify a volume, SMS-processing
determines the actual volume to which the data set is moved. The process for
moving data sets first migrates the data sets to ML1 volumes and then recalls
them to level 0 volumes. At the beginning of processing for MIGRATE
VOLUME commands, DFSMShsm obtains a list of the management classes
active in the system. As it processes each data set, DFSMShsm checks the
value specified for the data set which the COMMAND OR AUTO MIGRATE
attribute in the management class. If the value of the attribute is BOTH,
DFSMShsm processes the data set.

In recalling each data set, DFSMShsm invokes the ACS selection services of
DFSMSdfp. If SMS is active, the ACS routine may return to DFSMShsm a
storage class and, optionally, a management class. If the ACS routine returns
a storage class, DFSMShsm passes the data set name, along with its storage
class name and management class name (if present), to DFSMSdss, which
interfaces with DFSMSdfp to select a volume to receive the data set.

To prevent SMS from selecting the source volume as the target volume for
the recall, change the status attribute for the volume in the storage group.
Suitable status attributes are DISABLENEW and QUIESCENEW.

252 DFSMShsm Primer


Any data set that should be expired is expired without being migrated, during
the conversion process.

5.3.2 Converting level 1 DASD volumes


The FREEVOL command allows you to empty an ML1 volume in preparation
for new equipment or to replace old or partially damaged DASD volumes. It
moves migration copies of SMS-managed data sets from an ML1 volume
based on each data set's management class attribute value.

You use the following command to empty a specific volume from your ML1
pool:

HSENDCMD FREEVOL MIGRATIONVOLUME(volser) AGE(0)

The AGE(0) parameter, when entered for an ML1 volume, causes


DFSMShsm to move the migration copies of all SMS-managed data sets,
except those that are in need of backup, from the volume and place them on
other ML1 or ML2 volumes, depending on the data set's management class.
If the management class has a value specified for the
LEVEL-1-DAYS-NONUSAGE and the age is met, the data set migrates to an
ML2 volume. If the management class has a value specified for
LEVEL-1-DAYS-NONUSAGE and the data set age does not meet the
criterion or if the data set has an attribute of NOLIMIT, the data set migrates
to another ML1 volume. You can restrict which ML1 DASD volumes receive
data sets by using the DRAIN parameter of the ADDVOL command. DRAIN
removes a volume from selection candidacy.

The data sets that are in need of backup (that were migrated but are awaiting
automatic backup) and the backup versions that the BACKDS command
created are not moved off the volume. When you are planning to remove an
ML1 volume, you must first run AUTOBACKUP on the primary host, and then
execute the FREEVOL AGE(0) command.

After emptying the ML1 volume, you should delete the volume, using the
following command:

HSENDCMD DELVOL volser MIGRATION

5.4 Reorganizing CDSs


The DFSMShsm CDSs as any other VSAM files require occasional
reorganization. Detection of a need to reorganize can be based on the
information received automatically through the ARC0909I message. This

Chapter 5. Administration tasks 253


message is issued when the occupancy threshold requested in the SETSYS
MONITOR command has been exceeded. You can obtain the current
occupancy status by using the QUERY CONTROLDATASETS command.
Status is reported in the ARC0148I message.

You do not have to reorganize the CDSs for performance reasons. The
occurrence of control interval (CI) or control area (CA) splits in the CDSs
does not affect DFSMShsm performance. Figure 86 shows the anatomy of a
CDS. For the MCDS, mid-section records are generated for each migrated
data set or VSAM component. For the BCDS, mid-section records are
generated for each backup copy.

The following is a summary of considerations for reorganizing the CDSs:


• Only reorganize them when you have to increase their size, or when
moving the CDSs to another DASD device.
• DFSMShsm must be shut down in all hosts that have access to the CDSs,
and no other job in any host should be using them during this operation.
• Allocate the CDS that you are going to reorganize with DISP=OLD (see
Figure 87 on page 256, for the BCDS, MCDS, and OCDS DD cards).
• Reorganize the CDSs with FREESPACE(0) and let DFSMShsm split the
mid-section intervals. Performance will be degraded for about two or three
weeks during the CI/CA split process.
• If your BCDS or MCDS is multicluster, then you can reorganize the
clusters containing mid-section records with FREESPACE(50).

254 DFSMShsm Primer


Front Free
Section Space(0)

Mid Free
Space(50)
MCDS Section
BCDS

Back Free
Section Space(0)

Figure 86. Anatomy of a CDS

The mid-section of the CDS typically has more updates than the front section
or the back section. Allocating the CDSs with free space probably causes a
waste of space, as much of this free space will never be used because of the
way DFSMShsm works.

The starter set job, HSMPRESS, in the HSM.SAMPLE.CNTL data set


provides a sample JCL for the reorganization of the CDSs (see Figure 87).

Chapter 5. Administration tasks 255


//COMPRESS JOB ,′ MHLRES4′ , MSGCLASS=X,CLASS=A
//*
//****************************************************************/
//* THIS SAMPLE JOB COMPRESSES THE CONTROL DATA SETS. */
//* */
//* NOTE: BEFORE RUNNING THIS JOB, YOU MUST SHUT DOWN DFSMSHSM.*/
//****************************************************************/
//*
//ALLOCATE EXEC PGM=IEFBR14
//EXPMCDS DD DSN=HSM.EXPORT.MCDS,DISP=(,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(20,2))
//EXPBCDS DD DSN=HSM.EXPORT.BCDS,DISP=(,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(20,2))
//EXPOCDS DD DSN=HSM.EXPORT.OCDS,DISP=(,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(20,2))
//*
//IDCAMS EXEC PGM=IDCAMS,REGION=512K
//MCDS DD DSN=HSM.MCDS,DISP=OLD
//BCDS DD DSN=HSM.BCDS,DISP=OLD
//OCDS DD DSN=HSM.OCDS,DISP=OLD
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LISTCAT ENT(HSM.MCDS HSM.BCDS HSM.OCDS) ALL
EXPORT HSM.MCDS ODS(HSM.EXPORT.MCDS) TEMPORARY
IF LASTCC = 0 THEN -
IMPORT IDS(HSM.EXPORT.MCDS) OFILE(MCDS) ERASE -
CATALOG(UCAT.HSM)
IF MAXCC = 0 THEN -
DELETE HSM.EXPORT.MCDS NONVSAM
EXPORT HSM.BCDS ODS(HSM.EXPORT.BCDS) TEMPORARY
IF LASTCC = 0 THEN -
IMPORT IDS(HSM.EXPORT.BCDS) OFILE(BCDS) ERASE -
CATALOG(UCAT.HSM)
IF MAXCC = 0 THEN -
DELETE HSM.EXPORT.BCDS NONVSAM
EXPORT HSM.OCDS ODS(HSM.EXPORT.OCDS) TEMPORARY
IF LASTCC = 0 THEN -
IMPORT IDS(HSM.EXPORT.OCDS) OFILE(OCDS) ERASE -
CATALOG(UCAT.HSM)
IF MAXCC = 0 THEN -
DELETE HSM.EXPORT.OCDS NONVSAM
LISTCAT ENT(HSM.MCDS HSM.BCDS HSM.OCDS) ALL
/*

Figure 87. Sample job to reorganize the DFSMShsm CDSs

5.5 Merging CDSs


There are times when we may need to merge CDSs between different
HSMplexes into one (parallel sysplex for example).

Figure 88 to Figure 91 on page 262 show the sample JCL for preparing CDSs
merge (you can also find this JCL in SYS1.SAMPLIB(ARCTOOLS).

256 DFSMShsm Primer


//*********************************************************************
//* THIS IS A SAMPLE JOB THAT MAY ASSIST IN THE PLANNING OF A *
//* CDS MERGE. THIS JOB WILL COMPARE TWO CDSs AND CREATE A *
//* REPORT THAT WILL LIST THE DUPLICATE KEYS BETWEEN THEM. *
//* THIS JOB WILL NEED TO BE RUN FOR EACH OF THE THREE CDS RECORDS *
//* (MCDSs, BCDSs, AND OCDSs). THIS JOB COMPARES SINGLE CLUSTER *
//* CDSs, BUT MAY BE MODIFIED TO SUPPORT MORE THAN 2 CDSs BEING *
//* MERGED OR A MULTICLUSTERED CDS ENVIRONMENT. FOR THIS THE *
//* JOB NEEDS TO BE MODIFIED. CURRENTLY THERE IS ONLY A SYS1CDS *
//* DD AND A SYS2CDS DD DEFINED. FOR MULTICLUSTERING OR MORE *
//* THAN 2 CDSs BEING MERGED, DD CARDS WOULD NEED TO BE *
//* ESTABLISHED FOR EACH OF THE CDSs TO BE CONSIDERED. THEN *
//* COPY COMMANDS WOULD NEED TO BE ADDED TO COPY ALL OF THE *
//* CDSs OR CLUSTERS INTO THE ALLKEYS FILE BEFORE THE SORT IS *
//* DONE. THE REPORT CREATED WILL THEN LIST ALL OF THE DUPLICATE *
//* KEYS BETWEEN THE RECORDS COMPARED. *
//* *
//* The fields that need to be specified for this job are as *
//* follows: *
//* *
//* ?CDSNAME1 = First host cds for premerge comparison *
//* *
//* ?CDSNAME2 = Second host cds for premerge comparison *
//* *
//* ?REPORTNAME = Output data set name the reprort on the *
//* duplicate keys between the CDSs compared *
//*****************************************************************@05A
//SORT1 EXEC PGM=ICETOOL,REGION=4096K
//SYSPRINT DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYS1CDS DD DISP=SHR,
// DSN=?CDSNAME1
//SYS2CDS DD DISP=SHR,
// DSN=?CDSNAME2
//* DD cards can be defined for other CDSs to be
//* considered for the premerge duplicates
//* report
//ALLKEYS DD DISP=(MOD,PASS),UNIT=SYSDA,
// DCB=(LRECL=100,BLKSIZE=0,RECFM=VB),
// SPACE=(CYL,(50,10),RLSE),
// DSN=&&ALLKEYS
//SUMKEYS DD DISP=(MOD,PASS),UNIT=SYSDA,
// DCB=(LRECL=100,BLKSIZE=0,RECFM=VB),
// SPACE=(CYL,(50,10),RLSE),
// DSN=&&SUMKEYS
//DUPKEYS DD DISP=(MOD,PASS),UNIT=SYSDA,
// DCB=(LRECL=100,BLKSIZE=0,RECFM=VB),
// SPACE=(CYL,(50,10),RLSE),
// DSN=&&DUPKEYS

Figure 88. Sample JCL for CDSs merge (part 1 of 2)

Chapter 5. Administration tasks 257


//TEMP DD DISP=(NEW,CATLG),UNIT=SYSDA,
// DSN=&&TEMP1,
// DCB=(*.DUPKEYS),
// SPACE=(TRK,(1,5),RLSE)
//DISPOUT DD DISP=(NEW,CATLG),UNIT=SYSDA,
// SPACE=(TRK,(1,5),RLSE),
// DSN=?REPORTNAME
//MSGOUT1 DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//TOOLIN DD *
* copy the keys from the sys1 CDS to the ALLKEYS file
COPY FROM(SYS1CDS) TO(ALLKEYS) USING(ALL1)
* copy the keys from the sys2 CDS to the ALLKEYS file
COPY FROM(SYS2CDS) TO(ALLKEYS) USING(ALL1)
* copy all other instance of this type CDS into ALLKEYS
* for consideration in the duplicate keys report

* sum the counter fields added to the record keys


SORT FROM(ALLKEYS) TO(SUMKEYS) USING(SUM1)
* copy the duplicate keys
COPY FROM(SUMKEYS) TO(DUPKEYS) USING(DUP1)
* prints a report on duplicate keys found, sorted by MCHTYPE
SORT FROM(DUPKEYS) TO(TEMP) USING(SRT1)
DISPLAY FROM(TEMP) LIST(DISPOUT) -
LINES(999) -
HEADER('MCHTYPE') ON(51,1,HEX) -
HEADER('KEY') ON(5,44,CH) -
BLANK
//ALL1CNTL DD *
OUTREC FIELDS=(1,4,5,64,X'0001')
/*
//SUM1CNTL DD *
SORT FIELDS=(5,44,BI,A)
SUM FIELDS=(69,2,BI)
/*
//DUP1CNTL DD *
INCLUDE COND=(69,2,BI,GT,X'0001')
OUTREC FIELDS=(1,4,5,64)
/*
//SRT1CNTL DD *
SORT FIELDS=(51,1,BI,A)
/*

Figure 89. Sample JCL for CDSs merge (part 2 of 2)

After the above job is run, if any duplicate keys are found, handle them as
follow:
• MCDS duplicate records
MCDS duplicates that need to be considered when merging a second
host's CDSs into a copy of a first host's CDSs:
- Migrated data set records (type 0): Locate identical data sets and
delete the migrated data sets on the second host BEFORE merging the
MCDSs so that the MCA records get deleted and the migration space is
invalidated.

258 DFSMShsm Primer


- Migration volume record (type 4) : If there are SMS volumes that
have the same name on both systems and they are system packs
where it does not matter which is kept then nothing should be done. If,
however, they are not system packs then the data will need to be
moved to a different L0 DASD, L1 DASD, OR L2 TAPE. To deal with
duplicates on DASD a FREEVOL can be performed. With duplicates
that are on TAPE RECYCLE can be used.
- MCRx migration control record (type 10): If there is a host with
hostid of "x" on each system, then a LIST TTOC SELECT(ASSOC)
needs to be done on the second host before merging that CDS into the
first. A DELVOL UNASSIGN needs to be done for each of the ML2
tapes in the list. These will be available as unassigned ML2s in the
target system. Alternatively these could be marked full.
• BCDS duplicate records
BCDS duplicates that need to be considered when merging a second
host's CDSs into a copy of a first host's CDSs.
- Data set backup record (type 20) : If multiple data sets of the same
name have backup copies then the backup versions of all the duplicate
MCBs will be lost when the CDSs are merged. The MCCs, however,
will continue to exist, since they are disconnected from their MCB. A
BDELETE will need to be done on each and every backup version of
these duplicates before a merge is done. If the data sets both need to
be kept then rename the user data set on the second system before
BDELETEing the backup versions.
- Dump class definition (type 22): If there is one dump class defined
on both systems and the definition is different, make the options of both
occurrences of this class the same or change all uses on one system to
a different class name, define this new class, and then delete the one it
replaces.
- Backup volume record (type 2C): In the case of backup tape
duplicates a RECYCLE should be performed to move data to
non-duplicate tapes.
- BVR record (type30): There may be many duplicates among the daily,
spill, and unassigned records. These duplicates can be ignored during
the merger. After bringing up the merged system a FIXCDS BVR
REFRESH should be performed followed by a CDS backup before any
backup volumes are used. The BVR REFRESH will set on a flag that as
the CDS backup concludes successfully it will build the new format
BVR records from the MCT records of the merged BCDS and remove
all old BVR records.

Chapter 5. Administration tasks 259


• OCDS duplicate records
In this case duplicates will be addressed by the RECYCLE command as
mentioned in the type 4 and 2C records explained.

5.6 Journal data set maintenance


Occasionally, the DFSMShsm journal data set will become 100% full due to
excessive DFSMShsm activity on the system. It is possible for the journal
data set to reach 100% even after you have issued the BACKVOL CDS
command. When this happens, DFSMShsm holds all functions that require
having a record created, for example, BACKUP and MIGRATION, and then
disables journal processing. As the journal approaches 100% full, you will see
messages on the operator console (Figure 90).
ARC0909E JOURNAL DATA SET IS ABOUT 093% FULL
ARC0909E JOURNAL DATA SET IS ABOUT 096% FULL
ARC0909E JOURNAL DATA SET IS ABOUT 098% FULL
IEC031I D37-04,IFG0554P,HSM1,HSM1,JOURNAL,6722,HG6722,HSM.JRNL
ARC0020I ******************************
ARC0026E JOURNALING DISABLED DUE TO EOV ERROR ON
ARC0026E (CONT.) JOURNAL. MIGRATION, BACKUP, DUMP, TAPECOPY, TAPEREPL,
ARC0026E (CONT.) RECYCLE, ARECOVER, AUDIT, AND EXPIREBV HELD.
ARC0020I ******************************

Figure 90. Console messages for journal data set

To alleviate this situation, issue the following commands, which are based on
a DFSMShsm started task name of HSM1:
1. F HSM1,SETSYS EMERGENCY
2. F HSM1,BACKVOL CONTROLDATASETS
3. F HSM1,SETSYS NOEMERGENCY
4. F HSM1,RELEASE ALL

These commands back up the CDSs to DASD or tape depending on your


installation's setup. Once the backup has completed, the journal is cleared,
and DFSMShsm can continue to use the journal data set. While the CDSs are
being backed up, DFSMShsm queues any requests until the backup is
complete.

If your journal data set fills frequently, it is undersized for the amount of
DFSMShsm activity that it processes. To remedy this situation, increase the
size of the journal data set:
1. F HSM1,SETSYS EMERGENCY

260 DFSMShsm Primer


2. F HSM1,BACKVOL CONTROLDATASETS
3. F HSM1,STOP
4. Delete the current DFSMShsm journal data set
5. Allocate a new, larger DFSMShsm journal data set
6. S HSM1

5.7 Problem determination


If you experience a problem with the operation of DFSMShsm, it may be
necessary to gather some documentation to diagnose the problem.

In this section, we discuss the most important sources of problem


determination documentation for DFSMShsm, including:
• The aid PDA trace facility
• Activity logs
• DFSMShsm log
• SVC dumps

5.7.1 PDA facility


The PDA facility gathers DFSMShsm processing information and traces
module flow and resource usage related to any DFSMShsm problem.
DFSMShsm stores its trace information in the PDA log data sets.

DFSMShsm accumulates problem determination information at specific


module points in the form of trace data and records this data in main storage.
At predetermined intervals, the trace data is scheduled for output to DASD.
The DFSMShsm trace recording function receives the trace data scheduled
for output and writes this data to one of the two log data sets, ARCPDOX and
ARCPDOY.

The PDA facility is automatically enabled at DFSMShsm startup. You enable


or disable PDA processing with the SETSYS PDA(NONE|ON|OFF) command.
We recommend that you leave PDA tracing enabled when DFSMShsm is
active. The PDA trace options are:
• SETSYS PDA(NONE) specified at DFSMShsm startup causes no data to
be gathered; the trace log data sets are not opened.
• SETSYS PDA(ON) causes DFSMShsm to request storage for data
accumulation and the DASD trace log data sets to be opened if they have
been allocated. If the trace log data sets have not been allocated, data is
accumulated in internal storage only.

Chapter 5. Administration tasks 261


• SETSYS PDA(OFF) causes data accumulation to be stopped. The trace
log data sets remain open.

DFSMShsm recognizes the trace log data sets by their DD names,


ARCPDOX and ARCPDOY, in the DFSMShsm startup procedure. The trace
log data set defined by the ARCPDOX DD statement is the data set that is
written to. When the ARCPDOX trace log data set is filled, the two data set
names are swapped, and recording continues on the newly renamed
ARCPDOX trace log data set.

When the ARCPDOX trace log data set becomes full, and the trace log data
set names are swapped, any previously recorded data in the current
ARCPDOX data set is overlaid.

You need to copy the trace data in the ARCPDOY trace log data set to tape or
DASD before the ARCPDOX data set becomes full in order to archive it. The
PDA trace log data sets are automatically swapped when DFSMShsm is
started. To switch the log data sets before the ARCPDOX data set is filled,
issue the SWAPLOG PDA command. You can save the PDA trace data each
time message ARC0037I is issued. This practice provides a sequential
history of trace data over time so that the data is available when needed for
resolving problems; it is similar to how you handle your SMF data.

5.7.1.1 Allocating the PDA log data sets


Your PDA log data sets are usually allocated as part of the starter set see 2.2,
“PROCLIB and PARMLIB setup” on page 34. Figure 91 contains sample JCL
that can be used to allocate trace log data sets if the initial allocations are too
small.

//MHLRES4J JOB MSGLEVEL=1,CLASS=A


//STEP1 EXEC PGM=IEFBR14
//ARCPDOX DD DSN=HSM.HSMPDOX,DISP=(,CATLG),VOL=SER=HSM14C,
// UNIT=3390,SPACE=(CYL,(30,2))
//ARCPDOY DD DSN=HSM.HSMPDOY,DISP=(,CATLG),VOL=SER=HSM14C,
// UNIT=3390,SPACE=(CYL,(30,2))
/*

Figure 91. Sample JCL to allocate PDA Log data sets

5.7.1.2 Enabling and switching the PDA logs


If the PDA trace is not enabled at DFSMShsm startup, or you have disabled it,
issue the following command from a system console to enable PDA tracing:

F DFSMSHSM,SETSYS PDA(ON)

262 DFSMShsm Primer


To switch the PDA trace recording from one log data set to the other issue the
following command:

F DFSMSHSM,SWAPLOG PDA

5.7.1.3 Archiving PDA data


A GDG can be used to archive the PDA trace data. You can then copy the
GDS to tape or direct it to an SMS-managed DASD volume where it will be
migrated to tape.

Figure 92 shows sample JCL to create a GDG to archive the PDA trace data.
You need to change the GDG name to correspond to the name you select for
the starter set.

//MHLRES4G JOB MSGLEVEL=1,MSGCLASS=A


//STEP1 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
DEFINE GDG (NAME('HSM.HSMTRACE') LIMIT(30) SCRATCH)
/*

Figure 92. Sample JCL for defining PDA’s GDG base

Figure 93 shows sample JCL for copying the trace log data set to tape as a
GDS for archive purposes. The JCL must be changed to correspond to the
values you selected for your DFSMShsm starter set and your installation
standards.

//MHLRES4C JOB MSGLEVEL=1,MSGCLASS=A


//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSIN DD DUMMY
//SYSUT1 DD DSN=HSM.HSMPDOY,DISP=SHR
//SYSUT2 DD DSN=HSM.HSMTRACE(+1),
// UNIT=TAPE,
// DISP=(NEW,CATLG,CATLG),VOL=(,,1),
// DCB=(HSM.HSMPDOY)

Figure 93. Sample JCL to copy PDA to tape

When the PDA trace log switch occurs, DFSMShsm issues message
ARC0037I. You can use an automation product to trap this message and
automatically submit a copy job to archive the PDA trace data.

Chapter 5. Administration tasks 263


5.7.1.4 ARCPRPDO program
The ARCPRPDO (PDA trace formatter) program allows you to format the
PDA trace data. It provides a number of options that you can use for
collecting data from ARCPDOY, ARCPDOX, or a copy of either.

The formatter can be used to collect and print data you select with the
different options. Use the trace formatter facility to:
• Translate trace records into a readable format
• Edit raw trace data
• Select records based on your specific criteria

The can choose between the following formatting options:


COPY Routes trace data that match your selection criteria to the data
set specified for your ARCOUT DD. This data set can be used
as a source for subsequent search runs.
COMPACT This option formats the trace entries into single-line output, if
possible. This is the default option.
EXTRACT Routes trace data that matches your selection criteria to the
data set specified for your ARCOUT DD. This data set can be
used as a source for subsequent ARCPRPDO formatting runs.
FORMAT This option formats each trace keyword on a separate line.
NOPRINT This option prevents any selected records from being written to
the ARCPRINT DD. It is intended to be used with the COPY
option.

The selection options allows you to narrow your trace data search. Here are
some examples on different selections.

//PDACOPY JOB MSGCLASS=X


//COPY EXEC PGM=ARCPRPDO
//SYSPRINT DD SYSOUT=*
//ARCMSG DD SYSOUT=*
//ARCPDO DD DSN=HSM.PDOY,DISP=SHR
//ARCOUT DD DSN=PDOY.COPY,DISP=OLD
//ARCPRINT DD SYSOUT=*
//SYSIN DD *
COPY
NOPRINT
START(00229,031148)
END(00229,031527)

264 DFSMShsm Primer


The above example shows the options needed to copy selected PDA trace
entries from HSM.PDOY data set to PDOY.COPY. We have selected those
entries that have a time stamp between 03:11:48 and 03:15:27.

TIME USECS ID AS/TCB HOST MOD LOGIC CALLER ARCPRPDO


00104---------------------------------------------------------
104252.627968 00 009DA4 HOST=A ZREAD ENTR MCTL. *......MCT
104252.632384 00 009DDE HOST=A ZREAD ENTR ..?.. *........?
104252.638000 00 009DD8 HOST=A ZREAD ENTR ZBDST *......ZBD
104252.641376 00 009DD1 HOST=A ZREAD ENTR ..?.. *...1....?
104252.727120 00 009DD1 HOST=A ZREAD GET *..BCR1...

The above is an example of output using the COMPACT option.

For more details on using ARCPRPDO program see OS/390 V2R10.0


DFSMShsm Diagnosis Guide, LY35-0111.

5.7.2 Activity logs


The activity logs report on the backup, dump, migration, ABARS, and
command processing of DFSMShsm in your system. DFSMShsm has five
activity logs:
• The migration activity log provides information about space management
activity including MIGRATE commands for volumes and levels, interval
migration, and automatic primary and automatic secondary space
management.
• The backup activity log provides information about automatic backup,
volume command backup, and volume command recovery activities.
• The dump activity log provides information about automatic dump,
command volume dump, and command volume restore activities.
• The ABARS activity log provides information about aggregate backup and
recovery activities.
• The command activity log provides information about TAPECOPY and
TAPEREPL activity and records error or informational messages that
occur during low-level internal service processing.

With the SETSYS ACTLOGTYPE command you can direct DFSMShsm


activity logs to DASD or to a SYSOUT class (see 2.2.3, “Setting up the base
SETSYS parameters” on page 42).

Chapter 5. Administration tasks 265


If you specify ACTLOGTYPE(DASD) on the SETSYS command, DFSMShsm
dynamically allocates DASD data sets for the activity logs with the names in
the following format:
HSMACT.Hmcvthost.function.agname.Dyyddd.Thhmmss

Where:
• Hmcvthost: DFSMShsm host ID from the DFSMShsm startup PROC
statement, preceded by H
• function: either ABACKUP, ARECOVER, BAKLOG, CMDLOG, DMPLOG,
or MIGLOG
• agname: Aggregate group name (only present if function is ABACKUP or
ARECOVER)
• Dyyddd: Year and day of allocation, preceded by D
• Thhmmss: Hour, minute, second of allocation, preceded by T

Several methods can be used to check the activity logs, such as browsing or
printing or processing them with a CLIST.

5.7.3 DFSMShsm log data sets


The DFSMShsm log data sets provide information about events on a
particular processing unit and about commands entered with the LOG
command. The DFSMShsm log records this information in chronological
order.

Two physical sequential data sets, are identified to DFSMShsm by the


ARCLOGX and ARCLOGY DD statements in the startup procedure.
DFSMShsm records information in the ARCLOGX data set until the
ARCLOGX data set is full. Then DFSMShsm swaps the ARCLOGX data set
with the ARCLOGY data set, exchanges the names, and issues a message to
inform the operator that DFSMShsm has swapped the log data sets.

To automatically swap the DFSMShsm log data sets at startup, specify


LOGSW=YES on the PROC statement of your DFSMShsm startup
procedure. You can also swap the DFSMShsm log data sets with the
following SWAPLOG command:

F DFSMSHSM,SWAPLOG

266 DFSMShsm Primer


Once the log is switched, you will see the following message on the system
console:

ARC0020I ******************************
ARC0027I DFSMSHSM LOG SWITCHED
ARC0020I ******************************

5.7.3.1 Printing the DFSMShsm logs


After the SWAPLOG has completed, you can process the HSMLOGY data
set. If the log data in HSMLOGY is not processed before the next log
swapping, its contents will be lost.

You can run the HSMLOG and HSMEDIT jobs to process the HSMLOGY data
set. The HSMLOG and HSMEDIT jobs are in the HSM.SAMPLE.CNTL data
set.

The HSMLOG procedure runs the ARCPRLOG program to perform some


initial formatting of the information in the HSMLOGY data set and prints the
formatted log. The ARCPEDIT program of the EDITLOG procedure takes the
formatted output from the ARCPRLOG program as input. This data is in the
EDITLOG data set. The ARCPEDIT program further formats the data, and the
information can be printed. Figure 94 shows sample JCL invokes the
ARCPRLOG program:

//HSMLOG JOB ,′ MHLRES4′ , MSGCLASS=X,CLASS=A


//PRINTLOG EXEC PGM=ARCPRLOG
//ARCPRINT DD SYSOUT=*
//ARCLOG DD DSN=HSM.HSMLOGY1,DISP=OLD
//ARCEDIT DD DSN=HSM.EDITLOG,DISP=OLD
//*
//EMPTYLOG EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT2 DD DSN=HSM.HSMLOGY1,DISP=OLD
//SYSUT1 DD DUMMY,DCB=(HSM.HSMLOGY1)
/*
Figure 94. Sample JCL of ARCPRLOG

Chapter 5. Administration tasks 267


Figure 95 shows sample JCL invokes the ARCPEDIT program and prints the
edited log information:

//EDITLOG JOB ,′ MHLRES4′ , MSGCLASS=X,CLASS=A


//EDITLOG EXEC PGM=ARCPEDIT
//ARCPRINT DD SYSOUT=*
//ARCLOG DD DSN=HSM.EDITLOG,DISP=SHR
/*

Figure 95. Sample JCL for ARCPEDIT

5.7.3.2 Disabling logging


You can prevent DFSMShsm from making entries in the DFSMShsm logs.
Even though the log entries are prevented, DFSMShsm continues to make
entries in the activity logs. To prevent entries in the DFSMShsm log, specify
the HOLD LOG command in the ARCMDxx member of PARMLIB.

Since the information stored in the DFSMShsm log data sets is also present
in the activity logs, in the PDA trace log data sets, and in SMF records, IBM
recommends disabling the log to improve performance. Some obsolete,
out-dated, independent software vendor (ISV) products continue to use the
DFSMShsm logs.DFSMShsm. In that case, you will need to use the logs.

5.7.4 SVC dumps


In the event of a DFSMShsm abend, OS/390 Dump Services may request a
dump to be written to a preallocated SYS1.DUMPxx data set or to a
dynamically allocated dump data set named according to your installation
standards. This dump may contain some helpful information to diagnose an
error in DFSMShsm processing.

We recommend that you specify the SETSYS SYS1DUMP command in the


ARCCMDxx of member PARMLIB. For error analysis, the IBM Support Center
may request the SVC dump produced at the time DFSMShsm abended.

To generate an SVC dump, enter the DUMP command at the system console:
DUMP COMM=(text)

Where, the text you enter is the title you want the dump to have. You are then
prompted with an IEE094D message, which asks you to specify the operands
for the DUMP command. We suggest you reply to the IEE094D message with
these parameters:
R id,JOBNAME=(HSM54),SDATA=(LSQA,ALLNUC,NUC,CSA,LPA,PSA,SQA,
RGN,SUM,SWA,GRSQ,TRT),END

268 DFSMShsm Primer


Where, HSM54 is the name of the started task procedure for DFSMShsm in
our primary processor. You can contact the IBM Support Center for
DFSMShsm dump analysis. They may request that you also provide an
unformatted copy of the PDA trace data sets leading up to the error and an
unformatted copy of the DFSMShsm logs for about 30 minutes leading up to
the hang or loop, or the activity logs.

Figure 96 contains sample JCL to copy an SVC dump data set to tape.

//DMPCOPY JOB MSGCLASS=X,CLASS=A


//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DSN=SYS1.DUMP00,DISP=SHR
//SYSUT2 DD DSN=DUMP.OUTPUT,DISP=(,KEEP),
// UNIT=tape,VOL=SER=volser
/*

Figure 96. Sample SVC dump copy job

5.7.5 Dump analysis elimination


Dump analysis elimination (DAE) is an MVS function that eliminates duplicate
dumps in MVS systems or across MVS systems.

DFSMShsm generates dumps to gather first-failure diagnostic information.


Problems that occur multiple times, perhaps on different hosts, typically
generate a storage dump. The initial dump is helpful for diagnosing the
problem; additional dumps for the same problem usually are not needed.

Controlling DFSMShsm storage dumps is a major issue with users. The


ability to properly suppress duplicate dumps is an important step toward
successfully managing dump data sets. DFSMShsm supplies additional
information to the DAE function to build a symptom string to be used to
suppress duplicate dumps for functions that run in the same or different
systems.

5.7.5.1 DAE implementation


To implement DAE for DFSMShsm, the following tasks must be completed:
• SETSYS SYS1DUMP must be specified. SYS1DUMP is the DFSMShsm
default.
• PARMLIB member ADYSETxx must be coded with the SUPPRESSALL
keyword, for example:

Chapter 5. Administration tasks 269


DAE=START,RECORDS(400),
SYSMDUMP(MATCH,UPDATE),
SVCDUMP(MATCH,UPDATE,SUPPRESSALL)
• MVS/ESA SP V4.3 introduced the ability to use DAE in a multihost
environment, thereby allowing a single DAE data set to be shared across
systems in a sysplex. The coupling services of the cross-system coupling
facility (XCF) and GRS must be enabled for the DAE data set to be shared
in a sysplex environment and for dumps to be suppressed across MVS
systems.
Only those hosts with DFSMShsm V1R4 can use the DAE suppression for
dumps for DFSMShsm. DFSMShsm V1R4 uses DAE for functions that run
in both the primary address space and the ABARS secondary address
space.

DAE does not suppress SYSABEND, SYSUDUMP, SYSMDUMP, or SNAP


dumps or dumps that originate from SLIP or DUMP operator commands.
Because these dumps are taken only on demand, suppression is not
desirable.

This support does not apply to dumps produced by DFSMShsm as a result of


the TRAP command.

5.8 Auditing DFSMShsm


The AUDIT command detects, reports, diagnoses, and often provides repair s
for discrepancies between CDSs, catalogs, and DFSMShsm-owned volumes.

To ensure data integrity, DFSMShsm uses numerous data set records to track
individual data sets. These records are contained in the:
• Master catalog, which is a list of data sets for the entire system
• User catalog, which is a list of data sets accessible from that catalog
• Journal, which keeps a running record of backup and migration
transactions
• SDSP data sets on migration volumes
• MCDS, which is an inventory of migrated data sets and migration volumes
• BCDS, which is an inventory of backed up data sets and volumes, dump
ed volumes, and backed up aggregates
• OCDS, which contains a tape table of contents (TTOC) inventory of
migration and backup tape volumes

270 DFSMShsm Primer


In normal operation, these records stay in synchronization. However,
because of data errors, hardware failures, or human errors, it is possible for
these records to become unsynchronized. The AUDIT command allows the
system to cross-check the various records concerning data sets and
DFSMShsm resources. AUDIT can list errors and propose diagnostic actions
or, at your option, complete most repairs itself.

Consider using the AUDIT command for the following reasons:


• After any CDS restore (highly recommended)
• After an ARC184I message (error when reading or writing DFSMShsm
CDS records)
• Errors on the RECALL or DELETE of migrated data sets
• Errors on BDELETE or RECOVER of backup data sets
• DFSMShsm tape-selection problems
• RACF authorization failures
• Power or hardware failure
• Periodic checks

You can use AUDIT to cross-check the following sources of control


information:
• MCDS or individual migration data set records
• BCDS or individual backup data set records or ABARS records
• OCDS or individual DFSMShsm-owned tapes
• DFSMShsm-owned DASD volumes
• Migration-volume records
• Backup-volume records
• Recoverable-volume records (from dump or incremental backup)
• Contents of SDSP data sets

It is best to use AUDIT at times of low system activity, as some audit


processes can run for quite some time. However, the AUDIT process can b e
used almost any time.

The following example shows how to instruct DFSMShsm to audit the BCDS
and fix any errors:

HSENDCMD AUDIT BCDS FIX

Chapter 5. Administration tasks 271


Refer to the OS/390 V2R10.0 DFSMShsm Storage Administration Reference,
SC35-0389, which provides examples of coding the command and guidance
on interpreting its output.

272 DFSMShsm Primer


Chapter 6. Monitoring

Monitoring DFSMShsm in real time or historically can be achieved in a


number of ways. DFSMShsm commands provide a comprehensive view of
what is happening, what has happened, and what should happen. The
DFSMS Optimizer HSM Monitor/Tuner provides a graphical user interface
(GUI) to DFSMShsm that can be used to monitor DFSMShsm system activity,
issue commands, and cancel tasks.

In this chapter we explain how to use the DFSMShsm commands and the
DFSMS Optimizer HSM Monitor/Tuner to collect information about
DFSMShsm processing and monitor DFSMShsm activity.

Each of these commands gathers information from different sources within


DFSMShsm, such as the MCDS, BCDS, OCDS, functional statistics records
(FSRs), or the DFSMShsm address space.

6.1 List command


The DFSMShsm LIST command obtains its information from the CDSs:
MCDS, BCDS and OCDS. You can list the following categories of information:
• ABARS activity
• Backup volumes
• Data sets
• Dump classes
• Dump volumes
• Host information
• Migration information
• Primary volume information
• Tape volume information
• User authorization

Many options are available for each of the LIST commands; we do not show
each and every variation. The commands that we show cover each area of
DFSMShsm for which LIST gathers information. Some of the commands use
only the MCDS or BCDS to gather information, whereas others use both the
MCDS and BCDS. You may want to investigate the commands further to
determine whether there are additional parameters that suit your installation
requirements.

© Copyright IBM Corp. 1998, 2000 273


• Who can issue the LIST command?
The LIST command is issued primarily by a DFSMShsm-authorized
storage administrator who will use the DFSMShsm HSENDCMD command
from a TSO terminal. In the examples that follow we use the abbreviated
command, HSEND, to issue our list commands.
• Some of the parameters for DFSMShsm are quite lengthy; do I have
to specify the long name?
No. In the examples that follow we show some of the more common
command parameter abbreviations.
• If I issue the LIST command, where will my output be directed?
The information that is generated from the LIST command can be returned
in a number of ways:
- Written to a terminal
- As a printed listing
- As a DASD data set
The LIST command is capable of creating a large amount of output, so be
sure to direct any output that may be large, for example, a list of all
migration volumes, to an output data set.
• Which parameters do I specify on the LIST command to direct output
to each of the above?
If you want to direct the output to a terminal, use:

LIST request TERMINAL

If you want to obtain a printed listing, use the following command to direct
the output to your SYSOUT class associated with print:

LIST request SYSOUT(class)

If you want to send the output to a DASD data set, use the following
command:

LIST request ODS(dsname)

When directing the output to DASD, you must specify the fully qualified
data set name. If the output data set does not exist, DFSMShsm
dynamically allocates it. If the specified output data set exists, DFSMShsm
appends the output to the end of the data set.
In all of our examples, the output is directed to a DASD data set.

274 DFSMShsm Primer


• How can I list information regarding my ABARS aggregate groups
and any ABACKUP and ARECOVER information?
In the following example we list out the ABR record which is created as a
result of performing an ABACKUP. Comprehensive information about the
ABARS activity that has taken place is recorded within it. In this example
we have chosen to list our aggregate group PAY1 and version number 1.

HSEND LIST AGGREGATE(PAY1) VERSION(0001) ODS(MHLRES5.ABR)

• How can I list all of the backup volumes that I have created through
DFSMShsm?
If you issue the following command, you get a list of all backup volumes
that exist and are known in your installation:

HSEND LIST BACKUPVOLUME ODS(MHLRES5.LBV)

Figure 97 shows the output that is written to the data set:


- DFSMSHSM CONTROL DATASET - BACKUP VOLUME-- LISTING ----- AT 12:43:23 ON 00/10/16 FOR SYSTEM=SC63

VOLSER DEVICE BACKUP VOL TOTAL FREE THRESH LAST BACKUP PSWD EXP RACF EMPTY IDRC DUPLEX PCT
TYPE TYPE FULL TRACKS TRACKS DATE

TST102 3590-1 DAILY NO ****** ****** *** 00/09/13 NO YES NO NO Y *NONE* 1.1
TST104 3590-1 DAILY NO ****** ****** *** 00/09/13 NO YES NO NO Y *NONE* 1.5
TST107 3590-1 DAILY NO ****** ****** *** 00/09/13 NO YES NO NO Y *NONE* 4.2
TST110 3590-1 DAILY NO ****** ****** *** 00/09/13 NO YES NO NO Y *NONE* 1.1
----- END OF - BACKUP VOLUME - LISTING -----

Figure 97. Sample BACKUPVOLUME listing output

• How do I limit the output to a particular level of data set name,


volume, and age?
In the following example we show how it is possible to specify the data set
name qualifiers, the volser of the volume, and the age of the data sets.
In the following command we ask for data sets that have a high-level
qualifier of MHLRES5, and a second-level qualifier of PAY1, are migrated
to ML1 volume HSM14D, and have not been referenced for one day.

HSEND LIST LEVEL(MHLRES5.PAY1) MCDS SELECT(VOLUME(HG661A) AGE(1))

Chapter 6. Monitoring 275


Figure 98 shows the output that is written to a DASD data set:
- DFSMSHSM CONTROL DATASET - MIGRATED DATASET-- LISTING ----- AT 14:22: 48 ON 98/07/30 FOR SYSTEM=SC54

DATASET NAME MIGRATED LAST REF MIGRATED TRKS QTY TIMES DS SDSP QTY
LAST MIG
ON VOLUME DATE DATE ALLOC 2K BLKS MIG ORG DS 16K
BLKS VOLUME

MHLRES5.PAY1.SALARY1 HSM14D 98/07/29 98/07/30 000001 0000001 001 PS NO ******


******
- DFSMSHSM CONTROL DATASET - SUMMARY-- LISTING ----- AT 14:22:48 ON 98/ 07/30 FOR SYSTEM=SC54

MIGRATED TRACKS K-BYTES


DATA SETS MIGRATED MIGRATED

0000000001 000000001 00000001

----- END OF - MIGRATED DATASET - LISTING -----

Figure 98. Sample data set level listing output

• If I want to list all of the data sets that have been either migrated or
recalled, which command do I use?
If you want to obtain a list of all the data sets that have an entry in the
MCDS, even though they may already have been recalled to a primary
volume, issue the following command:

HSEND LIST DATASETNAME MCDS INCLUDEPRIMARY ODS(MHLRES5.DSN)

276 DFSMShsm Primer


Figure 99 shows the output from this command when directed to a DASD
data set:

- DFSMSHSM CONTROL DATASET - MIGRATED DATASET-- LISTING ----- AT 13:35:34 ON 00/10/16 FOR SYSTEM=SC63

DATASET NAME MIGRATED LAST REF MIGRATED TRKS QTY TIMES DS SDSP QTY LAST MIG
ON VOLUME DATE DATE ALLOC 2K BLKS MIG ORG DS 16K BLKS VOLUME

HAUFF.JOB.CNTL HG671F 00/03/09 00/07/17 000010 0000003 001 PO NO ****** ******


HFS.SC63.DSN610.SDSNHFS.AQ36011 HG661F 00/03/27 00/07/18 000270 0005259 001 PE NO ****** ******
HGPARK.ABCD HG661B 00/07/26 00/09/11 000150 0003280 001 PS NO ****** ******
HGPARK.NONVSAM ONLINE 00/08/12 00/08/23 045000 0000000 001 PS NO ****** ******
HGPARK.S0000 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0001 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0002 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0003 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0004 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0005 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
HGPARK.S0006 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
.
.
PARKHG.T6730 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6731 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6732 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6733 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6734 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6735 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6736 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
PARKHG.T6737 ONLINE 00/08/24 00/08/24 000150 ******* 002 PS NO 000000 *NONE*
.
.
STYRES1.DSSDUMP.RV2CU3.#1 HG671F 99/07/16 00/07/17 000300 0000044 001 PS NO ****** ******
STYRES1.DSSDUMP.RV2CU3.#2 HG6720 99/07/16 00/07/17 000300 0000044 001 PS NO ****** ******
STYRES1.HFS.RO HG661F 99/07/13 00/07/17 000015 0000031 001 PE NO ****** ******
STYRES1.HFS.RW HG6720 99/07/13 00/07/17 000015 0000030 001 PE NO ****** ******
STYRES1.HFS.TEST1 HG671F 99/07/13 00/07/17 000015 0000061 001 PE NO ****** ******
STYRES1.TEST.HFS1 HG6720 99/07/13 00/07/17 000001 0000001 001 PE NO ****** ******
MHLRES5.TEST.MIG ONLINE 00/09/15 00/09/15 000002 0000000 003 PS NO ****** ******
- DFSMSHSM CONTROL DATASET - SUMMARY-- LISTING ----- AT 13:35:34 ON 00/10/16 FOR SYSTEM=SC63

MIGRATED TRACKS K-BYTES


DATA SETS MIGRATED MIGRATED

0000000011 000001946 00030807

----- END OF - MIGRATED DATASET - LISTING -----

Figure 99. Sample listing output of list data set in MCDS

• Can I list information recorded in the BCDS about data sets that have
been backed up and use the LEVEL parameter to restrict the amount
of output?
If you were to use this command, you would list out all data sets that have
the high-level qualifier HSMACT and have an entry in the BCDS:

HSEND LIST LEVEL(HSMACT) BCDS ODS(MHLRES5.DSN3)

Chapter 6. Monitoring 277


• Can I get a list of the ML1 volumes to which data sets with a
high-level qualifier of MHLRES5 are migrated?
If you use the following command, you will see to which ML1 volumes your
data sets have been migrated:
HSEND LIST LEVEL(MHLRES5) MCDS SELECT(ML1) ODS(MHLRES5.DSN4)

The output that is written to a DASD data set looks like Figure 100:
- DFSMSHSM CONTROL DATASET - MIGRATED DATASET-- LISTING ----- AT 16:21: 54 ON 98/07/30 FOR SYSTEM=SC54

DATASET NAME MIGRATED LAST REF MIGRATED TRKS QTY TIMES DS SDSP QTY
LAST MIG
ON VOLUME DATE DATE ALLOC 2K BLKS MIG ORG DS 16K
BLKS VOLUME

MHLRES5.PAY1.SALARYA HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******


******
MHLRES5.PAY1.SALARY1 HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******
******
MHLRES5.PAY1.SALARY2 HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******
******
MHLRES5.PAY1.SALARY3 HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******
******
MHLRES5.PAY1.SALARY4 HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******
******
MHLRES5.PAY1.SALARY5 HSM14D 98/07/30 98/07/30 000001 0000001 002 PS NO ******
******
- DFSMSHSM CONTROL DATASET - SUMMARY-- LISTING ----- AT 16:21:54 ON 98/ 07/30 FOR SYSTEM=SC54

MIGRATED TRACKS K-BYTES


DATA SETS MIGRATED MIGRATED

0000000006 000000006 00000004

----- END OF - MIGRATED DATASET - LISTING -----

Figure 100. Sample listing output for migrated data set level in ML1 volumes

• How can I list the contents of a primary volume at the time the last
incremental backup was taken?
This information is taken from the backup VTOC copy data sets. The
following command allows you to list out the contents of the latest
incremental backup for primary volume HSM14A:
HSEND LIST PVOL(HG6600) BCDS BACKUPCONTENTS ODS(MHLRES5.DSN6)

278 DFSMShsm Primer


The output that is written to the data set looks like Figure 101:

-- DFSMSHSM CONTROL DATASET -PRIMARY VOLUME-BCDS-- BCONTENTS --- AT 16:42:54 ON 98/07/30 FOR SYSTEM=SC54
CONTENTS OF BACKUP VTOC COPY # 00 FOR PRIMARY VOLUME HSM14A
DATASET NAME ORG MULTI CREATED REF ERENCED EXP DATE RACF PSWD CHANGED
HSM.BCDS VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.BCDS.DATA VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.BCDS.INDEX VS *** 98/07/23 00/00/00 00/00/00 *** *** NO
HSM.MCDS VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.MCDS.DATA VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.MCDS.INDEX VS *** 98/07/23 00/00/00 00/00/00 *** *** NO
HSM.OCDS VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.OCDS.DATA VS *** 98/07/23 98/07/29 00/00/00 *** *** YES
HSM.OCDS.INDEX VS *** 98/07/23 00/00/00 00/00/00 *** *** NO
HSMACT.H1.BAKLOG.D98208.T182753 PS NO 98/07/27 98/07/27 00/00/00 NO NO YES
HSMACT.H1.BAKLOG.D98209.T105715 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.BAKLOG.D98210.T154052 PS NO 98/07/29 98/07/29 00/00/00 NO NO YES
HSMACT.H1.BAKLOG.D98210.T165212 PS NO 98/07/29 98/07/29 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98204.T183225 PS NO 98/07/23 98/07/23 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98208.T182753 PS NO 98/07/27 98/07/27 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98208.T200850 PS NO 98/07/27 98/07/27 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98209.T104822 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98209.T105715 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98209.T134759 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.CMDLOG.D98210.T165212 PS NO 98/07/29 98/07/29 00/00/00 NO NO YES
HSMACT.H1.DMPLOG.D98204.T183225 PS NO 98/07/23 98/07/23 00/00/00 NO NO YES
HSMACT.H1.DMPLOG.D98209.T104822 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.MIGLOG.D98209.T105715 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
HSMACT.H1.MIGLOG.D98209.T132129 PS NO 98/07/28 98/07/28 00/00/00 NO NO YES
MHLTST4.COMPINFO PS NO 98/07/29 98/07/29 00/00/00 NO NO NO
MHLTST4.C2SYSBS PS NO 98/07/29 98/07/29 00/00/00 NO NO NO
MHLTST4.C3RECYCL PS NO 98/07/29 98/07/29 00/00/00 NO NO NO
MHLTST4.SC47.SPFLOG1.LIST PS NO 98/07/29 98/07/29 00/00/00 NO NO NO
MHLTST4.SYSOUT PS NO 98/07/29 98/07/29 00/00/00 NO NO NO
----- END OF - PRIMARY VOLUME - LISTING -----

Figure 101. Sample listing output of primary volume backup’s content

• How do I list out the attributes of a dump class?


If you do not know the name of the dump class and want to list all dump
classes, then omit the dump class name in the following command. If you
know the name of the dump class, you can issue the following command.
In this example the dump class name is SUNDAY:

HSEND LIST DUMPCLASS(SUNDAY) ODS(MHLRES5.DSN1)

The output that is written to the DASD data set looks like Figure 102:
--- DFSMSHSM CONTROL DATASET -DUMP CLASS-BCDS--- LISTING --- AT 13:45:06 ON 00/10/16 FOR SYSTEM=SC63

DUMP UNIT AUTO DATASET RESET CLASS TAPE VTOC


CLASS TYPE REUSE RESTORE CHANGE DISABLE DAY FREQ RETPD EXPDT COPIES STACK DISPOSITION
SUNDAY ******** YES YES NO NO 07 007 000027 ******* 004 01 ********************
----- END OF - DUMP CLASS - LISTING -----

Figure 102. Sample listing output of dump class attributes

Chapter 6. Monitoring 279


• If I want to list all the dump volumes that I have created over time,
which command do I use?
Depending on the dump policies at your installation the output from this
command can be quite large. To list out information about all dump
volumes in the system, issue the following command:

HSEND LIST DVOL BCDS ODS(MHLRES5.DSN2)

• How can I find out to which dump volumes one of my primary


volumes has been dumped?
If you know the primary volume, in this case DACMC1, use the following
command:

HSEND LIST PRIMARY(DACMC1) BCDS ALLDUMPS ODS(MHLRES5.DSN3)

The output that is written to the DASD data set looks like Figure 103:

- DFSMSHSM CONTROL DATASET - PRIMARY VOLUME-BCDS--- ALLDUMPS----- AT 17 :53:26 ON 98/07/30 FOR SYSTEM=SC47

SOURCE SET OF DUMP


VOLSER GEN SMS DUMPED TIME CLASS EXP DATE VOLSERS

DACMC1 00 NO 98/07/29 21:16:24 SYSPLEX2 98/08/11 PLX466 PLX474 PLX495 ****** ****** ****** ****** ******
******
DACMC1 01 NO 98/07/22 21:31:42 SYSPLEX2 98/08/04 PLX243 PLX248 PLX231 ****** ****** ****** ****** ******
******
----- END OF - PRIMARY VOLUME - LISTING -----

Figure 103. Sample listing output of a selected dump volume

• How can I find out which data sets were dumped to a specific dump
volume?
This information is in the dump volume VTOC copy data set that is
created. In the previous example we know that one of the dump volumes
that output from primary volume DACMC1 went to is dump volume
PLX466. Specifying the dump volume volser (PLX466) in the following
command lists out all the data sets in the specified dump volume:

HSEND LIST DUMPVOLUME(PLX466) DCONTENTS ODS(MHLRES5.DSN5)

280 DFSMShsm Primer


The output that is written to the data set looks like Figure 104:
-- DFSMSHSM CONTROL DATASET -DUMP VOLUME-BCDS-- LISTING --- AT 17: 58:07 ON 98/07/30 FOR SYSTEM=SC47

DUMP VOL UNIT FILE SOURCE DUMPED DUMPED SET OF DUMP


VOLSER STATUS TYPE SEQ VOLSER SMS CLASS DATE TIME EX P DATE IDRC LIBRARY VOLSERS
PLX466 UNEXP 3490 SYSPLEX2 19 98/08/11 Y *NO LIB*
01 DACMC1 N 1998/07/29 21:16:24 PLX466 PLX474 PLX495
DUMP COPY DATA SET NAME = TOTHSM.DMP.SYSPLEX2.VDACMC1.D98210.T241621
CONTENTS OF VTOC COPY FOR SOURCE VOLUME DACMC1
DATASET NAME ORG MULTI CREATED REF ERENCED EXP DATE RACF PSWD CHANGED
ALGUEIR.DB2.OUTPUT PS NO 97/07/14 97/ 07/24 00/00/00 NO NO YES
ALGUEIR.ISPF.ISPPROF PO NO 97/07/09 97/ 07/30 00/00/00 NO NO YES
ALGUEIR.LOG.MISC PS NO 97/07/29 97/ 07/29 00/00/00 NO NO YES
ARTURO.DB2.OUTPUT PS NO 97/07/17 97/ 07/24 00/00/00 NO NO YES
ARTURO.ISPF.ISPPROF PO NO 97/07/17 97/ 07/25 00/00/00 NO NO YES
ARTURO.SPUFI.OUTPUT PS NO 97/07/17 97/ 07/17 00/00/00 NO NO YES
BFS.LS130.LFS.ACCSCTL PS YES 97/06/30 00/ 00/00 00/00/00 NO NO YES
CAT.MASTER VS *** 97/06/26 98/ 07/28 99/12/31 *** *** YES
CAT.MASTER.CATINDEX VS *** 97/06/26 00/ 00/00 99/12/31 *** *** NO
CAT.SMPE VS *** 97/06/26 98/ 07/28 99/12/31 *** *** YES

Figure 104. Sample listing output of selected dump volume’s content

• In the output from the LIST DUMPVOLUME, the dump tape data set
name is given. Can I use this dump tape data set name to restore a
volume outside DFSMShsm?
Yes. Remember that DFSMShsm performs only one volume restore at a
time. You can use the dump tape data set name in a job that invokes
DFSMSdss RESTORE directly.
• How can I list the information about ML1 volumes that is recorded in
the MCDS?
To obtain this information you use the following command:
HSEND LIST ML1 MCDS ODS(MHLRES5.DSN7)

Chapter 6. Monitoring 281


The output that is written to the DASD data set looks like Figure 105:

- DFSMSHSM CONTROL DATASET - MIGRATE VOLUME-MCDS--- LISTING ----- AT 14:17:33 ON 00/10/16 FOR SYSTEM=SC63

VOLSER DEVICE VOLUME THRESHOLD FRAG HOSTID AUTO- AUTO SDSP MIN MIGRATED DATE---TIME SPACE-MGMT BUDEV DUMP
TYPE TYPE HI--LOW INDX MIG--BACK-DUMP RECL AVAIL AGE DS---TRKS LAST MIGRATED TYPE/AGE CATGY CLASS

HG661A 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG661B 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG661C 3390 L1-OV 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG661D 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG661E 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG661F 3390 LEV 1 100 *** .026 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG6620 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671A 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671B 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671C 3390 L1-OV 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671D 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671E 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG671F 3390 LEV 1 100 *** .000 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
HG6720 3390 LEV 1 100 *** .012 **** **** NONE *** NO *** 0000 000000 00/00/00 00:00 *** *** **** ********
----- END OF - MIGRATE VOLUME - LISTING -----

Figure 105. Sample output listing of ML1 information

• If I need information about all my migration volumes and want to use


the MCDS and BCDS, which command should I use?
When you specify the BOTH keyword, the LIST command uses the MCDS
and the BCDS as its source for information. The command syntax is:
HSEND LIST MIGRATIONVOLUME BOTH ODS(MHLRES5.DSN8)

• Is it possible to list information about my primary volumes?


Yes. The PRIMARYVOLUME or PVOL parameter provides information for
primary volumes. You can request information about all primary volumes,
or a specific primary volume, whether they are SMS-managed or not. You
can also request that information be listed from the MCDS, BCDS, or both.
In the following LIST command, we only want information for volume
HG6605. To list all primary volumes omit the volser parameter:
HSEND LIST PVOL(HG6605) MCDS ODS(MHLRES5.DSN10)

The output that is written to the data set looks like Figure 106:
- DFSMSHSM CONTROL DATASET - PRIMARY VOLUME-MCDS--- LISTING ----- AT 14:22:28 ON 00/10/16 FOR SYSTEM=SC63

VOLSER DEVICE VOLUME THRESHOLD FRAG HOSTID AUTO- AUTO SDSP MIN MIGRATED DATE---TIME SPACE-MGMT BUDEV DUMP
TYPE TYPE HI--LOW INDX MIG--BACK-DUMP RECL AVAIL AGE DS---TRKS LAST MIGRATED TYPE/AGE CATGY CLASS

HG6605 3390 P SMS 080 001 .000 **** **** **** *** *** *** 0000 ****** 00/08/29 02:20 MIG *** **** ********
----- END OF - PRIMARY VOLUME - LISTING -----

Figure 106. Sample output listing of selected primary volume in MCDS

282 DFSMShsm Primer


• How can I generate a list of all tape volumes that I have in my
DFSMShsm installation?
A list of all tape volumes that are defined to DFSMShsm can be quite
exhaustive, so we recommend that you use an output data set. The
information about tape volumes is recorded in the OCDS in a TTOC. The
information that is returned from the following command includes all the
tape information but does not show the individual data set information:
HSEND LIST TTOC ODS(MHLRES5.TTOC)

The output that is written to the data set looks like Figure 107:
LIST TTOC ODS(MHLRES5.TTOC)

- DFSMSHSM CONTROL DATASET - TAPE VOLUME TTOC - LISTING - AT 14:24:05 ON 00/10/16 FOR SYSTEM=SC63
VOLSER UNIT VOL REUSE VALID PCT VOL RACF PREV SUCC NUM ONE ALT LIB STORAGE
NAME TYPE CAPACITY BLKS VALID STATUS VOL VOL REC FILE VOL GROUP
TST105 3590-1 ML2 01966000 00000000 000 PART NO *NONE* *NONE* 010 YES *NONE* LIB1 SGLIB1
TST109 3590-1 ML2 01966000 00000000 000 PART NO *NONE* *NONE* 010 YES *NONE* LIB1 SGLIB1
TST102 3590-1 D(01) 01966000 00003094 001 PART NO *NONE* *NONE* 001 YES *NONE* LIB1 SGLIB1
TST104 3590-1 D(01) 01966000 00000000 000 PART NO *NONE* *NONE* 001 YES *NONE* LIB1 SGLIB1
TST107 3590-1 D(01) 01966000 00000000 000 PART NO *NONE* *NONE* 001 YES *NONE* LIB1 SGLIB1
TST110 3590-1 D(01) 01966000 00000000 000 PART NO *NONE* *NONE* 001 YES *NONE* LIB1 SGLIB1
----- END OF - TAPE VOLUME TTOC - LISTING -----

Figure 107. Sample output listing of all tape volumes in DFSMShsm

• How can I list the data sets that have been copied to a particular
volume?
In the output from the previous command, one of the volumes listed has a
volser of TST102. If you specify the TST102 volser and issue the following
command, you will get data set information returned to you:
HSEND LIST TTOC(TST102) ODS(MHLRES5.TTOC1)

The output that is written to the data set looks like Figure 108:
LIST TTOC(TST102) ODS(MHLRES5.TTOC1)

- DFSMSHSM CONTROL DATASET - TAPE VOLUME TTOC - LISTING - AT 14:41:25 ON 00/10/16 FOR SYSTEM=SC63

VOLSER UNIT VOL REUSE VALID PCT VOL RACF PREV SUCC NUM ONE ALT LIB STORAGE
NAME TYPE CAPACITY BLKS VALID STATUS VOL VOL REC FILE VOL GROUP
TST102 3590-1 D(01) 01966000 00003094 001 PART NO *NONE* *NONE* 001 YES *NONE* LIB1 SGLIB1

DATA SET NAME NUM BLOCKS RELATIVE FBID VSAM RACF LAST REF DATE EXP DATE
HSM.BACK.T354713.HGPARK.S0000.J0256 000442 000001 NO NO ******** ********
HSM.BACK.T415713.HGPARK.S0001.J0256 000442 000002 NO NO ******** ********
HSM.BACK.T435713.HGPARK.S0002.J0256 000442 000003 NO NO ******** ********
HSM.BACK.T445713.HGPARK.S0003.J0256 000442 000004 NO NO ******** ********
HSM.BACK.T465713.HGPARK.S0004.J0256 000442 000005 NO NO ******** ********
HSM.BACK.T485713.HGPARK.S0005.J0256 000442 000006 NO NO ******** ********
HSM.BACK.T495713.HGPARK.S0006.J0256 000442 000007 NO NO ******** ********
----- END OF - TAPE VOLUME TTOC - LISTING -----

Figure 108. Sample output listing TTOC of selected tape volume

Chapter 6. Monitoring 283


• Is there a way to obtain information about the status of tapes for
DFSMShsm use such as partially filled and empty tapes?
The LIST command supports an optional parameter, SELECT. This
parameter can be used in a number of ways to list only those TTOC
entries in which you are interested. A number of subparameters can be
used. We show you some of the SELECT options that you can use
(without including the output from each command) just to give you an idea
of the kind of information that is available.
The following command generates a list of all those backup volumes that
are empty along with those that have some data on them but are not
marked full (the tapes you could then mount to begin backup):

HSEND LIST TTOC SELECT(BACKUP NOTFULL) ODS(MHLRES5.DSNA)

The following command generates a list of ML2 volumes that were taken
away from another function because the recall function needed a data set
on the volume:

HSEND LIST TTOC SELECT(ML2 RECALLTAKEAWAY) ODS(MHLRES5.DSNB)

The following command generates a list of ML2 partial tapes that are
available for an initial allocation, and are not currently associated for
output by any migration or recycle tasks

HSEND LIST TTOC SELECT(NOTASSOCIATED) ODS(MHLRES5.DSNC)

• How can I obtain a list of all DFSMShsm users that have been
authorized by the DFSMShsm AUTH command?
Use the following command to quickly identify users that should or should
not have DFSMShsm authorization:
HSEND LIST USER ODS(MHLRES5.DSN9)

The output that is written to the data set looks like Figure 109:
- DFSMSHSM CONTROL DATASET - USER-- LISTING ----- AT 19:06:22 ON 00/10/13 FOR YSYTEM=SC63

USERID AUTH

BYRNEF CNTL
HAIMO CNTL
HGPARK CNTL
KOHJI CNTL
MHLRES5 CNTL
----- END OF - USER - LISTING -----

Figure 109. Sample output listing of authorized users

284 DFSMShsm Primer


In the command output a number of users have an authority of CNTL. We
recommend that this authority be assigned only as required and that the
majority of users be assigned USER authority.

6.2 Query command


As DFSMShsm processes its units of work, it maintains information in its
address space. As the LIST command obtains its information from the CDSs
there is another command that will interrogate the address space. This
command is the QUERY command, and it can be used to display real-time
information about your DFSMShsm system. The QUERY command returns
information that includes:
- The current SETSYS parameters
- The current ABARS parameters
- The status of outstanding DFSMShsm requests
- Volume space usage
- The status of each volume and data set subtask and long-running
commands
- The progress of automatic functions
- The parameters used at DFSMShsm startup
• How do I issue the QUERY command?
You can issue the QUERY command by using the HSEND command in
TSO or the MVS MODIFY command on a system console:
HSEND QUERY request
MODIFY HSM1,QUERY request

You can also issue the QUERY command from a REXX program.
When you issue the QUERY command you must also specify one of the
optional parameters in order to produce any output. It is also possible to
place the QUERY command in your DFSMShsm startup procedure, but
remember that some of the information that may be displayed may be
incorrect as DFSMShsm is not yet fully initialized.
• Where will the output from the command be returned?
If you issue the HSEND command, the output is directed back to your TSO
terminal and to the DFSMShsm log. If you issue the MODIFY command,
the information is returned to the system log.

Chapter 6. Monitoring 285


• What is the best version of the command to use?
It depends on the output that you expect to receive and what you want to
do with it. Remember that if there is a lot of output associated with the
command and it is displayed at your terminal, you may find that not all the
information is displayed on one screen. Or you may find that you miss the
information first time around and have to issue the command again. In the
examples that follow we use the MVS MODIFY command so that we can
capture the information on the system log and perform searches for
information or messages in which we are interested.
• Are there abbreviations for the commands?
In our examples in most cases we use F for the MVS MODIFY command,
and Q for the DFSMShsm QUERY command. We also use abbreviations
for the optional parameters.
• How do I find detailed information about the QUERY command
syntax?
In addition to referring to the OS/390 V2R10.0 DFSMShsm Storage
Administration Reference, SC35-0389 for a comprehensive description of
the command and optional parameters, you can use the ARC0101I
message to check the full command syntax.
• From where is all the information gathered?
The information is gathered from control records held within the
DFSMShsm address space.
• Why can't I use the LIST command to get at this information?
The LIST command operates on the CDSs, not the DFSMShsm address
space.
• I have more than one DFSMShsm system sharing CDSs and the
journal. On which system should I issue the command?
The information returned will apply to the system where you issue the
command. Therefore if you have more than one system, you may have to
issue the command on more than one system. Some of the information
returned applies to the DFSMShsm installation in its entirety, but some
information is applicable only to the system where you issue the
command.

286 DFSMShsm Primer


• How can I display information for the active DFSMShsm address
spaces within a single OS/390 image?
The following command will display information which include the host
identifier, procedure name used to start the address space, the job
identifier and the host mode.

F HSM1, Q IMAGE

The information returns with the following message:

ARC0101I QUERY IMAGE COMMAND STARTING ON HOST=1


ARC0250I HOST PROCNAME JOBID ASID MODE
ARC0250I 1 HSM1 02980 0049 MAIN
ARC0250I 2 HSM2 02981 004A AUX
ARC0101I QUERY IMAGE COMMAND COMPLETED ON HOST=1

• How can I list what the current ABARS control parameters that are in
effect?
If you want to query the current DFSMShsm control parameters that apply
to aggregate backup and recovery, issue the following command:
F HSM1,Q AB

The information is returned in the following messages:


ARC0101I QUERY ABARS COMMAND STARTING ON HOST=1
ARC6008I AGGREGATE BACKUP/RECOVERY PROCNAME = DFHSMABR
ARC6009I AGGREGATE BACKUP/RECOVERY MAXADDRESSSPACE = 01
ARC6366I AGGREGATE BACKUP/RECOVERY UNIT NAME = 3590-1
ARC6368I AGGREGATE BACKUP/RECOVERY ACTIVITY LOG 132
ARC6368I (CONT.) MESSAGE LEVEL IS FULL
ARC6371I AGGREGATE RECOVERY ML2 TAPE UNIT NAME = 3590-1
ARC6372I NUMBER OF ABARS I/O BUFFERS = 02
ARC6373I ABARS ACTIVITY LOG OUTPUT TYPE = DASD
ARC6033I AGGREGATE RECOVERY UNIT NAME = 3590-1
ARC6036I AGGREGATE BACKUP OPTIMIZE = 3
ARC6036I AGGREGATE RECOVERY TGTGDS = SOURCE
ARC6036I AGGREGATE RECOVERY ABARSVOLCOUNT = ANY
ARC6036I AGGREGATE RECOVERY PERCENTUTILIZED = 090
ARC6036I AGGREGATE BACKUP/RECOVERY ABARSDELETEACTIVITY 141
ARC6036I (CONT.) = NO
ARC6036I AGGREGATE BACKUP/RECOVERY ABARSTAPES = STACK
ARC6036I AGGREGATE BACKUP ABARSKIP = NOPPRC, NOXRC
ARC0101I QUERY ABARS COMMAND COMPLETED ON HOST=1

You can use other optional QUERY command parameters to display


information pertinent to the ABARS environment. Be aware that this is not
the only ABARS parameter.

Chapter 6. Monitoring 287


• How can I display what is currently running in DFSMShsm?
To display the status of each DFSMShsm volume and data set subtask,
long-running commands, and the virtual storage usage above and below
16 MB, issue the following command:
F HSM1,Q ACT

The information is returned in the following messages:

ARC0101I QUERY ACTIVE COMMAND STARTING ON HOST=1


ARC0144I AUDIT=NOT HELD AND INACTIVE, LIST=NOT HELD 147
ARC0144I (CONT.) AND INACTIVE, RECYCLE=NOT HELD AND INACTIVE,
ARC0144I (CONT.) REPORT=NOT HELD AND INACTIVE
ARC0160I MIGRATION=NOT HELD, AUTOMIGRATION=NOT HELD, 148
ARC0160I (CONT.) RECALL=NOT HELD, TAPERECALL=NOT HELD, DATA SET
ARC0160I (CONT.) MIGRATION=INACTIVE, VOLUME MIGRATION=INACTIVE, DATA
ARC0160I (CONT.) SET RECALL=INACTIVE
ARC0163I BACKUP=NOT HELD, AUTOBACKUP=NOT HELD, 149
ARC0163I (CONT.) RECOVERY=NOT HELD, TAPEDATASETRECOVERY=NOT HELD, DATA
ARC0163I (CONT.) SET BACKUP=NOT HELD, VOLUME BACKUP=INACTIVE, DATA SET
ARC0163I (CONT.) RECOVERY=INACTIVE, VOLUME RECOVERY=INACTIVE
ARC0276I DATA SET BACKUP=INACTIVE, DATA SET BACKUP 150
ARC0276I (CONT.) ACTUAL IDLETASKS=(ALLOC=00, MAX=02)
ARC0642I DUMP=NOT HELD, AUTODUMP=NOT HELD, VOLUME 151
ARC0642I (CONT.) DUMP=INACTIVE, VOLUME RESTORE=INACTIVE, DATA SET
ARC0642I (CONT.) RESTORE=INACTIVE
ARC0437I - TAPECOPY NOT HELD AND INACTIVE
ARC0437I - TAPEREPL NOT HELD AND INACTIVE
ARC0415I EXPIREBV=NOT HELD AND INACTIVE, LAST STORED 154
ARC0415I (CONT.) BACKUP VERSION KEY=, LAST STORED ABARS VERSION KEY=,
ARC0415I (CONT.) LAST PLANNED END KEY=
ARC0460I PRIVATE AREA LIMIT=9192K, UNALLOCATED=6988K, 155
ARC0460I (CONT.) LARGEST FREE AREAS=6980K, 4K
ARC0460I EXTENDED PRIVATE AREA LIMIT=1794M, 156
ARC0460I (CONT.) UNALLOCATED=1769M, LARGEST FREE AREAS=1769M, 52K
ARC6018I AGGREGATE BACKUP/RECOVERY = INACTIVE
ARC6019I AGGREGATE BACKUP = NOT HELD, AGGREGATE 158
ARC6019I (CONT.) RECOVERY = NOT HELD
ARC0101I QUERY ACTIVE COMMAND COMPLETED ON HOST=1

• If I want to find out how DFSMShsm automatic functions are


progressing and the number of volumes to be processed, which
command should I use?
To find out exactly how the automatic functions are progressing in terms of
volumes processed and to be processed, issue the following command:
F HSM1,Q AUTOP

288 DFSMShsm Primer


The information is returned in the following messages:

ARC0101I QUERY AUTOPROGRESS COMMAND STARTING ON HOST=1


ARC0247I PRIMARY SPACE MANAGEMENT IS CURRENTLY
ARC0247I (CONT.) PROCESSING DFSMSHSM MANAGED VOLUMES
ARC0246I SMS VOLUMES RESTRICTED TO PROCESSING BY THIS
ARC0246I (CONT.) PROCESSING UNIT: NOT PROCESSED=0, TOTAL=0, SMS
ARC0246I (CONT.) VOLUMES NOT RESTRICTED TO PROCESSING BY ANY
ARC0246I (CONT.) PROCESSING UNIT: NOT PROCESSED=0, TOTAL=4, NON-SMS
ARC0246I (CONT.) VOLUMES: NOT PROCESSED=0, TOTAL=0
ARC0101I QUERY AUTOPROGRESS COMMAND COMPLETED ON HOST=1

The same command gives the following result when automatic functions
are not in progress

ARC0101I QUERY AUTOPROGRESS COMMAND STARTING ON HOST=1


ARC0247I NO AUTOMATIC FUNCTION IS CURRENTLY PROCESSING
ARC0247I (CONT.) DFSMSHSM MANAGED VOLUMES
ARC0101I QUERY AUTOPROGRESS COMMAND COMPLETED ON HOST=1

• If I just wanted to get information with respect to my backup


environment, which command could I use?
To find out your current automatic backup and dump parameters, specify
the BACK parameter. In our example the DAILY(6) parameter tells
DFSMShsm to list the information for the sixth day of the month. If DAILY
is specified without a day, DFSMShsm lists all daily backup volumes.
F HSM1,QUERY BACK(DAILY(6))

Chapter 6. Monitoring 289


The information is returned in the following messages:

ARC0101I QUERY BACKUP COMMAND STARTING ON HOST=1


ARC0638I MAXDUMPTASKS=03, ADSTART=(0000 0000 0000), 170
ARC0638I (CONT.) DUMPIO=(3,2), VOLUMEDUMP=(NOCC)
ARC0273I DUMP CYCLE LENGTH=7 DAY(S), CYCLE=NNNNNNY, 171
ARC0273I (CONT.) TODAY IS DAY=5, CYCLE START DATE=98/03/02,
ARC0273I (CONT.) AUTODUMP/LEVEL FUNCTIONS NOT ELIGIBLE TO BE STARTED,
ARC0273I (CONT.) CYCLE START TIME NOT SPECIFIED
ARC0274I BACKUP=YES(ANY), SPILL=YES(ANY), 172
ARC0274I (CONT.) MAXDSRECOVERTASKS=03
ARC0154I MAXBACKUPTASKS=03, ABSTART= (0000 0000 0000), 173
ARC0154I (CONT.) VERSIONS=001, FREQUENCY=000, SKIPABPRIMARY=NO, BACKUP
ARC0154I (CONT.) PREFIX=HSM, INCREMENTALBACKUP=CHANGEDONLY,
ARC0154I (CONT.) PROFILEBACKUP=YES, INUSE=(RETRY=NO, DELAY=015,
ARC0154I (CONT.) SERIALIZATION=REQUIRED)
ARC0269I DATA SET DASD BACKUP TASKS=02 DATA SET TAPE 174
ARC0269I (CONT.) BACKUP TASKS=02, DEMOUNTDELAY MINUTES=0060,
ARC0269I (CONT.) MAXIDLETASKS=00, DATA SET BACKUP MAXIMUM DASD
ARC0269I (CONT.) SIZE=3000, DATA SET BACKUP STANDARD DASD SIZE=0250,
ARC0269I (CONT.) SWITCHTAPES TIME=0000, PARTIALTAPE=MARKFULL
ARC0271I BACKUP CYCLE LENGTH=01 DAY(S), CYCLE=Y, TODAY 175
ARC0271I (CONT.) IS DAY=01, VOLUME LIMIT/DAY=0001, AVAILABLE BACKUP
ARC0271I (CONT.) VOLUMES=00004, CYCLE START DATE=98/03/02
ARC0101I QUERY BACKUP COMMAND COMPLETED ON HOST=1

• How can I get volume information related to my backup


environment?
You can get volume information by using a format of the following
command:
QUERY BACKUP(ALL | DAILY(nn) | SPILL | UNASSIGNED)

To list out all backup parameters and additionally the daily backup
volumes, issue the following command:
F HSM1,QUERY BACK(DAILY)

290 DFSMShsm Primer


The information is returned in the following messages:

ARC0101I QUERY BACKUP COMMAND STARTING ON HOST=1


ARC0638I MAXDUMPTASKS=03, ADSTART=(0000 0000 0000), 179
ARC0638I (CONT.) DUMPIO=(3,2), VOLUMEDUMP=(NOCC)
ARC0273I DUMP CYCLE LENGTH=7 DAY(S), CYCLE=NNNNNNY, 180
ARC0273I (CONT.) TODAY IS DAY=5, CYCLE START DATE=98/03/02,
ARC0273I (CONT.) AUTODUMP/LEVEL FUNCTIONS NOT ELIGIBLE TO BE STARTED,
ARC0273I (CONT.) CYCLE START TIME NOT SPECIFIED
ARC0274I BACKUP=YES(ANY), SPILL=YES(ANY), 181
ARC0274I (CONT.) MAXDSRECOVERTASKS=03
ARC0154I MAXBACKUPTASKS=03, ABSTART= (0000 0000 0000), 182
ARC0154I (CONT.) VERSIONS=001, FREQUENCY=000, SKIPABPRIMARY=NO, BACKUP
ARC0154I (CONT.) PREFIX=HSM, INCREMENTALBACKUP=CHANGEDONLY,
ARC0154I (CONT.) PROFILEBACKUP=YES, INUSE=(RETRY=NO, DELAY=015,
ARC0154I (CONT.) SERIALIZATION=REQUIRED)
ARC0269I DATA SET DASD BACKUP TASKS=02 DATA SET TAPE 183
ARC0269I (CONT.) BACKUP TASKS=02, DEMOUNTDELAY MINUTES=0060,
ARC0269I (CONT.) MAXIDLETASKS=00, DATA SET BACKUP MAXIMUM DASD
ARC0269I (CONT.) SIZE=3000, DATA SET BACKUP STANDARD DASD SIZE=0250,
ARC0269I (CONT.) SWITCHTAPES TIME=0000, PARTIALTAPE=MARKFULL
ARC0271I BACKUP CYCLE LENGTH=01 DAY(S), CYCLE=Y, TODAY 184
ARC0271I (CONT.) IS DAY=01, VOLUME LIMIT/DAY=0001, AVAILABLE BACKUP
ARC0271I (CONT.) VOLUMES=00004, CYCLE START DATE=98/03/02
ARC0164I DAY=01 VOLS = TST107-A TST110-A TST104-A
ARC0164I DAY=01 VOLS = TST102-A
ARC0101I QUERY BACKUP COMMAND COMPLETED ON HOST=1

Notice the addition of ARC0164I to indicate the backup volumes.


• How do I display the current backup version of the CDSs and journal
and find out their backup names?
Issue the following command to find out all the information you need with
respect to the backup technique and status of the CDSs and journal
backup copies:
F HSM1,Q CDSV

The information is returned in the following messages:


ARC0101I QUERY CDSVERSIONBACKUP COMMAND STARTING ON 189
ARC0101I (CONT.) HOST=1
ARC0375I CDSVERSIONBACKUP, 190
ARC0375I (CONT.) MCDSBACKUPDSN=HSM.MCDS.BACKUP,
ARC0375I (CONT.) BCDSBACKUPDSN=HSM.BCDS.BACKUP,
ARC0375I (CONT.) OCDSBACKUPDSN=HSM.OCDS.BACKUP,
ARC0375I (CONT.) JRNLBACKUPDSN=HSM.JRNL.BACKUP
ARC0376I BACKUPCOPIES=0004, BACKUPDEVICECATEGORY=DASD, 191
ARC0376I (CONT.) LATESTFINALQUALIFIER=D0000009, DATAMOVER=DSS
ARC0101I QUERY CDSVERSIONBACKUP COMMAND COMPLETED ON 192
ARC0101I (CONT.) HOST=1

Chapter 6. Monitoring 291


• How can I display the current space usage of the CDSs and the
journal and the serialization technique currently being used?
Use this command:
F HSM1,QUERY CDS

The information is returned in the following messages:


ARC0101I QUERY CONTROLDATASETS COMMAND STARTING ON 194
ARC0101I (CONT.) HOST=1
ARC0947I CDS SERIALIZATION TECHNIQUE IS ENQUEUE
ARC0148I MCDS TOTAL SPACE=72000 K-BYTES, CURRENTLY 196
ARC0148I (CONT.) ABOUT 5% FULL, WARNING THRESHOLD=80%, TOTAL
ARC0148I (CONT.) FREESPACE=98%
ARC0948I MCDS INDEX TOTAL SPACE=0000432 K-BYTES, 197
ARC0948I (CONT.) CURRENTLY ABOUT 005% FULL, WARNING THRESHOLD=080%
ARC0148I BCDS TOTAL SPACE=72000 K-BYTES, CURRENTLY 198
ARC0148I (CONT.) ABOUT 6% FULL, WARNING THRESHOLD=80%, TOTAL
ARC0148I (CONT.) FREESPACE=98%
ARC0948I BCDS INDEX TOTAL SPACE=0000432 K-BYTES, 199
ARC0948I (CONT.) CURRENTLY ABOUT 006% FULL, WARNING THRESHOLD=080%
ARC0148I OCDS TOTAL SPACE=72000 K-BYTES, CURRENTLY 200
ARC0148I (CONT.) ABOUT 1% FULL, WARNING THRESHOLD=80%, TOTAL
ARC0148I (CONT.) FREESPACE=99%
ARC0948I OCDS INDEX TOTAL SPACE=0000432 K-BYTES, 201
ARC0948I (CONT.) CURRENTLY ABOUT 000% FULL, WARNING THRESHOLD=080%
ARC0148I JOURNAL TOTAL SPACE=0043056 K-BYTES, 202
ARC0148I (CONT.) CURRENTLY ABOUT 092% FULL, WARNING THRESHOLD=080%,
ARC0148I (CONT.) TOTAL FREESPACE=007%
ARC0101I QUERY CONTROLDATASETS COMMAND COMPLETED ON 203
ARC0101I (CONT.) HOST=1

• How can I query DFSMShsm requests?


A number of options are available to display the requests associated with
data sets, and userids and to list all requests.
The following command lists all requests for data set MHLRES5.DATA:
F HSM1,Q DATASETNAME(MHLRES5.DATA)

The following command lists all requests associated with user MHLRES5
F HSM1,Q USER(MHLRES5)

Note:
If you omit the user ID, DFSMShsm lists requests for all users.

The following command lists request number 45:


F HSM1,Q REQUEST(45)

292 DFSMShsm Primer


Note
If you omit the request number, DFSMShsm lists all requests.

• How do I display all my ML2 volumes regardless of whether they are


tape or DASD?
If you are using DASD for ML2, the following command shows you the key
ranges associated with the DASD volumes and all ML2 tape volumes that
are currently selected for use for migration and secondary space
management:
F HSM1,Q MIGRATIONLEVEL2

Note
ML2 volumes that are currently selected by recycle are not displayed.

• Is it possible to display the non-SMS recall pools that have been set
up at my installation?
If you are using recall pools, issue the following command to interrogate
the recall pool environment:

F HSM1,QUERY P

• What command can I use to show the non-SMS data sets that might
not be migrating because the SETMIG command has been used?
For data sets that are being prevented from migrating because a SETMIG
LEVEL(hlq) command has been issued, use the following command:
F HSM1,QUERY RET

The information is returned in the following messages:

ARC0101I QUERY RETAIN COMMAND STARTING ON HOST=1


ARC0175I LEVEL QUALIFIER AND MIGRATION RESTRICTION TYPE
ARC0176I QUALIFIER=SYS1. RESTRICTION TYPE=NOMIGRATION
ARC0176I QUALIFIER=SYSCTLG. RESTRICTION 208
ARC0176I (CONT.) TYPE=NOMIGRATION
ARC0176I QUALIFIER=HSM. RESTRICTION TYPE=NOMIGRATION
ARC0101I QUERY RETAIN COMMAND COMPLETED ON HOST=1

Chapter 6. Monitoring 293


• How do I display the DFSMShsm control parameters?
As the SETSYS parameters may have been altered since you started
DFSMShsm and the ARCCMDxx member may no longer reflect what is
currently set on the system, you will want to check what is in effect now. If
you are unsure as to what SETSYS parameters are currently in place,
issue the following command:
F HSM1,Q SETSYS

The information is returned in a series of messages that reflect your


current DFSMShsm environment.
• Is there any way in which I can display the space usage of my
non-SMS primary volumes and my ML1 volumes?
The command that allows you to list the space usage of volumes can be
applied to all your volumes or a specific volser coded. Use the following
command to list volume HG661A:
F HSM1,Q SPACE(HG661A)

The information is returned in the following messages:


ARC0400I VOLUME HG661A IS 86% FREE, 000008 FREE 229
ARC0400I (CONT.) TRACK(S), 02903 FREE CYLINDER(S), FRAG .000
ARC0401I LARGEST EXTENTS FOR HG661A ARE CYLINDERS 230
ARC0401I (CONT.) 2903, TRACKS 43553
ARC0402I VTOC FOR HG661A IS 0029 TRACKS(01450 DSCBS), 231
ARC0402I (CONT.) 01446 FREE DSCBS(99% OF TOTAL)

Note
If we had omitted the volser, DFSMShsm would have returned this
information for all non-SMS primary and ML1 volumes. Additionally no
ARC0101I message would be issued.

• If I am unsure which PARMLIB member was used at the start of


DFSMShsm, is there a way that I can obtain this information?
For a list of the parameters that were specified on the PROC statement in
the DFSMShsm startup procedure, issue the following command:

F HSM1,Q STAR

294 DFSMShsm Primer


The information is returned in the following messages:
ARC0101I QUERY STARTUP COMMAND STARTING ON HOST=1
ARC0143I PARMLIB MEMBER=ARCCMD00, DFSMSHSM AUTHORIZED 235
ARC0143I (CONT.) USERID=HSM, HOSTID=1, PRIMARY HOST=NO, LOGSW=NO,
ARC0143I (CONT.) STARTUP=YES, EMERGENCY=NO, CDSQ=YES, CDSR=NO, PDA=NO,
ARC0143I (CONT.) RESTART=NOT SPECIFIED, CDSSHR=YES, RNAMEDSN=NO,
ARC0143I (CONT.) STARTUP PARMLIB MEMBER=ARCSTR00
ARC0249I CELLS=(200,100,100,50,20),HOSTMODE=MAIN
ARC0101I QUERY STARTUP COMMAND COMPLETED ON HOST=1

• Is there a quick way that I can check on the DFSMShsm activity that
has taken place today?
DFSMShsm keeps track of activity on a daily basis in the daily statistics
record (DSR). To display the information at any time throughout the day,
issue the following command:
F HSM1,Q STAT

The information is returned in the following messages:


ARC0101I QUERY STATISTICS COMMAND STARTING ON HOST=1
ARC0155I DFSMSHSM STATISTICS FOR 00/10/12
ARC0156I STARTUPS=01, SHUTDOWNS=00, ABENDS=00, 504
ARC0156I (CONT.) MWES=0004, CPU TIME=00001.44 SECONDS
ARC0157I DS MIGRATED L1=000000, DS MIGRATED L2=000000, 505
ARC0157I (CONT.) DS EXTENT REDUCTIONS=000000, DS MIGRATED FAIL=000,
ARC0157I (CONT.) TRKS MIGRATED=000000, KBYTES MIGRATED=000000000
ARC0158I DS RECALLED L1=000000, DS RECALLED L2=000000, 506
ARC0158I (CONT.) DS RECALL FAIL=000, KBYTES RECALLED=000000000,
ARC0158I (CONT.) RECALL MOUNTS AVOIDED=00000, EXTRA ABACKUP
ARC0158I (CONT.) MOUNTS=00000
ARC0159I DS BACKUP=000000, DS BACKUP FAIL=000, DS 507
ARC0159I (CONT.) RECOVER=000000, DS RECOVER FAIL=000, RECOVER MOUNTS
ARC0159I (CONT.) AVOIDED=00000
ARC0641I VOL DUMP=0, VOL DUMP FAIL=0, VOL RESTORE=0, 508
ARC0641I (CONT.) VOL RESTORE FAIL=0, DS RESTORE=0, DS RESTORE FAIL=0
ARC0145I DS DELETED=000000, DS DELETE FAILED=000
ARC0146I RECYCLED BACKUP VOLUMES=0000, DS=000000, 510
ARC0146I (CONT.) BLOCKS=000000
ARC0146I RECYCLED MIGRATION VOLUMES=0000, DS=000000, 511
ARC0146I (CONT.) BLOCKS=000000
ARC0101I QUERY STATISTICS COMMAND COMPLETED ON HOST=1

Chapter 6. Monitoring 295


• I have been getting some strange error messages from DFSMShsm
lately. Is there any way of getting more information about errors
before we call support?
DFSMShsm automatically records some errors that it receives and records
others by using the diagnosis command, TRAP. To see which TRAP
activity has taken place, issue the following command:
F HSM1,Q T

The information is returned in the following messages:


ARC0101I QUERY TRAPS COMMAND STARTING ON HOST=1
ARC0205I TRAP IN MODULE ARCRSTR FOR CODE 00002,
ARC0205I (CONT.) TIMES=0012, TYPE=BY OCCURRENCE
ARC0205I TRAP IN MODULE ARCMDSUV FOR CODE 00068,
ARC0205I (CONT.) TIMES=0004, TYPE=BY OCCURRENCE
ARC0205I TRAP IN MODULE ARCMDSS FOR CODE 00068,
ARC0205I (CONT.) TIMES=0004, TYPE=BY OCCURRENCE
ARC0205I TRAP IN MODULE ARCMDSUV FOR CODE 00019,
ARC0205I (CONT.) TIMES=0002, TYPE=BY OCCURRENCE
ARC0205I TRAP IN MODULE ARCRSTR FOR CODE 00004,
ARC0205I (CONT.) TIMES=0001, TYPE=BY OCCURRENCE
ARC0101I QUERY TRAPS COMMAND COMPLETED ON HOST=1

• How can I display the non-SMS volume pools that I have defined?
Issue the following command to see the volume pool information:
F HSM1,Q VOLUMEPOOL

• DFSMShsm seems to be taking a long time to do anything. Is there


any way that I can display the amount of non daily work that
DFSMShsm has waiting?
DFSMShsm manages its work by building management work elements
(MWEs). The MWEs are scheduled to special work queues associated
with the function that they have been asked to perform. To see the
outstanding MWEs or work that DFSMShsm has to do, issue the following
command:
F HSM1,Q W

296 DFSMShsm Primer


The information is returned in the following messages:
ARC0101I QUERY WAITING COMMAND STARTING ON HOST=1
ARC0168I WAITING MWES: MIGRATE=00000, RECALL=00000, 244
ARC0168I (CONT.) DELETE=00000, BACKUP=00000, RECOVER=00000,
ARC0168I (CONT.) COMMAND=00000, ABACKUP=00000, ARECOVER=00000,
ARC0168I (CONT.) TOTAL=000000
ARC0101I QUERY WAITING COMMAND COMPLETED ON HOST=1

Note
The output excludes requests generated as a result of primary and
secondary space management, automatic backup and automatic dump.

6.3 Report command


The REPORT command is used to gather and consolidate statistics about
DFSMShsm's operations and functions. DFSMShsm during its processing
stores daily function and volume related information in the MCDS. The
REPORT command allows you to gather information that is generated:
• At a function level for:
- Backup
- Migration
- Delete
- Recall
- Recover
- Recycle
- Spill
• At a daily level
• At a volume level
• For statistics before or after a certain date
• For statistics between certain dates
• For a summary of all statistics reports

In this section we show you several REPORT commands that you can use, to
give you an idea of the type of information that is available. We also introduce
utilities in SYS1.SAMPLIB(ARCTOOLS).

Chapter 6. Monitoring 297


• Who can issue the REPORT command?
The REPORT command is submitted primarily by a
DFSMShsm-authorized storage administrator who uses the DFSMShsm
HSENDCMD command from a TSO terminal. In the examples that follow
we use the abbreviated command, HSEND, to issue our report
commands.
• Is there anything I need to do to make sure that I am keeping these
statistics?
There is a SETSYS parameter that affects how long DFSMShsm keeps
daily and volume related statistics. The following command direct
DFSMShsm to keep the statistics for seven days and to delete them
during secondary space management:

SETSYS MIGRATIONCLEANUPDAYS(14 7)

You need to consider over which time period you want to keep statistics so
you can prevent deleting needed information.
• Where does DFSMShsm get its information from for the daily
statistics report?
DFSMShsm obtains its information from a record in the MCDS called the
daily statistics record (DSR). These records are written to the MCDS each
hour. Any activity in the hosts, other than the host from which the REPORT
command is issued, since the last update is not reported.
• Where does DFSMShsm get its information from for the volume
statistics report?
DFSMShsm obtains its information from a record in the MCDS called the
volume statistics record (VSR). These records are written to the MCDS
each hour. Any activity in the hosts, other than the host from which the
REPORT command is issued, since the last update is not reported.
• How many REPORT commands can I issue at any one time?
DFSMShsm allows only one REPORT command to run at a time.
• Where can I send the output of the REPORT command?
The REPORT command supports direction of the output to either a
SYSOUT class or to an output data set. If you want to obtain a printed
listing, use the following command to direct the output to your SYSOUT
class associated with print:
REPORT request SYSOUT(class)

298 DFSMShsm Primer


If you want to direct the output to DASD, use the following command:
REPORT request ODS(dsname)

When directing the output to DASD, you must specify the fully qualified
data set name. If it does not exist, DFSMShsm dynamically allocates it. If it
does exist and has the correct attributes, DFSMShsm appends the output
to the end of the data set.
• How can I obtain a summary of all function-related activity that has
taken place today?
Issue the following command:
HSEND REPORT DAILY FUNCTION ODS(MHLRES5.DAILY.STATS)

The output that is written to the data set looks like this:

--DFSMSHSM STATISTICS REPORT ------- AT 20:10:17 ON 2000/10/13 FOR SYSTEM=SC63

DAILY STATISTICS REPORT FOR 00/10/13

STARTUPS=000, SHUTDOWNS=000, ABENDS=000, WORK ELEMENTS PROCESSED=000002, BKUP VOL RECYCLED=00000, MIG VOL RECYCLED=00000
DATA SET MIGRATIONS BY VOLUME REQUEST= 0000000, DATA SET MIGRATIONS BY DATA SET REQUEST= 00000, BACKUP REQUESTS= 0000000
EXTENT REDUCTIONS= 0000000 RECALL MOUNTS AVOIDED= 00000 RECOVER MOUNTS AVOIDED= 00000
FULL VOLUME DUMPS= 000000 REQUESTED, 00000 FAILED; DUMP COPIES= 000000 REQUESTED, 00000 FAILED
FULL VOLUME RESTORES= 000000 REQUESTED, 00000 FAILED; DATASET RESTORES= 000000 REQUESTED, 00000 FAILED
ABACKUPS= 00000 REQUESTED,00000 FAILED; EXTRA ABACKUP MOUNTS=00000
DATA SET MIGRATIONS BY RECONNECTION = 000000, NUMBER OF TRACKS RECONNECTED TO TAPE = 00000000

NUMBER ------READ-------- -----WRITTEN------ ------REQUESTS---- AVERAGE ------AVERAGE TIME-------


HSM FUNCTION DATASETS TRK/BLK BYTES TRK/BLK BYTES SYSTEM USER FAILED AGE QUEUED WAIT PROCESS TOTAL

MIGRATION
PRIMARY - LEVEL 1 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
SUBSEQUENT MIGS 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
PRIMARY - LEVEL 2 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
RECALL
LEVEL 1 - PRIMARY 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
LEVEL 2 - PRIMARY 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
DELETE
MIGRATE DATA SETS 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
PRIMARY DATA SETS 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
BACKUP
DAILY BACKUP 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
SUBSEQUENT BACKUP 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
DELETE BACKUPS 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
RECOVER
BACKUP - PRIMARY 0000000 00000000 000000000K 00000000 000000000K 000000 00000 00000 00000 0000 00000 00000 00000
RECYCLE
BACKUP - SPILL 0000000 00000000 00000000 000000 00000 00000 00000 0000 00000 00000 00000
MIG L2 - MIG L2 0000000 00000000 00000000 000000 00000 00000 00000 0000 00000 00000 00000

The header of the REPORT output contains the number of mounts saved
by RECALL and RECOVER. This information is useful for addressing the
changes in mounts when using larger capacity tapes like the Magstar.

Chapter 6. Monitoring 299


• How do I obtain information for periods other than the current day?
If the DRSs are still available and have not been deleted, you can use a
modification of the following command to specify the period in which you
are interested:
REPORT DAILY FROMDATE(00/07/24) FUNCTION TODATE(00/07/31)

The output is similar to the DSR. The difference is that you now get
information at a function level:
- A function summary for the period July 24 to July 31 inclusive
- A function summary report totaling all activity for the requested period
• How do I request information detailing the statistics for a particular
function?
The options that are available to you on the FUNCTION parameter are:
- BACKUP
- DELETE
- MIGRATION
- RECALL
- RECOVER
- RECYCLE
- SPILL
If you were to issue the following command you would obtain a report
detailing the data sets that have been backed up to daily volumes:
HSEND REPORT DAILY FUNCTION(BACKUP) ODS(MHLRES5.BACKUP.REPORT)

The output is similar to that produced previously but restricted to the


backup function. Some statistics are always reported, and these will
appear before the requested function report.
• How do I list the statistics related to volume activity?
For all volumes that DFSMShsm manages, you issue the following
command:

HSEND REPORT VOLUMES FUNCTION ODS(MHLRES5.VOLUME.STATS)

To specify that you want the statistics for a specific volume, use the
following command:
HSEND REPORT VOLUMES(HSM14B) FUNCTION ODS(MHLRES5.VOL14B.STATS)

300 DFSMShsm Primer


The output that is generated this time includes only statistics for the
particular volume that you specify. A summary report is not generated for
all volumes that DFSMShsm manages.

We have not shown all the REPORT command parameters. The information
that is available within the DSRs VSRs is enough to give you a good idea of
the activity. You may be able to spot patterns for particular days and
functions, or identify unusually high activity against specific volumes and take
some action to spread the work more evenly.

6.4 Utilities in ARCTOOLS for DFSMShsm reporting


DFSMShsm ships utilities for reporting and other uses. All contains in
member ARCTOOLS in SYS1.SAMPLIB.

To obtain these utilities:


1. Edit member ARCTOOLS of SYS1.SAMPLIB and change the fields as
instructed.
2. Run ARCTOOLS. This will allocate HSM.SAMPLE.TOOL data set with
several members that can be used for reporting and other purposes.

In this section, we only introduce SCANBLOG, SCANMLOG, SCANFSR and


FSRSTAT, and QUERYSET utilities.
• SCANBLOG utility: This sample REXX exec scans several days' worth of
backup activity logs and summarize the results.
• SCANMLOG utility: This sample REXX exec scans several days' worth of
migration activity logs and summarize the results.
• SCANFSR utility: This sample REXX exec scans the FSR data extracted
from SMF (via IFASMFDP program) and summarized by FSR type and
management class.
• FSRSTAT utility : This sample REXX program reads FSR data and
presents statistical results. In some cases, the data is presented as a
histogram, to group data in certain categories for further analysis.
• QUERYSET utility: The QUERY command does not allow to send its
output to a data set. This sample REXX allows, by using TSO/E extended
consoles, to submit programs that can issue a console command, such a
QUERY, and get the results back for interpretation.

Chapter 6. Monitoring 301


6.5 Using DCOLLECT
Another method of gathering data related to space utilization and capacity
planning is to use DCOLLECT, an AMS function run in a batch environment.
With DCOLLECT you can obtain information about:
• Active data sets
• Volumes
• Migrated data sets
• Backup data sets
• DASD capacity planning
• Tape capacity planning

For a detailed description of DCOLLECT, see OS/390 V2R10.0 DFSMS


Access Method Services for Catalogs, SC26-7326.

In this section we show how you can produce an output data set that can later
be used as input to a report creation package.
• How do I invoke the DCOLLECT function?
DCOLLECT can be called in three ways:
- As part of user JCL, using IDCAMS DCOLLECT
- By directly invoking the ARCUTIL utility, using JCL
- By invoking a user-written program that accesses the ARCUTIL module
• What is ARCUTIL?
ARCUTIL is a DFSMShsm-related program that you can use to capture a
copy of DFSMShsm-specific information.
• What is the relationship between ARCUTIL and DCOLLECT?
If DFSMShsm information is requested from within a DCOLLECT batch
job, the ARCUTIL load module is called, almost transparent to the end
user. The parameters, although specified in a different place, are the same
as you would use on the DCOLLECT SYSIN DD card.

302 DFSMShsm Primer


• What does the JCL look like for DCOLLECT and ARCUTIL?
The sample DCOLLECT JCL shown in Figure 110 calls ARCUTIL under
the covers:

//DCOLLECT JOB ,'DCOLLECT RUN',CLASS=Z,MSGCLASS=H,REGION=4M


//*
//STEP1 EXEC PGM=IDCAMS
//*
//SYSPRINT DD SYSOUT=*
//ARCSNAP DD SYSOUT=*
//MCDS DD DSN=HSM.MCDS,DISP=SHR
//BCDS DD DSN=HSM.BCDS,DISP=SHR
//DCOUT DD DSN=MHLRES5.DCOLLECT.OUTPUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(1,(859,429)),AVGREC=K,
// DSORG=PS,RECFM=VB,LRECL=264
//SYSIN DD *
DCOLLECT -
OUTFILE(DCOUT) -
NODATAINFO -
NOVOLUMEINFO -
MIGRATEDATA -
BACKUPDATA -
CAPPLANDATA -
MIGRSNAPERR

/* END OF DCOLLECT COMMAND

Figure 110. Sample DCOLLECT JCL to call ARCUTIL

If you want to invoke ARCUTIL directly, using the same DCOLLECT


specified parameters to capture DFSMShsm information, use the JCL in
Figure 111.
//JOB2 JOB 'ARCUTIL RUN',REGION=4M
//STEP2 EXEC PGM=ARCUTIL,PARM='DCOLLECT MIGD CAPD BACD MSERR'
//ARCSNAP SYSOUT=*
//ARCTEST SYSOUT=*
//ARCDATA DD DSN=MY.COLLECT.DATA,DISP=(,CATLG),
// SPACE=(CYL,(5,10)),UNIT=SYSDA
//MCDS DD DSN=HSM.MCDS,DISP=SHR
//BCDS DD DSN=HSM.BCDS,DISP=SHR

Figure 111. Sample ARCUTIL JCL

This JCL gathers exactly the same information as the IDCAMS


DCOLLECT run, but this time you are directly invoking ARCUTIL.
The DCOLLECT parameters are specified on the EXEC PARM statement.
DCOLLECT must be the first command specified and can be followed by
any of the other DCOLLECT keywords.

Chapter 6. Monitoring 303


• Can I call DCOLLECT in any other way?
Yes. You can use ISMF to build a DCOLLECT job that will execute under
IDCAMS.
From the ISMF Primary Option Menu, select option C to get to Data
Collection Entry panel (Figure 112).

Panel Utilities Scroll Help


-----------------------------------------------------------------------------
DATA COLLECTION ENTRY PANEL Page 1 of 3
Command ===>

Select Data Collection options:


Data Set Information . . . Y (Y or N; Y requires volume(s) or
Volume Information . . . . Y storage group(s) on next page)
Migration Data . . . . . . Y (Y or N)
Backup Data . . . . . . . . Y (Y or N)
Capacity Planning Data . . Y (Y or N)
SMS Data . . . . . . . . . Y (Y or N)
Specify Output Data Set: (1 to 44 Characters)
Data Set Name . . . . . . . DCOLLECT
Optional Password . . . . . (Ignored if SMS-managed data set)
Replace Contents . . . . . N (Y or N)
Number of Data Sets . . . . 1 (1 to 99999999; new data set only)
Specify Input Data Set: (1 to 44 Characters)
Migration Data Set Name . . 'HSM.MCDS'
Backup Data Set Name . . . 'HSM.BCDS'
CDS Name . . . . . . . . . 'ACTIVE'

Figure 112. Data Collection Entry Panel

From this panel you can make selections based on the information that
you want to capture. You can also capture data from your active SMS
environment.
• Is the output that is generated in the format of a report?
No. These options generate a sequential data set that can then be used
as input to a reporting mechanism of your choice.
• Which reporting mechanisms can I use?
You have number of choices. For example, you can:
- Access the records of the DCOLLECT data set with a user-written
program
- Use IBM DFSORT

304 DFSMShsm Primer


• Are there any examples of the reports that I can use and modify?
Yes. Samples are provided to allow you to create a simple report. Refer to
the following for more information:
- In PDS HSM.SAMPLE.TOOL, member DCOLREXX provides a sample
REXX EXEC.
- The dpAM R2 Collect Feature Customization and Reference,
SH19-6758 (online publication only), has some simple reports that you
can use.
- The DFSORT R14 Application Programming Guide, SC33-4035 has
some samples that show you how to use ICETOOL to create reports.
• Where can I get more information about the DCOLLECT functions
and the record layout of the sequential data set that is created?
For a comprehensive description of DCOLLECT, see OS/390 V2R10.0
DFSMS Access Method Services for Catalogs, SC26-7326.

6.6 Using the HSM Monitor/Tuner


You would like to monitor and control your DFSMShsm systems from a single
workstation. You are wondering whether your automatic space management
has been running successfully, and, if it has not, you are trying to figure out
what to do. You want to detect potential DFSMShsm problems on the basis of
thresholds you set and have corrective action taken automatically.

The DFSMS Optimizer Version 1 Release 2 became available in February


1998 and has been enhanced to satisfy your requirements. The DFSMS
Optimizer uses historical and real-time data to provide an overall picture of
data usage on each system in a sysplex environment. It enables you to
understand how you are utilizing storage today. With this information, you can
make informed decisions about how to manage storage in the future.

DFSMS Optimizer has two components:


• Host component
The host component of DFSMS Optimizer provides the following
functions:
- Data collection, reporting, and simulation
- HSM Monitor/Tuner, which is used in conjunction with the workstation
interface to monitor DFSMShsm status and activities and to enable
DFSMShsm active task termination

Chapter 6. Monitoring 305


- Communication through TCP/IP to issue and receive DFSMShsm
commands and to provide the interface for change and storage of the
host default
• Workstation component
The workstation component of the DFSMS Optimizer consists of the HSM
Monitor/Tuner and the charting facility. These run in a Java Virtual
Machine (JVM) environment and provide multiple platform support for
Windows 95, Windows NT, and OS/2.

Using HSM Monitor/Tuner, you can monitor the activities of multiple


DFSMShsm systems through an online TCP/IP connection to an active
system or by playing back a log file previously created by a host HSM
Monitor/Tuner session. You can also:
• Issue HSM commands
• Cancel HSM tasks
• Modify the trigger thresholds that control HSM activity

In addition, the HSM Monitor/Tuner can automatically monitor and tune


DFHSM and DFSMShsm through the use of more than 150 trigger events that
invoke REXX automation routines. You can customize these REXX execs to
issue commands directly to the host that triggered the event, to produce
automated responses, as corrective actions.

The HSM Monitor/Tuner part of the host component runs in its own address
space and has a number of responsibilities:
• Provides real-time monitoring of major DFSMShsm functions on multiple
systems
• Periodically transfers DFSMShsm control block information to the
workstation through the communication address space
• Intercepts DFSMShsm messages for automation purposes
• Supports calls to user-written REXX routines when trigger events occur
• Processes commands issued at the console to refresh the REXX control
blocks or to terminate processing of the HSM Monitor/Tuner.
• Provides historical review of DFSMShsm activity by means of a
workstation playback file
• Provides logging functions

The HSM Monitor/Tuner workstation part interfaces directly with DFSMShsm


to display its status and activities. It enables you to monitor the activities of

306 DFSMShsm Primer


one or more DFSMShsm systems, in real time through TCP/IP or by playing
back a log file created by a host HSM Monitor/Tuner session.

In addition to DFSMShsm monitoring, the HSM Monitor/Tuner enables you to:


• Cancel active DFSMShsm data set and volume level tasks
• Issue DFSMShsm commands from the workstation and receive responses
there
• Modify the HSM Monitor/Tuner timer interval and the trigger thresholds
used to control DFSMShsm activity
• Close the current log file on the host

The HSM Monitor/Tuner can also anticipate and automate corrective actions
through customizable triggers that invoke host-resident user-written REXX
routines.

So, where do you start?


The redbook entitled DFSMS Optimizer: The New HSM Monitor/Tuner,
SG24-5248, is written for both new and experienced users of the DFSMS
Optimizer at the Version 1 Release 2 level. It provides planning,
implementation, and usage guidance for customers who want to exploit the
features of the DFSMS Optimizer Version 1 Release 2 HSM Monitor/Tuner
and Charting Facility. It uses a step-by-step approach, taking you through the
sequence of tasks necessary to get the DFSMS Optimizer Monitor/Tuner and
Charting Facility up and running on your system. Installation on the OS/390
host system and the supported client platforms (OS/2, Windows 95, and
Windows NT) is documented. Migration considerations to the DFSMS
Optimizer Version 1 Release 2 from a previous level of the product are
discussed. The book contains detailed descriptions about how to use the
HSM Monitor/Tuner from the supported platforms to monitor and control
DFSMShsm. Many useful hints and tips that will help you complete the
installation and customization tasks outlined in the book are included.

New users of the DFSMS Optimizer who have some experience with
DFSMShsm will find valuable information about installing, customizing, and
exploiting the functions of the DFSMS Optimizer Version 1 Release 2
workstation component (DFSMS Optimizer Monitor/Tuner and Charting
Facility). Experienced DFSMS Optimizer users will find useful information
about migrating to this release of the product, using the new functions of the
HSM Monitor/Tuner and REXX routines to automate responses to
DFSMShsm events.

Chapter 6. Monitoring 307


DFSMS Optimizer: The New Monitor/Tuner does not include information
about how to build the DFSMS Optimizer database. Refer to the DFSMS
Optimizer Usage Guide, SG24-2235, for a description of the tasks required to
set up your database and collect data for use by the DFSMS Optimizer.

HSM Monitor/Tuner can also be purchased separately as StorWatch


DFSMShsm Monitor, rather than as part of the more expensive DFSMS
Optimizer. Both provide the same functions.

308 DFSMShsm Primer


Chapter 7. Hints and tips for tuning DFSMShsm

DFSMShsm has many commands and parameters that allow a great deal of
flexibility and options. However, many installations have unique requirements
that are not supported by these commands and parameters that are available.
To support these unique requirements, help may be at hand with DFSMShsm
tuning patches and some functional enhancements provided in the form of
APARs.

7.1 DFSMShsm patches


The patches that we cover in this chapter are supported DFSMShsm patches
that will remain supported from release to release without any further
modification on your part.

Before applying any patches to your system you must take the following into
account:
• You must be familiar with the DFSMShsm PATCH command.
• To check for any errors when using the PATCH command, you must
specify the VERIFY parameter.
• To see the output from a PATCH command, specify the ODS parameter.

Following are some basic things you may need to know about using patches.
• What does the PATCH command do?
The PATCH command changes storage within the DFSMShsm address
space. You can identify the storage location to be changed with an
absolute address or a qualified address.
• Where can I find comprehensive information about tuning patches?
Refer to the OS/390 DFSMShsm Implementation and Customization
Guide, GC35-0385.
• Where can I find the full documentation for the DFSMShsm PATCH
command?
This command is fully documented in the OS/390 DFSMShsm Diagnosis
Guide, LY35-0111.

© Copyright IBM Corp. 1998, 2000 309


• Can I put the PATCH command into my ARCCMDxx PARMLIB member
to save having to enter the command each time?
Yes. As long as you have the same requirement day after day, this is not a
problem. We advise you to add comments that indicate the intention of the
patch so that others are aware of its purpose.
• How do I allow password-protected generation data sets to be
migrated and then scratched without checking the password at
roll-off time?
Issue the following command:

PATCH .MCVT.+53 BITS(.1......)

• How do I scratch generation data sets at roll-off time, regardless of


their expiration dates?
First, the SCRATCH option has to have been issued when the GDG was
defined.
To have DFSMShsm ignore the expiration date of a migrated GDS at
roll-off time, issue the following command:

PATCH .MCVT.+53 BITS(1.......)

You can use this command in conjunction with the previous patch
command.
• How can I determine why my SMS-managed data sets were not
processing during automatic migration or backup?
This information is recorded in DFSMShsm message ARC0734I. If you
want to display this message for every SMS-managed data set during
migration, issue the following command:

PATCH .MGCB.+26 X'FF'

For backup, issue the following command:

PATCH .BGCB.+24 X'FF'

• In JES3 how do I disable the delay in issuing PARTREL for


generation data sets?
Issue the following command:

PATCH .MGCB.+27 BITS(.......1)

310 DFSMShsm Primer


• How do I use DFSMShsm in a JES3 environment that performs main
device scheduling only for tapes?
Issue the following command:

PATCH .MCVT.+29A BITS(1.......)

• How can I prevent or alter the prevent-migration activity for JES3


setups?
To prevent the JES3 migration activity, issue the following command:

PATCH .MCVT.+14A X'00' VERIFY(.MCVT.+14A X'03')

To shorten migration issue the following command where nn is the number


of days by which you will shorten it: the number of days you wish to
shorten it:

PATCH .MCVT.+14A X'nn' VERIFY(.MCVT.+14A X'03')

• How do I replace HSMACT as the high-level qualifier for activity logs?


Issue the following command:

PATCH .MCVT.+321 'SHORT ' VERIFY(.MCVT.+321 'HSMACT')

• Can I change the allocation parameter for an output data set?


Yes. Several DFSMShsm commands allow an optional parameter for
directing output to an OUTDATASET (ODS) as an alternative to writing to
SYSOUT. You can modify how such an OUTDATASET is allocated, by
changing any or all of the following parameters.
• How can I change the unit name?
You can specify any valid unit name, using an eight-character patch. Issue
the following command

PATCH .MCVT.+200 ’xxxxxxxx’VERIFY(.MCVT+200 ’SYSALLDA’)

Where, ’xxxxxxxx’ is the new unit name.


Note: The PATCH command does not verify that the unit name is valid on
your system.
• How can I change the primary space quantity?
You can specify the number of tracks to be allocated as the primary space
quantity for the specified (or default) unit.

PATCH .MCVT.+4B0 X’nnnn’ VERIFY(.MCVT.+4B0 X’0014’)

Chapter 7. Hints and tips for tuning DFSMShsm 311


Where, X'nnnn' is the hexadecimal representation for the number of tracks
to be allocated.
• How can I change the secondary space quantity?
You can specify the number of tracks to be allocated as the secondary
space quantity for the specified (or default) unit.

PATCH .MCVT.+4B2 X’nnnn’ VERIFY(.MCVT.+4B2 X’0032’)

Where, X'nnnn' is the hexadecimal representation for the number of tracks


to be allocated.
• How can I change the SYSOUT line limit?
If you specify a SYSOUT class instead of OUTDATASET, you can change
whether DFSMShsm limits the lines of SYSOUT or specify what that limit is
by using the following patch:

PATCH .MCVT.+1BD X’nnnnnn’

Where, X'nnnnnn' is the hexadecimal representation for the number of


SYSOUT lines. The maximum is X’FFFFFF’, which is 16777215 lines.
• Is it possible to change the default number of buffers DFSMShsm
uses to back up data sets?
DFSMShsm defaults to optimum DASD blocking (18KB blocks for 3390
devices) when accessing user data sets in DFSMShsm format on its
owned DASD. Buffers are obtained above the 16MB line.
In addition, two fields in the MCVT provide the default number of buffers
DFSMShsm uses to write (field MCVTOBUF, offset X'393') and read (field
MCVTNBUF, offset X'392') such user data. If you have previously patched
the MCVT offset X'390' for this purpose, you should remove this patch.
• How can I change the parameters passed to DFSMSdss?
- To specify that volume dumps be performed with the COMPRESS
function, issue the following command:

PATCH .MCVT.+3C3 BITS(..1.....)

- To specify that volume dumps be performed without the COMPRESS


function for dump class IPLVOLS, issue the following command:

FIXCDS W IPLVOLS PATCH(X'01' BITS(1.......))

312 DFSMShsm Primer


- To remove the ALLEXCP function from the volume-dump function,
issue the following PATCH command:

PATCH .MCVT.+3C3 BITS(1.......)

- To remove the ALLDATA function from the volume-dump function,


issue the following command:

PATCH .MCVT.+3C3 BITS(.1......)

- To change the default block size of 64 KB used for volume dumps to 32


KB, issue the following command:

PATCH .MCVT.+3D4 BITS(.......1)

• Can I use the ALLDATA function for migrating or recalling a partitioned


data set with AX cells?
Yes. Entering the following command

PATCH .MCVT.+3C3 BITS(....1...)

• Is it possible to enable ABARS ABACKUP and ARECOVER to wait for


a tape unit allocation?
For ABACKUP, issue the following command:

PATCH .ABRCB.+81 BITS(...1....)

For ARECOVER, issue the following command:

PATCH .ABRCB.+81 BITS(....1...)

• How can I change the RACF Facility class user ID for the console
operator's terminal?
To change the user ID to something other than the default of OPER issue
the following command, where userid is the user ID you want to change it
to:

PATCH .ABRCB.+4BC 'userid'

• How can I handle independent software vendor (ISV) data in the data
set VTOC entry?
The 4-byte area beginning at offset X'4E' of the data set VTOC entry is
defined as reserved with DFP releases prior to DFP Version 3. Starting
with DFP Version 3, this field has been assigned meanings. Some
customer accounts, however, have placed data into the field at offset
X'4E', sometimes through ISV software. If altered data set VTOC entries

Chapter 7. Hints and tips for tuning DFSMShsm 313


are allowed to be interpreted by DFP Version 3 definitions, unpredictable
results can occur.
Before installing DFP Version 3 on systems with altered data set VTOC
entries, customers usually prevent problems on the user (level-0) volumes
by clearing the field at offset X'4E'. Migrated and backed up data sets,
however, must be handled differently.
When running in a DFP Version 2 environment, the unmodified code
assumes that the data set VTOC entries have not been altered. If the
fields at offset X'4E' have been altered but later cleared on the user
volumes, the user should supply DFSMShsm with the cutover date when
the fields were cleared. Then, when DFSMShsm recalls data sets, those
data sets migrated before the cutover date will have the field at offset X'4E'
automatically cleared by DFSMShsm. In cases where the customer has a
temporary need to preserve the data at offset X'4E', a PATCH command
can be used to turn on a bit that allows customers to recall the data set
without the field being cleared. If this patch is used, it should be used in
addition to setting the previously mentioned cutover date.
When running in a DFP Version 3 environment, the option to retain the
altered field at offset X'4E' of the data set VTOC entry does not exist, but
the option to specify a cutover date does. If the fields at offset X'4E' have
been altered but later cleared on the user volumes, the user should supply
DFSMShsm with the cutover date when the fields were cleared.
DFSMShsm then ignores the values at offset X'4E' in the data sets
migrated before the cutover date and will clear that field during
DFSMShsm recalls of those same data sets. DFSMShsm uses the values
in the field at offset X'4E' during the recall of data sets migrated on or after
the cutover date.
The field that contains the cutover date is in the MCVT control block at
offset X'444'. This field is shipped containing the date of January 1, 1970.
In the following example, the PATCH command is used to set the cutover
date to July 4, 2000:

PATCH .MCVT.+444 X’0000186F’ VERIFY(.MCVT.+444 X’0070001F’)

If you are running with DFP Version 2 on January 1, 1990 and you need to
have the values in the altered DSCBs returned during recalls, then you
need to set on the bit at offset X'431' of the MCVT. You also need to set
the cutover date at offset X'444' of the MCVT. In the following example,
two patches are applied. The first patch allows the data in the altered data
set entries to be returned to the user during recalls. The second patch sets

314 DFSMShsm Primer


a cutover date of May 1, 1990, a date when the user expects to have all
the altered data cleaned out of the data set VTOC entries.

PATCH .MCVT.+431 BITS(.....1..)


PATCH .MCVT.+444 X’0090121F’ VERIFY(.MCVT.+444 X’0070001F’)

• How can I allow DFSMShsm automatic functions to process volumes


more than once per day?
DFSMShsm will not allow automatic functions to run on a volume if any
processor has completed processing that volume within the past 14 hours,
unless you patch the value to something smaller. In the following
examples, the limit is reduced to seven hours, so that migration and
backup can process volumes processed more than seven hours ago.

PATCH .MCVT.+414 X’00006270’ /* migration */


PATCH .MCVT.+418 X’00006270’ /* backup */

• How can I restart automatic space management?


If automatic primary space management has run to completion and you
want to start automatic primary space management again, use one or both
of the following commands:
For SMS-managed volumes:

PATCH .MCVT.+414 X'00000000'

For non-SMS-managed volumes:

PATCH .MCVT.+488 X'00000000'

In both cases you have to issue a SETSYS PRIMARYSPMGMSTART


command to define a new start window.
• How can I restart automatic backup?
Automatic backup can allowed to run multiple times per day. You have to
consider the phases of backup that you want to run:
Phase 1 - Backing up the CDSs
Phase 2 - Moving backup versions
Phase 3 - Backing up migrated data sets
Phase 4 - Backing up DFSMShsm-managed volumes with the automatic
backup attribute

Chapter 7. Hints and tips for tuning DFSMShsm 315


If automatic backup has run to completion and you want to start automatic
backup functions pertaining to any phase, you must issue the following
command:

PATCH .BCR.+50 X'00000000'

If automatic backup has run to completion and you want to start automatic
backup functions pertaining to phases 2 and 3, you must issue the
following command:

PATCH .BCR.+5C X'00000000'

If automatic backup has run to completion and you want to start automatic
backup functions pertaining to phase 4, you must use the patch for
phase 1. The phase 1 patch enables automatic backup if the volumes have
not been processed in the last 14 hours. If the volumes have been
processed in the last 14 hours and you want to process them now, you
must additionally issue one or both of the following commands:
For an SMS-managed volume:

PATCH .MCVT.+418 X'00000000'

For a non-SMS-managed volume:

PATCH .MCVT.+48C X'00000000'

Issue the SETSYS AUTOBACKUPSTART command to define a new


window.
• How can I restart automatic dump?
To allow automatic dump to be run several times, you need to issue one or
both of the following commands:
For an SMS-managed volume:

PATCH .MCVT.+41C X'00000000'

For a non-SMS-managed volume:

PATCH .MCVT.+490 X'00000000'

Issue the SETSYS AUTODUMPSTART command to define a new window.


• Changing the frequency of running interval migration
- Making the interval less frequent than one hour : To calculate the
value to use in a patch of the MGCB, start with the desired number of
hours for your interval, multiply by 60, and then add 30. For example, if

316 DFSMShsm Primer


you want the interval to be two hours, the value is (2*60)+30 = 150.
Issue the following PATCH command:

PATCH .MGCB.+60 X’0096’ /* 150 minutes */

- Making the interval more frequent than one hour : To start interval
migration twice per hour requires two hosts. Issue the following
patches to start space check on the primary host on the hour and start
space check on the non-primary host at 30 minutes after the hour:
For the primary host, issue command

PATCH .MGCB.+60 X’005A’ /* 90 minutes - default*/

For the non-primary hosts, issues commands:

PATCH .MGCB.+62 X’001E’ /* 30 minutes after the hour */


PATCH .MGCB.+60 X’003C’ /* 60 more minutes, to the middle of the
next hour */

On the primary and non-primary host, issue the following patches to set
the minimum number of minutes between successive migrations of the
same volume to one-half the hourly value:

PATCH .MCVT.+422 X’000F’ /* 15 min, SMS */


PATCH .MCVT.+496 X’000F’ /* 15 min, non-SMS */

For comprehensive information on this patch, see DFSMShsm


Implementation and Customization Guide , GC35-0385.
• Is it possible to change the default tape data set names that
DFSMShsm uses for tape copy and full volume dump?
In releases of DFHSM before Version 2 Release 6.0, the default names for
tape copy and full volume dump tape data sets were different from the
default names used in DFHSM Version 2 Release 6.0 and in subsequent
DFSMShsm releases. Some sites have used and continue to use naming
conventions established before DFHSM Version 2 Release 6.0. As a
convenience, this patch is provided to eliminate changing naming
conventions that have been established with previous releases of DFHSM.
If you want DFSMShsm to use a naming convention that is consistent with
releases of DFHSM, issue the following commands:
For default tape copy names before DFHSM 2.6:

PATCH .MCVT.+284 BITS(.0......)

Chapter 7. Hints and tips for tuning DFSMShsm 317


For default dump tape names before to DFHSM 2.6:

PATCH .MCVT.+284 BITS(0.......)

• How do I prevent interactive TSO users from being placed in a wait


state during a data set recall?
Issue one or both of the following commands:
For tape data set recalls:

PATCH .MCVT.+52 bits(..1.....)

For DASD data set recalls:

PATCH .MCVT.+52 bits(...1....)

• How can I prevent ABARS ABACKUP processing from creating an


extra tape volume for the instruction data set and activity log files?
You can use the STACK parameter for doing it (either SETSYS
ABARSTAPES(STACK) or ABACKUP STACK). If you specify NOSTACK
and you do not want to create these files you can use the patch command.
To dump the activity log and instruction data set to a separate tape
volume, issue the following command:

PATCH .ABRCB.+1F X'00'

To never dump the activity log and instruction data set to a separate tape
volume, issue the following command:

PATCH .ABRCB.+1F X'03'

• How do I stop ABARS ABACKUP processing from including


multivolume BDAM data sets?
To stop this issue the following command:

PATCH .ABRCB.+A8 BITS(.....1..)

• How can I prevent ABARS ABACKUP processing from deleting


existing ABACKUP output files?
To prevent this issue the following command:

PATCH .ABRCB.+82 BITS(......1.)

318 DFSMShsm Primer


• How do I specify the amount of time to wait for an ABARS secondary
address space to initialize?
To specify this issue the following command:

PATCH .ABRCB.+494 X'nnnnnnnn' VERIFY(.ABRCB.+494 X'0000012C')

Where, X'nnnnnnnn' is the hexadecimal representation for the number of


seconds to wait for an ABARS secondary address space to start.
• How do I patch ABARS to use NOVALIDATE when invoking
DFSMSdss?
Issue the following command:

PATCH .ABRCB.+82 BITS(1.......)

• How can I patch ABARS to provide a dump whenever a specific error


occurs during DFSMSdss processing during ABACKUP and
ARECOVER?
To obtain a dump on DFSMSdss message ADR454I, issue the following
command:

PATCH .ABRCB.+1C X'F4F5F4'

• Can I route the ABARS ARC6030I message to the operator console?


Yes. Issue the following command:

PATCH .ABRCB.+81 BITS(.....1..)

• How do I patch ABARS to prevent it from automatically cleaning up


residual versions of ABACKUP output files?
Issue the following command:

PATCH .ABRCB.+82 BITS(.1......)

• How can I change the default number of recall requests for a data set
residing on a volume that is in use by recycle or TAPECOPY
processing?
To fail recall if the tape is in use by recycle or tapecopy, issue the following
command:

PATCH .MCVT.+315 X'00'

Chapter 7. Hints and tips for tuning DFSMShsm 319


The default number of times that a recall is tried is 15. If you want to
change the number, for example, to 30 times, issue the following
command:

PATCH .MCVT.+315 X'1E'

• How can I change the compaction-ratio estimate for data written to


tape?
If a high percentage of your data has attributes such that the assumed
compaction ratio is not appropriate, you can change the ratio used, by
issuing a PATCH command to specify the numerator of a ratio having a
denominator of 10.
You can change the ratio for migration by issue the command:

PATCH .MCVT.+4B6 X’0F’ /* Migration - ratio is 15/10 or 1.5*/

To change the ratio for backup, issue the command

PATCH .MCVT.+4B7 X’14’ /* Backup - ratio is 20/10 or 2.0*/

• How can I enable the takeaway function during tapecopy


processing?
To enable the takeaway tape function during tapecopy processing, issue
the following patch command:

PATCH .MCVT.+53 BITS (.....1..)

You can also change the RECALL delay time of 15 minutes. For example,
to change the delay time to 20 minutes, issue the following patch
command:

PATCH .MCVT.+3CA X’0014’

To change the ABACKUP delay time of 15 minutes. For example, to


change the delay time to 25 minutes, issue the following command:

PATCH .ABRCB.+28 X’0019’

• How can I change the delay by recall before taking away a needed
ML2 tape from ABACKUP?
When a WAIT-type recall needs an ML2 tape currently in use by
ABACKUP, recall keeps retrying the access to the tape. If ABACKUP is
still using the tape after a delay of ten minutes since recall first found the
tape in use, recall signals ABACKUP to give up the tape.

320 DFSMShsm Primer


You can change that delay time (in minutes) by issuing the following
PATCH command:

PATCH .MCVT.+49E X’nnnn’

Where, X’nnnn’ is the hexadecimal representation for the number of


delayed minutes before the taking away a tape from ABACKUP.
• How do I disable delete-if-backed-up (DBU) processing for SMS data
sets?
Issue the following command:

PATCH .MCVT.+431 BITS(......1.)

• How do I request that the message issued for SETSYS


TAPEOUTPUTPROMPT processing be a WTOR instead of the default
WTO?
To request a WTOR, issue the following command:

PATCH .MCVT.+4C3 BITS(.......1)

To request a WTO, issue the following command:

PATCH .MCVT.+4C3 BITS(.......0)

• How do I remove ACL as a condition for D/T3480 esoteric unit name


translation?
Issue the following command:

PATCH .MCVT.+4C0 BITS(...1....)

If you use this patch in your ARCCMDxx PARMLIB member, it must be


before your SETSYS USERUNITTABLE command.
• Is it possible to change the amount of time that ABACKUP
processing waits for an ML2 volume to become available?
Yes. Issue the following command:

PATCH .ABRCB+4A2 X'nnnn'

Where, X'nnnn' is the hexadecimal representation for the number of


20-second intervals to be tried. The default decimal value is 90, which
produces a 30-minute wait.

Chapter 7. Hints and tips for tuning DFSMShsm 321


• How can I change the amount of time an ABACKUP or ARECOVER
waits for a resource in use by another task?
When an aggregate backup or recovery fails to allocate a volume or data
set, it will retry the allocation for up to 30 minutes before issuing message
ARC6083A. This message prompts the user to respond to the message
with a CANCEL (cancel the operation) or a WAIT (continue to wait for the
resource).
You can alter the default wait time of 30 minutes by entering the following
PATCH command:

PATCH .ABRCB.+4C4 X’nnnn’ VERIFY(.ABRCB.+4C4 X’005A’)

Where, X'nnnn' is the hexadecimal representation of the number of


20-second intervals to be tried. The default decimal value is 90, which
produces a 30-minute wait.
• How do I prevent deadlocks during volume dumps?
Issue the following command:

PATCH .MCVT.+3C3 BITS(.....1..)

• How can I modify the number of elapsed days for a checkpointed


data set to be eligible for migration?
Issue the following command:

PATCH .MGCB.+70 X'nn'

Where, X'nn' is the hexadecimal representation of the number of days.


The default is 5.
• How can I run concurrent multiple recycles within a single GRSplex?
Use the following patches to avoid recycle conflicts between two
HSMplexes that use the RNAMEDSN=N translation method. If you are
using RNAMEDSN=Y on either or both, the following patches are
unnecessary.
If your environment has a single GRS-type serialization ring that includes
more than one HSMplex, you may want to use different resource names
(Rnames) for the recycle tape category, which allows multiple HSMplexes
to recycle the same category concurrently. You can easily patch the
Rnames to represent different resources. Place the patches in the
DFSMShsm startup procedure.

322 DFSMShsm Primer


For example, the following PATCH commands illustrate how you could
change the RNAMEs to reflect HSMPLEX 1 ('H1').

PATCH .YGCB.+14 ’RCYH1-L2’ VER(.YGCB.+14 ’RECYC-L2’)


PATCH .YGCB.+1C ’RCYH1-SP’ VER(.YGCB.+1C ’RECYC-SP’)
PATCH .YGCB.+24 ’RCYH1-DA’ VER(.YGCB.+24 ’RECYC-DA’)

This change does not require that you change the QNAME.
To provide the needed protection, make sure that you use the same
resource name in each host of an HSMplex. For example, if a 2-host
HSMplex and a 3-host HSMplex share a GRS ring, then apply the same
patches to both systems in the 2-host HSMplex or to all three systems in
the 3-host HSMplex. One HSMplex can use the DFSMShsm-provided
names.
• How can I force UCBs to be obtained each time a volume is space
checked?
This patch causes the DFSMShsm space checking function to re-OBTAIN
each DASD volume’s UCB prior to addressing fields within the structure.
This prevents errors in an environment where dynamic I/O configurations
are occurring and the user does not want to stop and start DFSMShsm.
Issue the following patch command to force the UCBs to be OBTAINed for
each DASD volume processed during space checking:

PATCH .MCVT.+4F1 BITS(......1.)

Once it is known that no further dynamic I/O configurations will be


occurring, this bit should be reset to OFF. Leaving this bit set on will
impact the performance of your system. Issue the following patch
command to set the bit OFF:

PATCH .MCVT.+4F1 BITS(......0.)

• How can I turn PDA tracing off?


Conditional tracing allows users to turn off some of the problem
determination aid (PDA) tracing that DFSMShsm normally performs.
If conditional tracing is OFF, performance improves. If conditional tracing
is ON, serviceability improves. Users must be aware, however, that if any
tracing is off, then data capture on the first failure may be compromised,
and may require a problem recreation. The default is to trace everything.

Chapter 7. Hints and tips for tuning DFSMShsm 323


- To turn off trace for CPOOL calls (GETCELL or FREECELL), issue the
command:

PATCH .MCVT.+558 BITS(0........)

- To turn off trace entries with CONDitional specified, issue the


command:

PATCH .MCVT.+558 BITS(.0......)

- To turn off trace entries of rejection during volume selection, issue the
command:

PATCH .MCVT.+558 BITS(..0.....)

7.2 DFSMShsm functional enhancements


DFSMShsm development produces a number of APARs with the objective of
provide improvements to some DFSMShsm functions. These improvements
are produced between product versions or releases so they are given in the
form of APARs for immediate utilization. They are not corrective APARs but
functional enhancements. Development people like to express them as
GPARs (good APARs).

These functional enhancements are all included in DFSMShsm 2.10 but are
listed here for those installations which are at a lower level and wish to
benefit of certain enhancements.

The following GPARS were produced during 1999.


• ABARS Synergy with PPRC / XRC, Release= DFSMS 1.4.0, APAR
OW37976
Some customers mirror only part of their application DASD and others
think they mirror all of it. DFSMShsm has expanded its synergy with IBM's
mirroring products PPRC and XRC such that the user can do an
ABACKUP of an aggregate but exclude all data sets that are resident on
PPRC/XRC protected DASD. This provides supplemental disaster
protection for data intentionally or accidentally excluded from mirroring.
• Expanded Domain of ARCRPEXT Exit Usage, Release= DFSMS 1.4.0,
APAR OW38413
A few customers use the ARCRPEXT exit to route recalls, deletes and/or
recovers from a minimal system to a full function system using customer
written code such as an APPC application. Reasons for this capability may
be that devices such as tapes or DASD are either not connected or in

324 DFSMShsm Primer


limited supply. The DFSMShsm environment for full support had to include
shared user catalogs and shared DFSMShsm CDSs.
It was identified that when the CDSs were not shared that these functions
worked with the exception of recalls from tape. This change expands the
use of the ARCRPEXT exit to environments where the "stub" CDSs do not
contain a migration record for the migrated data set as long as the
ARCRPEXT is requested.
Note: Customer written code is required to route DFSMShsm requests to
other systems for execution.
• Remove 100 Character PARM limit in PROC, Release=DFSMS 1.4.0,
APAR OW39078
Until this improvement, the maximum number of characters that a
customer could provide as parameters to the DFSMShsm start up PROC
was 100. They were located in the EXEC's PARM field. That was not
always enough.
This change enables the customer to provide all or additional DFSMShsm
PROC parameters in a partition member, named ARCSTRxx, similar to
support for the ARCCMDyy member containing DFSMShsm initialization
parameters. These members can exist in either the MVS PARMLIB
concatenation sequence or in the data set described by the DFSMShsm
PROC via the DD name of HSMPARM. Usage is requested by STR=xx
and/or CMD=yy parms in the PARM field of the PROC's EXEC statement.
PROC PARMs can be specified in both the ARCSTRxx and the PARM field
of the EXEC statement. If parameters are duplicated then those on the
EXEC statement override those in ARCSTRxx.
• Merging BCDS for Parallel Sysplex, Release=DFSMS 1.3.0, APAR
OW37110
The BVR record has been difficult for one attempting to merge two or more
DFSMShsm BCDSs. Merging the contents of the BVR records no longer
needs much customer involvement as it is an internal process within
DFSMShsm. The only customer involvement is a decision whether or not
to regenerate the content of the BVR records and to enter the command to
request the building of new BVRs.
You can now just merge the BCDSs and do whatever you want with the
duplicate keyed BVR records: replace or not replace when duplicate keys
are encountered. When you bring up the system having the merged
BCDSs you can enter a command that causes DFSMShsm an additional
step at the next successful CDS backup to quickly generate more efficient
BVR records from the existing backup volume records.

Chapter 7. Hints and tips for tuning DFSMShsm 325


Since there will be considerably fewer BVR entries, some improvement in
target backup volume selection will result.
• Reducing the Number of BVR Entries, Release=DFSMS 1.3.0, APAR
OW35561
This improvement gradually reduces the number of backup volumes
needing to be recorded in BVR records. However, this item is being done
as a preparatory or coexistence step to enable an tremendously simplified
merging process for one needing to merge two or more DFSMShsm
complexes into one. This APAR actually tolerates full backup tapes not
being included in BVR records and becomes a prerequisite for a following
APAR, OW37110, that converts the old style BVRs into a very much
streamlined one.
• Delayed take away by Recall from ABACKUP, Release=DFSMS 1.3.0,
APAR OW37606
This improvement enables a wait type recall request to do a delayed
tape-take-away from an ABACKUP function if the ABACKUP function
continues to use the tape for an extended period of time (10 minutes) after
the recall is first attempted. If the tape is taken away from ABACKUP, then
the ABACKUP continues with other input tapes and later retries the
remaining data sets on the taken away tape. Therefore, this function
enables better servicing of wait-type recalls at the expense of an
additional tape mount by ABACKUP. The number of additional mounts are
shown in the REPORT output header.
• ML2 contention by ABACKUP, Release=DFSMS 1.3.0, APAR OW36332
Tapes needed as input to aggregate backup are sometimes in use by
other DFSMShsm functions such as migration, recycle or TAPECOPY.
Today, if in use, ABACKUP does a series of retries until the needed tape
becomes available. This change causes ABACKUP to initiate a ML2
tape-take-away from these functions, the same way that recalls does
today.
This change also addresses the case where ABACKUP fails today if
recycle moves a needed migration copy to a different tape after the
ABACKUP determined where the copy resided but before mounting the
needed tape.
There is still one more significant improvement in this change. If the tape
needed by an ABACKUP task is already in use by a different ABACKUP
task, then instead of just delaying until the tape becomes available, the
ABACKUP task, unable to get its needed tape, immediately goes on to
process other ML2 tapes and returns later to process the initially
unavailable tape.

326 DFSMShsm Primer


These changes all result in reduced delays of ABACKUP.
• BACKVOL STORAGE GROUP with Dump Stack, Release=DFSMS
1.4.0, APAR OW31031
Some customers have a need for more than one automatic backup and/or
dump window, per host, per day which corresponds to the need to process
different sets of volumes at different times. Other customers want to
process Storage Groups or a list of volumes based on events that occur at
a little different time each day. This change enables the submittal of a
BACKVOL command via a program or person to initiate the processing of
one or more storage groups or one or more volumes to perform
incremental backup or volume dumps. The dump function includes the
recently added stacking capability that has been available only with auto
dump.
There are also some usability and service additions to the use of dump
stacking as well as increasing the maximum concurrent volume dump
tasks from 15 to 32. Improvements include improving the likelihood of
stacking when contending with migration and backup for the source DASD
and after DFSMShsm was cancelled while dump stacking was running.
To aid you in reviewing your stacking level choice, the percent of physical
tape used, is shown in the LIST DVOL output.
• Interval Migration Improvements, Release=DFSMS 1.3.0,
APAR=OW35182
Do you want to run interval migration less often than once per hour on a
particular host, perhaps once every other hour? You might do this if you
have enough DASD to collect data for two hours before migrating it to
tape. This would likely reduce the number of tape mounts. This change
allows one to do this by modifying one constant in DFSMShsm.
Do you want to run interval migration twice per hour? You can do this if
you have two hosts and you let each of them run interval migration once
per hour but at different times. You can now do this by modifying two
DFSMShsm time constants and the minimum time required between
processing volumes by interval migration.
Another improvement is the automatic restart of interval migration if it
failed to complete prior to an DFSMShsm or DFSMS/MVS outage. This is
similar to auto restart of primary space management.
Another small change related to DFSMShsm startup is for cases other
than restart of interval migration which would start immediately. The first
start time for interval migration is now the next hour of the day. The start

Chapter 7. Hints and tips for tuning DFSMShsm 327


time was the second hour of the day if the DFSMShsm startup was during
the later half of an hour.
The interval migration start and end messages have been extended to
contain the time and date to help you know when Interval Migration
occurred. The start message indicates a restart when a restart occurred.
• MWEs added to PDA Service Output, Release=DFSMS 1.3.0,
APAR=OW36970
The intended use (debugging) of the DFSMShsm log has been replaced
by the implementation of the Problem Determination Aid (PDA). However,
customers have on occasion been asked to supply the DFSMShsm log
when they requested service for an DFSMShsm problem dealing with
command submittals.
This change adds the MWE control block to the PDA data resulting in
eliminating for many customers all reasons for recording in the
DFSMShsm log. If the customer does not make use of the DFSMShsm log
data it is recommended for performance reasons that they place a HOLD
LOG command in their DFSMShsm startup parmlib member.
• Indicate duplexing in FSR, Release=DFSMS 1.4.0, APAR=OW36969
The FSRs have not had any indication that duplexed output was being
used. Therefore, one was unable to determine exclusively from the FSR
the amount of output written when duplexing was a possibility.
DFSMShsm has added a duplex indicator flag to the FSRs for data sets.
• Tuneable ODS and OUTLIM Options, Release=DFSMS 1.3.0,
APAR=OW36125
Customers have requested over the years to enable them to change
allocation options of DFSMShsm's ODSs (Output Data Sets). This
improvement enables a customer to change the following ODS options:
- The DASD allocation unit from esoteric SYSALLDA
- The primary allocation size from 20 tracks
- The secondary allocation size from 50 tracks
Additionally some have asked to modify the SYSOUT limiting. This
improvement enables a customer to:
- Increase the limit from 2,000,000 lines
- Remove the specific HSM limit hence reverting to the JES option
specified in the started task initiator

328 DFSMShsm Primer


For more detailed information about these GPARs refer to the following Web
page:
http://www.storage.ibm.com/software/sms/hsm/hsmgpar.htm

Chapter 7. Hints and tips for tuning DFSMShsm 329


330 DFSMShsm Primer
Appendix A. Sample ACS routines

This appendix contains sample ACS routines used to manage DFSMShsm


data.

A.1 Sample storage class ACS routine


In our system we have chosen a high-level qualifier of HSM for the
DFSMShsm data sets, which is reflected in the ACS routines. Figure 113 to
Figure 117 on page 336 show the following:
• A storage class for high performance and with guaranteed space
(SC54GRT) is assigned to the DFSMShsm control data sets and journal.
This storage class is explicitly specified in the allocation of these data
sets. Only the storage administrators (MHLRES3, MHLRES4, and
MHLRES5) can use the SC54GRT storage class.
• Data allocated on DFSMShsm-owned volumes (migration and backup) is
excluded from DFSMSdfp management.
• Other DFSMShsm data sets, such as logs and CDS backups, are
recognized and allocated in the DFSMSdfp volume pools.
• When a data set is recalled or recovered by DFSMShsm, the storage class
is retained if one already exists.

Examples of the parameters used in the DFSMSdfp classes referenced in


these routines are presented in 2.1.1, “Storage class” on page 18.

© Copyright IBM Corp. 1998, 2000 331


PROC &STORCLAS
/*********************************************************************/
/* START OF STORAGE CLASS PROC */
/*********************************************************************/
/* CHANGE HISTORY */
/* DATE PERSON DESCRIPTION OF CHANGE */
/*********************************************************************/
/* 95/05/06 DEF INITIAL IMPLEMENTATION FOR STAGE I */
/* DATA */
/* 95/02/05 DEF MINIMAL CONFIGURATION */
/*********************************************************************/
/* YOU NEED TO MOVE ALL THE FILTLISTS TO THE */
/* LOCATION BETWEEN THE TWO LINES OF SPECIAL CHARACTERS SHOWN */
/* BELOW THIS COMMENT BEFORE USING THE CODE FRAGMENTS */
/*********************************************************************/
/*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*/
FILTLIST &OMVS_DATA_DSN INCLUDE
(OMVS*.**)
/*********************************************************************/
FILTLIST &HSM_NONSMS_DATA_DSN INCLUDE
(HSM.SMALLDS.**,HSM.BACK.**,HSM.HMIG.**,HSM.MDB.**,
HSM.VCAT.**,HSM.VTOC.**,HSM.DUMPVTOC.**)
/*********************************************************************/
FILTLIST &HSM_CONTRDS_DATA_DSN INCLUDE
(HSM.%CDS.*,HSM.JRNL.*)
/*********************************************************************/
FILTLIST &HSM_LOGS_DATA_DSN INCLUDE
(′ HSM.EDITLOG′ , HSM.HSMLOG*,HSM.HSMPDO*)
/*********************************************************************/
FILTLIST &HSM_ACT_DATA_DSN INCLUDE
(HSMACT.H%.*.D*.T*)
/*********************************************************************/
FILTLIST &HSM_BKCONT1_DATA_DSN INCLUDE
(HSM.%CDS.BACKUP.*,
HSM.JRNL.BACKUP.*)
/*********************************************************************/
FILTLIST &HSM_ABARS_DATA_DSN INCLUDE
(ABARS.*.INSTRUCT)
/*********************************************************************/

FILTLIST &SMS_MANAGED_OMVS_DATA_HLQ INCLUDE


(OMVS*)
FILTLIST &SPECIAL_SC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_SCNOSMS_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_STORCLAS INCLUDE
(′ SC54GRT′ , ′ SC54STD′ , ′ SC54LOW′ )
FILTLIST &SPECIAL_MC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_MGMTCLAS INCLUDE
(′ MC54SPEC′ )

Figure 113. Storage class ACS routine for DFSMShsm data (part 1 of 5)

332 DFSMShsm Primer


/*********************************************************************/

FILTLIST &VALID_DASD_UNIT INCLUDE


(′3380′,′3390′,′SYSDA′ , ′ SYSALLDA′ , ′ ′ )
FILTLIST &VALID_OPTICAL_ACSENVIR INCLUDE
(′ STORE′ , ′ CHANGE′ , ′ CTRANS′ )
FILTLIST &VALID_TAPE_UNIT INCLUDE
(′3490′,′3480′,′3590′,TAPE*,′ T3480′ , ′ T3490′ , ′ T3590′ , ′ AFF=′ )

/*********************************************************************/
/**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**/
SELECT /* MAIN LOGIC BLOCKS */
/*********************************************************************/
/* INCUDE ALL STANDARDS ENFORCEMENT LOGIC IN THIS BLOCK, BUT ONLY */
/* IN EITHER THE DATA CLASS OR STORAGE CLASS ACS ROUTINE */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD DATA SET NAMING STANDARD HERE IF USED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD VOLUME FENCING STANDARD HERE IF USED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD DATA SET SIZE STANDARD HERE IF USED */
/*********************************************************************/
/*********************************************************************/
/* INCLUDE ALL DASD ALLOCATIONS IN THIS BLOCK, INCLUDE BOTH DASD */
/* ALLOCATIONS FOR SMS AND NON-SMS */
/*********************************************************************/
WHEN ((&UNIT EQ &VALID_DASD_UNIT)
AND (&ACSENVIR NE &VALID_OPTICAL_ACSENVIR))
SELECT /* DASD DATA ALLOCATION */
/*********************************************************************/
/* EXCLUDE DFSMSHSM RECALLS AND RECOVERIES FROM ACS PROCESSING IF */
/* A STORAGE CLASS IS ALREADY ASSIGNED TO THE DATA SET */
/*********************************************************************/
WHEN ((&ACSENVIR = ′ RECALL′ OR &ACSENVIR =′ RECOVER′ )
AND (&STORCLAS NE ′ ′ ) )
DO
SET &STORCLAS = &STORCLAS
EXIT
END /* DO */
/*********************************************************************/
/* ALLOW SPECIAL USERS TO PLACE SELECTED DATA SETS OUTSIDE OF SMS */
/* BY USING STORCLAS=SCNOSMS AT ALLOCATION */
/*********************************************************************/
WHEN ((&USER EQ &SPECIAL_SCNOSMS_USER)
AND (&STORCLAS EQ ′ SCNOSMS′ ) )
DO
SET &STORCLAS = ′ ′
EXIT
END /* DO */

Figure 114. Storage class ACS routine for DFSMShsm data (part 2 of 5)

Appendix A. Sample ACS routines 333


/*********************************************************************/
/* ALLOW HSM NON-SMS SELECTED DATA SETS OUTSIDE OF SMS */
/*********************************************************************/
WHEN (&DSN EQ &HSM_NONSMS_DATA_DSN)
DO
SET &STORCLAS = ′ ′
EXIT
END /* DO */
/*********************************************************************/
/* TAILOR AND ADD JCL EXCEPTIONS HERE IF THEY ARE USED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND SET STORCLAS FOR ALLOCATION EXCEPTIONS */
/*********************************************************************/
/* REPEAT THIS BLOCK FOR EACH SET OF SPECIAL USERS THAT ARE */
/* ALLOWED TO REQUEST SMS SERVICE THROUGH STORCLAS AT ALLOCATION */
/*********************************************************************/
WHEN ((&USER EQ &SPECIAL_SC_USER)
AND (&STORCLAS EQ &SPECIAL_STORCLAS))
DO
SET &STORCLAS = &STORCLAS
EXIT
END /* DO */
/*********************************************************************/
/* TAILOR AND ADD DATA SET LIST EXCEPTIONS HERE IF THEY ARE USED */
/* INCLUDE SEQUENTIAL STRIPING AND CONCURRENT COPY */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD EITHER TEMP AND VIO OR TEMP AND NO VIO HERE IF */
/* TEMP DATA IS SMS-MANAGED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD TEMP SHORT DURATION HERE IF TEMP SHORT DURATION */
/* DATA AND IF IT IS SMS-MANAGED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD TSO LOGON AND LIST DATA SUBTYPES IF THEY HAVE */
/* STORAGE CLASSES DIFFERENT THAN OTHER TSO DATA AND THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD OTHER TSO SUBTYPES HERE IF THEY ARE SMS-MANAGED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD TEST SUBTYPES HERE IF THEY ARE SMS-MANAGED */
/*********************************************************************/

Figure 115. Storage class ACS routine for DFSMShsm data (part 3 of 5)

334 DFSMShsm Primer


/*********************************************************************/
/* TAILOR AND ADD BATCH PRODUCTION SUBTYPES HERE IF THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD ONLINE PRODUCTION SUBTYPES HERE IF THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD ANY OTHER DATA SUBTYPES HERE IF THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/
WHEN (&DSN EQ &OMVS_DATA_DSN)
DO
SET &STORCLAS =′ OPENMVS′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_LOGS_DATA_DSN)
DO
SET &STORCLAS =′ SC54STD′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_ACT_DATA_DSN)
DO
SET &STORCLAS =′ SC54LOW′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_BKCONT1_DATA_DSN)
DO
SET &STORCLAS =′ SC54LOW′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_ABARS_DATA_DSN)
DO
SET &STORCLAS =′ SC54LOW′
EXIT
END /* DO */
/*********************************************************************/
/* MAKE ALL OTHER DASD DATA SETS NON-MANAGED */
/*********************************************************************/
OTHERWISE /* NON-MANAGED DASD DATA */
DO
SET &STORCLAS = ′ ′
EXIT
END /* DO */
END /* DASD ALLOCATION SELECT */
/*********************************************************************/
/* INCLUDE ALL TAPE ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
/*********************************************************************/
/* TAILOR AND ADD TAPE MOUNT MANAGEMENT SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

Figure 116. Storage class ACS routine for DFSMShsm data (part 4 of 5)

Appendix A. Sample ACS routines 335


/*********************************************************************/
/* TAILOR AND ADD SMS-MANAGED TAPE SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/
/*********************************************************************/
/* ADD OTHERWISE FOR TAPE DATA HERE IF EITHER TAPE MOUNT MANAGEMENT */
/* OR SMS-MANAGED TAPE EXIST */
/*********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SET &STORCLAS = &STORCLAS
END /* TAPE ALLOCATION SELECT */
/*********************************************************************/
/* INCLUDE ALL OPTICAL ALLOCATIONS IN THIS BLOCK, INCLUDE LOGIC FOR */
/* SUBTYPES FOR IAFC OR IMAGE PLUS HERE IF THEY EXIST */
/*********************************************************************/
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SELECT /* OPTICAL ALLOCATIONS */
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SET &STORCLAS = &STORCLAS
/*********************************************************************/
/* TAILOR AND ADD OPTICAL STORE FUNCTION HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD OPTICAL TRANSITION AND CHANGE FUNCTIONS HERE IF */
/* OPTICAL DATA EXISTS */
/*********************************************************************/
/*********************************************************************/
/* ADD OTHERWISE FOR OPTICAL DATA HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/
END /* OPTICAL ALLOCATION SELECT */
/*********************************************************************/
/* THIS OTHERWISE IS FOR ALLOCATIONS OTHER THAN DASD, TAPE, OR */
/* OPTICAL */
/*********************************************************************/
OTHERWISE /* NON-MANAGED DEVICES */
DO
SET &STORCLAS = ′ ′
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 117. Storage class ACS routine for DFSMShsm data (part 5 of 5)

A.2 Sample management class ACS routine


Figure 118 to Figure 122 on page 341 show sample code required in the
management class ACS routine, which assigns different management criteria
to the DFSMShsm-owned data sets according to their use and importance.

336 DFSMShsm Primer


PROC &MGMTCLAS
/*********************************************************************/
/* START OF MANAGEMENT CLASS PROC */
/*********************************************************************/
/* CHANGE HISTORY */
/* DATE PERSON DESCRIPTION OF CHANGE */
/*********************************************************************/
/* 95/05/06 DEF INITIAL IMPLEMENTATION FOR STAGE I */
/* DATA */
/* 95/02/05 DEF MINIMAL CONFIGURATION */
/*********************************************************************/
/* YOU NEED TO MOVE ALL THE FILTLISTS TO THE */
/* LOCATION BETWEEN THE TWO LINES OF SPECIAL CHARACTERS SHOWN */
/* BELOW THIS COMMENT BEFORE USING THE CODE FRAGMENTS */
/*********************************************************************/
/*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*/
FILTLIST &OMVS_DATA_DSN INCLUDE
(OMVS*.**)
/*********************************************************************/
FILTLIST &HSM_NONSMS_DATA_DSN INCLUDE
(HSM.SMALLDS.**,HSM.BACK.**,HSM.HMIG.**,
HSM.VCAT.**,HSM.VTOC.**,HSM.DUMPVTOC.**)
/*********************************************************************/
FILTLIST &HSM_CONTRDS_DATA_DSN INCLUDE
(HSM.%CDS.*,HSM.JRNL.*)
/*********************************************************************/
FILTLIST &HSM_LOGS_DATA_DSN INCLUDE
(′ HSM.EDITLOG′ , HSM.HSMLOG*,HSM.HSMPDO*)
/*********************************************************************/
FILTLIST &HSM_ACT_DATA_DSN INCLUDE
(HSMACT.H%.*.D*.T*)
/*********************************************************************/
FILTLIST &HSM_BKCONT1_DATA_DSN INCLUDE
(HSM.%CDS.BACKUP.*,
HSM.JRNL.BACKUP.*)
/*********************************************************************/
FILTLIST &HSM_ABARS_DATA_DSN INCLUDE
(ABARS.*.INSTRUCT)
/*********************************************************************/
FILTLIST &SMS_MANAGED_OMVS_DATA_HLQ INCLUDE
(OMVS*)
FILTLIST &SPECIAL_SC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_SCNOSMS_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_STORCLAS INCLUDE
(′ SC54GRT′ , ′ SC54STD′ , ′ SC54LOW′ )
FILTLIST &SPECIAL_MC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_MGMTCLAS INCLUDE
(′ MC54SPEC′ )

Figure 118. Management class ACS routine for DFSMShsm data (part 1 of 5)

Appendix A. Sample ACS routines 337


/*********************************************************************/
FILTLIST &VALID_DASD_UNIT INCLUDE
(′3380′,′3390′,′SYSDA′ , ′ SYSALLDA′ , ′ ′ )
FILTLIST &VALID_OPTICAL_ACSENVIR INCLUDE
(′ STORE′ , ′ CHANGE′ , ′ CTRANS′ )
FILTLIST &VALID_TAPE_UNIT INCLUDE
(′3490′,′3480′,′3590′,TAPE*,′ T3480′ , ′ T3490′ , ′ T3590′ , ′ AFF=′ )
/*********************************************************************/
/**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**/
SELECT /* MAIN LOGIC BLOCKS */
/*********************************************************************/
/* INCLUDE AN EMPTY STANDARDS ENFORCEMENT BLOCK HERE FOR */
/* COMPATIBILITY WITH THE OTHER ACS ROUTINES */
/*********************************************************************/

/*********************************************************************/
/* INCLUDE ALL DASD ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN ((&UNIT EQ &VALID_DASD_UNIT)
AND (&ACSENVIR NE &VALID_OPTICAL_ACSENVIR))
SELECT /* DASD DATA ALLOCATION */
/*********************************************************************/
/* EXCLUDE DFSMSHSM RECALLS AND RECOVERIES FROM ACS PROCESSING IF */
/* A MANAGEMENT CLASS IS ALREADY ASSIGNED TO THE DATA SET */
/*********************************************************************/
WHEN ((&ACSENVIR = ′ RECALL′ OR &ACSENVIR =′ RECOVER′ )
AND (&MGMTCLAS NE ′ ′ ) )
DO
SET &MGMTCLAS = &MGMTCLAS
EXIT
END /* DO */
/*********************************************************************/
/* TAILOR AND ADD JCL EXCEPTIONS HERE IF THEY ARE USED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND SET MGMTCLAS FOR ALLOCATION EXCEPTIONS */
/*********************************************************************/
/* REPEAT THIS BLOCK FOR EACH SET OF SPECIAL USERS THAT ARE */
/* ALLOWED TO REQUEST SMS SERVICE THROUGH MGMTCLAS AT ALLOCATION */
/*********************************************************************/
WHEN ((&USER EQ &SPECIAL_MC_USER)
AND (&MGMTCLAS EQ &SPECIAL_MGMTCLAS))
DO
SET &MGMTCLAS = &MGMTCLAS
EXIT
END /* DO */

Figure 119. Management class ACS routine for DFSMShsm data (part 2 of 5)

338 DFSMShsm Primer


/*********************************************************************/
/* TAILOR AND ADD DATA SET LIST EXCEPTIONS HERE IF THEY ARE USED */
/* INCLUDE CONCURRENT COPY */
/*********************************************************************/

/*********************************************************************/
/* SYSTEM TEMPORARY DATA SETS DO NOT HAVE MANAGEMENT CLASSES */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD TEMP SHORT DURATION HERE IF IT EXISTS */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD TSO LOGON AND LIST SUBTYPES IF THEY HAVE */
/* MANAGEMENT CLASSES DIFFERENT THAN OTHER TSO DATA */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD OTHER TSO SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD TEST SUBTYPES HERE IF THEY EXIST
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD BATCH PRODUCTION SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD ONLINE PRODUCTION SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND SET MGMTCLAS FOR OTHER SUBTYPES */
/*********************************************************************/
/* REPEAT THIS BLOCK FOR EACH OTHER SUBTYPE THAT HAS A DIFFERENT */
/* MANAGEMENT CLASS */
/*********************************************************************/
WHEN (&DSN EQ &HSM_BKCONT1_DATA_DSN)
DO
SET &MGMTCLAS =′ MC54NMIG′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_ACT_DATA_DSN)
DO

Figure 120. Management class ACS routine for DFSMShsm data (part 3 of 5)

Appendix A. Sample ACS routines 339


SET &MGMTCLAS =′ MC54WORK′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_LOGS_DATA_DSN)
DO
SET &MGMTCLAS =′ MC54SPEC′
EXIT
END /* DO */
WHEN (&DSN EQ &HSM_ABARS_DATA_DSN)
DO
SET &MGMTCLAS =′ MC54PRIM′
EXIT
END /* DO */
/*********************************************************************/
/* TAILOR AND ADD OTHER SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND SET MGMTCLAS FOR ALL OTHER SMS-MANAGED SUBTYPES */
/*********************************************************************/
OTHERWISE /* UNEXPECTED DASD DATA */
DO
SET &MGMTCLAS = ′ MC54NMIG′
EXIT
END /* DO */
END /* DASD ALLOCATION SELECT */
/*********************************************************************/
/* INCLUDE ALL TAPE ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
/*********************************************************************/
/* TAILOR AND ADD TAPE MOUNT MANAGEMENT SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD SMS-MANAGED TAPE SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* ADD OTHERWISE FOR TAPE DATA HERE IF EITHER TAPE MOUNT MANAGEMENT */
/* OR SMS-MANAGED TAPE EXIST */
/*********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SET &MGMTCLAS = &MGMTCLAS
END /* TAPE ALLOCATION SELECT */
/*********************************************************************/
/* INCLUDE ALL OPTICAL ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SELECT /* OPTICAL ALLOCATIONS */
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SET &MGMTCLAS = &MGMTCLAS

Figure 121. Management class ACS routine for DFSMShsm data (part 4 of 5)

340 DFSMShsm Primer


/*********************************************************************/
/* TAILOR AND ADD OPTICAL STORE FUNCTION HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD OPTICAL TRANSITION AND CHANGE FUNCTIONS HERE IF */
/* OPTICAL DATA EXISTS */
/*********************************************************************/
/*********************************************************************/
/* ADD OTHERWISE FOR OPTICAL DATA HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/

END /* OPTICAL ALLOCATION SELECT */


/*********************************************************************/
/* THIS OTHERWISE IS FOR ALLOCATIONS OTHER THAN DASD, TAPE, OR */
/* OPTICAL */
/*********************************************************************/
OTHERWISE /* UNEXPECTED DEVICES */
DO
SET &MGMTCLAS = ′ MC54NMIG′
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 122. Management class ACS routine for DFSMShsm data (part 5 of 5)

A.3 Sample storage group ACS routine


Figure 123 to Figure 126 on page 345 show sample code that we used in our
storage group ACS routine. You may need to create another storage group
and update your storage group ACS if you want to separate the DFSMShsm
data sets from other data.

Appendix A. Sample ACS routines 341


PROC &STORGRP
/*********************************************************************/
/* START OF STORAGE GROUP PROC */
/*********************************************************************/
/* CHANGE HISTORY */
/* DATE PERSON DESCRIPTION OF CHANGE */
/*********************************************************************/
/* 95/05/06 DEF INITIAL IMPLEMENTATION FOR STAGE I */
/* DATA */
/* 95/02/05 DEF MINIMAL CONFIGURATION */
/*********************************************************************/
/* YOU NEED TO MOVE ALL THE FILTLISTS TO THE */
/* LOCATION BETWEEN THE TWO LINES OF SPECIAL CHARACTERS SHOWN */
/* BELOW THIS COMMENT BEFORE USING THE CODE FRAGMENTS */
/*********************************************************************/
/*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*/
FILTLIST &OMVS_DATA_DSN INCLUDE
(OMVS*.**)
/*********************************************************************/
FILTLIST &HSM_NONSMS_DATA_DSN INCLUDE
(HSM.SMALLDS.**,HSM.BACK.**,HSM.HMIG.**,
HSM.VCAT.**,HSM.VTOC.**,HSM.DUMPVTOC.**)
/*********************************************************************/
FILTLIST &HSM_CONTRDS_DATA_DSN INCLUDE
(HSM.%CDS.*,HSM.JRNL.*)
/*********************************************************************/
FILTLIST &HSM_LOGS_DATA_DSN INCLUDE
(′ HSM.EDITLOG′ , HSM.HSMLOG*,HSM.HSMPDO*)
/*********************************************************************/
FILTLIST &HSM_ACT_DATA_DSN INCLUDE
(HSMACT.H%.*.D*.T*)
/*********************************************************************/
FILTLIST &HSM_BKCONT1_DATA_DSN INCLUDE
(HSM.%CDS.BACKUP.*,
HSM.JRNL.BACKUP.*)
/*********************************************************************/
FILTLIST &HSM_ABARS_DATA_DSN INCLUDE
(ABARS.*.INSTRUCT)
/*********************************************************************/
FILTLIST &SMS_MANAGED_OMVS_DATA_HLQ INCLUDE
(OMVS*)
FILTLIST &SPECIAL_SC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_SCNOSMS_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_STORCLAS INCLUDE
(′ SC54GRT′ , ′ SC54STD′ , ′ SC54LOW′ )
FILTLIST &SPECIAL_MC_USER INCLUDE
(′ MHLRES3′ , ′ MHLRES4′ , ′ MHLRES5′ )
FILTLIST &SPECIAL_MGMTCLAS INCLUDE
(′ MC54SPEC′ )

Figure 123. Storage group ACS routine for DFSMShsm data (part 1 of 4)

342 DFSMShsm Primer


/*********************************************************************/
FILTLIST &VALID_DASD_UNIT INCLUDE
(′3380′,′3390′,′SYSDA′ , ′ SYSALLDA′ , ′ ′ )
FILTLIST &VALID_OPTICAL_ACSENVIR INCLUDE
(′ STORE′ , ′ CHANGE′ , ′ CTRANS′ )
FILTLIST &VALID_TAPE_UNIT INCLUDE
(′3490′,′3480′,′3590′,TAPE*,′ T3480′ , ′ T3490′ , ′ T3590′ , ′ AFF=′ )
/*********************************************************************/
/**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**/
SELECT /* MAIN LOGIC BLOCKS */
/*********************************************************************/
/* INCLUDE AN EMPTY STANDARDS ENFORCEMENT BLOCK HERE FOR */
/* COMPATIBILITY WITH THE OTHER ACS ROUTINES */
/*********************************************************************/

/*********************************************************************/
/* INCLUDE ALL DASD ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN ((&UNIT EQ &VALID_DASD_UNIT)
AND (&ACSENVIR NE &VALID_OPTICAL_ACSENVIR))
SELECT /* DASD DATA ALLOCATION */
/*********************************************************************/
/* TAILOR AND ADD GUARANTEED SPACE LOGIC HERE IF GUARANTEED SPACE IS */
/* USED */
/*********************************************************************/
WHEN ((&USER EQ &SPECIAL_SC_USER)
AND (&STORCLAS EQ ′ SC54GRT′ ) )
DO
SET &STORGRP EQ ′ SG54HSM′
EXIT
END
/*********************************************************************/
/* TAILOR AND ADD DATA SET LIST EXCEPTIONS HERE IF THEY ARE USED */
/* INCLUDE SEQUENTIAL STRIPING AND CONCURRENT COPY */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD EITHER TEMP AND VIO OR TEMP AND NO VIO HERE IF */
/* TEMPORARY DATA IS SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD TEMP SHORT DURATION HERE IF THERE IS TEMP SHORT */
/* DURATION DATA AND IF IT IS SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD TSO LOGON AND LIST SUBTYPE IF THEY HAVE STORAGE */
/* GROUPS DIFFERENT THAN OTHER TSO SUBTYPES AND THEY ARE SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD OTHER TSO SUBTYPES HERE IF THEY ARE SMS-MANAGED */
/*********************************************************************/

Figure 124. Storage group ACS routine for DFSMShsm data (part 2 of 4)

Appendix A. Sample ACS routines 343


/*********************************************************************/
/* TAILOR AND ADD TEST SUBTYPES HERE IF THEY ARE SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD BATCH PRODUCTION SUBTYPES HERE IF THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/
/*********************************************************************/
/* TAILOR AND ADD ONLINE PRODUCTION SUBTYPES HERE IF THEY ARE */
/* SMS-MANAGED */
/*********************************************************************/
/* TAILOR AND ADD OTHER SUBTYPES HERE IF THEY ARE SMS-MANAGED */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND SET STORGRP FOR ALL OTHER SMS-MANAGED SUBTYPES */
/*********************************************************************/
WHEN (&DSN EQ &OMVS_DATA_DSN)
DO
SET &STORGRP =′ OPENMVS′
END /* DO */
OTHERWISE /* UNEXPECTED DASD DATA */
DO
SET &STORGRP = ′ SG54HSM′
EXIT
END /* DO */
END /* DASD ALLOCATION SELECT */
/*********************************************************************/
/* INCLUDE ALL TAPE ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN (&UNIT EQ &VALID_TAPE_UNIT)
SELECT /* TAPE ALLOCATIONS */
/*********************************************************************/
/* TAILOR AND ADD TAPE MOUNT MANAGEMENT SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD SMS-MANAGED TAPE SUBTYPES HERE IF THEY EXIST */
/*********************************************************************/

/*********************************************************************/
/* ADD OTHERWISE FOR TAPE DATA HERE IF EITHER TAPE MOUNT MANAGEMENT */
/* OR SMS-MANAGED TAPE EXIST */
/*********************************************************************/

END /* TAPE ALLOCATION SELECT */

Figure 125. Storage group ACS routine for DFSMShsm data (part 3 of 4)

344 DFSMShsm Primer


/*********************************************************************/
/* INCLUDE ALL OPTICAL ALLOCATIONS IN THIS BLOCK */
/*********************************************************************/
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SELECT /* OPTICAL ALLOCATIONS */
WHEN (&ACSENVIR EQ &VALID_OPTICAL_ACSENVIR)
SET &STORGRP = &STORGRP
/*********************************************************************/
/* TAILOR AND ADD OPTICAL STORE FUNCTION HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/

/*********************************************************************/
/* TAILOR AND ADD OPTICAL TRANSITION FUNCTION HERE IF OPTICAL DATA */
/* EXISTS */
/*********************************************************************/

/*********************************************************************/
/* ADD OTHERWISE FOR OPTICAL DATA HERE IF OPTICAL DATA EXISTS */
/*********************************************************************/

END /* OPTICAL ALLOCATION SELECT */


/*********************************************************************/
/* THIS OTHERWISE IS FOR ALLOCATIONS OTHER THAN DASD, TAPE, OR */
/* OPTICAL */
/*********************************************************************/

OTHERWISE /* UNEXPECTED DEVICES */


DO
SET &STORGRP = ′ SG54HSM′
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 126. Storage group ACS routine for DFSMShsm data (part 4 of 4)

Appendix A. Sample ACS routines 345


A.4 Sample data class ACS routine
Figure 127 to Figure 129 on page 348 show sample code that we used in our
data class ACS routine.
PROC &DATACLAS
/*********************************************************************/
/* START OF DATA CLASS PROC */
/*********************************************************************/
/* CHANGE HISTORY */
/* DATE PERSON DESCRIPTION OF CHANGE */
/*********************************************************************/
/* 95/05/06 DEF INITIAL IMPLEMENTATION FOR STAGE I */
/* DATA */
/* 95/02/05 DEF MINIMAL CONFIGURATION */
/*********************************************************************/
/*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*/

FILTLIST &STANDARD_NAME_DSN INCLUDE


(%%%T%%%.**,*.T*.**,*.P*.**)
FILTLIST &VALID_DASD_UNIT INCLUDE
(¢3380¢,¢3390¢,¢SYSDA¢,¢SYSALLDA¢,¢¢)
FILTLIST &VALID_OPTICAL_ACSENVIR INCLUDE
(¢STORE¢,¢CHANGE¢,¢CTRANS¢)
FILTLIST &SPECIAL_NONSMS_USER INCLUDE
(¢FREEMAN¢)
FILTLIST &SPECIAL_SC_USER INCLUDE
(¢FREEMAN¢)
FILTLIST &SPECIAL_DATACLAS INCLUDE
(¢SCSPECN¢,¢SCSPECF¢)
FILTLIST &CRITICAL_PERFORMANCE_DSN INCLUDE
(FREEMAN.P*.NEEDFAST)
FILTLIST &TSO_DATA_HLQ INCLUDE
(%%%T%%%)
FILTLIST &TEST_DATA_DSN INCLUDE
(T*.**)
FILTLIST &BATCH_PROD_DATA_DSN INCLUDE
(P*.**)
FILTLIST &VALID_TAPE_UNIT INCLUDE
(¢3490¢,¢3480¢,¢3590¢,TAPE*,¢T3480¢,¢T3490¢,
¢T3590¢,¢AFF=¢)
FILTLIST &TAPE_MOUNT_MANAGEMENT_DSN INCLUDE
(¢¢)
FILTLIST &SMS_MANAGED_TAPE_DSN INCLUDE
(¢¢)
FILTLIST &OPTICAL_DSN INCLUDE
(¢¢)
/**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**_**/

SELECT /* ALLOCATION TYPE */

Figure 127. Data class ACS routine for DFSMShsm data (part 1 of 3)

346 DFSMShsm Primer


/*********************************************************************/
/* INCLUDE ALL STANDARDS ENFORCEMENT LOGIC IN THIS BLOCK IN */
/* ONE AND ONLY ONE OF EITHER THE DATA CLASS OR STORAGE ACS */
/* ROUTINE, LEAVE BLOCK IN OTHER ACS ROUTINES FOR CONSISTENCY */
/*********************************************************************/
/*********************************************************************/
/* START STANDARDS ENFORCEMENT LOGIC BLOCK */
/*********************************************************************/

/*********************************************************************/
/* END STANDARDS ENFORCEMENT LOGIC BLOCK */
/*********************************************************************/

/*********************************************************************/
/* INCLUDE ALL DASD ALLOCATIONS IN THIS BLOCK, INCLUDE */
/* BOTH DASD ALLOCATIONS TO SMS AND TO NON SMS */
/*********************************************************************/

WHEN ((&UNIT EQ &VALID_DASD_UNIT)


AND (&ACSENVIR NE &VALID_OPTICAL_ACSENVIR))
SELECT /* DASD DATA ALLOCATION */

/*********************************************************************/
/* DO NOT MANAGE DATA FOR SPECIAL USERS THAT HAVE BEEN */
/* GIVEN AUTHORITY TO USE DATACLAS=SCNONSMS ON THEIR JCL */
/* THIS ALLOWS SELECTIVE OVERRIDE OF THE DATA CLASS */
/* ACS LOGIC DURING AN EMERGENCY SITUATION SO DATA THAT */
/* WOULD NORMALLY BE MANAGED BY SMS CAN BE ALLOCATED OUTSIDE OF SMS */
/*********************************************************************/
WHEN (&DATACLAS NE ¢¢)
DO
SET &DATACLAS = &DATACLAS
EXIT
END /* DO */

/*********************************************************************/
/* FOR ANY OTHER DATA TYPES NOT IDENTIFIED FOR */
/* SMS MANAGEMENT, PLACE THEM IN NON SMS STORAGE */
/*********************************************************************/

OTHERWISE /* NONMANAGED DASD DATA */


DO
SET &DATACLAS = ¢¢
EXIT
END /* DO */
END /* DASD ALLOCATION SELECT */

/*********************************************************************/
/* INCLUDE ALL TAPE ALLOCATIONS IN THIS BLOCK, INCLUDE */
/* BOTH TAPE ALLOCATIONS TO SMS AND TO NON SMS */
/* PRIOR TO SMS MANAGED TAPE OR TAPE MOUNT MANAGEMENT */
/* ALL TAPE ALLOCATION WOULD BE TO NON SMS */
/*********************************************************************/

Figure 128. Data class ACS routine for DFSMShsm data (part 2 of 3)

Appendix A. Sample ACS routines 347


/*********************************************************************/
/* START TAPE ALLOCATION LOGIC BLOCK */
/*********************************************************************/

/*********************************************************************/
/* END TAPE ALLOCATION LOGIC BLOCK */
/*********************************************************************/
/*********************************************************************/
/* INCLUDE ALL OPTICAL ALLOCATIONS IN THIS BLOCK, INCLUDE */
/* LOGIC FROM PRODUCTS LIKE IAFC OR IMAGE PLUS HERE */
/*********************************************************************/
/*********************************************************************/
/* START OPTICAL ALLOCATION LOGIC BLOCK */
/*********************************************************************/

/*********************************************************************/
/* END OPTICAL ALLOCATION LOGIC BLOCK */
/*********************************************************************/

OTHERWISE /* NONMANAGED DEVICES */


DO
SET &DATACLAS =¢¢
EXIT
END /* DO */
END /* SELECT */
END /* PROC */

Figure 129. Data class ACS routine for DFSMShsm data (part 3 of 3)

348 DFSMShsm Primer


Appendix B. Special notices

This publication is intended to help technical storage specialists and


administrators to understand DFSMShsm functions and how these functions
provide a comprehensive storage management strategy.

The information in this publication is not intended as the specification of any


programming interfaces that are provided by DFSMShsm. See the
PUBLICATIONS section of the IBM Programming Announcement for
DFSMShsm for more information about what publications are considered to
be product documentation.

References in this publication to IBM products, programs or services do not


imply that IBM intends to make these available in all countries in which IBM
operates. Any reference to an IBM product, program, or service is not
intended to state or imply that only IBM's product, program, or service may be
used. Any functionally equivalent program that does not infringe any of IBM's
intellectual property rights may be used instead of the IBM product, program
or service.

Information in this book was developed in conjunction with use of the


equipment specified, and is limited in application to those specific hardware
and software products and levels.

IBM may have patents or pending patent applications covering subject matter
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 the IBM
Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY
10504-1785.

Licensees of this program who wish to have information about it for the
purpose of enabling: (i) the exchange of information between independently
created programs and other programs (including this one) and (ii) the mutual
use of the information which has been exchanged, should contact IBM
Corporation, Dept. 600A, Mail Drop 1329, Somers, NY 10589 USA.

Such information may be available, subject to appropriate terms and


conditions, including in some cases, payment of a fee.

The information contained in this document has not been submitted to any
formal IBM test and is distributed AS IS. The use of this information or the
implementation of any of these techniques is a customer responsibility and
depends on the customer's ability to evaluate and integrate them into the
customer's operational environment. While each item may have been

© Copyright IBM Corp. 1998, 2000 349


reviewed by IBM for accuracy in a specific situation, there is no guarantee
that the same or similar results will be obtained elsewhere. Customers
attempting to adapt these techniques to their own environments do so at their
own risk.

Any pointers in this publication to external Web sites are provided for
convenience only and do not in any manner serve as an endorsement of
these Web sites.

The following terms are trademarks of the International Business Machines


Corporation in the United States and/or other countries:
DB2 DFSMSdfp
DFSMS DFSMShsm
DFSMS/MVS DFSMSopt
DFSMSdss DFSORT
DFSMSrmm Enterprise Storage Server
ESCON IBM ®
e (logo)® OS/2
Magstar Parallel Sysplex
OS/390 MVS/ESA
RACF RAMAC
RMF Redbooks
S/390 Redbooks Logo
StorWatch

The following terms are trademarks of other companies:

Tivoli, Manage. Anything. Anywhere.,The Power To Manage., Anything.


Anywhere.,TME, NetView, Cross-Site, Tivoli Ready, Tivoli Certified, Planet
Tivoli, and Tivoli Enterprise are trademarks or registered trademarks of Tivoli
Systems Inc., an IBM company, in the United States, other countries, or both.
In Denmark, Tivoli is a trademark licensed from Kjøbenhavns Sommer - Tivoli
A/S.

C-bus is a trademark of Corollary, Inc. in the United States and/or other


countries.

Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Sun Microsystems, Inc. in the United States and/or other
countries.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States and/or other countries.

PC Direct is a trademark of Ziff Communications Company in the United

350 DFSMShsm Primer


States and/or other countries and is used by IBM Corporation under license.

ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel


Corporation in the United States and/or other countries.

UNIX is a registered trademark in the United States and other countries


licensed exclusively through The Open Group.

SET, SET Secure Electronic Transaction, and the SET Logo are trademarks
owned by SET Secure Electronic Transaction LLC.

Other company, product, and service names may be trademarks or service


marks of others.

Appendix B. Special notices 351


352 DFSMShsm Primer
Appendix C. Related publications

The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this redbook.

C.1 IBM Redbooks


For information on ordering these publications see “How to get IBM
Redbooks” on page 357.
• DFSMShsm ABARS and Mainstar Solutions , SG24-5089
• DFSMS Optimizer: The New HSM Monitor/Tuner, SG24-5248
• Implementing DFSMSdss SnapShot and Virtual Concurrent Copy,
SG24-5268
• IBM Magstar Tape Products Family: A Practical Guide, SG24-4632
• IBM Magstar Virtual Tape Server: Planning, Implementing, and
Monitoring, SG24-2229
• DFSMS Optimizer Usage Guide, SG24-2235
• Implementing Concurrent Copy, GG24-3990
• DFSMS Release 10 Technical Update, SG24-6120
• DFSMS/MVS 1.5 Presentation Guide, SG24-5336
• Converting to Removable Media Manager: A Practical Guide , SG24-4998
• Maintaining Your SMS Environment , SG24-5484

C.2 IBM Redbooks collections


Redbooks are also available on the following CD-ROMs. Click the CD-ROMs
button at ibm.com/redbooks for information about all the CD-ROMs offered,
updates and formats.
CD-ROM Title Collection Kit
Number
IBM System/390 Redbooks Collection SK2T-2177
IBM Networking Redbooks Collection SK2T-6022
IBM Transaction Processing and Data Management Redbooks Collection SK2T-8038
IBM Lotus Redbooks Collection SK2T-8039
Tivoli Redbooks Collection SK2T-8044
IBM AS/400 Redbooks Collection SK2T-2849
IBM Netfinity Hardware and Software Redbooks Collection SK2T-8046
IBM RS/6000 Redbooks Collection SK2T-8043

© Copyright IBM Corp. 1998, 2000 353


CD-ROM Title Collection Kit
Number
IBM Application Development Redbooks Collection SK2T-8037
IBM Enterprise Storage and Systems Management Solutions SK3T-3694

C.3 Other resources


These publications are also relevant as further information sources:
• OS/390 V2R10.0 DFSMShsm Implementation and Customization Guide,
GC35-0385
• OS/390 V2R10.0 DFSMShsm Managing Your Own Data, SC35-0387
• OS/390 V2R10.0 DFSMShsm Storage Administration Guide, SC35-0388
• OS/390 V2R10.0 DFSMShsm Storage Administration Reference,
SC35-0389
• OS/390 V2R10.0 DFSMS Introduction , SC26-7344
• OS/390 V2R10.0 DFSMS Implementing System Managed Storage,
SC26-7336
• OS/390 V2R10.0 DFSMS: Using the Volume Mount Analyzer, SC26-7342
• OS/390 V2R10.0 DFSMShsm Diagnosis Guide, LY35-0111
• OS/390 V2R10.0 DFSMS Access Method Services for Catalogs,
SC26-7326
• OS/390 V2R10.0 DFSMSrmm Implementation and Customization Guide,
SC26-7334
• OS/390 V2R10.0 DFSMS OAM PISA for Tape Libraries, SC35-0392
• OS/390 V2R10.0 DFSMSdss Storage Administration Reference,
SC35-0394
• DFSORT R14 Application Programming Guide, SC33-4035
• dpAM R2 Collect Feature Customization and Reference, SH19-6758;
online publication only
• OS/390 V2R10.0 SecureWay Security Server RACF Command Language
Reference, SC28-1919
• OS/390 V2R10.0 DFSMSdfp Storage Administration Reference,
SC26-7331
• OS/390 V2R10.0 DFSMS Installation Exits, SC26-7392

354 DFSMShsm Primer


C.4 Referenced Web sites
These Web sites are also relevant as further information sources:
• http://www.s390.ibm.com/os390/bkserv/ OS/390 Internet library home
page
• http://www.storage.ibm.com/software/sms/smshome.htm DFSMS product
family home page
• http://www.storage.ibm.com/software/sms/hsm/hsmgpar.htm DFSMShsm
product enhancements

Appendix C. Related publications 355


356 DFSMShsm Primer
How to get IBM Redbooks

This section explains how both customers and IBM employees can find out about IBM Redbooks,
redpieces, and CD-ROMs. A form for ordering books and CD-ROMs by fax or e-mail is also provided.
• Redbooks Web Site ibm.com/redbooks
Search for, view, download, or order hardcopy/CD-ROM Redbooks from the Redbooks Web site.
Also read redpieces and download additional materials (code samples or diskette/CD-ROM images)
from this Redbooks site.
Redpieces are Redbooks in progress; not all Redbooks become redpieces and sometimes just a few
chapters will be published this way. The intent is to get the information out much quicker than the
formal publishing process allows.
• E-mail Orders
Send orders by e-mail including information from the IBM Redbooks fax order form to:
e-mail address
In United States or Canada [email protected]
Outside North America Contact information is in the “How to Order” section at this site:
http://www.elink.ibmlink.ibm.com/pbl/pbl
• Telephone Orders
United States (toll free) 1-800-879-2755
Canada (toll free) 1-800-IBM-4YOU
Outside North America Country coordinator phone number is in the “How to Order”
section at this site:
http://www.elink.ibmlink.ibm.com/pbl/pbl
• Fax Orders
United States (toll free) 1-800-445-9269
Canada 1-403-267-4455
Outside North America Fax phone number is in the “How to Order” section at this site:
http://www.elink.ibmlink.ibm.com/pbl/pbl

This information was current at the time of publication, but is continually subject to change. The latest
information may be found at the Redbooks Web site.

IBM Intranet for Employees


IBM employees may register for information on workshops, residencies, and Redbooks by accessing
the IBM Intranet Web site at http://w3.itso.ibm.com/ and clicking the ITSO Mailing List button.
Look in the Materials repository for workshops, presentations, papers, and Web pages developed
and written by the ITSO technical professionals; click the Additional Materials button. Employees may
access MyNews at http://w3.ibm.com/ for redbook, residency, and workshop announcements.

© Copyright IBM Corp. 1998, 2000 357


IBM Redbooks fax order form

Please send me the following:


Title Order Number Quantity

First name Last name

Company

Address

City Postal code Country

Telephone number Telefax number VAT number

Invoice to customer number

Credit card number

Credit card expiration date Card issued to Signature

We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not
available in all countries. Signature mandatory for credit card payment.

358 DFSMShsm Primer


Abbreviations and acronyms

ABARS aggregate backup and DFSMS Data Facility Storage


recovery support Management
Subsystem
ABEND abnormal end
DSR daily statistics record
ACDS active control data sets
DSS data set services
ACL automatic cartridge
loader EA extended addressability

ACS automatic class ECCST Extended Capacity


selection Cartridge Storage Tape

AMS access method ECSA extended common


services service area

APAR authorized program EOV end of volume


analysis report ESS Enterprise Storage
APF authorized program Server
facility FMID function modification
ATL automatic tape library identifier

BCDS backup control data set FSM Fast Subsequent


Migration
BVR backup cycle volume
record FSR fucntion statistics
record
CA control area
FTP File Transfer Protocol
CDS control data set
GDG generation data group
CF coupling facility
GDS generation data set
CFRM coupling facility
resource manager GRS global resource
serialization
CI control interval
GTF generalized trace
CLIST command list facility
CSA common storage area GUI graphical user interface
CST cartridge storage tape HDA head disk assembly
DAE dump analysis HSM Hierarchical Storage
elimination Manager
DASD direct access storage IBM International Business
device Machines Corporation
DBU delete-if-backed-up ICF integrated catalog
DD data definition facility

DFP Data Facility Product IDRC improved data


recording capability

© Copyright IBM Corp. 1998, 2000 359


IP internet protocol PTF program temporary fix
IPCS interactive problem PU physical unit
control system
RACF resource access control
IPL initial program load facility
ISMF interactive storage RAID redundant array of
management facility independent disks
ISV independent software REXX Restructured Extended
vendor Executor
ITSO International Technical RLS record level sharing
Support Organization
RMM Removable Media
JCL job control language Manager
JES job entry subsystem RVA RAMAC Virtual Array
KSDS key sequenced data set SDM system data mover
LAN local area network SDSP small data set packing
LIC Licensed Internal Code SHCDS sharing control data
sets
MCB BCDS data set record
SMF system management
MCD MCDS data set record
facility
MCDS migration control data
SMP/E System Modification
set
Program Extended
ML1 migration level 1
SMS system-managed
ML2 migration level 2 storage
MTL manual tape library SSID subsystem identifier
MWE management work SSM secondary space
element management
MVS Multiple Virtual Storage STK StorageTek Corporation
OCDS offline control data set TCP/IP Transmission Control
OEM original equipment Protocol/Internet
manufacturer Protocol

PDA problem determination TMM tape mount


aid management

PDS partitioned data set TMS tape management


system
PDSE partitioned data set
extended TMP terminal monitor
program
PPRC Peer-to-Peer Remote
Copy TSO time sharing option

PSCB protected step control TTOC tape table of contents


block TVC tape volume cache

360 DFSMShsm Primer


UCB unit control block
UDP user datagram protocol
VRS vital record
specification
VSAM virtual storage access
method
VSR volume statistics record
VTOC volume table of
contents
VTS virtual tape server
WSDS working space data set
XCF cross-system coupling
facility
XRC Extended Remote Copy

361
362 DFSMShsm Primer
Index
NOVALIDATE and ABARS 319
overview 12
A PPRC/XRC synergy 324
ABARS
QUERY ABARS command 287
See aggregate backup and recovery support
query ABARS parameters 287
ABARS activity log 266
RACF protection 66
ABR record 275
secondary address space 42, 175
activity log 46
selection data 140
administration
SETSYS ABARSKIP 144
converting level 0 DASD volumes 252
SETSYS ABARSOPTIMIZE 144
converting level 1 DASD volumes 253
startup procedure 42
display tapes for recycle 247
using in batch 127
expire old backup versions 245
using with DFSMSrmm 213
EXPIREBV command output 246
allocating trace log data sets 262
FREEVOL command 253
ARCCATGP group 64
HSMPRESS job 255
ARCCMDxx PARMLIB member 35
journal data set maintenanceu 260
ARCINBAK program 123
merging CDSs 256, 325
ARCPRPDO program 264
PDA trace formatter program 264
ARCRPEXT exit 324
query automatic functions 288
ARCTOOLS
query DFSMShsm requests 292
CDS merge 256
recycle function 247
ARCTOOLS utilities 301
reorganizing CDSs 253
ARCUTIL program 302
tasks 245
AUDIT command 271
aggregate backup and recovery support
AUTH command 43, 63
ABACKUP and multivolume BDAM 318
authorized user 43
ABACKUP command 143
automatic backup 123
ABACKUP deletion of output files 318
automatic class selection routines
ABACKUP extra tape volumes 318
defining DFSMShsm data sets 32
ABACKUP tape wait 313
management class 23
ABACKUP task output 145
processing order 9
ABACKUP wait for ML2 321
sample ACS routines 331
ABARS address space initialization 319
specifying tape library functions 223
ABARS dump capture 319
storage class 18
aggregate group definition 138
storage group 29
ARC6030I routing 319
automatic primary space management 5
ARC6035E message 185
automatic secondary space management 6
ARCCMDxx parameters 142
auxiliary host 173
ARECOVER command 148
availability management
ARECOVER JCL 150
ARCCMDxx PARMLIB settings 129
ARECOVER tape wait 313
ARCHBACK macro 155
ARECOVER task output 151
ARCINBAK program 124, 155
deletion of output files during ABACKUP 318
automatic backup 111
disaster recovery 213
back up in batch environment 123
instruction data set 140
BACKDS command 155
ISMF panels 138
BACKVOL command 154
LIST AGGREGATE command 275
command backup 125, 154, 155
management class parameters 141

© Copyright IBM Corp. 1998, 2000 363


command volume dump 154 sample allocation JCL 72
concurrent copy 117, 133, 155 sharing considerations 164
dump processing 131 threshold value 47
duplex tape 121 VSAM SHAREOPTIONS 164
functions 110 BCDS
HBACKDS command 155 See backup control data set
incremental backup 156
management class attributes 112
management class backup attributes 113
C
catalog alias 68
management class setting 156
command availability management 154
number of backup tasks 122
command backup
overview 6
concurrent copy 155
protecting data set backup versions 121
controlling tape resources 125
specifying backup units 120
management class setting 156
specifying dump class 154
releasing tapes 126
spill processing 122
selecting target device 54
stacking dumps 132
command data set backup 54
storage group backup attributes 113
commands
storage group dump 155
ABACKUP 143
summary 127
ADDVOL 191
ARECOVER 148
B AUDIT 271, 272
backup AUTH 43, 63
ARCCMDxx PARMLIB settings 129 authorization 63
batch environment 123 BACKDS 125, 155
data sets in use 122 BACKVOL 127, 154
defining backup environment 80 BACKVOL CDS 260
delete a specific backup data set 247 BACKVOL STORAGEGROUP 327
filtering 157 BDELETE 247
functions for non-SMS-volumes 11 CANCEL 183
functions for SMS-managed storage 10 DEFINE BACKUP 119
inline 7 DEFINE DUMPCLASS 134
multiprocessor considerations 123 DEFINE DUMPCYCLE 134
number of backup tasks 122 DEFINE PRIMARYSPMGMTCYCLE 106
spill processing 122 DEFINE SECONDARYSPMGMTCYCLE 107
backup control data set DELVOL 208
AUDIT BCDS command 272 EXPIREBV 245
CDS reorganization 253 FREEVOL 253
expire old backup versions 245 HBACKDS 126, 155, 157
EXPIREBV command processing 246 HBDELETE 247
incremental backup information 278 HOLD 178
LIST command 273 HRECOVER 159
LIST DUMPCLASS command 279 HSENDCMD 245
LIST DVOL BCDS command 280 LIST BACKUPVOLUME 275
LIST LEVEL BCDS command 277 LIST DATASETNAME MCDS 276
LIST PRIMARY BCDS command 280 LIST DUMPCLASS 279
LIST PRIMARYVOLUME command 278 LIST DVOL BCDS 280
listing migration volumes 282 LIST LEVEL 275, 278

364 DFSMShsm Primer


LIST LEVEL BCDS 277 HSMPRESS job 255
LIST MIGRATIONVOLUME 282 LIST command 273
LIST PRIMARY BCDS 280 merging 256
LIST PRIMARYVOLUME 278 multicluster CDSs 95
LIST TTOC 209 multicluster performance 95
MODIFY 176 overview 70
PATCH 309 removing key range 87
QUERY 285 RLS access mode 85
QUERY ABARS 287 sample BCDS allocation 72
QUERY ACTIVE 288 sample MCDS allocation 71
QUERY AUTOPROGRESS 288 sample OCDS allocation 72
QUERY BACKUP 289 serialization technique 87
QUERY CDS 292 VSAM SHAREOPTIONS 164
QUERY CDSVERSIONBACKUP 291
QUERY DATASETNAME 292
QUERY IMAGE 287
D
DAE description 269
QUERY MIGRATIONLEVEL2 293
data set changed indicator 156
QUERY REQUEST 292
data set compaction 55, 109
QUERY SETSYS 294
optimizing 55
QUERY SPACE 294
data set serialization 44
QUERY STARTUP 294
DCOLLECT function 302
QUERY STATISTICS 295
defining backup environment 80
QUERY TRAPS command 296
DFSMS Optimizer 305
QUERY USER 292
DFSMSdfp 3
QUERY WAITING 296
DFSMSdss 3, 312
RECOVER 159, 160
DFSMSdss stand-alone services 132
RECYCLE 247
DFSMShsm
RELEASE 181
ABARS secondary address space 42
REPORT 297
ACS routines 32
REPORT DAILY 299
activity log 46
REPORT VOLUME 300
activity log messages 46
RESTORE 132
administration tasks 245
STOP 176
ARCRPEXT exit 324
TAPECOPY 207
authorized user 43
TAPEREPL 210
automatic primary space management 5
COMMNDxx PARMLIB member 174
automatic secondary space management 6
common service area 47
auxiliary host 173
concurrent copy 99, 133, 155
base SETSYS parameters 43
RACF protection 67
catalog alias 68
control data sets
command authorization 63
allocation 70
data set naming convention 32
anatomy 255
data set serialization 44
backup 74
data sets 18
backup procedures 98
DDNAMES in start procedure 38
backup tasks 260
DFSMSrmm interaction 192
BACKVOL CDS command 260
directing monitor messages 47
CDS reorganization 253
exit activation 44
creating backup copies 79
functional enhancements 324
extended addressability in a sysplex 172

365
functions for non-SMS-managed volumes 11 DFSMShsm monitoring
functions for SMS-managed volumes 9 ARCTOOLS utilities 301
holding functions 178 ARCUTIL program 302
implementation activities 17 collecting statistics 298
installation exits 44 DCOLLECT 302
interval space management 6 DCOLLECT function 302
management class 23 filtering LIST output 275
management classes for DFSMShsm data 25 function summary report 299
merging CDSs 325 generating reports from DCOLLECT data 305
migration data set prefix 107 getting backup volume statistics 290
monitoring DFSMShsm 273 HSM Monitor/Tuner 305
multihost startup procedure 40 incremental backup information 278
multiple host support 162 information sources 273
operation 173 invoking DCOLLECT using ISMF 304
orderly shutdown 176 LIST BACKUPVOLUME command 275
overview 3 LIST command output 274
primary host 173 LIST command syntax 274
primary system identification 35 LIST DATASETNAME MCDS command 276
problem determination 261 LIST DUMPCLASS command 279
protecting tapes 53, 61 LIST DVOL BCDS command 280
RACF security 56 LIST LEVEL BCDS command 277
reblocking data sets 43 LIST LEVEL command 275, 278
secondary address space 175 LIST PRIMARY BCDS command 280
secondary host promotion 169 LIST PRIMARYVOLUME command 278
secondary system identification 35 listing backup data sets 277
selecting scratch pool 50 listing backup volumes 275
SETSYS command 42 listing dump class attributes 279
small data set packing 109 listing dump volumes 280
SMF records 45 listing migrated data sets 276
SMS considerations 17 listing migration volumes 282
SMS interaction 7 listing ML1 volumes 278
SMS update checklist 33 listing recalled data sets 276
space management 4 QUERY ABARS command 287
spill processing 122 QUERY ACTIVE command 288
start parameters 35 query automatic functions 288
start procedure 174 QUERY BACKUP command 289
starter set 34 query CDS backup information 291
startup parameters 35 QUERY CDS command 292
startup procedure 35 query CDS usage 292
stopping DFSMShsm 176 QUERY CDSVERSIONBACKUP command
storage class 18 291
storage group 29 QUERY command 285
sysplex considerations 167 QUERY command output 285
system dump data set 46 query daily statistics 295
tape management 189 QUERY DATASETNAME command 292
tape reuse 48 query DFSMShsm control parameters 294
TMM parameters 239 query DFSMShsm requests 292
trace log data sets 262 query DFSMShsm statistics 295
tuning 309 QUERY MIGRATIONLEVEL2 command 293

366 DFSMShsm Primer


query ML2 volumes 293 listing dump class attributes 279
query non-SMS volume pools 293, 296 listing dump volumes 280
QUERY REQUEST command 292 Magstar cartridges 132
QUERY SETSYS command 294 number of concurrent copies 131
QUERY SPACE command 294 restoring stacked dumps 132
QUERY STARTUP command 294 SETSYS DUMPIO command 133
QUERY STATISTICS command 295 specifying eligible volumes 131
QUERY TRAPS command 296 stacking 136
QUERY USER command 292 stacking dumps 132
QUERY WAITING command 296 dump processing
REPORT command 297 DEFINE DUMPCLASS 135
REPORT command output 298 defining dump cycle 134
REPORT DAILY command 299 dump class 154
REPORT VOLUMES command 300 functions for non-SMS-managed volumes 11
volume activity report 300 functions for SMS-managed volumes 10
DFSMSopt 3 maximum number of tasks 134
DFSMSrmm 3 SETSYS AUTODUMPSTART 133
ABARS 213 SETSYS DUMPIO 133
ATL considerations 234 SETSYS MAXDUMPTASKS 134
DFSMShsm interaction 192 SETSYS VOLUMEDUMP 133
EDGDFHSM exit 192 storage group dump 155
EDGRMMxx PARMLIB member 195 dump stacking 132, 136
EDGTVEXT exit 192 duplex tape 121, 205
ISMF panels 196 SETSYS DUPLEX 205
recomendations for DFSMShsm 203 tape selection 206
removable media library 192
retaining tapes using expiration dates 194
retaining tapes using VRSs 195
E
esoteric tape unit names 50
security considerations 193
expire old backup versions 245
specifying storage requirements 199
EXPIREBV command 245
storage location 192
expired data set retention 108
using disaster alternate volumes 212
vital record specifications 196
disaster recovery F
ABARS 213 fast subsequent migration
alternate tape volumes 206 overview 102
disaster alternate volumes 211 RECONNECT subparameter 104
duplex tape 51, 205 function summary report
overview 204 duplex indicator 328
SETSYS DISASTERMODE 211
TAPECOPY 207
TAPECOPY command 207
G
global scratch pool 190
dump class 131
dump process
automatic dump start times 132 H
by command 154 hardware compaction 48
concurrent copy 133 HSEND command 245
DASD I/O buffering 133 HSM Monitor/Tuner 305
DEFINE DUMPCYCLE command 134

367
I AUTO BACKUP attribute 116
ICHRIN03 module 58 backup attributes 112
IDRC 48 BACKUP FREQUENCY attribute 113
IGDSMSxx 93 definition 23
implementation ISMF panels 23
activities 17 using concurrent copy 117
alias definition 68 MCDS
allocating trace log data sets 262 See migration control data set
CDS allocation 70 merging CDSs 256
initialization 175 messages
orderly shutdown 176 ARC0003I 185
PROCLIB and PARMLIB setup 34 ARC0164I 291
query daily statistics 295 ARC0312I 236
start procedure 174 ARC0427I 211
stopping DFSMShsm 176 ARC0436I 209
incremental backup ARC0637I 136
eligible data sets 156 ARC0734I 46, 310
inline backup 7 ARC0909E 260
installation exits 44 ARC6030I 319
interval space management 6 ARC6035E 185
migration control data set
CDS reorganization 253
J filtering LIST output 275
journal data set
LIST command 273
BACKVOL CDS command 260
LIST DATASETNAME MCDS command 276
clearing the data set 260
LIST LEVEL command 275, 278
data set maintenance 260
listing migrated data sets 276
manual backup 83
listing migration volumes 282
overview 70
listing ML1 volumes 278
sample allocation JCL 73
listing recalled data sets 276
SETSYS JOURNAL 45
record retention 108
threshold value 47
sample allocation JCL 71
sharing considerations 164
L threshold value 47
log data sets VSAM SHAREOPTIONS 164
activity log data sets 266 migration data set prefix 107
allocating trace log data sets 262 monitoring DFSMShsm 273
archival 267 multicluster control data sets
disabling log functions 268 conversion steps 96
SETSYS ACTLOGTYPE command 266 overview 95
swapping 267 performance considerations 95
switching trace log data sets 263 multihost procedure 40
trace log data sets 262 multihost startup procedure 40
viewing log data sets 266 multiple host environment
control data sets sharing 164
defining all the hosts 163
M defining primary host 162
Magstar tape drives 230
highlights 174
management class
multitasking 166

368 DFSMShsm Primer


overview 162 auditing 271
resource serialization attributes 164 disabling log functions 268
volume serialization 166 IPCS considerations 46
monitoring DFSMShsm 273
PDA facility 261
O PDA trace formatter 264
OCDS
preventing dump deadlock 322
See offline control data set
problem determination 261
offine control data set
QUERY TRAPS command 296
sample allocation JCL 72
QUERY WAITING command 296
offline control data set
SVC dumps 268
CDS reorganization 253
switching trace log data sets 263
LIST command 273
trace log data sets 262
sharing considerations 164
problem determination aid
threshold value 47
MWE control block 328
VSAM SHAREOPTIONS 164
operation
automatic start 174 Q
changing DFSMShsm control parameters 186 QUERY command 285
operations
activities 173
CANCEL command 183
R
RACF
cancel queued requests 183
ABARS protection 66
display tapes for recycle 247
ADDUSER command 56
HOLD command authorization 179
ARCCATGP group 64
HOLD function processing 180
authorizing DFSMShsm commands 63
holding functions 178
catalog operations for migrated data sets 64
manual start 175
changing console Facility class ID 313
modifying timing of automatic functions 186
command authorization 63
partitioning DFSMShsm functions 173
copying discrete data set profiles 54
prevent command backup 180
ICHRIN03 58
prevent recalls from tape 180
LISTDSD command 60
RELEASE command 181
protecting activity logs 61
restart after abnormal end 184
protecting backup data set 65
start procedure 174
protecting concurrent copy 67
starting DFSMShsm 174
protecting data set backup versions 121
stopping DFSMShsm 176, 177
protecting DFSMShsm resources 60
protecting DFSMShsm tapes 61
P protecting migration data set 65
PDA facility 261 protection for ABARS 66
primary DFSMShsm system 35 RDEFINE command 57
primary host 173 RLIST command 58
probelm determination RLS facility classes profiles 93
ARCPRPDO program 264 SETSYS RACFIND 53
problem determination started procedure table 57
activity log data sets 266 tape security 53
allocating trace log data sets 262 TAPEVOL resource class 61
archiving PDA trace data 263 verifying DFSMShsm generic data set profile
AUDIT command 271 60

369
record level sharing SETSYS RECYCLEPERCENT command 248
altering IGDSNSxx member 93 SETSYS TAPEDELETION command 250
altering SMS configuration 90 setting a threshold 248
cache and lock structures 88 specifying tape units 109
DFSMShsm procedure 94 start the process 249
implementation 87 tape copy considerations 250
implementation checklist 94 tape drives 47
RACF Facility class profiles 93 RECYCLE command 247
RACF facility class profiles 93 recycle function 247
sample SHCDS allocation JCL 88 restore process
serialization 85 restoring from a dump copy 159
SHCDS activation 94 SETSYS parameters 158
SMSVSAM address space 93 restore processing
storage class update 92 functions for non-SMS-managed volumes 11
recover processing functions for SMS-manages volumes 10
functions for SMS-managed volumes 10 RLS
recovery process See record level sharing
date limit 161
full-volume restore 161
HRECOVER command 159
S
sample ACS routines 331
out-of-space conditions 160
secondary address space 175
RECOVER command 159, 160
secondary DFSMShsm system 35
recovering cataloged data sets 159
secondary host promotion 43, 169
recovering from a specific dump volume 160
configuring automatic backup 171
recovering from incremental backup 162
enabling secondary host 169
replacing existing data sets 159
primary host 169
restrictions 158
secondary host 169
SETSYS parameters 158
SETSYS PROMOTE 170
specifying number of recovery tasks 158
SSM host 169
using generation data sets 161
take back function 171
recovery processing
secondary system parameters 40
functions for non-SMS-managed volumes 11
security
RECYCLE
providing security to DFSMShsm tapes 53
conversion to new tape media 250
SETSYS parameter
converting a range of media 251
BACKUPPREFIX 65
converting to new DASD Volumes 252
SETSYS parameters
display eligible tapes 247
ABARSKIP 144
DUPLEX tape 206
ABARSPROCNAME 42
move to new tape media 233
ACCEPTPSCBUSERID 54
moving data sets 252
ACTLOGMSGLVL 46
number of tasks 47
ACTLOGTYPE 46, 61, 266
RECYCLE command 233
authorization 186
RECYCLE DISPLAY command 248
AUTOBACKUPSTART 118, 186
RECYCLE EXECUTE command 249
AUTODUMPSTART 132, 186
RECYCLE SELECT command 250
BACKUP 120, 158
RECYCLE VERIFY command 249
BACKUPCOPIES 75
security considerations 250
BACKUPPREFIX 121
SETSYS ML2RECYCLEPERCENT command
CDSVERSIONBACKUP 74, 83
105, 248

370 DFSMShsm Primer


COMPACT 55, 109 PRIMARYSPMGMTSTART 106
COMPACTPERCENT 55 PROFILEBACKUP 54
CONVERSION 43 PROMOTE 43, 170
CSALIMITS 47 RACFIND 53
DFHSMDATASETSERIALIZATION 44 RECYCLEOUTPUT 109
DISASTERMODE 211 RECYCLEPERCENT 248
DSBACKUP 54 RECYCLETAPEALLOCATION 49
DUMPIO 133 SECONDARYSPMGMSTART 186
DUPLEX 51, 121, 205 SECONDARYSPMGMTSTART 106, 107
ERASEONSCRATCH 53 SELECTVOLUME 49, 223
EXITOFF 44 SMALLDATASETPACKING 109
EXITON 44, 191 SMF 45
EXPIREDDATASETS 108 SOURCENAMES 55
INCREMENTALBACKUP 115, 156 spanning data sets 49
INPUTTAPEALLOCATION 49 SYS1DUMP 46
INTERVALMIGRATION 107 SYSOUT 46
JES2 43 TAPEDELETION 49, 223, 250
JES3 43 TAPEHARDWARECOMPACT 48
JOURNAL 45 TAPEINPUTPROMPT 51
MAXABARSADDRESSSPACE 175 TAPEMAXRECALLTASKS 106
MAXBACKUPTASKS 122, 187 TAPEMIGRATION 104
MAXDSRECOVERTASKS 158 TAPERECALLLIMITS 104, 235
MAXDUMPTASKS 134 TAPESECURITY 53, 61, 194
MAXEXTENTS 109 TAPESPANSIZE 49
MAXINTERVALTASKS 106 TAPEUTILIZATION 52
MAXMIGRATIONTASKS 106, 187 USERDATASETSERIALIZATION 44
MAXRECALLTASKS 105 USERUNITTABLE 50, 120, 136
MAXRECYCLETASKS 47 VOLUMEDUMP 133
MIGRATEPREFIX 65, 107 SHCDS
MIGRATIONCLEANUPDAYS 108, 298 definition 87
MIGUNITNAME 105 small data set packing 109
ML2RECYCLEPERCENT 105, 248 SMF records 45, 177
MONITOR 47 SMS
MOUNTWAITTIME 51 See system managed storage
NOACCEPTPSCBUSERID 54 SMSVSAM address space 93
NOCONVERSION 43 space management
NOCSALIMITS 47 automatic primary space management 5
NOERASEONSCRATCH 53 automatic secondary space management 6
NOPROFILEBACKUP 54 concurrent recalls 105
NORACFIND 53 data set compaction 109
NOSMALLDATASETPACKING 109 DEFINE PRIMARYSPMGMTCYCLE 107
NOSMF 45 DEFINE SECONDARYSPMGMTCYCLE 107
NOSPILL 122 expired data set retention 108
NOSYS1DUMP 46 extending tapes 110
NOTAPEHARDWARECOMPACT 48 fast subsequent migration 102
OBJECTNAMES 55 functions 101
OUTPUTTAPEALLOCATION 49 functions for non-SMS-managed volumes 11
PARTIALTAPE 48, 110, 208 functions for SMS-managed volumes 10
PRIMARYSPMGMSTART 186 interval migration improvements 327

371
interval migration tasks 106 sample storage class ACS routine 331
interval space management 6 sample storage group ACS routine 341
migration 4 storage class 8
migration data set prefix 107 storage group 8
output unit allocation 105 update checklist 33
overview 4
recall 4
recycle 5
T
tape management
recycle tape unit 109
3490E emulation 230
recycling ML2 tape 105
ABARS 213
small data set packing 109
ACS routine parameters 223
specifying data set extents 109
ADDVOL command 191
tape recall tasks 106
ARCCMDxx PARMLIB member 231
volume migration tasks 106
ARCTVEXT exit 191
spanning data sets 49
ATL RECALL processing 235
specific scratch pool 191
conversion to new media 250
spill processing 122
data class definition 216
spill tape volumes 247
DELVOL command 208
starter set
DFSMSrmm interaction 192
ARCSTRST 68
disaster alternate volumes 211
starter set JCL
duplex tape 51, 121, 223
HSMPRESS job 255
DUPLEX tape data set names 206
storage class
EDGTVEXT exit 192
definition 18
erase-on-scratch 53
ISMF panels 19
esoteric names 120
RLS changes 91
esoteric removal of ACL 321
using concurrent copy 118
esoteric unit names 50
storage group
global scratch pool 50, 189, 190, 215
AUTOBACKUP attribute 111
ISMF data class panels 217
backup attributes 113
LIBRARYBACKUP subparameter 52
definition 29
LIBRARYMIGRATION subparameter 52
ISMF panels 30
list available tapes 232
storage management system
list partial tapes 232
updating configuration for RLS 90
LIST TTOC command 209
sysplex considerations
Magstar tape drives 230
CDS extended addressability 172
marking tapes full 232
coexistence 168
marking volumes full 208
overview 167
mount wait time 51
single GRSplex serialization 167
move to new tape media 233
system dump data set 46
operator prompts 51
system managed storage
optimizing usage 236
ACS routines 8
overview 189
aggregate group 8
PERCENTFULL parameter 233
data class 7
RACF protecting tapes 61
DFSMShsm implementation 17
releasing command backup tapes 126
management class 8
replacing tape volumes 210
overview 7
SETSYS PARTIALTAPE command 208, 223
sample data class ACS routine 346
SETSYS SELECTVOLUME command 223
sample management class ACS routine 336

372 DFSMShsm Primer


SETSYS TAPEDELETION command 223 changing the delay for takeaway from ABACK-
SETSYS TAPESECURITY 194 UP 320
specific scratch pool 50, 189, 190 checkpoint data set migration 322
storage class definition 219 cleanup of output files for ABARS 319
storage group definition 220 DBU disabling for SMS 321
storage group ISMF panels 220 default dump block size 313
system-managed tape libraries 214 default number of recall requests 319
system-managed tape library definition 214 deletion of output files during ABACKUP 318
tape library functions 214 DFSMSdss ALLDATA for PDS 313
tape management system interaction 191 DFSMSdss ALLDATA removal 313
tape media 190 DFSMSdss ALLEXCP removal 313
tape mount management description 237 DFSMSdss COMPRESS 312
tape pools 49 DFSMSdss parameters 312
tape reuse 48 dump capture for ABARS 319
tape security 53 dump deadlock prevention 322
tape utilization 52 enabling tape takeaway during tapecopy 320
TAPECOPY command 207 esoteric removal of ACL 321
TAPECOPY data set names 209 expiration date GDS scratch 310
TAPEREPL command 210 JES3 migration delay 311
TMM implementation plan 238 JES3 partial release disable 310
TTOC record 209 JES3 tape 311
using command backup 125 ML2 wait in ABACKUP 321
virtual tape server 239 multivolume BDAM and ABACKUP 318
VOLCAT 214 password-protected GDS scratch 310
volume mount analyzer 238 PATCH command 309
WTOR changing for tape 321 preventing ABARS cleanup of output files 319
tape mount management 237 recall requests default number 319
tape takeaway by recall 103 restarting automatic backup 315
tape volume recycle 247 restarting automatic dump 316
trace log data sets 262 restarting automatic space management 315
TTOC information 247 SMS data set messages 310
tuning DFSMShsm TSO user wait prevention 318
ABACKUP and multivolume BDAM 318 WTO changing for tape 321
ABACKUP deletion of output files 318 WTOR changing for tape 321
ABACKUP extra tape volumes 318
ABACKUP tape wait 313
ABACKUP wait for ML2 321
V
virtual concurrent copy 100
ABARS address space initialization 319
vital record specifications 196
ABARS and NOVALIDATE 319
VOLCAT 214
ACL esoteric removal 321
volume activity statistics 300
address space initialization wait 319
volume mount analyzer 238
ARC6030I routing 319
VRS
ARCCMDxx PATCH usage 310
See vital record specifications
ARECOVER tape wait 313
VSAM RLS 85
automatic function rerunning 315
buffer defaults 312
changing console Facility class ID 313
changing default tape data set names 317
changing the compaction ratio 320

373
374 DFSMShsm Primer
IBM Redbooks review
Your feedback is valued by the Redbook authors. In particular we are interested in situations where a
Redbook "made the difference" in a task or problem you encountered. Using one of the following
methods, please review the Redbook, addressing value, subject matter, structure, depth and
quality as appropriate.
• Use the online Contact us review redbook form found at ibm.com/redbooks
• Fax this form to: USA International Access Code + 1 845 432 8264
• Send your comments in an Internet note to [email protected]

Document Number SG24-5272-01


Redbook Title DFSMShsm Primer

Review

What other subjects would you


like to see IBM Redbooks
address?

Please rate your overall O Very Good O Good O Average O Poor


satisfaction:

Please identify yourself as O Customer O Business Partner O Solution Developer


belonging to one of the O IBM, Lotus or Tivoli Employee
following groups: O None of the above

Your email address:


The data you provide here may
be used to provide you with O Please do not use the information collected here for future
information from IBM or our marketing or promotional contacts or other communications beyond
business partners about our the scope of this transaction.
products, services or activities.

Questions about IBM’s privacy The following link explains how we protect your personal information.
policy? ibm.com/privacy/yourprivacy/

© Copyright IBM Corp. 1998, 2000 375


DFSMShsm Primer

(0.5” spine)
0.475”<->0.875”
250 <-> 459 pages
®

DFSMShsm Primer

A MUST READ book DFSMShsm provides space, availability, and tape mount
for those new to management functions in a storage device hierarchy for both
INTERNATIONAL
DFSMShsm system-managed, and non-system-managed storage TECHNICAL
environments. DFSMShsm allows you to automate your SUPPORT
Learn about the storage management tasks improving the productivity by ORGANIZATION
effectively managing the storage devices.
latest DFSMShsm
enhancements
This IBM Redbook provides technical storage specialists and
storage administrators with the basic DFSMShsm knowledge BUILDING TECHNICAL
Many examples of for implementing and customizing DFSMShsm at the 2.10 INFORMATION BASED ON
how to use PRACTICAL EXPERIENCE
level. Hints and tips on the daily operation, monitoring, and
DFSMShsm tuning are included. Sysplex environment considerations are
also included. IBM Redbooks are developed by
the IBM International Technical
Those implementing DFSMShsm for the first time will find Support Organization. Experts
from IBM, Customers and
valuable information for exploiting the DFSMShsm functions.
Partners from around the world
Experienced persons will find that this redbook can be used create timely technical
as an update to the latest DFSMShsm functions, and it shows information based on realistic
how to use those functions in an existing DFSMShsm scenarios. Specific
installation. recommendations are provided
to help you implement IT
solutions more effectively in
your environment.

For more information:


ibm.com/redbooks

SG24-5272-01 ISBN 0738421057

You might also like