12.01.2013 Views

z/OS V1R8 DFSMS Technical Update - IBM Redbooks

z/OS V1R8 DFSMS Technical Update - IBM Redbooks

z/OS V1R8 DFSMS Technical Update - IBM Redbooks

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ibm.com/redbooks<br />

Front cover<br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong><br />

<strong>Technical</strong> <strong>Update</strong><br />

Understand the features and functions<br />

in z/<strong>OS</strong> <strong>DFSMS</strong> V1.8<br />

Read implementation hints and<br />

tips<br />

Learn <strong>DFSMS</strong> trends and<br />

directions<br />

Mary Lovelace<br />

Anthony Fletcher<br />

Daniel Perkin<br />

Norbert Schlumberger<br />

Andre Coelho<br />

Gerhard Weisshaar


International <strong>Technical</strong> Support Organization<br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

April 2008<br />

SG24-7435-00


Note: Before using this information and the product it supports, read the information in “Notices” on<br />

page ix.<br />

First Edition (April 2008)<br />

This edition applies to Version 1, Release 8 of z/<strong>OS</strong> <strong>DFSMS</strong> (product number 5694-A01).<br />

© Copyright International Business Machines Corporation 2008. All rights reserved.<br />

Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule<br />

Contract with <strong>IBM</strong> Corp.


Contents<br />

Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix<br />

Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x<br />

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi<br />

The team that wrote this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi<br />

Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii<br />

Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii<br />

Chapter 1. Something old, something new. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.1 What was new in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.1.1 <strong>DFSMS</strong>dfp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.1.2 <strong>DFSMS</strong>dss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.1.3 <strong>DFSMS</strong>hsm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.1.4 <strong>DFSMS</strong>rmm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.1.5 OAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 What is new in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2.1 <strong>DFSMS</strong>dfp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

1.2.2 <strong>DFSMS</strong>dfp OAM enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2.3 <strong>DFSMS</strong>dss enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2.4 <strong>DFSMS</strong>hsm enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2.5 <strong>DFSMS</strong>rmm enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

Chapter 2. Useful information to get you started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.1 Cheating with OAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2 HSM fast migration reconnect users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.3 Users of Fast Subsequent Migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.4 Tape security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.5 RECYCLE error - potential data loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.6 Management class retention limit and tape data sets . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.1 Catalog enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

3.1.1 LISTCAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

3.1.2 Dynamic service count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

3.2 SMS volume selection performance enhancement. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

3.3 COPY SCDS to ACDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.4 SMS serviceability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.5 VSAM code modernization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

3.6 RLS updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3.6.1 RLS enhanced recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

3.6.2 VSAM RLS DIAG command on z/<strong>OS</strong> <strong>V1R8</strong> system. . . . . . . . . . . . . . . . . . . . . . . 26<br />

3.6.3 VSAM RLS DIAG command on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems. . . . . . . . . . . . . . . . . . . 27<br />

3.6.4 VSAM RLS performance enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3.6.5 VSAM RLS use of 64-bit data buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

3.6.6 DSS LOGICAL COPY WARNING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.6.7 Monitoring the VSAM RLS use of 64-bit data buffers . . . . . . . . . . . . . . . . . . . . . . 30<br />

3.6.8 SMF Record type 42 Subtype 16 information example. . . . . . . . . . . . . . . . . . . . . 30<br />

3.6.9 SMF Record type 42 Subtype 18 information example. . . . . . . . . . . . . . . . . . . . . 36<br />

3.6.10 SMF Record type 42 Subtype 19 information example. . . . . . . . . . . . . . . . . . . . 44<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. iii


3.7 Device manager enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

3.7.1 Rapid index rebuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

3.7.2 New MODIFY DEVMAN parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

3.8 PDSE enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

3.8.1 PDSE PO5 module format compatibility on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems. . . . . . . . . . 55<br />

3.8.2 PDSE 64-bit virtual storage use enablement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

3.8.3 PDSE 64-bit virtual storage option setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

3.8.4 Retain buffers beyond PDSE close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

3.8.5 PDSE retain buffers beyond PDSE close enablement . . . . . . . . . . . . . . . . . . . . . 62<br />

3.8.6 <strong>DFSMS</strong> <strong>V1R8</strong> PDSE enhancements in storage requirements . . . . . . . . . . . . . . . 66<br />

3.9 PDSE buffer management statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

3.9.1 BMF data capture preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

3.9.2 BMF analysis preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

3.9.3 SMF statistics interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

3.10 Integrated Catalog Forward Recovery Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

3.10.1 ICFRU system flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

3.10.2 ICFRU installation readiness overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

3.10.3 Installation readiness preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

3.10.4 Installation readiness verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

3.10.5 ICFRU implementation final steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

Chapter 4. OAM enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

4.1 Binary large object support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

4.1.1 Implementing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

4.1.2 Validating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />

4.2 Immediate backup copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />

4.2.1 Implementing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

4.2.2 Validating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

4.3 Automated selection of RECYCLE volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

4.3.1 Implementing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

4.3.2 Validating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

4.4 GLOBAL display keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

4.4.1 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

4.5 <strong>Update</strong> from z/<strong>OS</strong> V1.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

Chapter 5. <strong>DFSMS</strong>dss enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

5.1 Defining logical and physical processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

5.2 Physical and logical data set difference summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

5.3 Physical and logical data set copy specification changes. . . . . . . . . . . . . . . . . . . . . . 136<br />

5.3.1 Logical copy operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

5.3.2 DSS LOGICAL COPY warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />

5.3.3 Physical copy operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />

6.1 Error handling on alternate duplex tapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

6.2 Recycle SYNCDEV at intervals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

6.3 Migration scratch queue for non-VSAM data set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />

6.3.1 Individual data set restore for ARECOVER processing . . . . . . . . . . . . . . . . . . . 152<br />

6.4 New command ALTERPRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

7.1 Fast replication overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170<br />

7.1.1 FlashCopy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171<br />

7.1.2 <strong>DFSMS</strong>hsm fast replication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />

iv z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


7.1.3 Preparing for fast replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />

7.2 Backup and recovery of copy pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185<br />

7.2.1 Creating a fast replication backup copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185<br />

7.2.2 Using fast replication backups for recovery of copy pools and volumes. . . . . . . 188<br />

7.3 Tape support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />

7.3.1 Dump of target volumes during autodump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191<br />

7.3.2 FRBACKUP DUMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199<br />

7.3.3 FRBACKUP DUMPONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />

7.3.4 Copy pools that request NOCOPY type FlashCopy processing . . . . . . . . . . . . . 213<br />

7.3.5 Two kinds of dump copies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />

7.3.6 Recovery from fast replication dumps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222<br />

7.4 Data set recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224<br />

7.4.1 Data set filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225<br />

7.4.2 Multi-volume data sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

7.4.3 Data set recovery from fast replication dumps . . . . . . . . . . . . . . . . . . . . . . . . . . 236<br />

7.4.4 Hints and tips for the recovery of data sets that no longer exist . . . . . . . . . . . . . 239<br />

7.5 Reporting on the <strong>DFSMS</strong>hsm fast replication environment . . . . . . . . . . . . . . . . . . . . 241<br />

7.5.1 Statistic records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242<br />

7.5.2 REPORT command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242<br />

7.5.3 DSR records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />

7.5.4 <strong>Update</strong>d VSR records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />

7.5.5 New fields in FSR records. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244<br />

7.6 Security for <strong>DFSMS</strong>hsm fast replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251<br />

7.7 Audit and error recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253<br />

7.7.1 FRDELETE considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253<br />

7.7.2 Decreasing copy pool backup volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />

7.7.3 Reuse of invalid backup versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />

7.7.4 FIXCDS display and repair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />

7.7.5 AUDIT COPYPOOLCONTROLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263<br />

8.1 Support true e-mail address for the RMM NOTIFY function . . . . . . . . . . . . . . . . . . . . 264<br />

8.2 Support true e-mail address implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

8.2.1 Basic setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

8.2.2 Defining an owner’s e-mail address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

8.2.3 SMTP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266<br />

8.2.4 E-mail message configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />

8.3 Setting up <strong>DFSMS</strong>rmm common time support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270<br />

8.3.1 <strong>DFSMS</strong>rmm - using the date and time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271<br />

8.3.2 Date and time in a <strong>DFSMS</strong>rmm client server environment. . . . . . . . . . . . . . . . . 271<br />

8.3.3 Enable common time support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272<br />

8.3.4 Potential problems using local time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />

8.4 <strong>DFSMS</strong>rmm VRS policy management simplification . . . . . . . . . . . . . . . . . . . . . . . . . 276<br />

8.4.1 Separation of Data Set Name Mask from the Policy. . . . . . . . . . . . . . . . . . . . . . 276<br />

8.4.2 Release options applied if VRS matched . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277<br />

8.4.3 Special ABEND and OPEN via DSNAME match . . . . . . . . . . . . . . . . . . . . . . . . 279<br />

8.4.4 Find unused VRSs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280<br />

8.4.5 Incomplete VRS chains - dummy VRS *broken*. . . . . . . . . . . . . . . . . . . . . . . . . 281<br />

8.4.6 Toleration and removal of old functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282<br />

8.4.7 Conversion to <strong>DFSMS</strong>rmm from other tape management systems . . . . . . . . . . 284<br />

8.5 <strong>DFSMS</strong>rmm usability items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286<br />

8.5.1 <strong>Update</strong>s to RMM TSO SEARCHVOLUME subcommand. . . . . . . . . . . . . . . . . . 286<br />

8.5.2 ISPF lists show retention information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288<br />

Contents v


8.5.3 SELECT primary command in RMM dialog search results. . . . . . . . . . . . . . . . . 291<br />

8.5.4 RMM TSO CHANGEVRS subcommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295<br />

8.5.5 RMM TSO SEARCHOWNER subcommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . 297<br />

8.5.6 Rexx variable constraint relief. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300<br />

8.6 Enabling ISPF Data Set List (DSLIST) support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />

8.6.1 Implementation steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />

8.6.2 Use the ISPF Configuration Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304<br />

8.6.3 Using the ISPF Data Set List Utility support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310<br />

8.6.4 Move the ISPCFIGU module to the SISPLPA library (optional) . . . . . . . . . . . . . 313<br />

8.7 Prepare for future releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313<br />

8.7.1 Set a <strong>DFSMS</strong>rmm control data set ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314<br />

8.7.2 Re-allocate your <strong>DFSMS</strong>rmm control data set . . . . . . . . . . . . . . . . . . . . . . . . . . 315<br />

8.7.3 <strong>Update</strong> LRECL for REPORT, BACKUP, and JRNLBKUP DD . . . . . . . . . . . . . . 317<br />

8.7.4 Migrate from VRSEL(OLD) to VRSEL(NEW) . . . . . . . . . . . . . . . . . . . . . . . . . . . 319<br />

Chapter 9. Tape security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331<br />

9.1 Tape data set authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332<br />

9.1.1 Recommendations for tape security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332<br />

9.1.2 Overview of the TAPEVOL and TAPEDSN processing . . . . . . . . . . . . . . . . . . . 333<br />

9.1.3 How the <strong>DFSMS</strong> V1.8 tape data set authority checking works. . . . . . . . . . . . . . 335<br />

9.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338<br />

9.2.1 Check all high-level qualifiers on tape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339<br />

9.2.2 <strong>Update</strong> DEVSUPnn PARMLIB member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340<br />

9.3 Removing TAPEVOL and TAPEDSN processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342<br />

9.3.1 Check and modify your RACF settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342<br />

9.3.2 Check and modify your <strong>DFSMS</strong>hsm settings . . . . . . . . . . . . . . . . . . . . . . . . . . . 346<br />

9.3.3 Clean up your TAPEVOL profiles using <strong>DFSMS</strong>rmm settings . . . . . . . . . . . . . . 347<br />

9.3.4 Clean up your TAPEVOL profiles using commands . . . . . . . . . . . . . . . . . . . . . . 349<br />

9.4 Error messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351<br />

9.5 Testing various security settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353<br />

9.5.1 Test case 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355<br />

9.5.2 Test case 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358<br />

9.5.3 Test case 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360<br />

9.5.4 Test case 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363<br />

9.5.5 Test case 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365<br />

9.5.6 Test case 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368<br />

9.5.7 Test case 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371<br />

9.5.8 Test case 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374<br />

9.5.9 Test case 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377<br />

9.5.10 Test case 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379<br />

9.5.11 Test case 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382<br />

9.5.12 Test case 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385<br />

9.5.13 Test case 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387<br />

9.5.14 Test case 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390<br />

9.5.15 Test case 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392<br />

9.5.16 Test case 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395<br />

9.5.17 Test case 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399<br />

9.5.18 Test case 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402<br />

9.5.19 Test case 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405<br />

9.5.20 Test case 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409<br />

9.5.21 Test case 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410<br />

9.5.22 Test case 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413<br />

9.5.23 Test case 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416<br />

vi z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.24 Test case 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419<br />

9.5.25 Test case 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422<br />

9.5.26 Test case 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424<br />

9.5.27 Test case 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427<br />

9.5.28 Test case 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430<br />

9.5.29 Test case 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432<br />

9.5.30 Test case 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435<br />

9.5.31 Test case 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438<br />

9.5.32 Test case 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440<br />

9.5.33 Test case 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444<br />

9.5.34 Test case 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446<br />

9.5.35 Test case 35 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448<br />

9.5.36 Test case 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451<br />

Appendix A. APAR text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455<br />

APARs referenced in the book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456<br />

OA17704. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456<br />

OA11708. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457<br />

OA13332. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458<br />

OA14666. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459<br />

OA16191. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459<br />

OA16192. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460<br />

OA18319. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462<br />

OA18465. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462<br />

OA19493. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464<br />

OA20170. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464<br />

OA20242. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465<br />

OA09928. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465<br />

OW45264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466<br />

OW43224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466<br />

OA17734. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467<br />

OA16372. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468<br />

OA17415. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469<br />

OA20293. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471<br />

OA17011. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474<br />

Appendix B. Code samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477<br />

SMF record type 42 sub type 1 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478<br />

SMF record type 85 subtype 38 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 484<br />

SMF record type 85 subtype 39 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 490<br />

SMF record type 85 subtype 40 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 496<br />

SMF record type 85 subtype 32-35 data display program . . . . . . . . . . . . . . . . . . . . . . . . . 502<br />

SMF record type 85 subtype 1-7 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 513<br />

SMF record type 42 subtype 16 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 522<br />

SMF Record type 42 subtype 18 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 534<br />

SMF record type 42 subtype 19 data display program . . . . . . . . . . . . . . . . . . . . . . . . . . . 547<br />

Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561<br />

<strong>IBM</strong> <strong>Redbooks</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561<br />

Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561<br />

Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562<br />

How to get <strong>IBM</strong> <strong>Redbooks</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562<br />

Help from <strong>IBM</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562<br />

Contents vii


Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563<br />

viii z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Notices<br />

This information was developed for products and services offered in the U.S.A.<br />

<strong>IBM</strong> may not offer the products, services, or features discussed in this document in other countries. Consult<br />

your local <strong>IBM</strong> representative for information about the products and services currently available in your area.<br />

Any reference to an <strong>IBM</strong> product, program, or service is not intended to state or imply that only that <strong>IBM</strong><br />

product, program, or service may be used. Any functionally equivalent product, program, or service that does<br />

not infringe any <strong>IBM</strong> intellectual property right may be used instead. However, it is the user's responsibility to<br />

evaluate and verify the operation of any non-<strong>IBM</strong> product, program, or service.<br />

<strong>IBM</strong> may have patents or pending patent applications covering subject matter described in this document. The<br />

furnishing of this document does not give you any license to these patents. You can send license inquiries, in<br />

writing, to:<br />

<strong>IBM</strong> Director of Licensing, <strong>IBM</strong> Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.<br />

The following paragraph does not apply to the United Kingdom or any other country where such<br />

provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION<br />

PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR<br />

IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,<br />

MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURP<strong>OS</strong>E. Some states do not allow disclaimer of<br />

express or implied warranties in certain transactions, therefore, this statement may not apply to you.<br />

This information could include technical inaccuracies or typographical errors. Changes are periodically made<br />

to the information herein; these changes will be incorporated in new editions of the publication. <strong>IBM</strong> may make<br />

improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time<br />

without notice.<br />

Any references in this information to non-<strong>IBM</strong> Web sites are provided for convenience only and do not in any<br />

manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the<br />

materials for this <strong>IBM</strong> product and use of those Web sites is at your own risk.<br />

<strong>IBM</strong> may use or distribute any of the information you supply in any way it believes appropriate without<br />

incurring any obligation to you.<br />

Information concerning non-<strong>IBM</strong> products was obtained from the suppliers of those products, their published<br />

announcements or other publicly available sources. <strong>IBM</strong> has not tested those products and cannot confirm the<br />

accuracy of performance, compatibility or any other claims related to non-<strong>IBM</strong> products. Questions on the<br />

capabilities of non-<strong>IBM</strong> products should be addressed to the suppliers of those products.<br />

This information contains examples of data and reports used in daily business operations. To illustrate them<br />

as completely as possible, the examples include the names of individuals, companies, brands, and products.<br />

All of these names are fictitious and any similarity to the names and addresses used by an actual business<br />

enterprise is entirely coincidental.<br />

COPYRIGHT LICENSE:<br />

This information contains sample application programs in source language, which illustrate programming<br />

techniques on various operating platforms. You may copy, modify, and distribute these sample programs in<br />

any form without payment to <strong>IBM</strong>, for the purposes of developing, using, marketing or distributing application<br />

programs conforming to the application programming interface for the operating platform for which the sample<br />

programs are written. These examples have not been thoroughly tested under all conditions. <strong>IBM</strong>, therefore,<br />

cannot guarantee or imply reliability, serviceability, or function of these programs.<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. ix


Trademarks<br />

The following terms are trademarks of the International Business Machines Corporation in the United States,<br />

other countries, or both:<br />

<strong>Redbooks</strong> (logo) ®<br />

z/<strong>OS</strong>®<br />

CICS®<br />

DB2®<br />

<strong>DFSMS</strong><br />

<strong>DFSMS</strong>dfp<br />

<strong>DFSMS</strong>dss<br />

<strong>DFSMS</strong>hsm<br />

x z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

<strong>DFSMS</strong>rmm<br />

DFSORT<br />

DS8000<br />

Enterprise Storage Server®<br />

FlashCopy®<br />

<strong>IBM</strong>®<br />

MVS<br />

<strong>OS</strong>/390®<br />

The following terms are trademarks of other companies:<br />

<strong>Redbooks</strong>®<br />

RACF®<br />

RAMAC®<br />

REXX<br />

RMF<br />

Sysplex Timer®<br />

System Storage<br />

TotalStorage®<br />

Shared Virtual Array, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United<br />

States, other countries, or both.<br />

FRx, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or<br />

both.<br />

Other company, product, or service names may be trademarks or service marks of others.


Preface<br />

Each release of <strong>DFSMS</strong> builds upon the previous version to provide enhanced storage<br />

management, data access, device support, program management, and distributed data<br />

access for the z/<strong>OS</strong>® platform in a system-managed storage environment.<br />

This <strong>IBM</strong>® <strong>Redbooks</strong>® publication provides a technical overview of the functions and<br />

enhancements in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> and follow-on releases. It provides you with the<br />

information that you need to understand and evaluate the content of these <strong>DFSMS</strong> releases,<br />

along with practical implementation hints and tips. Also included are enhancements that were<br />

made available through an enabling PTF that have been integrated into z/<strong>OS</strong> V1R7 <strong>DFSMS</strong>.<br />

This publication is written for storage professionals and system programmers who have<br />

experience with the components of <strong>DFSMS</strong>. It provides sufficient information so that you can<br />

start prioritizing the implementation of new functions and evaluate their applicability in your<br />

<strong>DFSMS</strong> environment.<br />

The team that wrote this book<br />

This book was produced by a team of specialists from around the world working at the<br />

International <strong>Technical</strong> Support Organization, San Jose Center.<br />

Mary Lovelace is a Consulting IT Specialist at the International <strong>Technical</strong> Support<br />

Organization. She has more than 20 years of experience with <strong>IBM</strong> in large systems, storage<br />

and storage networking product education, system engineering and consultancy, and<br />

systems support. She has written many <strong>IBM</strong> <strong>Redbooks</strong> on TotalStorage® Productivity Center<br />

and z/<strong>OS</strong> storage products.<br />

Anthony Fletcher is an IT Specialist working with the Global Services Delivery (GSD) z/<strong>OS</strong><br />

software platform of <strong>IBM</strong> Global Services On Demand Infrastructure Services, based in New<br />

Zealand but working for New Zealand and Australia. He has 36 years of experience in z/<strong>OS</strong><br />

and <strong>OS</strong>/390® and their predecessors and related components both as a customer of <strong>IBM</strong> and<br />

with <strong>IBM</strong> Global Services. He is a Team Leader for the mainframe operations of four diverse<br />

clients in the banking, airline, investment, and telecommunications industries. He holds a<br />

degree in Electrical Engineering from SALFORD University, Lancashire, UK. His main areas<br />

of expertise include <strong>DFSMS</strong>, <strong>DFSMS</strong>rmm, and <strong>DFSMS</strong>hsm, and he has a working<br />

knowledge of RACF®. He also has experience in installing non-<strong>IBM</strong> products for the GSD<br />

platform.<br />

Daniel Perkin is a Software Engineer with <strong>IBM</strong> DASD test organization in Tucson, Arizona.<br />

He has nine years of experience in large systems and storage. His main areas of expertise<br />

include z/<strong>OS</strong> Systems Programming, DASD, and copy services.<br />

Norbert Schlumberger is an IT Architect with <strong>IBM</strong> Germany. He has 30 years of experience<br />

in storage software and storage management for <strong>IBM</strong> and customer systems, including 18<br />

years of experience in <strong>DFSMS</strong>rmm. He also has experience in <strong>DFSMS</strong>hsm and a good<br />

knowledge of RACF. Norbert's areas of expertise include performing conversions from<br />

vendor tape management products to <strong>DFSMS</strong>rmm, new <strong>DFSMS</strong>rmm implementations, and<br />

marketing support for <strong>DFSMS</strong>rmm including <strong>IBM</strong> 3494/<strong>IBM</strong> 3495 ATLs, VTSs, and vendor<br />

robotics. He also has experience in <strong>DFSMS</strong>hsm and a good knowledge of RACF. He has<br />

worked at <strong>IBM</strong> for 33 years.<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. xi


Andre Coelho is an IT Storage Specialist in Rio de Janeiro, Brazil, but working for <strong>IBM</strong> West<br />

Internal Accounts, Boulder, Colorado. He has 22 years of experience in z/<strong>OS</strong> and<br />

predecessors. His areas of expertise include <strong>DFSMS</strong>dfp, <strong>DFSMS</strong>hsm, and <strong>DFSMS</strong>rmm.<br />

Gerhard Weisshaar is a Senior Consultant working with Empalis group in Germany. He has<br />

more than 20 years of experience in z/<strong>OS</strong> and its predecessors. His areas of expertise<br />

include implementation of storage and storage networking software and hardware, as well as<br />

z/<strong>OS</strong> Security Server. He has written extensively on the chapters in this book related to<br />

<strong>DFSMS</strong>hsm and <strong>DFSMS</strong>rmm.<br />

Thanks to the following people for their contributions to this project:<br />

Sangam Racherla<br />

Emma Jacobs<br />

International <strong>Technical</strong> Support Organization, San Jose Center<br />

Bob Haimowitz<br />

International <strong>Technical</strong> Support Organization, Raleigh Center<br />

Stephen Branch<br />

<strong>IBM</strong> San Jose<br />

Philip Chauvet<br />

Victor Liang<br />

Brian Corkill<br />

Terri Menendez<br />

Miguel Perez<br />

Helen Witter<br />

Art Bariska<br />

Sherrie Neiderbrach<br />

Jeff Suarez<br />

Mike Wood<br />

<strong>IBM</strong> UK<br />

Bernd-Rainer Bresser<br />

Reinhard Siegel<br />

<strong>IBM</strong> Germany<br />

Become a published author<br />

Join us for a two- to six-week residency program! Help write an <strong>IBM</strong> Redbook dealing with<br />

specific products or solutions, while getting hands-on experience with leading-edge<br />

technologies. You will have the opportunity to team with <strong>IBM</strong> technical professionals,<br />

Business Partners, and Clients.<br />

Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you<br />

will develop a network of contacts in <strong>IBM</strong> development labs, and increase your productivity<br />

and marketability.<br />

Find out more about the residency program, browse the residency index, and apply online at:<br />

ibm.com/redbooks/residencies.html<br />

xii z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Comments welcome<br />

Your comments are important to us!<br />

We want our <strong>Redbooks</strong> to be as helpful as possible. Send us your comments about this or<br />

other <strong>Redbooks</strong> in one of the following ways:<br />

► Use the online Contact us review book form found at:<br />

ibm.com/redbooks<br />

► Send your comments in an e-mail to:<br />

redbooks@us.ibm.com<br />

► Mail your comments to:<br />

<strong>IBM</strong> Corporation, International <strong>Technical</strong> Support Organization<br />

Dept. HYTD Mail Station P099<br />

2455 South Road<br />

Poughkeepsie, NY 12601-5400<br />

Preface xiii


xiv z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


1<br />

Chapter 1. Something old, something new<br />

This chapter provides:<br />

► A summary of the function provided by z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> in “What was new in z/<strong>OS</strong><br />

V1R7 <strong>DFSMS</strong>” on page 2<br />

► An overview of what is new in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> in “What is new in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong>”<br />

on page 3<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 1


1.1 What was new in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong><br />

1.1.1 <strong>DFSMS</strong>dfp<br />

1.1.2 <strong>DFSMS</strong>dss<br />

The followings section summarize the enhancements made in various components in z/<strong>OS</strong><br />

V1R7 <strong>DFSMS</strong>. For details on these enhancements refer to z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong><br />

<strong>Update</strong>, SG24-7225.<br />

<strong>DFSMS</strong>dfp V1R7 provided enhancements in the following areas:<br />

► Implementation of large format data sets<br />

► Implementation of the device support address space (DEVMAN)<br />

► Support for processor multiple subchannels<br />

► Provision of REPRO MERGECAT Fromkey/Tokey option<br />

► Catalog enhancements<br />

– VVDS implicit size specification<br />

– Automatic Catalog access tuning<br />

► VSAM data set extent constraint removal<br />

► VSAM RLS 64-bit data buffers<br />

► SMS Volume and ACS allocation test enhancements<br />

– SMS volume status change from NOTCON by VARY command<br />

– SMS ACS message processing enhancements<br />

– SMS ACS environment enhancements<br />

► Extended Remote Copy Plus<br />

► DEVSERV QLIB command<br />

► PDSE restartable address space (This was introduced with V1R6 but has significant<br />

changes by way of APAR fixes since the initial release.)<br />

► Function removals - although not enhancements in the usual sense<br />

– ISAM removal<br />

– JOBCAT and STEPCAT removal reminder<br />

– VSAM Attributes removal reminder<br />

<strong>DFSMS</strong>dss provided enhancements to support the new large format data sets.<br />

Large format sequential data sets are now supported for the following <strong>DFSMS</strong>dss functions:<br />

► Logical COPY<br />

► Logical and physical DUMP and RESTORE<br />

► Stand-Alone RESTORE<br />

► Logical and physical RELEASE<br />

► PRINT<br />

► DEFRAG<br />

2 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


1.1.3 <strong>DFSMS</strong>hsm<br />

1.1.4 <strong>DFSMS</strong>rmm<br />

1.1.5 OAM<br />

<strong>DFSMS</strong>dss also supports the use of large format data sets for the following:<br />

► Output from logical and physical DUMP<br />

► Input to logical, physical, and Stand-Alone RESTORE<br />

► Input or output for COPYDUMP.\<br />

Large format data sets are processed in exactly the same way as basic format data sets by<br />

most of the commands above. The remainder of this chapter highlights how large format data<br />

sets are processed where there is a difference between the processing of large format data<br />

sets and basic format data sets.<br />

<strong>DFSMS</strong>hsm V1R7 provided enhancements to support the following:<br />

► Support for large format data sets<br />

► Fast subsequent migration improvements<br />

► Extended tape table of contents (TTOC)<br />

► Removal of ABARS requirement for INCLUDE statement<br />

► Cancellation of individual HSM tasks<br />

► Using wild cards with HMIGRATE<br />

► Saving LRECL of migrated data sets in the MCD<br />

► New recycle processing options for connected sets<br />

► Audit Media Controls Resume<br />

► Dump encryption support<br />

<strong>DFSMS</strong>rmm V1R7 provided the following enhancements:<br />

► Facility to issue <strong>DFSMS</strong>rmm TSO commands from the operator console<br />

► Improved security control over <strong>DFSMS</strong>rmm functions<br />

► Enterprise Enablement<br />

► Support for the use of large format data sets<br />

<strong>DFSMS</strong>dfp V1R7 provided the following enhancements to OAM:<br />

► Tape dispatcher display<br />

► Immediate recall to DB2®<br />

► Clear old location option<br />

► Return to MVS scratch exit<br />

► Enhanced MOVEVOL utility<br />

1.2 What is new in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong><br />

Details of the new functions and enhancements in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> are provided in later<br />

chapters, as listed below. The following sections are summaries of what is covered in the<br />

remainder of this book.<br />

Chapter 1. Something old, something new 3


1.2.1 <strong>DFSMS</strong>dfp<br />

<strong>DFSMS</strong>dfp <strong>V1R8</strong> has been enhanced in the following areas:<br />

► Improvements in tape data set security by new options in DEVSUPxx member<br />

► Catalog<br />

► SMS Fast Path Volume Select<br />

► SMS SCDS create ACDS<br />

► SMS Serviceability<br />

► VSAM code modernization<br />

► <strong>DFSMS</strong> RLS Enhanced recovery<br />

This is an internal improvement that occurs automatically.<br />

► <strong>DFSMS</strong> RLS<br />

– Problem diagnosis - See 3.6.2, “VSAM RLS DIAG command on z/<strong>OS</strong> <strong>V1R8</strong> system” on<br />

page 26.<br />

– Performance enhancement - See 3.6.4, “VSAM RLS performance enhancement” on<br />

page 27.<br />

– SMF records for analysis - See 3.6.7, “Monitoring the VSAM RLS use of 64-bit data<br />

buffers” on page 30.<br />

► PDSE Program Object format 5 (PO5) module format compatibility on pre-z/<strong>OS</strong> <strong>V1R8</strong><br />

systems<br />

Refer to 3.8.1, “PDSE PO5 module format compatibility on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems” on<br />

page 55, for details.<br />

► PDSE larger buffer specification<br />

See 3.8.2, “PDSE 64-bit virtual storage use enablement” on page 55.<br />

– PDSE_HSP-SIZE<br />

– PDSE1_HSP_SIZE<br />

– PDSE_DIRECTORY_SIZE<br />

– PDSE1_DIRECTORY_SIZE<br />

► PDSE buffer hold beyond close<br />

See 3.8.4, “Retain buffers beyond PDSE close” on page 62.<br />

– PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E<br />

– PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E<br />

► DEVMAN Rapid Index rebuild<br />

► ICFRU<br />

This was added to <strong>DFSMS</strong> V1R7 but not documented in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong><br />

<strong>Update</strong>, SG24-7225. For an ICFRU Readiness review example see 3.10, “Integrated<br />

Catalog Forward Recovery Utility” on page 73.<br />

4 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


1.2.2 <strong>DFSMS</strong>dfp OAM enhancements<br />

<strong>DFSMS</strong> OAM <strong>V1R8</strong> has been enhanced in the following areas:<br />

► Binary large object support<br />

► Immediate backup copy<br />

► Automated selection of RECYCLE volumes<br />

► Global display keyword<br />

1.2.3 <strong>DFSMS</strong>dss enhancements<br />

<strong>DFSMS</strong>dss <strong>V1R8</strong> has been enhanced in the following areas (see 5.1, “Defining logical and<br />

physical processing” on page 134):<br />

► DSS LOGICAL COPY<br />

► DSS extended keywords to differentiate between logical and physical operations<br />

1.2.4 <strong>DFSMS</strong>hsm enhancements<br />

<strong>DFSMS</strong>hsm <strong>V1R8</strong> has been enhanced in the following areas:<br />

► Fast replication tape support<br />

► Data set recover from fast replication backup and dump versions<br />

► ARECOVER individual data set restore<br />

► Better handling of errors on alternate duplex tapes<br />

► Recycle SYNCHDEV at intervals<br />

► Migration scratch queue for non-VSAM data sets<br />

► New command ALTERPRI<br />

1.2.5 <strong>DFSMS</strong>rmm enhancements<br />

<strong>DFSMS</strong>rmm <strong>V1R8</strong> has been enhanced in the following areas:<br />

► Improvements in tape data set security<br />

► Enterprise RMM CIMOM enhancements<br />

Chapter 1. Something old, something new 5


6 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 2. Useful information to get you<br />

started<br />

2<br />

This chapter contains useful information that we found by trial and error, including common<br />

errors and undocumented tidbits of information.<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 7


2.1 Cheating with OAM<br />

After implementing the immediate backup and automated selection of RECYCLE volumes<br />

functions, you may want to verify that it works, but you might not have any tape volumes that<br />

are actually full. Here is one method that could serve to verify both new functions:<br />

1. Set SMS up so that an immediate backup occurs to tape.<br />

2. Run <strong>OS</strong>REQ STORE to store an object.<br />

3. Observe the tape mount and the immediate back up of data to the first backup.<br />

4. For the volume where the backup data was written, issue the command:<br />

MODIFY OAM,UPDATE,VOLUME,xxxxxx,FULL,Y<br />

5. Run <strong>OS</strong>REQ STORE to store a second object.<br />

6. Observe the tape mount and the immediate back up of data.<br />

7. Issue the command MODIFY OAM,START,RECYCLE,(ALLBK1),DISPLAY,PV=100.<br />

You will see the volume you marked as full.<br />

8. Issue the command MODIFY OAM,UPDATE,VOLUME,xxxxxx,FULL,N for the volume you<br />

had previously marked full.<br />

2.2 HSM fast migration reconnect users<br />

There is a problem affecting users of the HSM fast reconnect to migrated copies of data sets<br />

that in certain circumstances can lead to loss of data. Refer to “OA19493” on page 464, for<br />

further information.<br />

2.3 Users of Fast Subsequent Migration<br />

There is a possibility of data loss if <strong>DFSMS</strong>dss and <strong>DFSMS</strong>hsm with Fast Subsequent<br />

Migration (FSM) is used on any level of <strong>OS</strong>390 V2.10 or z/<strong>OS</strong> V1.1 to V1.6.<br />

From z/<strong>OS</strong> V1.7 or later there is no problem if all use of <strong>DFSMS</strong>dss is through the API. This<br />

means that <strong>DFSMS</strong>hsm use and any other use through the API is not a problem, and a<br />

problem only arises if <strong>DFSMS</strong>dss is used through JCL/BATCH.<br />

If you fall into the affected group, or if in doubt, you should consider the following:<br />

► Users of <strong>DFSMS</strong>dss together with <strong>DFSMS</strong>hsm FSM should refer to the current version of<br />

Information APAR OA20117.<br />

This APAR describes a situation where a data set's change bit could be turned off if<br />

<strong>DFSMS</strong>dss is used to restore the data set outside the control of <strong>DFSMS</strong>hsm, and<br />

<strong>DFSMS</strong>hsm is configured to use FSM.<br />

This is because <strong>DFSMS</strong>dss, when run using JCL to invoke it, always turns the data set<br />

changed bit off on any data set restored.<br />

8 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


2.4 Tape security<br />

This could result in what should be a new migration being skipped when <strong>DFSMS</strong>hsm<br />

considers the data set for migration (see Figure 2-1). If the bit is turned off when the data<br />

set is evaluated, and a migrated copy of the data set is found in the <strong>DFSMS</strong>hsm MCDS, it<br />

may consider that to be a suitable migrated copy, and will revalidate the entry and delete<br />

the data set from DASD. A subsequent recall would then find an old copy of the data set.<br />

Figure 2-1 FSM potential data loss scenario<br />

Using <strong>DFSMS</strong>hsm to manage data set restores manages the situation properly even if, as<br />

is the case, the migrated copy was moved by <strong>DFSMS</strong>dss.<br />

If in doubt as to whether all data set restores are under the control of <strong>DFSMS</strong>hsm, you<br />

should consider suspending the use of <strong>DFSMS</strong>hsm FSM until resolution is available.<br />

► Apar OA20907 has been opened to provide a patch option for <strong>DFSMS</strong>dss that changes<br />

the behavior of <strong>DFSMS</strong>dss to not reset the changed bit if it was found to be on in the<br />

restored copy. This makes its behavior consistent with the invocation of <strong>DFSMS</strong>dss via<br />

<strong>DFSMS</strong>hsm. You should monitor the status of APAR OA20907.<br />

<strong>DFSMS</strong> support introduces new options for securing tape data sets using the System<br />

Authorization Facility (SAF). These are designed to allow you to define profiles to protect data<br />

sets on tape using the DATASET class without the need to activate the TAPEDSN option or<br />

the TAPEVOL class. <strong>DFSMS</strong> also provides options that you can use to specify that all data<br />

sets on a tape volume should have common authorization and that users are authorized to<br />

overwrite existing files on a tape volume.<br />

Chapter 2. Useful information to get you started 9


The new options were introduced as a result of customer requirements. So, it is time to<br />

rethink the way that you are currently protecting data on tape.<br />

There are new options available for use in the DEVSUPxx member of PARMLIB to change<br />

the behavior of open data set security checking in case of tape data sets. Refer to Chapter 9,<br />

“Tape security” on page 331, for details.<br />

10 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


2.5 RECYCLE error - potential data loss<br />

There is a red alert about potential data loss after a RECYCLE error on <strong>DFSMS</strong>hsm <strong>V1R8</strong>.<br />

Figure 2-2 contains the description of the red alert. The APAR for this problem is APAR<br />

OA18465. Refer to “OA18465” on page 462 for additional information.<br />

RED ALERT: <strong>V1R8</strong> <strong>DFSMS</strong>hsm potential data loss after RECYCLE error.<br />

ABSTRACT:<br />

POTENTIAL DATA L<strong>OS</strong>S AFTER RECYCLE ERROR.<br />

DESCRIPTION:<br />

A problem was detected in the <strong>V1R8</strong> <strong>DFSMS</strong>hsm RECYCLE function which under<br />

certain circumstances, can potentially result in data loss. The problem occurs<br />

only when the recycle function encounters certain errors with its input tape.<br />

The most common type of error would be the failure to mount the input tape,<br />

resulting in the failure of the recycle function with message ARC0833I rc31.<br />

The problem detected causes <strong>DFSMS</strong>hsm to lose knowledge of the logical EOF on<br />

the output tape. As a result, the next time that <strong>DFSMS</strong>hsm attempts to write to<br />

the recycle output tape, it will write from load point, overwriting data<br />

previously written to the tape. Attempts to recall/recover the overwritten data<br />

sets will fail with ARC1001I rc68 reas16.<br />

THE PTF for APAR OA18465/UA29904 will cause the recycle processing to maintain<br />

the logical EOF information for its output tape. Error scenarios that would<br />

have caused <strong>DFSMS</strong>hsm to lose knowledge of the logical EOF on the recycle output<br />

tape will now result in an abend of the recycle task. Although the attempt to<br />

recycle the input tape will fail, the potential for the output tape being<br />

subsequently overwritten is eliminated.<br />

<strong>V1R8</strong> customers are strongly advised to avoid running the RECYCLE function on<br />

<strong>V1R8</strong> <strong>DFSMS</strong>hsm until the PTF for APAR OA18465/UA29904 has been installed. Please<br />

see APAR OA18465 for more information.<br />

The <strong>DFSMS</strong>hsm development team has created a tape assessment tool for those<br />

customers that have run RECYCLE already. Information on the tool can be found<br />

in APAR OA18465.<br />

RECOMMENDED ACTIONS:<br />

Do not run RECYCLE on a <strong>V1R8</strong> <strong>DFSMS</strong>hsm prior to installing PTF UA29904 for<br />

OA18465. All installations who have run RECYCLE on a <strong>V1R8</strong> <strong>DFSMS</strong>hsm are<br />

requested to mark any partial ML2 and backup tapes full using the DELVOL volser<br />

MIGRATION(MARKFULL) or DELVOL volser BACKUP(MARKFULL) command, as appropriate.<br />

NOTE: <strong>DFSMS</strong>hsm RECYCLE can be run safely on systems with z/<strong>OS</strong> V1R7 and below.<br />

Figure 2-2 Output about <strong>DFSMS</strong>hsm red alert<br />

2.6 Management class retention limit and tape data sets<br />

After OA17011 is applied, tape volumes are prematurely released during RMM housekeeping<br />

because the special expiration date explicitly specified in the JCL by the user is overridden<br />

Chapter 2. Useful information to get you started 11


when the management class assigned to the tape data set specifies Retention Limit = 0.<br />

Management class attributes should not apply to tape data sets.<br />

This error is addressed by APAR OA20293. Refer to “OA17011” on page 474 and “OA20293”<br />

on page 471 for details.<br />

12 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


3<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements<br />

In this chapter we discuss new and changed functions in <strong>DFSMS</strong>dfp. The following topics are<br />

covered:<br />

► Catalog enhancements<br />

► SMS volume selection performance enhancement<br />

► Copy SCDS to ACDS<br />

► SMS serviceability<br />

► VSAM code modernization<br />

► RLS updates<br />

► Device manager enhancements<br />

► PDSE enhancements<br />

► PDSE buffer management statistics<br />

► ICFRU<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 13


3.1 Catalog enhancements<br />

3.1.1 LISTCAT<br />

z/<strong>OS</strong> <strong>V1R8</strong> introduces improvements in LISTCAT processing and output as well as the ability<br />

to specify the number of catalog address space requests available for user requests.<br />

IDCAMS LISTCAT processing in z/<strong>OS</strong> <strong>V1R8</strong> has been enhanced to provide better<br />

performance, especially for large catalogs. The performance improvement is automatic in<br />

<strong>V1R8</strong>, and no action needs to be taken in order to exploit the new function.<br />

Important: The output from LISTCAT commands has also changed, which might affect<br />

products that process the output.<br />

Examples<br />

A new header line appears on each page of LISTCAT output. Additionally, there have been<br />

changes in the way LISTCAT LEVEL processing works for GDGs and ALIASes. Figure 3-1<br />

shows an example of pre-z/<strong>OS</strong> <strong>V1R8</strong> LISTCAT LEVEL output, specifying the ALIAS name in<br />

the LISTCAT LEVEL command.<br />

LISTCAT LEVEL(SYSDOC)<br />

GDG BASE ------ SYSDOC.CIMN.SYSLOGD<br />

IN-CAT --- COMCIC.ICFCAT<br />

NONVSAM ------- SYSDOC.CIMN.SYSLOGD.G0832V00<br />

IN-CAT --- COMCIC.ICFCAT<br />

.<br />

.<br />

.<br />

IDCAMS SYSTEM SERVICES TIME:<br />

17:06:24<br />

THE NUMBER OF ENTRIES PROCESSED WAS:<br />

AIX -------------------0<br />

ALIAS -----------------0<br />

CLUSTER ---------------0<br />

Figure 3-1 Pre-z/<strong>OS</strong> <strong>V1R8</strong> LISTCAT output<br />

14 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 3-2 shows an example of z/<strong>OS</strong> <strong>V1R8</strong> LISTCAT LEVEL output illustrating the header<br />

and ALIAS changes.<br />

LISTCAT LEVEL(SYSDOC)<br />

LISTING FROM CATALOG -- COMCIC.ICFCAT<br />

GDG BASE ------ SYSDOC.CIMN.SYSLOGD<br />

IN-CAT --- COMCIC.ICFCAT<br />

NONVSAM ------- SYSDOC.CIMN.SYSLOGD.G0832V00<br />

IN-CAT --- COMCIC.ICFCAT<br />

.<br />

.<br />

.<br />

IDCAMS SYSTEM SERVICES TIME:<br />

17:04:40<br />

LISTING FROM CATALOG -- SCI18A.DASDPLEX.CATALOG<br />

ALIAS --------- SYSDOC<br />

IN-CAT --- SCI18A.DASDPLEX.CATALOG<br />

IDCAMS SYSTEM SERVICES TIME:<br />

17:04:40<br />

LISTING FROM SELECTED CATALOGS<br />

THE NUMBER OF ENTRIES PROCESSED WAS:<br />

AIX -------------------0<br />

ALIAS -----------------1<br />

CLUSTER ---------------0<br />

Figure 3-2 z/<strong>OS</strong> <strong>V1R8</strong> LISTCAT output<br />

Migration and coexistence<br />

Information APAR II14250 contains details about the differences in IDCAMS LISTCAT<br />

processing in z/<strong>OS</strong> <strong>V1R8</strong>. This is generally not a consideration unless, for example, you have<br />

a vendor product that processes LISTCAT output.<br />

Maintenance<br />

We recommend that you have the PTFs for APARs OA16912, OA18720, and OA20169<br />

applied prior to using the new support. In addition, the PTF for APAR OA16372 should be<br />

applied.<br />

OA16912 and OA18720 represent the roll-up APARs for this new support. APAR OA20169 is<br />

the APAR resulting from OA18184’s PTF being marked PE. It is not closed at the time of this<br />

writing, but is important because it fixes the PE introduced with OA18184 as well as the issue<br />

OA18184 was intended to fix, where LISTCAT was not issuing error messages for offline<br />

volumes.<br />

OA16372 represents VSAM GET/PUT requests failing when accessing a VSAM data set and<br />

the data set has more than three volumes that have been recataloged out of the original<br />

extend order. Refer to “OA16372” on page 468 for a full description.<br />

3.1.2 Dynamic service count<br />

z/<strong>OS</strong> <strong>V1R8</strong> introduces the ability to alter the number of catalog address space service tasks<br />

available for user requests. An insufficient number of service tasks is usually indicated by<br />

running a MODIFY CATALOG,REPORT command and observing a HIGHEST # OF<br />

SERVICE TASKS value approaching the SERVICE TASK UPPER LIMIT value. Exceeding<br />

the limit results in performance problems.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 15


The default number of service tasks is 200 and the maximum potential number is 999. Of<br />

these, 90% are used as the maximum number of user catalog requests that can be<br />

processed concurrently. Figure 3-3 shows an example of the MODIFY CATALOG,REPORT<br />

command using the default value. It shows a value of 180 for the SERVICE TASK UPPER<br />

LIMIT, which is 90% of 200. In this case the HIGHEST # OF SERVICE TASKS value is only<br />

16, so there is no need to change the default upper limit value.<br />

MODIFY CATALOG,REPORT<br />

IEC351I CATALOG ADDRESS SPACE MODIFY COMMAND ACTIVE<br />

IEC359I CATALOG REPORT OUTPUT 831<br />

*CAS************************************************************<br />

* CATALOG COMPONENT LEVEL = HDZ1180 *<br />

* CATALOG ADDRESS SPACE ASN = 0034 *<br />

* SERVICE TASK UPPER LIMIT = 180 *<br />

* SERVICE TASK LOWER LIMIT = 60 *<br />

* HIGHEST # SERVICE TASKS = 16 *<br />

* CURRENT # SERVICE TASKS = 16 *<br />

* MAXIMUM # OPEN CATALOGS = 1,024 *<br />

Figure 3-3 CATALOG REPORT showing default value<br />

If the HIGHEST # OF SERVICE TASKS does approach or exceed the 180 boundary, we use<br />

this new function to change the upper limit value.<br />

Implementing<br />

The SYSCAT statements in the LOADxx member of PARMLIB cannot be used to change the<br />

default. A SYSCATxx member in SYS1.NUCLEUS must be used. Many installations<br />

presently use the LOADxx member for SYSCAT statements, so a new SYSCATxx member<br />

might have to be allocated. We have provided an example of a job to allocate the SYSCATxx<br />

member in Figure 3-4. The number of service tasks defined is specified in columns 65–67 of<br />

the SYSCATxx member. This example changes the service task count to 999.<br />

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--<br />

********************************* Top of Data **************************<br />

//SYSCAT JOB CLASS=A,MSGCLASS=T,NOTIFY=&SYSUID,REGION=6M<br />

//SYSCAT EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD DUMMY<br />

//SYSUT2 DD DSN=SYS1.NUCLEUS(SYSCATLG),DISP=SHR,DCB=(RECFM=U)<br />

//SYSUT1 DD *<br />

SBOX0011 MCAT.SANDBOX.Z18.SBOX00 Y 999<br />

//*<br />

******************************** Bottom of Data ************************<br />

Figure 3-4 Example SYSCATxx member<br />

More information about the format and use of the SYSCATxx member can be found in<br />

<strong>DFSMS</strong> Managing Catalogs, SC26-7409.<br />

16 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


After we have removed the SYSCAT statements from LOADxx and IPLed using the new<br />

SYSCATxx member we added to PARMLIB, we issue another MODIFY CATALOG,REPORT<br />

command. Figure 3-5 is a catalog report that now shows 900, or 90% of the 999 figure we<br />

specified in SYSCATxx.<br />

MODIFY CATALOG,REPORT<br />

IEC351I CATALOG ADDRESS SPACE MODIFY COMMAND ACTIVE<br />

IEC359I CATALOG REPORT OUTPUT 998<br />

*CAS************************************************************<br />

* CATALOG COMPONENT LEVEL = HDZ1180 *<br />

* CATALOG ADDRESS SPACE ASN = 0034 *<br />

* SERVICE TASK UPPER LIMIT = 900 *<br />

* SERVICE TASK LOWER LIMIT = 60 *<br />

* HIGHEST # SERVICE TASKS = 21 *<br />

* CURRENT # SERVICE TASKS = 21 *<br />

* MAXIMUM # OPEN CATALOGS = 1,024 *<br />

Figure 3-5 CATALOG REPORT showing maximum value<br />

Migration and coexistence<br />

If you decide to IPL a pre-<strong>V1R8</strong> level after making these changes, you first need to undo the<br />

changes you made to SYSCATxx and LOADxx when implementing this <strong>V1R8</strong> support.<br />

3.2 SMS volume selection performance enhancement<br />

SMS has been enhanced with a new function to speed up volume selection. In storage<br />

groups with hundreds or thousands of candidate volumes, it can take an unacceptably long<br />

time for SMS to determine a target for placement of a new data set.<br />

Turning fast path volume selection on causes SMS to select volumes normally until DADSM<br />

rejects 100 volumes for insufficient free space. It then excludes all volumes that do not have<br />

sufficient free space in the current SMS volume statistics, which has the effect of reducing the<br />

overall number of candidate volumes and therefore the number of attempts SMS must make<br />

in order to find a suitable target. This is not a function that is normally exercised often. It is a<br />

performance improvement for the worst-case scenario when you have a lot of volumes and<br />

the majority of them are nearly full. This worst-case scenario is more likely to occur when you<br />

have a large number of volumes in a single storage group. That type of environment benefits<br />

the most from this new function.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 17


There are two limits to using fast volume selection:<br />

► It does not apply to striping allocation. Striping allocation has already excluded the<br />

volumes above the high threshold from volume selection.<br />

► It may inadvertently exclude volumes that have sufficient free space but for which the<br />

SMS volume statistics indicate that they do not, as described in the MVS Initialization and<br />

Tuning Reference, SA22-7592, and shown in Figure 3-6.<br />

Invalid volume statistics can occur as a result of the following events:<br />

The VTOC index is broken.<br />

Figure 3-6 Occasions for bypass due to SMS volume statistics<br />

Implementing<br />

Fast volume selection is requested by using the new FAST_VOLSEL parameter. This can be<br />

set on or off by:<br />

► Using the IGDSMSxx member of PARMLIB<br />

► Issuing the SETSMS FAST_VOLSEL command<br />

An example of setting fast volume selection to on using the IGDSMSxx member of PARMLIB<br />

is provided in Figure 3-7:<br />

Figure 3-7 Placing the FAST_VOLSEL parameter in PARMLIB<br />

18 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

OEM products bypass CVAF processing.<br />

In an SMSplex when the SMS synchronization time interval has not<br />

yet been driven to update the SMS configuration with the most<br />

current space statistics. These statistics are based on updates<br />

that can occur on another system in the SMSplex.<br />

SYS1.PARMLIB(IGDSMS03) - 01.04<br />

===><br />

***************************** Top of Data ********<br />

SMS ACDS(SYS1.SMS.ACDS)<br />

COMMDS(SYS1.SMS.COMMDS)<br />

INTERVAL(15)<br />

DINTERVAL(150)<br />

DEADLOCK_DETECTION(15,4)<br />

FAST_VOLSEL(ON)<br />

SMF_TIME(YES)<br />

CF_TIME(1800)<br />

RLSINIT(YES)<br />

RLS_MAX_POOL_SIZE(100)<br />

REVERIFY(NO)


An example of setting fast volume selection on using the SETSMS FAST_VOLSEL command<br />

is provided in Figure 3-8. The command does not come back with a message indicating that it<br />

is complete. You can verify its present state by issuing the<br />

D SMS,OPTIONS command, which is also shown in Figure 3-8.<br />

SETSMS FAST_VOLSEL(ON)<br />

.<br />

.<br />

.<br />

D SMS,OPTIONS<br />

IGD002I 17:01:47 DISPLAY SMS 253<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

.<br />

.<br />

.<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

BLOCKTOKENSIZE = NOREQUIRE FAST_VOLSEL = ON<br />

IGD002I 17:01:47 DISPLAY SMS<br />

TRACE = ON SIZE = 128K TYPE = ALL<br />

JOBNAME = * ASID = *<br />

TRACING EVENTS:<br />

MODULE = ON SMSSJF = ON SMSSSI = ON ACSINT = ON<br />

OPCMD = ON CONFC = ON CDSC = ON CONFS = ON<br />

MSG = ON ERR = ON CONFR = ON CONFA = ON<br />

ACSPRO = ON IDAX = ON DISP = ON CATG = ON<br />

VOLREF = ON SCHEDP = ON SCHEDS = ON VTOCL = ON<br />

VTOCD = ON VTOCR = ON VTOCC = ON VTOCA = ON<br />

RCD = ON DCF = ON DPN = ON TVR = ON<br />

DSTACK = ON UAFF = ON DEBUG = ON<br />

VOLSELMSG = (OFF,0) TYPE = ALL JOBNAME = *<br />

ASID = * STEPNAME = *<br />

DSNAME = *<br />

Figure 3-8 Turning FAST_VOLSEL(ON) with the SETSMS command and verifying state<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 19


Once FAST_VOLSEL is turned on, you see a new IGD17294I message when fast volume<br />

selection is used. An example of this appears in Figure 3-9, which is the output from an<br />

IEFBR14 job allocating a data set in a space-constrained storage group.<br />

IEF236I ALLOC. FOR IEFBR14 D301<br />

IGD17294I FAST VOLUME SELECTION IS USED TO ALLOCATE DATA SET<br />

MHLRES3.MHLSMS.XLD301<br />

IGD101I SMS ALLOCATED TO DDNAME (SEQOUTG )<br />

DSN (MHLRES3.MHLSMS.XLD301 )<br />

STORCLAS (MHLSMS) MGMTCLAS ( ) DATACLAS ( )<br />

VOL SER N<strong>OS</strong>= SLD14D<br />

IEF142I IEFBR14 D301 - STEP WAS EXECUTED - COND CODE 0000<br />

IGD104I MHLRES3.MHLSMS.XLD301 RETAINED,<br />

DDNAME=SEQOUTG<br />

IEF373I STEP/D301 /START 2007052.1126<br />

IEF374I STEP/D301 /STOP 2007052.1126 CPU 0MIN 00.00SEC SRB 0MIN<br />

00.00S<br />

Figure 3-9 Fast volume selection in action<br />

Migration and coexistence<br />

If you IPL a pre-<strong>V1R8</strong> driver you need to remove FAST_VOLSEL from the IGDSMSxx<br />

member of PARMLIB if you included it while implementing z/<strong>OS</strong> <strong>V1R8</strong>.<br />

3.3 COPY SCDS to ACDS<br />

This enhancement allows users to create an ACDS from any valid SCDS without first having<br />

to activate the ACDS. An example of its use is be to create an ACDS for use at a separate<br />

disaster recovery location.<br />

Preallocating the ACDS<br />

One of the requirements for this command is that the target ACDS for the COPYSCDS<br />

command must be pre-allocated. In Figure 3-10 we provide an example of an IDCAMS job to<br />

allocate a 60-track ACDS. Check the size of your existing SCDS to determine how many<br />

tracks your target ACDS should be.<br />

//ALLCACDS JOB CLASS=A,MSGCLASS=T,NOTIFY=&SYSUID,REGION=6M<br />

//STEP EXEC PGM=IDCAMS<br />

//SYSUDUMP DD SYSOUT=*<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DEFINE CLUSTER(NAME(MHLRES3.TEST.ACDS) LINEAR VOL(SBOX11) -<br />

TRK(60 60) SHAREOPTIONS(2,3)) -<br />

DATA(NAME(MHLRES3.TEST.ACDS.DATA)REUSE)<br />

Figure 3-10 Pre-allocating your ACDS<br />

Using the new COPYSCDS command<br />

The requirements are:<br />

► The ACDS must be pre-allocated.<br />

► The source SCDS should be validated before being copied.<br />

20 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SMS automatically verifies that:<br />

► The acds_dsn is not the currently active ACDS.<br />

► The scds_dsn is a valid SCDS.<br />

If you do break any of these rules, SMS issues an IGD088I message, as in the case where<br />

we attempt to copy our SCDS into the active ACDS, as seen in Figure 3-11.<br />

SETSMS COPYSCDS(SYS1.SMS.SCDS,SYS1.SMS.ACDS)<br />

IGD088I COPYSCDS COMMAND FAILED SCDS SYS1.SMS.ACDS 313<br />

- REASON CODE 6135<br />

Figure 3-11 Example of the IGD088I message with COPYSCDS failure<br />

The command format for the new COPYSCDS command is:<br />

SETSMS COPYSCDS(scds_dsn,acds_dsn)<br />

Where scds_dsn is the name of the SCDS that is copied to the target ACDS acds_dsn.<br />

Figure 3-12 is an example of the SYSLOG output that you should expect to see after<br />

successfully issuing this command.<br />

SETSMS COPYSCDS(SYS1.SMS.SCDS,MHLRES3.TEST.ACDS)<br />

IEF196I IEF237I 831A ALLOCATED TO SYS00016<br />

IEF196I IEF237I D30C ALLOCATED TO SYS00017<br />

IGD019I SCDS SYS1.SMS.SCDS SUCCESSFULLY COPIED AS ACDS TO 243<br />

MHLRES3.TEST.ACDS<br />

IEF196I IGD104I MHLRES3.TEST.ACDS RETAINED,<br />

IEF196I DDNAME=SYS00017<br />

IEF196I IGD104I SYS1.SMS.SCDS RETAINED,<br />

IEF196I DDNAME=SYS00016<br />

Figure 3-12 SYSLOG output from a successful COPYSCDS command<br />

Migration and coexistence<br />

There are no migration or coexistence considerations for the COPYSCDS support.<br />

3.4 SMS serviceability<br />

A new DEBUG parameter has been added to the SETSMS TRACE command to add trace<br />

points at strategic locations and reduce the size of SMS trace data and therefore the amount<br />

of time needed to analyze the data. This serves to reduce the total time necessary for<br />

problem resolution.<br />

This parameter should only be used at the direction of the system programmer when<br />

engaged in problem determination.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 21


Using the DEBUG parameter<br />

The new DEBUG parameter is set with the SETSMS TRACE command and is displayed with<br />

the D SMS,TRACE command. <strong>IBM</strong> provides the specific commands at problem determination<br />

time. An example is provided in Figure 3-13.<br />

SETSMS DESELECT(ALL)<br />

IEE712I SETSMS PROCESSING COMPLETE<br />

SETSMS TRACE(ON) TYPE(ALL) SIZE(1M) SELECT(DEBUG)<br />

IEE712I SETSMS PROCESSING COMPLETE<br />

D SMS,TRACE<br />

IGD002I 12:23:29 DISPLAY SMS 020<br />

TRACE = ON SIZE = 1024K TYPE = ALL<br />

JOBNAME = * ASID = *<br />

TRACING EVENTS:<br />

MODULE = OFF SMSSJF = OFF SMSSSI = OFF ACSINT = OFF<br />

OPCMD = OFF CONFC = OFF CDSC = OFF CONFS = OFF<br />

MSG = OFF ERR = OFF CONFR = OFF CONFA = OFF<br />

ACSPRO = OFF IDAX = OFF DISP = OFF CATG = OFF<br />

VOLREF = OFF SCHEDP = OFF SCHEDS = OFF VTOCL = OFF<br />

VTOCD = OFF VTOCR = OFF VTOCC = OFF VTOCA = OFF<br />

RCD = OFF DCF = OFF DPN = OFF TVR = OFF<br />

DSTACK = OFF UAFF = OFF DEBUG = ON<br />

VOLSELMSG = (OFF,0) TYPE = ALL JOBNAME = *<br />

ASID = * STEPNAME = *<br />

DSNAME = *<br />

Figure 3-13 Turning the DEBUG parameter ON and displaying its status<br />

Migration and coexistence<br />

There are no migration or coexistence considerations when using this new function.<br />

3.5 VSAM code modernization<br />

VSAM code has been modernized so that it automatically dumps for errors that normally<br />

indicate a system problem or invalid data set. No action is required to implement the<br />

automatic dumps.<br />

Additionally, the current procedure for collecting data for a specific VSAM return code is<br />

complex and prone to errors. New parameters for the MODIFY CATALOG command have<br />

been added to assist with the first-time data capture of user-specified VSAM problems.<br />

22 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Usage<br />

The new VDUMPON and VDUMPOFF parameters for the MODIFY CATALOG command, as<br />

described in <strong>DFSMS</strong> Managing Catalogs, SC26-7409, can be seen in Figure 3-14.<br />

MODIFY CATALOG,VDUMPON(pdf,rc,compid,error)<br />

pdf Specifies the VSAM Problem Determination Function code (one<br />

to three characters from 0 to 255), or * (asterisk).<br />

rc Specifies the VSAM return code in decimal format (one to<br />

three characters from 0 to 255), or * (asterisk).<br />

compid Specifies the component code (0 - 5), or * (asterisk).<br />

error Specifies the VSAM error code in decimal format (one to<br />

three characters from 0 to 255), or * (asterisk).<br />

Notes:<br />

1. Specifying an asterisk (*) for any parameter indicates that a wild<br />

card search is to be done for that value. Up to three asterisks<br />

(without intervening spaces) may be specified where a single<br />

asterisk is allowed, but the extra asterisks have no effect on the<br />

command's output.<br />

2. If a parameter is to be omitted, it must be specified as an<br />

asterisk (*). For example, VDUMPON(*,*,*,2) is syntactically<br />

valid, while VDUMPON(2), VDUMPON( , , ,2), and VDUMPON(2, ,2) are<br />

all invalid.<br />

3. At least one of the parameters must be specified with a value<br />

other than asterisks. For example, VDUMPON(*,*,*,*) is not<br />

allowed.<br />

4. User-initiated VSAM dynamic dumping does not occur unless you<br />

specify VDUMPON.<br />

5. You can set only one VDUMPON at a time. Each entry overwrites the<br />

previous information. After a match occurs, the information is<br />

cleared and no further user-initiated dumps will be taken.<br />

.<br />

.<br />

.<br />

Issuing MODIFY CATALOG,VDUMPOFF will clear the VDUMP options.<br />

Figure 3-14 The new VDUMPON and VDUMPOFF parameters<br />

Example<br />

In order to demonstrate use of this new function, we wrote an IDCAMS job that attempts to<br />

delete a non-existant VSAM data set, which results in a RC 8 ERROR 16 VSAM RECORD<br />

NOT FOUND failure. The example job is shown in Figure 3-15 and the SYSLOG output for<br />

this is shown in Figure 3-16 on page 24.<br />

//DELVSM JOB MSGCLASS=H,REGION=0M<br />

//DELSTG EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE SLT.DATASET.DOESNT.EXIST CLUSTER PURGE<br />

Figure 3-15 Deleting a non-existant VSAM data set<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 23


3.6 RLS updates<br />

MODIFY CATALOG,VDUMPON(*,8,*,16)<br />

IEC351I CATALOG ADDRESS SPACE MODIFY COMMAND ACTIVE<br />

IEC359I CATALOG VSAM DUMP OPTIONS 957<br />

*CAS*************************************************************<br />

* STATUS FUNC CODE RETURN CODE COMPONENT ERROR CODE *<br />

* ON *** 008 *** 016 *<br />

*CAS*************************************************************<br />

IEC352I CATALOG ADDRESS SPACE MODIFY COMMAND COMPLETED<br />

$HASP100 DELVSM ON INTRDR FROM TSU13819<br />

MHLRES3<br />

IRR010I USERID MHLRES3 IS ASSIGNED TO THIS JOB.<br />

ICH70001I MHLRES3 LAST ACCESS AT 11:22:32 ON MONDAY, MARCH 12, 2007<br />

$HASP373 DELVSM STARTED - INIT 1 - CLASS B - SYS CIMN<br />

IEA794I SVC DUMP HAS CAPTURED: 963<br />

DUMPID=001 REQUESTED BY JOB (CATALOG )<br />

DUMP TITLE=VSAM DYNAMIC RPL DUMP - IDA019RA+1D8A FEEDBACK CODE:<br />

0A080010<br />

.<br />

.<br />

.<br />

IEA611I COMPLETE DUMP ON SYSDOC.DUMP.DA.D070312.T112257.CIMN.S00001 975<br />

DUMPID=001 REQUESTED BY JOB (CATALOG )<br />

Figure 3-16 Example VSAM dump for VSAM record not found<br />

Migration and coexistence<br />

There are no migration or coexistence considerations when using this new function.<br />

In z/<strong>OS</strong> <strong>V1R8</strong> the following VSAM RLS features were introduced:<br />

► The ability for users to detect VSAM RLS latch contention has been introduced with the<br />

VSAM RLS DIAG command (see “VSAM RLS DIAG command on z/<strong>OS</strong> <strong>V1R8</strong> system” on<br />

page 26).<br />

► A performance enhancement is provided to speed up the process of terminating the<br />

SMSVSAM address spaces across the members of a SYSPLEX (see “VSAM RLS<br />

performance enhancement” on page 27).<br />

z/<strong>OS</strong> V1R7 64-bit (2 GB bar) implementation continuation: The SMF recording of use of<br />

64-bit buffers that was intended for delivery in z/<strong>OS</strong> V1R7 was held over and is now available<br />

in <strong>V1R8</strong>. See 3.6.5, “VSAM RLS use of 64-bit data buffers” on page 28.<br />

Important: Before using VSAM RLS in a <strong>DFSMS</strong> V1.8 environment you should review<br />

OA17415. All users of VSAM RLS reading or writing to a multi-volume VSAM data set<br />

where the volumes have been recataloged in a different order than originally extended to<br />

are affected. Refer to “OA17415” on page 469 for more details.<br />

24 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


3.6.1 RLS enhanced recovery<br />

In order to talk about RLS enhanced recovery, we should discuss VSAM record level sharing<br />

(RLS). It is a data set access mode that allows multiple address spaces, CICS® application<br />

owning regions on multiple z/<strong>OS</strong> systems, <strong>DFSMS</strong>hsm control data sets access, <strong>DFSMS</strong>tvs,<br />

and jobs to access data at the same time. VSAM RLS requires that the data sets be System<br />

Managed Storage (SMS) data sets.<br />

The purpose of the RLS function is to enhance access and recovery capabilities to existing<br />

VSAM files. One particular area of enhancement is in the area of reliability, availability, and<br />

serviceability (RAS). You can divide that into two separate but related areas:<br />

► First time data capture - to document internal logic errors at the earliest point in time<br />

possible. It consists of any system failure introduced by coding errors or bugs.<br />

► System error recovery - to recover from an identified system error. It can be identified by a<br />

health check or by error detecting features on the base operating system. It will try to<br />

recover as much as possible, minimizing the impact to the customer. The highest priority is<br />

to prevent damage to customer data. After that, it can minimize a failing function and<br />

automate steps to restore the system to full functionality.<br />

RLS works using a VSAM address space named SMSVSAM. Using it, the requesting<br />

program gains control through cross memory and data access.<br />

The original RLS design included extensive first time data capture. Each of the RLS<br />

subcomponents added many health checks, as well as local recovery routines, which detect<br />

and document internal logic errors. If a health check identified an error, an SVC D command<br />

is issued with a 0F4 completion code along with a unique return/reason code identifying the<br />

error. The local recovery routine would then receive control and issue an SDUMP macro to<br />

obtain an SVC dump. This design has proven very successful and has enabled many internal<br />

logic errors to be solved with the first occurrence of the problem.<br />

The original RLS design also included system error recovery. Following an internal logic error,<br />

most of the RLS subcomponents opted to terminate the SMSVSAM address space in order to<br />

prevent possible data integrity problems and correct environmental errors. By terminating the<br />

SMSVSAM address space, the damaged system environment is cleared and a new clean<br />

SMSVSAM address space is created. Additionally, the process of terminating and restarting<br />

the SMSVSAM address space was automated so that the customer does not have to<br />

manually perform these steps. The first exploiter of this resource, CICS, had added some<br />

automation to this specific case, receiving system signs of individual regions, so it can act<br />

accordingly, closing and reopening files on the failing system.<br />

This idea of terminating the SMSVSAM address space because of environmental problems<br />

has not proven to be the best approach. It provided protection, but at the same time,<br />

produced availability problems. A logic error that occurs during a single read/write request to<br />

a single data set can result in a system outage that impacts all files opened on the system.<br />

And as most of the subcomponents adopted the same strategy, it started to terminate the<br />

SMSVSAM address space for reasons other than data integrity. Even a display command has<br />

the potential for terminating the SMSVSAM address space.<br />

With z/<strong>OS</strong> V1.R8 the development team redesigned the system error recovery area. Instead<br />

of terminating the SMSVSAM address space, due to internal logic errors, it remains up, and<br />

the individual function with error is fails. The first time data capture design remains as before.<br />

See “OA17734” on page 467 for more detailed information.<br />

Tip: We recommend that you read Chapters 5 and 6 of the <strong>IBM</strong> <strong>Redbooks</strong> publication<br />

VSAM Demystified, SG24-6105, for an introduction to this subject.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 25


Coexistence and migration<br />

See Table 3-1 for information about coexistence and migration for the redesigns of system<br />

error recovery area.<br />

Table 3-1 Coexistence table about the redesigned system error recovery area<br />

Element or feature <strong>DFSMS</strong>dfp<br />

When change was introduced z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Applies to migration from None<br />

Timing After the first IPL of z/<strong>OS</strong> <strong>V1R8</strong><br />

Target system hardware requirements None<br />

Target system software requirements None<br />

Other system (coexistence or fallback)<br />

requirements<br />

3.6.2 VSAM RLS DIAG command on z/<strong>OS</strong> <strong>V1R8</strong> system<br />

A situation that can arise when using VSAM RLS is that one or more tasks using RLS appear<br />

to hang. One of the causes for this is that latches are in contention. Use the following<br />

command to display latch contention:<br />

D SMS,SMSVSAM,DIAG(CONTENTION)<br />

If there are latches in contention the user is informed with detailed information that is intended<br />

to allow the problem to be resolved.<br />

In Figure 3-17 we show the result of issuing the command on a system that has no latches in<br />

contention, which means that message IGW342I is issued.<br />

Figure 3-17 D SMS, SMSVSAM,DIAG(CONTENTION) command and output no latches<br />

If there are latches in contention, message IGW343I is issued.<br />

26 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

None<br />

Restrictions None<br />

System impacts None<br />

D SMS,SMSVSAM,DIAG(CONTENTION)<br />

IGW342I VSAM RLS DIAG STATUS (V.01) 335<br />

NO CONTENTION BY REGISTERED RESOURCES EXISTS


In Figure 3-18 we show sample data resulting from the command when a latch was found to<br />

be in contention. This information may be used to identify the holder from the ASID shown,<br />

which may lead to a decision as to whether the holder could be cancelled or whether it would<br />

be necessary to wait.<br />

IGW343I VSAM RLS DIAG STATUS (V.01) 035<br />

|----RESOURCE---| |------ WAITER ------| |--HOLDER---| ELAPSED<br />

TYPE ID JOB NAME ASID TASK ASID TASK TIME<br />

-------- -------- -------- ---- -------- ---- -------- --------<br />

LATCH 7F38B928 SMSVSAM 000A 007CBB58 000A 007CBE88 00:01:07<br />

DESCRIPTION: IDAVTCP - VTCPage Storage Pool<br />

Figure 3-18 Example of information available if RLS latch contention is detected<br />

3.6.3 VSAM RLS DIAG command on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems<br />

There is no support for the VSAM RLS DIAG command on lower level systems, but toleration<br />

maintenance is available to handle the command if it should be issued. In Figure 3-17 on<br />

page 26 we show the toleration maintenance available for systems prior to z/<strong>OS</strong> <strong>V1R8</strong>.<br />

Table 3-2 RLS DIAG command toleration maintenance<br />

APAR Description Effect<br />

OA14568 Eliminates confusing message relating to another<br />

internal function<br />

In Figure 3-19 we show the result of issuing the command on a z/<strong>OS</strong> V1R7 system that has<br />

VSAM RLS enabled and has the PTF for APAR OA14568 installed.<br />

Figure 3-19 D SMS, SMSVSAM,DIAG(CONTENTION) command and output on z/<strong>OS</strong> V1R7<br />

3.6.4 VSAM RLS performance enhancement<br />

Generates message IGW495I D<br />

SMS,SMSVSAM,DIAG COMMAND FUNCTION<br />

HAS FOUND THE DIAG TABLE HAS NO<br />

ENTRIES<br />

D SMS,SMSVSAM,DIAG(CONTENTION)<br />

IGW495I D SMS,SMSVSAM,DIAG COMMAND FUNCTION HAS FOUND 074<br />

THE DIAG TABLE HAS NO ENTRIES.<br />

z/<strong>OS</strong> <strong>V1R8</strong> introduced a performance enhancement that skips cleaning up the XES lock table<br />

when the SMSVSAM address space is terminated. This function is automatically available,<br />

but can be triggered by using the following command if necessary:<br />

V SMS,SMSVSAM,TERMINATESERVER<br />

If the command is issued on a z/<strong>OS</strong> <strong>V1R8</strong> system, since RLS is a sysplex-wide function, it<br />

affects other systems, and toleration maintenance is required for this.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 27


Toleration on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems<br />

There is no provision for the performance improvement on lower level systems, but toleration<br />

maintenance is available. In Figure 3-3 on page 16 we show the toleration maintenance<br />

available for systems prior to z/<strong>OS</strong> <strong>V1R8</strong>.<br />

Note: The current status of these and related APARs should be used.<br />

Table 3-3 RLS XES cleanup performance improvement toleration maintenance<br />

APAR Description Effect<br />

OA13332 - See “OA13332” on<br />

page 458.<br />

OA11708 - See<br />

“OA11708” on page 457.<br />

OA14666 -<br />

See “OA14666” on page 459.<br />

3.6.5 VSAM RLS use of 64-bit data buffers<br />

VSAM RLS has specific requirements for use of 64-bit buffers (over the 2 GB bar). These are<br />

discussed in detail in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>, SG24-7225, but an update to<br />

what is published there is needed.<br />

The basic requirements are:<br />

► Any data set to be used for RLS above the bar buffers must be associated with a SMS<br />

data class with the RLS ABOVE THE BAR attribute set to Y.<br />

► SYS1.PARMLIB member IGDSMSxx must include a non-zero value for<br />

RlsAboveThebarMaxPoolSize, as shown in Figure 3-20 on page 29:<br />

RlsAboveThebarMaxPoolSize = 500<br />

► SYS1.PARMLIB member IGDSMSxx must include Rls_MaxCfFeatureLevel = A. This is<br />

what has changed from the comment in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>,<br />

SG24-7225, where a value of Z was shown as allowable.<br />

► SYS1.PARMLIB member IGDSMSxx may include a non-zero value for RlsFixedPoolSize.<br />

Figure 3-20 on page 29 shows RlsFixedPoolSize = 50<br />

► In Figure 3-20 on page 29 we show the output from the D SMS,OPTIONS command<br />

showing the RLS requirements set.<br />

28 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Prerequisite for OA11708 Adds SYSPLEX support<br />

required for OA11708<br />

Reduces termination delays when V<br />

SMS,SMSVSAM,TERMINATESERVER<br />

command is issued<br />

Manages locks more rapidly<br />

Post requisite for OA11708 Completes OA11708


D SMS,OPTIONS<br />

IGD002I 19:54:14 DISPLAY SMS 857<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

ACSDEFAULTS = NO PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO SYSTEMS = 8<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 256MB<br />

USE_RESOWNER = YES RLS_MAX_POOL_SIZE = 100MB<br />

RLSINIT = YES RLSTMOUT = 0<br />

COMPRESS = GENERIC LOG_OF_LOGS = IGWTVS.LOG.OF.LOGS<br />

QTIMEOUT = 300 TVSNAME = 064<br />

AKP = 1000 TV_START_TYPE = WARM<br />

MAXLOCKS = (0,0)<br />

CICSVR_INIT = YES CICSVR_DSNAME_PREFIX = DWWUSER.V3R1M0<br />

CICSVR_RCDS_PREFIX = DWW<br />

CICSVR_GRPNAME_SUFFIX = PROD<br />

CICSVR_ZZVALUE_PARM =<br />

CICSVR_UNDOLOG_CONTROL =<br />

CICSVR_UNDOLOG_PREFIX = DWW<br />

CICSVR_BACKOUT_CONTROL =<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = A<br />

RlsAboveThebarMaxPoolSize = 500<br />

RlsFixedPoolSize = 50<br />

PDSE_MONITOR = (YES,0,0) PDSE1_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2000M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

BLOCKTOKENSIZE = NOREQUIRE FAST_VOLSEL = ON<br />

IGD002I 19:54:14 DISPLAY SMS<br />

TRACE = OFF SIZE = 1024K TYPE = ALL<br />

JOBNAME = * ASID = *<br />

TRACING EVENTS:<br />

MODULE = OFF SMSSJF = OFF SMSSSI = OFF ACSINT = OFF<br />

OPCMD = OFF CONFC = OFF CDSC = OFF CONFS = OFF<br />

MSG = OFF ERR = OFF CONFR = OFF CONFA = OFF<br />

ACSPRO = OFF IDAX = OFF DISP = OFF CATG = OFF<br />

VOLREF = OFF SCHEDP = OFF SCHEDS = OFF VTOCL = OFF<br />

VTOCD = OFF VTOCR = OFF VTOCC = OFF VTOCA = OFF<br />

RCD = OFF DCF = OFF DPN = OFF TVR = OFF<br />

DSTACK = OFF UAFF = OFF DEBUG = ON<br />

VOLSELMSG = (OFF,0) TYPE = ALL JOBNAME = *<br />

ASID = * STEPNAME = *<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

BLOCKTOKENSIZE = NOREQUIRE FAST_VOLSEL = ON<br />

IGD002I 19:54:14 DISPLAY SMS<br />

TRACE = OFF SIZE = 1024K TYPE = ALL<br />

JOBNAME = * ASID = *<br />

TRACING EVENTS:<br />

MODULE = OFF SMSSJF = OFF SMSSSI = OFF ACSINT = OFF<br />

OPCMD = OFF CONFC = OFF CDSC = OFF CONFS = OFF<br />

MSG = OFF ERR = OFF CONFR = OFF CONFA = OFF<br />

ACSPRO = OFF IDAX = OFF DISP = OFF CATG = OFF<br />

VOLREF = OFF SCHEDP = OFF SCHEDS = OFF VTOCL = OFF<br />

VTOCD = OFF VTOCR = OFF VTOCC = OFF VTOCA = OFF<br />

RCD = OFF DCF = OFF DPN = OFF TVR = OFF<br />

DSTACK = OFF UAFF = OFF DEBUG = ON<br />

VOLSELMSG = (OFF,0) TYPE = ALL JOBNAME = *<br />

ASID = * STEPNAME = *<br />

DSNAME = *<br />

Figure 3-20 D SMS,OPTIONS showing RLS above 2 GB bar requirements set<br />

3.6.6 DSS LOGICAL COPY WARNING<br />

A VSAM KSDS with data and index components on different volumes may lose its SMS<br />

RLSDATA information during DSS COPY. This may result in the correct attributes for VSAM<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 29


RLS use in general, and the 64-bit requirements in particular being dropped.<br />

Refer to “OA18319” on page 462 for further information.<br />

3.6.7 Monitoring the VSAM RLS use of 64-bit data buffers<br />

You can monitor the use of VSAM RLS 64-bit data buffers, and check on the status of data<br />

classes eligible and which data sets are eligible.<br />

You can set up recording of SMF type 42 records then check the data returned in the<br />

appropriate subtype records as listed below. For more information refer to Chapter 7 under<br />

“Monitoring the use of 64-bit data buffers,” in the manual <strong>DFSMS</strong> Using the New Functions,<br />

SC26-7473.<br />

If you have access to <strong>IBM</strong> RMF then it is preferable to use it to look at the various statistics<br />

provided. If you do not have RMF then the sample programs provided in the appendix and<br />

illustrated below can be used to gain insight into what is happening on the system.<br />

Note: Before using any of the SMF records for analysis, review the current status of APAR<br />

OA17704, as shown in “OA11708” on page 457.<br />

SMF records for analysis<br />

The SMF records for analysis are:<br />

► SMF Record type 42 Subtype 16 (Data Set Summary) indicates whether a data set is<br />

enabled for 64-bit data buffers and whether it uses storage above 2-gigabytes. Any data<br />

set that you want SMF to monitor usage for must be nominated by means of the<br />

command:<br />

V SMS,MONDS(datasetname),ON<br />

Where datasetname is a fully qualified name or one with one trailing asterisk (*).<br />

For details on these SMF records for analysis refer to 3.6.8, “SMF Record type 42 Subtype<br />

16 information example” on page 30.<br />

► SMF Record type 42 Subtype 18 (CF Cache Partition Usage) provides statistics on the<br />

use of coupling facility cache storage classes. For details on these SMF records for<br />

analysis see “SMF Record type 42 Subtype 18 information example” on page 36.<br />

► SMF Record type 42 Subtype 19 (LRU record) provides statistics for data buffers above<br />

and below 2 gigabytes. For details on these SMF records for analysis see “SMF Record<br />

type 42 Subtype 19 information example” on page 44.<br />

3.6.8 SMF Record type 42 Subtype 16 information example<br />

SMS writes SMF Record type 42 subtype 16 to document VSAM RLS data set activity.<br />

Note: Before attempting to use SMF type 42 subtype 16 records in relation to 64-bit buffer<br />

usage, APAR OA17704 (see “OA17704” on page 456) should be installed.<br />

We wrote a simple program called SMF42TG to scan the SMF records and summarize<br />

activity. The program itself and how to construct it are documented in “SMF record type 42<br />

subtype 16 data display program” on page 522.<br />

30 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-21 we show the JCL to extract the SMF records and run the program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT42TG program. The JCL could be changed to make a<br />

permanent extract of the SMF data, or to read of an already created SMF data extract.<br />

//MHLRES1L JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN2<br />

//*DUMPIN DD DISP=SHR,DSN=SMFDATA.ALLRECS.G3196V00<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=32760,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(42(16)))<br />

/*<br />

// EXEC PGM=SMF42TG<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF42TG.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 3-21 JCL to extract SMF records and run program SMF42TG<br />

Note: As a result of the problems described by APAR OA17704 (see “OA17704” on<br />

page 456) there may be abnormal displays in the output. The fact that a record is not<br />

correctly built in the SMF records is usually indicated by the cycle time records being zero<br />

or abnormally large.<br />

There are four sets of records contained in the SMF records type 42 subtype 16, two sections<br />

relating to below the 2 GB bar and two relating to above the 2 GB bar. Hence, a large amount<br />

of output could be produced. Samples of each type of output are presented from a run of the<br />

program. The ability to use buffers above the 2 GB bar was made available with z/<strong>OS</strong> V1R7,<br />

but the SMF data about activity was not available until z/<strong>OS</strong> <strong>V1R8</strong>.<br />

Program SMF42TG output uses headings for the output that are taken from the SMF records<br />

that it was obtained from. To assist with interpretation of the output, we provide extracts from<br />

parts of the SMF mapping macro IGWSMF. In order to distinguish between the SMF record<br />

type 42 subtype 16 fields from below and above the 16 GB bar, those relating to below the<br />

2 GB bar are prefixed SMF42, and those relating to above the 2 GB bar are prefixed SMF2A<br />

(2A is hexidecimal for 42).<br />

The records (in each group) consist of SYSPLEX-wide data and Data set/MVS system<br />

summary data.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 31


For below the 2 GB bar, the SYSPLEX-wide records come in group SMF42GA1 and the MVS<br />

system records come in group SMF42G1A. Similar groups for above the 2 GB bar are<br />

SMF2AGA1 and SMF2AG1A.<br />

Example from group SMF42GA1 - SYSPLEX-wide summary<br />

In Figure 3-22 we show part of the output from running SMF42GA1.<br />

SMF42GA1 SYSPLEX D/S RESPONSE SUMMARY SET #: 0000001<br />

YYYYDDD HH:MM:SS SMF42GAA SMF42GAB SMF42GAC<br />

2007080 20:30:00 0000600 HSM.BCDS.RLS.DATA HSM.BCDS.RLS<br />

SMF42GAE SMF42GAF SMF42GAH SMF42GAI SMF42GAJ<br />

SC54GRT CSERLS RLS_CACHE UNKNOWN GT4KNOTACT<br />

SMF42GAP SMF42GCA SMF42GCB SMF42GCC SMF42GCD SMF42GCE SMF42GCF SMF42GCI SMF42GCL SMF42GCM SMF42GCN<br />

0000009 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

.<br />

.<br />

.<br />

Figure 3-22 SMF42TG output for group SMF41GA1<br />

A number of sets of output may be produced depending on the configuration of the<br />

SYSPLEX.<br />

The specific meanings of the fields can be found in the manual MVS System Management<br />

Facilities (SMF), SA22-7630, or can be interpreted from the IGWSMF macro in<br />

SYS1.MACLIB on the system, which may be more up to date than the version in the manual.<br />

In Figure 3-23 on page 33 we show part of the IGWSMF macro that relates to group<br />

SMF42GA1 records.<br />

In Figure 3-22:<br />

► Fields SMF42GAA, SMF42GAB, and SMF42GAC show, respectively, the interval time,<br />

data set name, and VSAM sphere name.<br />

The SMF42GAA value can be used as an indicator that the record is valid. A value of 0 or<br />

a very high number is likely to indicate that the SMF record may be suspect.<br />

► Fields SMF42GAE, SMF42GAF, SMF42GAH, SMF42GAI, and SMF42GAJ show,<br />

respectively, the Storage Class Name, the CACHESET name, the DFP CACHE<br />

STRUCTURE name, the indicator of the component being processed, and CF processing<br />

status indictors.<br />

The SMF42GAI field may no longer be supported. All test runs show it as a field of<br />

x’00000000’).<br />

► The remaining fields can be interpreted from the IGWSMF macro.<br />

► Information is provided in Appendix B, “Code samples” on page 477, where the program is<br />

described on how to alter it to process other SMF fields from those initially provided.<br />

32 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* -----------------------------------------------------------------<br />

* CF DATASET RESPONSE TIME SUMMARY (SMF42 SUBTYPE 16)<br />

* -----------------------------------------------------------------<br />

SMF420GA DSECT ,<br />

SMF42GA1 DS 0CL1472 SYSPLEX WIDE SUMMARY @21A<br />

SMF42GAA DS 1FL4 INTERVAL LENGTH. THIS IS THE<br />

* TOTAL TIME OF THE MEASUREMENT<br />

* PERIOD. (IN SECONDS) @10A<br />

SMF42A00 DS CL12 RESERVED @MDK<br />

*<br />

SMF42GAB DS CL44 DATA SET NAME @10A<br />

SMF42A01 DS 1FL4 RESERVED @10A<br />

*<br />

SMF42GAC DS CL44 VSAM SPHERE NAME @10A<br />

SMF42A02 DS 1FL4 RESERVED @10A<br />

*<br />

SMF42GAD DS 1FL2 LENGTH OF THE STORAGE CLASS<br />

* NAME @10A<br />

SMF42GAE DS CL30 STORAGE CLASS NAME @10A<br />

*<br />

SMF42A03 DS 1FL2 CACHESETNAME LENGTH @10A<br />

SMF42GAF DS CL30 CACHESET NAME @10A<br />

*<br />

SMF42GAG DS CL2 RESERVED @10A<br />

SMF42GAH DS CL30 DFP CACHE STRUCTURE NAME @10A<br />

*<br />

SMF42GAI DS 1FL4 INDICATOR OF COMPONENT BEING<br />

* PROCESSED @10A<br />

SMF42GAI0 EQU X'80000000' DATA COMPONENT @10A<br />

SMF42GAI1 EQU X'40000000' INDEX COMPONENT @10A<br />

* @10A<br />

SMF42GAJ DS CL12 INDICATES <strong>DFSMS</strong> GREATER @P5A<br />

* THAN 4K CF CACHING STATUS @P5A<br />

* VALUES ARE ALL, NONE, @P5A<br />

* UPDATESONLY, GT4KNOTACT @P5A<br />

SMF42GAK DS 1FL4 NUMBER OF LOCK REQUESTS<br />

* PROCESSED @10A<br />

SMF42GAL DS 1FL4 NUMBER OF TRUE CONTENTION<br />

* LOCK REQUESTS @10A<br />

SMF42GAM DS 1FL4 NUMBER OF FALSE CONTENTION<br />

* LOCK REQUESTS @10A<br />

SMF42GZ1 DS 1FL2 SMSDIRECTWEIGHT @10A<br />

SMF42GZ2 DS 1FL2 SMSSEQUENTIALWEIGHT @10A<br />

.<br />

.<br />

.<br />

.<br />

Figure 3-23 IGWSMF record extract for group SMF42GA1<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 33


Example from group SMF42G1A - data set/MVS summary<br />

In Figure 3-24 we show part of the output from running SMF42GA1.<br />

SMF42G1A DATA SET/MVS SYSTEM SUMMARY SET #: 0000001<br />

YYYYDDD HH:MM:SS SMF42GBA SMF42GBB SMF42GBC<br />

2007080 20:30:00 0000600 HSM.BCDS.RLS.DATA HSM.BCDS.RLS<br />

SMF42GBE SMF42GBF SMF42GBH SMF42GBI SMF42AO9<br />

SC54GRT CSERLS SC64 UNKNOWN GT4KNOTACT<br />

SMF42GBP SMF42GIA SMF42GIB SMF42GIC SMF42GID SMF42GIE SMF42GIF SMF42GIL SMF42GIR SMF42GIS<br />

0000009 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 .<br />

.<br />

.<br />

Figure 3-24 SMF42TG output for group SMF41G1A<br />

A number of sets of output may be produced depending on the configuration of the<br />

SYSPLEX.<br />

The specific meaning of the fields can be found in the manual MVS System Management<br />

Facilities (SMF), SA22-7630, or can be interpreted from the IGWSMF macro in<br />

SYS1.MACLIB on the system, which may be more up to date than the version in the manual.<br />

34 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-25 we show part of the IGWSMF macro that relates to group SMF42G1A records.<br />

SMF42G1A DS 0CL1488 DATA SET/MVS SYSTEM SUMMARY @21A<br />

* SECTION @21C<br />

SMF42GBA DS 1FL4 INTERVAL LENGTH. THIS IS THE<br />

* TOTAL TIME OF THE MEASUREMENT<br />

* PERIOD. (IN SECONDS) @10A<br />

SMF42A05 DS CL12 RESERVED @10A<br />

*<br />

SMF42GBB DS CL44 DATA SET NAME @10A<br />

SMF42A06 DS 1FL4 RESERVED @10A<br />

*<br />

SMF42GBC DS CL44 VSAM SPHERE NAME @10A<br />

SMF42A07 DS 1FL4 RESERVED @10A<br />

*<br />

SMF42GBD DS 1FL2 LENGTH OF THE STORAGE CLASS<br />

* NAME @10A<br />

SMF42GBE DS CL30 STORAGE CLASS NAME @10A<br />

*<br />

SMF42A08 DS 1FL2 CACHESETNAME LENGTH @10A<br />

SMF42GBF DS CL30 CACHESET NAME @10A<br />

*<br />

SMF42A12 DS 1FL2 RESERVED @10A<br />

SMF42GBG DS CL30 DFP CACHE STRUCTURE NAME @10A<br />

*<br />

SMF42GBH DS CL8 MVS SYSTEM NAME @10A<br />

SMF42A11 DS CL8 RESERVED @10A<br />

*<br />

SMF42GBI DS 1FL4 INDICATOR OF COMPONENT BEING<br />

* PROCESSED @10A<br />

SMF42GBI0 EQU X'80000000' DATA COMPONENT @10A<br />

SMF42GBI1 EQU X'40000000' INDEX COMPONENT @10A<br />

SMF42A09 DS CL12 INDICATES <strong>DFSMS</strong> GREATER @P5A<br />

* THAN 4K CF CACHING STATUS @P5A<br />

* VALUES ARE ALL, NONE, @P5A<br />

* UPDATESONLY, GT4KNOTACT @P5A<br />

SMF42GBK DS 1FL4 NUMBER OF LOCK REQUESTS<br />

* PROCESSED @10A<br />

SMF42GBL DS 1FL4 NUMBER OF TRUE CONTENTION<br />

* LOCK REQUESTS @10A<br />

SMF42GBM DS 1FL4 NUMBER OF FALSE CONTENTION<br />

* LOCK REQUESTS @10A<br />

SMF42GZ8 DS 1FL2 SMSDIRECTWEIGHT @10A<br />

SMF42GZ9 DS 1FL2 SMSSEQUENTIALWEIGHT @10A<br />

*<br />

.<br />

Figure 3-25 IGWSMF record extract for group SMF42G1A<br />

In Figure 3-25:<br />

► Fields SMF42GBA, SMF42GBB, and SMF42GBC show, respectively, the interval time,<br />

data set name, and VSAM sphere name.<br />

The SMF42GBA value can be used as an indicator that the record is valid. A value of 0 or<br />

a very high number is likely to indicate that the SMF record may be suspect.<br />

► Fields SMF42GBE, SMF42GBF, SMF42GBH, SMF42GBI, and SMF42A09 show,<br />

respectively, the Storage Class Name, the CACHESET name, the DFP CACHE<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 35


STRUCTURE name, the indicator of the component being processed, and CF processing<br />

status indictors.<br />

The SMF42GBI field may no longer be supported. All test runs show it as a field of<br />

x’00000000’).<br />

► The remaining fields can be interpreted from the IGWSMF macro.<br />

Information is provided in Appendix B, “Code samples” on page 477, where the program is<br />

described on how to alter it to process other SMF fields from those initially provided.<br />

Example from group SMF2AGA1 - SYSPLEX-wide summary<br />

Because of the problems with the content of the SMF records, as described in 3.6.8, “SMF<br />

Record type 42 Subtype 16 information example” on page 30, actual output from the program<br />

for above the 2 GB bar is not shown. If the program is run after the fixes have been<br />

implemented, the output appears the same as from the below the 2 GB bar examples above,<br />

but with 2A substituted for 42.<br />

Example from group SMF2AG1A - data set/MVS summary<br />

Because of the problems with the content of the SMF records, as described in 3.6.8, “SMF<br />

Record type 42 Subtype 16 information example” on page 30, actual output from the program<br />

for above the 2 GB bar is not shown. If the program is run after the fixes have been<br />

implemented, the output appears the same as from the below the 2 GB bar examples above,<br />

but with 2A substituted for 42.<br />

3.6.9 SMF Record type 42 Subtype 18 information example<br />

SMS writes SMF Record type 42 subtype 18 to document cache use by VSAM RLS.<br />

We have written a sample program called SMF42TI to scan the SMF records and summarize<br />

activity. The program itself and how to construct it is documented in “SMF Record type 42<br />

subtype 18 data display program” on page 534.<br />

36 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-26 we show the JCL to extract the SMF records and run the program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT42TI program. The JCL could be changed to make a<br />

permanent extract of the SMF data, or to read an already created SMF data extract.<br />

//MHLRES1L JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//*DUMPIN DD DISP=SHR,DSN=SMFDATA.ALLRECS.G3196V00<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=32760,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(42(18)))<br />

/*<br />

// EXEC PGM=SMF42TI<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF42TI.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 3-26 JCL to extract SMF records and run program SMF42TI<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 37


There are three different sets of output processed by SMF42TI if data is found in the records.<br />

In Table 3-4 we show the relationship between the three types of data reported on by<br />

SMF42TI.<br />

In Figure 3-27 on page 39 we show example output from running program SMF42TI.<br />

Table 3-4 SMF42TI report summary information<br />

Data description SMF structure name Report identifier<br />

Coupling Facility Cache<br />

Partition Summary (SMF42<br />

subtype 18) - data for this<br />

partition across all cache<br />

structures<br />

Coupling Facility Cache<br />

Partition Summary (SMF42<br />

subtype 18) - data for this<br />

partition for a singe cache<br />

structure<br />

Coupling Facility Cache<br />

Partition Summary (SMF42<br />

subtype 18) - directory/element<br />

ratio data for this cache<br />

structure<br />

38 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

SMF420IA SMF41IA1<br />

SMF420IC SMF42IC1<br />

SMF420IE SMF42IE1


SMF TYPE 42 S/TYPE 18 RECS. COLS USE SMF NAMES<br />

SMF42IA1 TOTALS SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42IAA SMF42IBG SMF42IBH SMF42I01 SMF42IAD SMF42IAF SMF42IAG SMF42IAH SMF42IAI SMF42IAJ<br />

11:00:00 2007074 0000599 DIRECT 0000001 PARTITION # 0000001 0000000 0000000 0000000 0000000 0000000<br />

SMF42IAK SMF42IAL SMF42IAM SMF42IAN SMF42IAO SMF42IAP SMF42IAQ SMF42IAR SMF42IAS SMF42IAT SMF42IAU SMF42IAV<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42IAW SMF42IAX SMF42IAY SMF42IAZ SMF42IBA SMF42IBB SMF42IBC SMF42IBD SMF42IBE SMF42IBF<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42IA1 TOTALS SET #: 0000002<br />

HH:MM:SS YYYYDDD SMF42IAA SMF42IBG SMF42IBH SMF42I01 SMF42IAD SMF42IAF SMF42IAG SMF42IAH SMF42IAI SMF42IAJ<br />

11:00:00 2007074 0000599 SEQUENTIAL 0000001 PARTITION # 0000002 0000000 0000000 0000000 0000000 0000000<br />

SMF42IAK SMF42IAL SMF42IAM SMF42IAN SMF42IAO SMF42IAP SMF42IAQ SMF42IAR SMF42IAS SMF42IAT SMF42IAU SMF42IAV<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42IAW SMF42IAX SMF42IAY SMF42IAZ SMF42IBA SMF42IBB SMF42IBC SMF42IBD SMF42IBE SMF42IBF<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

.<br />

.<br />

SMF42IC1 TOTALS SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42ICA SMF42ICB SMF42IDG SMF42IDH SMF42ICD SMF42ICF SMF42ICG SMF42ICH<br />

11:00:00 2007074 0000599 RLS_CACHE DIRECT 0000001 0000001 0000000 0000000 0000000<br />

SMF42ICI SMF42ICJ SMF42ICK SMF42ICL SMF42ICM SMF42ICN SMF42ICO SMF42ICP SMF42ICQ SMF42ICR SMF42ICS<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42ICT SMF42ICU SMF42ICV SMF42ICW SMF42ICX SMF42ICY SMF42ICZ SMF42IDA SMF42IDB SMF42IDC SMF42IDD SMF42IDE<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42IC1 TOTALS SET #: 0000002<br />

HH:MM:SS YYYYDDD SMF42ICA SMF42ICB SMF42IDG SMF42IDH SMF42ICD SMF42ICF SMF42ICG SMF42ICH<br />

11:00:00 2007074 0000599 RLS_CACHE SEQUENTIAL 0000001 0000002 0000000 0000000 0000000<br />

SMF42ICI SMF42ICJ SMF42ICK SMF42ICL SMF42ICM SMF42ICN SMF42ICO SMF42ICP SMF42ICQ SMF42ICR SMF42ICS<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42ICT SMF42ICU SMF42ICV SMF42ICW SMF42ICX SMF42ICY SMF42ICZ SMF42IDA SMF42IDB SMF42IDC SMF42IDD SMF42IDE<br />

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

.<br />

.<br />

SMF42IE1 TOTALS SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42IEA SMF42IEB SMF42IEC SMF42IED SMF42IEE SMF42IEF SMF42IEG SMF42IEH SMF42IEI SMF42IEJ<br />

14:00:00 2007074 0000600 RLS_CACHE 0000000 0000000 0000252 0000255 0000252 0000255 0000252 0000255<br />

SMF42IE1 TOTALS SET #: 0000002<br />

HH:MM:SS YYYYDDD SMF42IEA SMF42IEB SMF42IEC SMF42IED SMF42IEE SMF42IEF SMF42IEG SMF42IEH SMF42IEI SMF42IEJ<br />

14:00:00 2007074 0000600 RLS_CACHE 0000000 0000000 0000252 0000255 0000252 0000255 0000252 0000255<br />

.<br />

.<br />

Figure 3-27 SMF42TI program sample output<br />

Program SMF42TI output uses headings for the output that is taken from the SMF records<br />

that it was obtained from.<br />

The specific meaning of the fields can be found in MVS System Management Facilities<br />

(SMF), SA22-7630, or can be interpreted from the IGWSMF macro in SYS1.MACLIB on the<br />

system, which may be more up to date than the version in the manual.<br />

In Figure 3-27 the output is shown in three groups. The meanings of the fields are similar, and<br />

we recommend understanding the output review of the records in SMFMAN or in the<br />

IGWSMF macro, as the values presented depend on the system configuration.<br />

► In groups SMF41IA1, SMF42IC1, and SMF42IE1, respectively, fields SMF42IAA,<br />

SMF42IAC, and SMF42IAE show the interval time. The value shown can be used as an<br />

indicator that the record is valid. A value of 0 or a very high number is likely to indicate that<br />

the SMF record may be suspect.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 39


► For group SMF42IA1 in Table 3-5 we show the interpretation of the field names as taken<br />

from the IGWSMF macro.<br />

Table 3-5 SMF42IA1 field interpretation<br />

Field<br />

name<br />

Meaning<br />

SMF42IBG Partition type<br />

SMF42IBH SMS specified cache weight<br />

SMF42IO1 Partition name word<br />

SMF42IAD CF cache partition number<br />

► For group SMF42IC1 in Table 3-6 we show the interpretation of the field names as taken<br />

from the IGWSMF macro.<br />

Table 3-6 SMF42IC1 field interpretation<br />

Field name Meaning<br />

SMF42ICB cache structure name<br />

SMF42IDG partition type<br />

SMF42IDH SMS specified cache weight<br />

SMF42ICD CF cache partition number<br />

► For group SMF42IE1 in Table 3-7 we show the interpretation of the field names as taken<br />

from the IGWSMF macro.<br />

Table 3-7 SMF42IE1 field interpretation<br />

Field name Meaning<br />

SMF42IEB SMS cache structure name<br />

SMF42IEC Number of times the<br />

directory portion of the<br />

dir/ele ratio changes<br />

SMF42IED Number of times the<br />

element portion of the<br />

dir/ele ratio changes<br />

SMF42IEE Low ratio value in this<br />

interval - directory part<br />

SMF42IEF Low ratio value in this<br />

interval - element part<br />

SMF42IEG High ratio value in this<br />

interval - directory part<br />

SMF42IEH High ratio value in this<br />

interval - element part<br />

SMF42IEI Current ratio value in this<br />

interval - directory part<br />

40 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Field name Meaning<br />

SMF42IEJ Current ratio value in this<br />

interval - element part<br />

► The remaining fields can be interpreted from the IGWSMF macro.<br />

► Information is provided in Appendix B, “Code samples” on page 477, where the program is<br />

described for how to alter it to process other SMF fields from those initially provided.<br />

To assist with interpretation of the output in this document, we provide extracts from parts of<br />

the SMF mapping macro IGWSMF (Figure 3-28 on page 42 through to Figure 3-29 on<br />

page 43).<br />

Note: Changes may be made to the SMF mapping macro to correspond with changes to<br />

the data recorded, so for accurate analysis, the actual IGWSMF macro should be used.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 41


* -----------------------------------------------------------------<br />

* COUPLING FACILITY CACHE PARTITION SUMMARY (SMF42 SUBTYPE 18)<br />

* DATA FOR THIS PARTITION ACR<strong>OS</strong>S ALL CACHE STRUCTURES.<br />

* -----------------------------------------------------------------<br />

SMF420IA DSECT ,<br />

SMF42IA1 DS 0D CF CACHE PARTITION TOTALS<br />

* SECTION @10A<br />

SMF42IAC DS 0CL196 CACHE BUFFER POOLS<br />

* THERE ARE 23 POOLS:<br />

* 11 SEQUENTIAL, 11 DIRECT,<br />

* AND 1 DEFAULT<br />

* THERE IS A SEPERATE SECTION FOR<br />

* EACH PARTITION. THIS MEANS THAT<br />

* THERE WILL BE A MINUMUM OF 23<br />

* TOTALS SECTIONS AND 23 SUMMARY<br />

* SECTIONS.<br />

SMF42IAA DS 1FL4 INTERVAL LENGTH. THIS IS THE<br />

* TOTAL TIME OF THE MEASUREMENT<br />

* PERIOD. (IN SECONDS) @10A<br />

SMF42I00 DS CL12 RESERVED @10A<br />

*<br />

SMF42IAB DS CL32 RESERVED @10A<br />

*<br />

SMF42IBG DS CL16 PARTITION TYPE @10A<br />

* 'SEQUENTIAL' DATA ONLY @10A<br />

* 'DIRECT' DATA ONLY @10A<br />

* 'COMBINED' DATA @10A<br />

*<br />

SMF42IBH DS 1FL4 SMS SPECIFIED CACHE WEIGHT @10A<br />

SMF42I01 DS CL12 PARTITIONNAMEWORD @10A<br />

SMF42IAD DS 1FL4 COUPLE FACILITY CACHE<br />

* PARTITION NUMBER @10A<br />

SMF42IAE DS 1FL4 STATUS CONDITIONS @10A<br />

SMF42IAF DS 1FL4 READ HIT COUNTER @10A<br />

SMF42IAG DS 1FL4 READ MISS DIRECTORY HIT<br />

* COUNTER @10A<br />

SMF42IAH DS 1FL4 READ MISS ASSIGN SUPP<br />

* COUNTER @10A<br />

SMF42IAI DS 1FL4 READ MISS, NAME ASSIGNED<br />

* COUNTER @10A<br />

SMF42IAJ DS 1FL4 READ MISS TARGET STORAGE<br />

* CLASS FULL COUNTER @10A<br />

SMF42IAK DS 1FL4 WRITE HIT CHANGE BIT 0<br />

* COUNTER @10A<br />

SMF42IAL DS 1FL4 WRITE HIT CHANGE BIT 1<br />

* COUNTER @10A<br />

SMF42IAM DS 1FL4 WRITE MISS NOT REGISTERED<br />

* COUNTER @10A<br />

SMF42IAN DS 1FL4 WRITE MISS INVALID STATE<br />

* COUNTER @10A<br />

SMF42IAO DS 1FL4 WRITE MISS TARGET STORAGE CLASS<br />

* FULL COUNTER @10A<br />

Figure 3-28 IGWSMF macro part of DSECT SMF420IA section relating to subtype 18<br />

42 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* -----------------------------------------------------------------<br />

* COUPLING FACILITY CACHE PARTITION SUMMARY (SMF42 SUBTYPE 18)<br />

* DATA FOR THIS PARTITION FOR A SINGLE CACHE STRUCTURE<br />

* -----------------------------------------------------------------<br />

SMF420IC DSECT ,<br />

SMF42IC1 DS 0D CF CACHE PARTITION SUMMARY<br />

* SECTION @10A<br />

SMF42ICC DS 0CL196 CACHE BUFFER POOLS<br />

* THERE ARE 23 POOLS:<br />

* 11 SEQUENTIAL, 11 DIRECT,<br />

* AND 1 DEFAULT<br />

* THERE IS A SEPERATE SECTION FOR<br />

* EACH PARTITION. THIS MEANS THAT<br />

* THERE WILL BE A MINUMUM OF 23<br />

* TOTALS SECTIONS AND 23 SUMMARY<br />

* SECTIONS.<br />

SMF42ICA DS 1FL4 INTERVAL LENGTH. THIS IS THE<br />

* TOTAL TIME OF THE MEASUREMENT<br />

* PERIOD. (IN SECONDS) @10A<br />

SMF42I02 DS CL12 RESERVED @10A<br />

*<br />

SMF42I04 DS 1FL2 RESERVED @10A<br />

SMF42ICB DS CL30 CACHE STRUCTURE NAME @10A<br />

*<br />

SMF42IDG DS CL16 PARTITION TYPE @10A<br />

* 'SEQUENTIAL' DATA ONLY @10A<br />

* 'DIRECT' DATA ONLY @10A<br />

* 'COMBINED' DATA @10A<br />

*<br />

SMF42IDH DS 1F SMS SPECIFIED CACHE WEIGHT @10A<br />

SMF42I03 DS CL12 RESERVED @10A<br />

*<br />

SMF42ICD DS 1FL4 COUPLE FACILITY CACHE<br />

* PARTITION NUMBER @10A<br />

SMF42ICE DS 1FL4 STATUS CONDITIONS @10A<br />

SMF42ICF DS 1FL4 READ HIT COUNTER @10A<br />

SMF42ICG DS 1FL4 READ MISS DIRECTORY HIT<br />

* COUNTER @10A<br />

SMF42ICH DS 1FL4 READ MISS ASSIGN SUPP<br />

* COUNTER @10A<br />

SMF42ICI DS 1FL4 READ MISS, NAME ASSIGNED<br />

* COUNTER @10A<br />

SMF42ICJ DS 1FL4 READ MISS TARGET STORAGE<br />

* CLASS FULL COUNTER @10A<br />

SMF42ICK DS 1FL4 WRITE HIT CHANGE BIT 0<br />

* COUNTER @10A<br />

SMF42ICL DS 1FL4 WRITE HIT CHANGE BIT 1<br />

* COUNTER @10A<br />

SMF42ICM DS 1FL4 WRITE MISS NOT REGISTERED<br />

* COUNTER @10A<br />

SMF42ICN DS 1FL4 WRITE MISS INVALID STATE<br />

* COUNTER @10A<br />

SMF42ICO DS 1FL4 WRITE MISS TARGET STORAGE CLASS<br />

* FULL COUNTER @10A<br />

SMF42ICP DS 1FL4 DIRECTORY ENTRY RECLAIM<br />

* COUNTER @10A<br />

Figure 3-29 IGWSMF macro part of DSECT SMF420IC section relating to subtype 18<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 43


* -------------------------------------------------------------------<br />

* Coupling Facility Cache Partition Summary (SMF42 subtype 18)<br />

* Directory/Element ratio data for this cache structure<br />

* -------------------------------------------------------------------<br />

SMF420IE DSECT , @11A<br />

SMF42IE1 DS 0CL80 CF Cache Directory/element @11A<br />

* ratio section @11A<br />

SMF42IEA DS 1FL4 Interval length @11A<br />

SMF42I06 DS CL12 reserved @11A<br />

SMF42I07 DS CL2 reserved @11A<br />

SMF42IEB DS CL30 <strong>DFSMS</strong> cache structure name @11A<br />

SMF42IEC DS 1FL4 Number of times the @11A<br />

* directory portion of the @11A<br />

* dir/ele ratio changes @11A<br />

SMF42IED DS 1FL4 Number of times the @11A<br />

* Element portion of the @11A<br />

* dir/ele ratio changes @11A<br />

SMF42IEE DS 1FL4 Low ratio value in this @11A<br />

* interval - directory part @11A<br />

SMF42IEF DS 1FL4 Low ratio value in this @11A<br />

* interval - Element part @11A<br />

SMF42IEG DS 1FL4 High ratio value in this @11A<br />

* interval - directory part @11A<br />

SMF42IEH DS 1FL4 High ratio value in this @11A<br />

* interval - Element part @11A<br />

SMF42IEI DS 1FL4 Current ratio value in this @11A<br />

* interval - directory part @11A<br />

SMF42IEJ DS 1FL4 Current ratio value in this @11A<br />

* interval - element part @11A<br />

SMF420IE_LEN EQU *-SMF420IE Length of section @11A<br />

*<br />

Figure 3-30 IGWSMF macro DSECT SMF420IE section relating to subtype 18<br />

3.6.10 SMF Record type 42 Subtype 19 information example<br />

SMS can be configured to write SMF Record type 42 subtype 19 to document cache use.<br />

We have written a simple program called SMF42TJ to scan the SMF records and summarize<br />

activity. The program itself and how to construct it is documented in “SMF record type 42<br />

subtype 19 data display program” on page 547.<br />

44 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-31 we show the JCL to extract the SMF records and run the program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT42TJ program. The JCL could be changed to make a<br />

permanent extract of the SMF data, or to read from an already created SMF data extract.<br />

//MHLRES1L JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//*DUMPIN DD DISP=SHR,DSN=SMFDATA.ALLRECS.G3196V00<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=32760,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(42(19)))<br />

/*<br />

// EXEC PGM=SMF42TJ<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF42TJJ.PDS<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 3-31 JCL to extract SMF records and run program SMF42TJ<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 45


In Figure 3-32 we show example output from running program SMF42TJ.<br />

SMF42JNA SYSPLEX SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42JNA SMF42JN7 SMF42JNG SMF42JNH SMF42JNI SMF42JNJ SMF42JNK SMF42JNL SMF42JNM SMF42JNN<br />

17:30:00 2007073 0000599 0000000 0000040 0000160 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42JPA LPAR SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42JPA SMF42JPB SMF42JP6 SMF42JPG SMF42JPH SMF42JPI SMF42JP2 SMF42JPJ SMF42JPK SMF42JPL SMF42JPM SMF42JPN<br />

17:30:00 2007073 0000600 SC64 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42JPA LPAR SET #: 0000002<br />

HH:MM:SS YYYYDDD SMF42JPA SMF42JPB SMF42JP6 SMF42JPG SMF42JPH SMF42JPI SMF42JP2 SMF42JPJ SMF42JPK SMF42JPL SMF42JPM SMF42JPN<br />

17:30:00 2007073 0000600 SC70 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42JPA LPAR SET #: 0000003<br />

HH:MM:SS YYYYDDD SMF42JPA SMF42JPB SMF42JP6 SMF42JPG SMF42JPH SMF42JPI SMF42JP2 SMF42JPJ SMF42JPK SMF42JPL SMF42JPM SMF42JPN<br />

17:30:00 2007073 0000600 SC65 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF42JPA LPAR SET #: 0000004<br />

HH:MM:SS YYYYDDD SMF42JPA SMF42JPB SMF42JP6 SMF42JPG SMF42JPH SMF42JPI SMF42JP2 SMF42JPJ SMF42JPK SMF42JPL SMF42JPM SMF42JPN<br />

17:30:00 2007073 0000599 SC63 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF2AJNA SYSPLEX SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF2AJNA SMF2AJN7 SMF2AJNG SMF2AJNH SMF2AJNI SMF2AJNJ SMF2AJNK SMF2AJNL SMF2AJNM SMF2AJNN<br />

17:30:00 2007073 0000599 0000000 0000020 0000080 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF2AJPA LPAR SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF2AJPA SMF2AJPB SMF2AJP6 SMF2AJPG SMF2AJPH SMF2AJPI SMF2AJP2 SMF2AJPJ SMF2AJPK SMF2AJPL SMF2AJPM SMF2AJPN<br />

17:30:00 2007073 0000600 SC64 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF2AJPA LPAR SET #: 0000002<br />

HH:MM:SS YYYYDDD SMF2AJPA SMF2AJPB SMF2AJP6 SMF2AJPG SMF2AJPH SMF2AJPI SMF2AJP2 SMF2AJPJ SMF2AJPK SMF2AJPL SMF2AJPM SMF2AJPN<br />

17:30:00 2007073 0000600 SC70 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF2AJPA LPAR SET #: 0000003<br />

HH:MM:SS YYYYDDD SMF2AJPA SMF2AJPB SMF2AJP6 SMF2AJPG SMF2AJPH SMF2AJPI SMF2AJP2 SMF2AJPJ SMF2AJPK SMF2AJPL SMF2AJPM SMF2AJPN<br />

17:30:00 2007073 0000600 SC65 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

SMF2AJPA LPAR SET #: 0000004<br />

HH:MM:SS YYYYDDD SMF2AJPA SMF2AJPB SMF2AJP6 SMF2AJPG SMF2AJPH SMF2AJPI SMF2AJP2 SMF2AJPJ SMF2AJPK SMF2AJPL SMF2AJPM SMF2AJPN<br />

17:30:00 2007073 0000599 SC63 0000000 0000040 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000<br />

Figure 3-32 SMF42TJ program sample output<br />

The fields prefixed SMF42 are below the 2 GB bar, and those prefixed SMF2A are above the<br />

2 GB bar. The sample program and resulting output do not cover all the SMF records that are<br />

available. The program as documented in the appendix can be adapted to extract and display<br />

alternative records, or could be extended to cover more of the records.<br />

The significance of the contents of these records depends on the particular environment<br />

being used. These examples demonstrate that SMF was producing records for both below<br />

and above the 2 GB bar activity, but as it was done on a low usage system (as far as RLS<br />

was concerned), many values show as zero.<br />

Interpretation of the field meaning can be done by following the examples for subtypes 16 and<br />

18 above.<br />

Program SMF42TJ output uses headings for the output that are taken from the SMF records<br />

that it was obtained from. To assist with interpretation of the output, we provide extracts from<br />

parts of the SMF mapping macro IGWSMF (Figure 3-33 on page 47 and Figure 3-34 on<br />

page 49).<br />

Note: Changes may be made to the SMF mapping macro to correspond with changes to<br />

the data recorded, so for accurate analysis, the actual IGWSMF macro should be used for<br />

reference.<br />

46 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* --------------------------------------------------------------<br />

* Coupling Facility Local Buffer Manager (SMF42 subtype 19)<br />

* Local Buffer Manager LRU Statistics Summary. sysplex totals<br />

* --------------------------------------------------------------<br />

SMF420JA DSECT ,<br />

SMF42JA1 DS 0D sysplex totals section<br />

*<br />

SMF42JAC DS 0CL1384<br />

*<br />

SMF42JNA DS 1FL4 Interval length. This is the<br />

* total time of the measurement<br />

* period. (in seconds) total<br />

SMF42J00 DS CL12 reserved<br />

*<br />

SMF42JNB DS CL16 reserved<br />

SMF42JND DS CL8 Reserved<br />

*<br />

SMF42JNE DS 2F<br />

* Average Cpu time for all<br />

* systems in the sysplex. This<br />

* is the amount of CPU time<br />

* (on average) that each system<br />

* consumed while processing the<br />

* Local Buffer Manager LRU<br />

* alogrithm.<br />

*<br />

SMF42JNF DS 2F<br />

* Total CPU time for this<br />

* record (in milli-seconds)<br />

* (sysplex totals)<br />

*<br />

SMF42JN0 DS CL4 Reserved<br />

SMF42JN7 DS 1FL4 Total number of write<br />

* requests<br />

* (sysplex totals)<br />

SMF42JNG DS 1FL4 Average number of buffer<br />

* manager LRU intervals<br />

* processed during this period.<br />

* (sysplex totals)<br />

*<br />

SMF42JNH DS 1FL4 Total number of buffer<br />

* manager LRU intervals<br />

* processed during this period.<br />

* (across the sysplex)<br />

*<br />

SMF42JNI DS 1FL4 Average<br />

* Number of buffer manager<br />

* LRU intervals processed<br />

* where BMF was over the goal<br />

* and normal algorithms were<br />

* bypassed to reclaim buffers.<br />

*<br />

SMF42JNJ DS 1FL4 Total<br />

* Number of buffer manager<br />

* LRU intervals processed<br />

* where BMF was over the goal<br />

* and normal algorithms were<br />

Figure 3-33 IGWSMF macro relating to SMF type 42 subtype 19 (parts of the SMF420JA DSECT)<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 47


The above example shows the records for below the 2 GB bar records where they are<br />

prefixed SMF42xxx. The IGWSMF macro contains corresponding definitions for the above<br />

the bar records where they are prefixed SMF2Axxx.<br />

48 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* --------------------------------------------------------------<br />

* Coupling Facility Local Buffer Manager (SMF42 subtype 19)<br />

* Local Buffer Manager LRU Statistics Summary. single system<br />

* --------------------------------------------------------------<br />

SMF420PA DSECT ,<br />

SMF42PA1 DS 0D<br />

*<br />

SMF42PAC DS 0CL800<br />

*<br />

SMF42JPA DS 1FL4 Interval length. This is the<br />

* total time of the measurement<br />

* period. (in seconds) total<br />

*<br />

SMF42J01 DS CL12 Reserved<br />

*<br />

SMF42JPB DS CL8 MVS system name.<br />

SMF42JPC DS CL8 Reserved<br />

SMF42JPD DS CL8 Reserved<br />

*<br />

SMF42JPE DS CL8 Average CPU time spent by<br />

* BMF LRU processing during<br />

* each cycle (in milli-seconds)<br />

*<br />

SMF42JPF DS CL8 Total CPU time for this<br />

* record (in milli-seconds)<br />

*<br />

SMF42JP1 DS CL12 Reserved<br />

SMF42JP6 DS 1FL4 Total number of write<br />

* requests<br />

SMF42JPG DS 1FL4 Number of buffer manager<br />

* LRU intervals processed<br />

* during this period.<br />

*<br />

SMF42JPH DS 1FL4 Number of buffer manager<br />

* LRU intervals processed<br />

* where BMF was over the goal<br />

* and normal algorithms were<br />

* bypassed to reclaim buffers.<br />

*<br />

SMF42JPI DS 1FL4 Total number of times that BMF<br />

* was called in this interval<br />

*<br />

SMF42JP2 DS 1FL4 Number of buffer manager<br />

* LRU intervals processed<br />

* where BMF was over the goal,<br />

* accelerated the aging, but<br />

* did not go into panic mode.<br />

SMF42JPJ DS 1FL4 Buffer manager number of<br />

* hits during this interval.<br />

SMF42JPK DS 1FL4 Buffer manager number of<br />

* 'hits' current percentage<br />

* during this interval. Value<br />

* for the last LRU cycle before<br />

* the SMF record was processed<br />

Figure 3-34 GWSMF macro section SMF type 42 subtype 19 (parts of the SMF420PA DSECT)<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 49


The above example shows the records for below the 2 GB bar records where they are<br />

prefixed SMF42xxx. The IGWSMF macro contains corresponding definitions for the above<br />

the bar records where they are prefixed SMF2Axxx.<br />

3.7 Device manager enhancements<br />

z/<strong>OS</strong> <strong>V1R8</strong> introduces several new enhancements to DEVMAN, the device manager address<br />

space. These expand upon the DEVMAN CTRACE support and parameters introduced in<br />

z/<strong>OS</strong> V1R7.<br />

3.7.1 Rapid index rebuild<br />

This enhancement significantly improves the performance of the convert routine used when<br />

rebuilding a VTOC index. It has been implemented by moving the responsibility for this<br />

function into the DEVMAN address space, which now reads the entire contents of the<br />

volume’s VTOC into a data space with as little as one channel program. Prior to this<br />

enhancement, DADSM read and processed each track in the VTOC one at a time, causing<br />

significant I/O overhead due to multiple start subchannel operations. The original DADSM<br />

code is retained so that if the DEVMAN address space is unavailable the rebuild can still take<br />

place.<br />

Maintenance<br />

In order to use this support, APAR PK19625 must be installed for ICKDSF R17. Without this<br />

APAR support, the old DADSM method is used. You must also have the PTF for APAR<br />

OA17478 installed. It fixes a situation where a BUILDIX failure can occur as well as an<br />

ABEND0C4 problem.<br />

Implementing<br />

With <strong>DFSMS</strong> <strong>V1R8</strong> the VTOC convert routine automatically uses DEVMAN if it is available.<br />

ICKDSF R17 is used as before with no change to the command format, but it must have<br />

maintenance installed to test for and call the DEVMAN routines. ICKDSF R17 can be<br />

common to lower levels of <strong>DFSMS</strong> where, if the enabling APAR PK19625 is installed, it does<br />

not find DEVMAN or may find DEVMAN but not the convert routine, in which case the original<br />

DADSM routines are used.<br />

50 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Examples<br />

In Figure 3-35 we show sample JCL to rebuild the indexed VTOC on volume SLD000. This<br />

job first converts our existing indexed VTOC to <strong>OS</strong>FORMAT and then converts back to an<br />

indexed VTOC.<br />

//INITJ03 JOB SLT,MSGCLASS=H,REGION=1024K<br />

/*JOBPARM SYSAFF=*<br />

//*<br />

//DSF EXEC PGM=ICKDSF,PARM=NOREPLYU<br />

//SYSPRINT DD SYSOUT=*<br />

//DISK DD UNIT=3390,VOL=SER=SLD000,DISP=OLD<br />

//SYSIN DD *<br />

BUILDIX DDNAME(DISK) <strong>OS</strong><br />

BUILDIX DDNAME(DISK) IX<br />

Figure 3-35 ICKDSF BUILDIX job<br />

Figure 3-36 is an example of the IEC604I and ICKDSF messages that are seen in SYSLOG<br />

as a result of executing the JCL provided in Figure 3-35.<br />

$HASP373 INITJ03 STARTED - INIT 1 - CLASS A - SYS CIMN<br />

ICK502I BUILDIX FUNCTION STARTED<br />

ICK503I D000 REQUEST RECEIVED TO CONVERT VTOC TO <strong>OS</strong>FORMAT<br />

ICK504I D000 VTOC FORMAT IS CURRENTLY IXFORMAT, REQUEST ACCEPTED<br />

IEC604I VTOC CONVERT ROUTINE ENTERED ON D000,SLD000,D<strong>OS</strong>,DEVMAN<br />

ICK513I D000 BUILDIX PROCESSING COMPLETED: VTOC IS NOW IN <strong>OS</strong>FORMAT<br />

ICK502I BUILDIX FUNCTION STARTED<br />

ICK503I D000 REQUEST RECEIVED TO CONVERT VTOC TO IXFORMAT<br />

ICK504I D000 VTOC FORMAT IS CURRENTLY <strong>OS</strong>FORMAT, REQUEST ACCEPTED<br />

ICK513I D000 BUILDIX PROCESSING COMPLETED: VTOC IS NOW IN IXFORMAT<br />

$HASP395 INITJ03 ENDED<br />

Figure 3-36 SYSLOG output from the indexed VTOC build JCL<br />

Message IEC604I has been updated to show when DEVMAN is being used by the addition of<br />

DEVMAN to the end of the message.<br />

A typical example of message IEC604I in SYSLOG without using DEVMAN would be as<br />

shown in Figure 3-37.<br />

IEC604I VTOC CONVERT ROUTINE ENTERED ON D000,SLD000,D<strong>OS</strong><br />

Figure 3-37 IEC604I VTOC convert message not using DEVMAN<br />

A typical example of message IEC604I in SYSLOG using DEVMAN is as shown in<br />

Figure 3-38.<br />

IEC604I VTOC CONVERT ROUTINE ENTERED ON D000,SLD000,D<strong>OS</strong>,DEVMAN<br />

Figure 3-38 IEC604I VTOC convert message using DEVMAN<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 51


3.7.2 New MODIFY DEVMAN parameters<br />

Three new MODIFY DEVMAN parameters have been added. Their functions as described in<br />

MVS System Commands, SA22-7627, and are shown in Figure 3-39.<br />

F DEVMAN,{DUMP}<br />

{REPORT}<br />

{RESTART}<br />

The following are brief descriptions of the parameters.<br />

DUMP<br />

Captures a diagnostic dump of the device manager address space,<br />

including the dataspace that contains device manager CTRACE records.<br />

Note: The device manager CTRACE component name is SYSDMO. To connect<br />

device manager to an output writer, use the command TRACE<br />

CT,ON,COMP=SYSDMO.<br />

REPORT<br />

Provides basic information about the current activity and module<br />

levels for the device manager address space.<br />

RESTART<br />

Terminates the device manager address space and restarts the device<br />

manager in a new address space. The system allows any subtasks that<br />

are active in the device manager address space at the time of the<br />

restart to finish processing. The time allowed for subtask completion<br />

is determined by using the average time taken by previous subtasks.<br />

The system abnormally ends any subtasks that do not complete in time<br />

before it restarts the address space.<br />

Figure 3-39 New DEVMAN parameters<br />

There are two primary considerations when using the MODIFY DEVMAN,RESTART<br />

command:<br />

► You can use RESTART to avoid IPL when you install software. You can install most device<br />

manager APARs by refreshing LLA (F LLA,REFRESH) and then restarting the device<br />

manager (F DEVMAN,RESTART).<br />

► You can end and not restart the device manager address space by using the CANCEL<br />

DEVMAN command. When you end the address space in this way, you must restart the<br />

device manager with the DEVMAN cataloged procedure.<br />

Examples<br />

These commands should only be issued at the direction of the system programmer.<br />

52 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-40 we show an example of the MODIFY DEVMAN,DUMP command.<br />

MODIFY DEVMAN,DUMP<br />

IEA794I SVC DUMP HAS CAPTURED: 857<br />

DUMPID=019 REQUESTED BY JOB (DEVMAN )<br />

DUMP TITLE=COMPONENT=DEVICE MANAGER,COMPID=DF133,ISSUER=DMOVS00<br />

1,JOBNAME=DEVMAN<br />

IEF196I IGD101I SMS ALLOCATED TO DDNAME (SYS00020)<br />

IEF196I DSN (SYSDOC.DUMP.DA.D070218.T195615.CIMN.S00019 )<br />

IEF196I STORCLAS (DUMPSC) MGMTCLAS ( ) DATACLAS (<br />

IEF196I )<br />

IEF196I VOL SER N<strong>OS</strong>= DMPDP3<br />

IEF196I IGD104I SYSDOC.DUMP.DA.D070218.T195615.CIMN.S00019 RETAINED,<br />

IEF196I DDNAME=SYS00020<br />

IEA611I COMPLETE DUMP ON SYSDOC.DUMP.DA.D070218.T195615.CIMN.S00019 865<br />

DUMPID=019 REQUESTED BY JOB (DEVMAN )<br />

FOR ASID (0419)<br />

Figure 3-40 Dumping the device manager address space<br />

The REPORT parameter shows the current status of the device manager address space.<br />

Figure 3-41 is a report from a system where we would expect no device manager specific<br />

functions to be executing.<br />

MODIFY DEVMAN,REPORT<br />

DMO0030I DEVICE MANAGER REPORT 341<br />

**** DEVMAN ****************************************************<br />

* FMID: HDZ1180 *<br />

* APARS: UA28529 DMOAT002 *<br />

* NO SUBTASKS ARE ACTIVE *<br />

**** DEVMAN ****************************************************<br />

Figure 3-41 DEVMAN report with no subtasks active<br />

If issued at the precise moment a VTOC index is being rebuilt, it shows DEVMANs current<br />

status, as seen in Figure 3-42.<br />

MODIFY DEVMAN,REPORT<br />

DMO0030I DEVICE MANAGER REPORT 818<br />

**** DEVMAN ****************************************************<br />

* FMID: HDZ1180 *<br />

* APARS: UA28529 DMOAT002 *<br />

* SUBTASKS: *<br />

* JOBNAME STARTED SERVICE UNIT STATUS *<br />

* ------------------------------------------------------------ *<br />

* INITJ03 17.52.22 READVTOC D000 SUBTASK RUNNING *<br />

**** DEVMAN ****************************************************<br />

Figure 3-42 DEVMAN report with ICKDSF BUILDIX job running<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 53


The device manager address space can be restarted with the MODIFY DEVMAN,RESTART<br />

command. Figure 3-43 shows an example of this.<br />

MODIFY DEVMAN,RESTART<br />

IEF352I ADDRESS SPACE UNAVAILABLE<br />

$HASP395 DEVMAN ENDED<br />

IEA989I SLIP TRAP ID=X33E MATCHED. JOBNAME=*UNAVAIL, ASID=0419.<br />

$HASP250 DEVMAN PURGED -- (JOB KEY WAS C04EEE54)<br />

IEF196I 1 //IEESYSAS JOB TIME=1440,<br />

IEF196I // MSGLEVEL=1<br />

IEF196I 2 //DEVMAN EXEC IEESYSAS,PROG=DMOVS001<br />

IEF196I STMT NO. MESSAGE<br />

IEF196I 2 IEFC001I PROCEDURE IEESYSAS WAS EXPANDED USING SYSTEM<br />

IEF196I LIBRARY SYS1.<strong>IBM</strong>.PROCLIB<br />

IEF196I 3 XXIEESYSAS PROC PROG=IEFBR14<br />

IEF196I 00050000<br />

IEF196I 4 XXIEFPROC EXEC PGM=&PROG<br />

IEF196I 00100000<br />

IEF196I XX* THE IEESYSAS PROCEDURE IS SPECIFIED IN THE<br />

IEF196I 00150000<br />

IEF196I XX* PARAMETER LIST TO IEEMB881 BY MVS COMPONENTS<br />

IEF196I 00200000<br />

IEF196I XX* STARTING FULL FUNCTION SYSTEM ADDRESS SPACES.<br />

IEF196I 00250000<br />

IEF196I IEFC653I SUBSTITUTION JCL - PGM=DMOVS001<br />

DMO0010I DEVICE MANAGER INITIALIZATION STARTED<br />

DMO0000I DEVICE MANAGER INITIALIZATION COMPLETE<br />

Figure 3-43 Restarting the DEVMAN address space<br />

Migration and coexistence<br />

There are no migration or coexistence considerations when using the new DEVMAN support.<br />

3.8 PDSE enhancements<br />

In z/<strong>OS</strong> <strong>V1R8</strong> PDSE there are the following enhancements:<br />

► Program objects built may use Program Object format 5 (PO5).<br />

► In prior releases of <strong>DFSMS</strong>, PDSE cached directory buffers in the SYSBMFDS data<br />

space. With z/<strong>OS</strong> <strong>V1R8</strong>, PDSE has completely eliminated the 31-bit SYSBMF data space<br />

and now uses 64-bit buffers. Directory pages are now cached in 64-bit storage in the<br />

SMSPDSE and SMSPDSE1 address space. Several of the PDSE control block cell pools<br />

have been moved from 31-bit SMSPDSE and SMSPDSE1 address space storage to<br />

64-bit address space storage.<br />

► In this section we cover the enhancements to Partitioned Data Set Extended (PDSE) HSP<br />

and directory storage size that are available now and the option to retain buffers beyond<br />

close.<br />

Significant changes to PDSE were introduced with z/<strong>OS</strong> V1R6, and we recommend that you<br />

refer to the <strong>IBM</strong> <strong>Redbooks</strong> publication Partitioned Data Set Extended Usage Guide,<br />

SG24-6106, for background information.<br />

54 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


3.8.1 PDSE PO5 module format compatibility on pre-z/<strong>OS</strong> <strong>V1R8</strong> systems<br />

There is support for use of the PDSE Program Object format 5 (PO5) module format on prior<br />

releases. In Table 3-8 we show the toleration maintenance available for systems prior to z/<strong>OS</strong><br />

<strong>V1R8</strong>.<br />

Table 3-8 PDSE PO5 format toleration maintenance<br />

APAR Description<br />

OA13525 Allows use of load modules built on z/<strong>OS</strong> <strong>V1R8</strong> to be used on prior systems<br />

3.8.2 PDSE 64-bit virtual storage use enablement<br />

Prior to z/<strong>OS</strong> <strong>V1R8</strong>, the SMSPDSE and SMSPDSE1 address spaces were 31-bit<br />

implementations. This limited the number of concurrently opened PDSE members that could<br />

exist in a system to approximately one million.<br />

With z/<strong>OS</strong> <strong>V1R8</strong>, both address spaces are implemented in 64-bit mode. Now you can specify<br />

up to 16 GB, which allows a much larger number of PDSE members to be open.<br />

The options that enabled by use of 64-bit storage are:<br />

► PDSE_DIRECTORY_STORAGE (up to 16 GB) - related to SMSPDSE address space<br />

► PDSE1_DIRECTORY_STORAGE (up to 16 GB) - related to SMSPDSE1 address space<br />

► PDSE_HSP-SIZE (up to 2047 MB) - related to SMSPDSE address space<br />

► PDSE1_HSP-SIZE (up to 2047 MB) - related to SMSPDSE1 address space<br />

We recommend that you refer to the options available for member IGDSMSxx of PARMLIB in<br />

MVS Initialization and Tuning Guide, SA22-7591, and MVS Initialization and Tuning<br />

Reference, SA22-7592.<br />

3.8.3 PDSE 64-bit virtual storage option setting<br />

For the PDSE1 options, you can implement changes by using the SETSMS command (in<br />

which case they may revert to prior values at an IPL unless PARMLIB is also updated).<br />

For PDSE and PDSE1 options you can update the appropriate values in the SYS1.PARMLIB<br />

member IGDSMSxx, in which case they take effect at an IPL.<br />

You can issue the SET SMS=xx command to have the system implement the options<br />

contained in SYS1.PARMLIB member IGDSMSxx (where xx is a user-specified value). For<br />

some options the address space may have to be restarted (applies to SMSPDSE1 only).<br />

To verify the effect of making changes, we did the following:<br />

► Displayed the current options<br />

► Changed the specific options of interest<br />

► Displayed the options to verify that the change had taken effect<br />

In Figure 3-44 on page 57 we show the SMS options before making changes. The options<br />

that we will modify are highlighted bold.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 55


Note: The system default for both PDSE_DIRECTORY_STORAGE(n) and<br />

PDSE1_DIRECTORY_STORAGE(n) is 2047, and in the display these both show as<br />

2000M.<br />

The system default for PDSE_HSP_SIZE(n) and for PDSE1_HSP_SIZE(n) are also 0,<br />

which indicates that the respective hiperspace should not be started. However, in the<br />

display PDSE1_HSP_SIZE shows as 256 MB, indicating that the value has been set rather<br />

than defaulted at system IPL. In this case, the value was set in SYS1.PARMLIB as<br />

PDSE1_HSP_SIZE(256). If we change it by command it reverts to 256 MB at the next IPL.<br />

56 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


D SMS,OPTIONS<br />

IGD002I 13:26:24 DISPLAY SMS 566<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

ACSDEFAULTS = NO PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO SYSTEMS = 8<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 256MB<br />

USE_RESOWNER = YES RLS_MAX_POOL_SIZE = 100MB<br />

RLSINIT = YES RLSTMOUT = 0<br />

COMPRESS = GENERIC LOG_OF_LOGS = IGWTVS.LOG.OF.LOGS<br />

QTIMEOUT = 300 TVSNAME = 064<br />

AKP = 1000 TV_START_TYPE = WARM<br />

MAXLOCKS = (0,0)<br />

CICSVR_INIT = YES CICSVR_DSNAME_PREFIX = DWWUSER.V3R1M0<br />

CICSVR_RCDS_PREFIX = DWW<br />

CICSVR_GRPNAME_SUFFIX = PROD<br />

CICSVR_ZZVALUE_PARM =<br />

CICSVR_UNDOLOG_CONTROL =<br />

CICSVR_UNDOLOG_PREFIX = DWW<br />

CICSVR_BACKOUT_CONTROL =<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = Z<br />

RlsAboveThebarMaxPoolSize = 0<br />

RlsFixedPoolSize = 0<br />

PDSE_MONITOR = (YES,0,0) PDSE1_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2000M<br />

PDSE1_DIRECTORY_STORAGE = 2000M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

BLOCKTOKENSIZE = NOREQUIRE FAST_VOLSEL = OFF<br />

IGD002I 13:26:24 DISPLAY SMS<br />

Figure 3-44 Current IGDSMSxx option display<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 57


SETSMS commands issued and results<br />

In Figure 3-45 we show the command<br />

SETSMS PDSE_DIRECTORY_STORAGE(2000M) being issued, and the response that<br />

indicates that it is invalid (because it is for the PDSE environment).<br />

SETSMS PDSE_DIRECTORY_STORAGE(2000M)<br />

IGD029I ERROR FOR SETSMS COMMAND 531<br />

ERROR IS INVALID KEYWORD: PDSE_DIRECTORY_STORAGE<br />

Figure 3-45 SETSMS PDSE_DIRECTORY_STORAGE(2000M) showing error<br />

In Figure 3-46 we show the command<br />

SETSMS PDSE1_DIRECTORY_STORAGE(2000M) being issued. In this case the command<br />

is accepted, but without any confirmation of acceptance, so we follow the SETSMS command<br />

with part of the output from the D SMS,OPTIONS command to show that it has been<br />

accepted.<br />

SETSMS PDSE1_DIRECTORY_STORAGE(2500M)<br />

D SMS,OPTIONS<br />

IGD002I 16:11:03 DISPLAY SMS 578<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

ACSDEFAULTS = NO PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO SYSTEMS = 8<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 256MB<br />

USE_RESOWNER = YES RLS_MAX_POOL_SIZE = 100MB<br />

RLSINIT = YES RLSTMOUT = 0<br />

COMPRESS = GENERIC LOG_OF_LOGS = IGWTVS.LOG.OF.LOGS<br />

QTIMEOUT = 300 TVSNAME = 064<br />

AKP = 1000 TV_START_TYPE = WARM<br />

MAXLOCKS = (0,0)<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = Z<br />

RlsAboveThebarMaxPoolSize = 0<br />

RlsFixedPoolSize = 0<br />

PDSE_MONITOR = (YES,0,0) PDSE1_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2000M<br />

PDSE1_DIRECTORY_STORAGE = 2500M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

Figure 3-46 SETSMS PDSE1_DIRECTORY_STORAGE(2500M) and D SMS,OPTIONS commands<br />

58 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-47 we show the command<br />

SETSMS PDSE1_HSP_SIZE(512) being issued. In this case the command is accepted, but<br />

without any confirmation of acceptance, so we follow the SETSMS command with part of the<br />

output from the D SMS,OPTIONS command to show that it has been accepted.<br />

SETSMS PDSE1_HSP_SIZE(512)<br />

D SMS,OPTIONS<br />

IGD002I 17:39:30 DISPLAY SMS 646<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

ACSDEFAULTS = NO PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO SYSTEMS = 8<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 512MB<br />

Figure 3-47 SETSMS PDSE1_HSP_SIZE(512) and D SMS,OPTIONS commands<br />

SET SMS=xx command method of updating SMS options<br />

In order to use the SET SMS=xx command, a member of SYS1.PARMLIB must be available.<br />

For this demonstration we created IGDSMS88 as a copy of the member used for the last<br />

system IPL.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 59


In Figure 3-48 we show part of the contents of IGDSMS88 with the lines being changed<br />

highlighted in bold.<br />

SMS ACDS(SYS1.SMS.ACDS)<br />

COMMDS(SYS1.SMS.COMMDS)<br />

INTERVAL(15)<br />

DINTERVAL(150)<br />

DEADLOCK_DETECTION(15,4)<br />

SMF_TIME(YES)<br />

CF_TIME(1800)<br />

RLSINIT(YES)<br />

RLS_MAX_POOL_SIZE(100)<br />

REVERIFY(NO)<br />

ACSDEFAULTS(NO)<br />

PDSESHARING(EXTENDED)<br />

PDSE_RESTARTABLE_AS(YES)<br />

PDSE1_MONITOR(YES)<br />

PDSE1_LRUCYCLES(200)<br />

PDSE1_LRUTIME(50)<br />

PDSE_HSP_SIZE(256)<br />

PDSE1_HSP_SIZE(512)<br />

PDSE1_BMFTIME(3600)<br />

PDSE_DIRECTORY_STORAGE(2400M)<br />

PDSE1_DIRECTORY_STORAGE(2500M)<br />

Figure 3-48 IGDSMS88 to be used with SET SMS=88 command<br />

60 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-49 we show the command SET SMS=88 being issued and the results as<br />

automatically listed by the SET SMS command.<br />

The new values for the following can be seen highlighted bold:<br />

► PDSE_HSP_SIZE<br />

► PDSE1_HSP_SIZE<br />

► PDSE_DIRECTORY_STORAGE(2400M)<br />

► PDSE1_DIRECTORY_STORAGE(2400M)<br />

Note: In order for the new value for PDSE1_HSP_SIZE to take effect it is necessary to<br />

restart SMSPDSE1. The new value for PDSE_HSP_SIZE does not take effect as a result<br />

of the update. That only occurs with an IPL. However, the contents of IGDSMS88 have<br />

been validated by issuing the SET SMS=88 command.<br />

SET SMS=88<br />

IEE252I MEMBER IGDSMS88 FOUND IN SYS1.PARMLIB<br />

IGD031I SMS PARAMETERS 775<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

CACHETIME = 3600 SMF_TIME = YES<br />

CF-TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO ACSDEFAULTS = NO<br />

USE_RESOWNER = YES DSNTYPE = PDS<br />

GDS_RECLAIM = YES PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO RLS_MAX_POOL_SIZE = 100MB<br />

SYSTEMS = 8 COMPRESS = GENERIC<br />

PDSE_HSP_SIZE = 256MB PDSE1_HSP_SIZE = 512MB<br />

RLSINIT = YES RLSTMOUT = 0<br />

CICSVR_INIT = NO CICSVR_DSNAME_PREFIX = DWW.<br />

CICSVR_RCDS_PREFIX = DWW<br />

CICSVR_GRPNAME_SUFFIX = PROD<br />

CICSVR_ZZVALUE_PARM =<br />

CICSVR_UNDOLOG_CONTROL =<br />

CICSVR_UNDOLOG_PREFIX = DWW<br />

CICSVR_BACKOUT_CONTROL =<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = Z<br />

RlsAboveTheBarMaxPoolSize = 0<br />

RlsFixedPoolSize = 0<br />

DSSTIMEOUT = 0 FAST_VOLSEL = OFF<br />

PDSE_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2400M<br />

PDSE1_DIRECTORY_STORAGE = 2500M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

BLOCKTOKENSIZE = NOREQUIRE<br />

Figure 3-49 SET SMS=88 command and listing of results<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 61


3.8.4 Retain buffers beyond PDSE close<br />

This enhancement can provide improved performance when using PDSE members that are<br />

opened and closed very often. Before z/<strong>OS</strong> <strong>V1R8</strong>, when a PDSE was closed, the buffers for<br />

directory and member data were purged. If the member was opened again, the buffers had to<br />

be acquired again. Performance can be improved by specifying that the buffers be retained<br />

after the PDSE member is closed.<br />

This option applies to all PDSE members, so if used it results in more storage in use for the<br />

PDSE memory cache.<br />

Restriction: PDSE extended sharing must be active for the buffer beyond PDSE close<br />

enhancement.<br />

PDSE extended sharing<br />

You can define the extent of PDSE sharing. PDSEs can be shared between users of a single<br />

processor only (normal) or shared between users on any processor in a multisystem complex<br />

(extended). You select the type of sharing by using the PDSESHARING keyword in the<br />

IGDSMSxx member of SYS1.PARMLIB.<br />

Extended sharing is available only when PDSESHARING(EXTENDED) has been specified in<br />

the IGDSMSxx member of SYS1.PARMLIB. Extended sharing applies when a PDSE is<br />

allocated with DISP=SHR. It cannot be used with DISP=OLD.<br />

With extended sharing, any number of users or systems can concurrently share a PDSE or<br />

members within it for input (read) or output (write). While multiple members can be updated<br />

by different users on the same system, only one user can update a member at a given time.<br />

In addition, only one system can access the PDSE when the update is being done.<br />

3.8.5 PDSE retain buffers beyond PDSE close enablement<br />

For the PDSE1 options, you can implement changes by using the SETSMS command (in<br />

which case they may revert to prior values at an IPL unless PARMLIB is also updated).<br />

SMSPDSE1 must be restarted after the SETSMS command has been issued.<br />

For PDSE and PDSE1 options you can update the appropriate values in the SYS1.PARMLIB<br />

member IGDSMSxx, in which case they take effect at an IPL.<br />

You can issue the SET SMS=xx command to have the system implement the options<br />

contained in SYS1.PARMLIB member IGDSMSxx (where xx is a user-specified value).<br />

SMSPDSE1 must be restarted after the SETSMS command has been issued.<br />

To verify the effect of making changes, we did the following:<br />

► Displayed the current options.<br />

► Changed the specific options of interest.<br />

► Displayed the options to verify that the change had taken effect.<br />

62 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-50 we show the SMS options before making changes. The options that we modify<br />

are highlighted bold. The options that relate to caching of PDSE buffers after close are:<br />

► PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E(YES|NO)<br />

► PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E(YES|NO)<br />

The default in both cases is NO.<br />

D SMS,OPTIONS<br />

IGD002I 19:08:05 DISPLAY SMS 930<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

SMF_TIME = YES CACHETIME = 3600<br />

CF_TIME = 1800 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO DSNTYPE = PDS<br />

ACSDEFAULTS = NO PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO SYSTEMS = 8<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 256MB<br />

USE_RESOWNER = YES RLS_MAX_POOL_SIZE = 100MB<br />

RLSINIT = YES RLSTMOUT = 0<br />

COMPRESS = GENERIC LOG_OF_LOGS = IGWTVS.LOG.OF.LOGS<br />

QTIMEOUT = 300 TVSNAME = 064<br />

AKP = 1000 TV_START_TYPE = WARM<br />

MAXLOCKS = (0,0)<br />

CICSVR_INIT = YES CICSVR_DSNAME_PREFIX = DWWUSER.V3R1M0<br />

CICSVR_RCDS_PREFIX = DWW<br />

CICSVR_GRPNAME_SUFFIX = PROD<br />

CICSVR_ZZVALUE_PARM =<br />

CICSVR_UNDOLOG_CONTROL =<br />

CICSVR_UNDOLOG_PREFIX = DWW<br />

CICSVR_BACKOUT_CONTROL =<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = Z<br />

RlsAboveThebarMaxPoolSize = 0<br />

RlsFixedPoolSize = 0<br />

PDSE_MONITOR = (YES,0,0) PDSE1_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2000M<br />

PDSE1_DIRECTORY_STORAGE = 2000M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = NO<br />

GDS_RECLAIM = YES DSSTIMEOUT = 0<br />

BLOCKTOKENSIZE = NOREQUIRE FAST_VOLSEL = OFF<br />

Figure 3-50 Display SMS OPTIONS before BUFFER BEYOND CL<strong>OS</strong>E changes<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 63


In Figure 3-51 we show the effect of issuing the following command and the resulting error<br />

since it is not supported:<br />

SETSMS PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

SETSMS PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

IGD029I ERROR FOR SETSMS COMMAND 934<br />

ERROR IS INVALID KEYWORD: PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E<br />

Figure 3-51 SETSMS PDSE_BUFFERBEYOND_CL<strong>OS</strong>E command and error message<br />

In Figure 3-52 we show the effect of issuing the following command and confirmation that it<br />

was accepted. In this case the PDSE environment is still set OFF. The SMSPDSE1 address<br />

space needs to be restarted to take advantage of the changed setting.<br />

SETSMS PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

SETSMS PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

IGW040I Buffer past close not active for SMSPDSE<br />

IGW040I Buffer past close active for SMSPDSE1<br />

Figure 3-52 SETSMS PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E command and confirmation<br />

SET SMS=xx command method of updating SMS options<br />

In order to use the SET SMS=xx command, a member of SYS1.PARMLIB must be available.<br />

For this demonstration we created IGDSMS89 as a copy of the member used for the last<br />

system IPL.<br />

In Figure 3-53 we show part of the contents of IGDSMS89 with the lines being changed<br />

highlighted bold.<br />

SMS ACDS(SYS1.SMS.ACDS)<br />

COMMDS(SYS1.SMS.COMMDS)<br />

PDSESHARING(EXTENDED)<br />

PDSE_RESTARTABLE_AS(YES)<br />

PDSE1_MONITOR(YES)<br />

PDSE1_LRUCYCLES(200)<br />

PDSE1_LRUTIME(50)<br />

PDSE1_HSP_SIZE(256)<br />

PDSE1_BMFTIME(3600)<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E(YES)<br />

Figure 3-53 GDSMS89 to be used with SET SMS=89 command<br />

64 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-54 we show the following command and the results as listed automatically that<br />

show that the changes have been made, in this case for both PDSE and PDSE1.<br />

SET SMS=89<br />

SET SMS=89<br />

IEE252I MEMBER IGDSMS89 FOUND IN SYS1.PARMLIB<br />

IGD031I SMS PARAMETERS 985<br />

ACDS = SYS1.SMS.ACDS<br />

COMMDS = SYS1.SMS.COMMDS<br />

INTERVAL = 15 DINTERVAL = 150<br />

CACHETIME = 3600 SMF_TIME = YES<br />

CF-TIME = 3600 PDSE_RESTARTABLE_AS = YES<br />

PDSE_BMFTIME = 3600 PDSE1_BMFTIME = 3600<br />

PDSE_LRUTIME = 60 PDSE1_LRUTIME = 50<br />

PDSE_LRUCYCLES = 15 PDSE1_LRUCYCLES = 200<br />

LOCAL_DEADLOCK = 15 GLOBAL_DEADLOCK = 4<br />

REVERIFY = NO ACSDEFAULTS = NO<br />

USE_RESOWNER = YES DSNTYPE = PDS<br />

GDS_RECLAIM = YES PDSESHARING = EXTENDED<br />

OVRD_EXPDT = NO RLS_MAX_POOL_SIZE = 100MB<br />

SYSTEMS = 8 COMPRESS = GENERIC<br />

PDSE_HSP_SIZE = 0MB PDSE1_HSP_SIZE = 256MB<br />

RLSINIT = NO RLSTMOUT = 0<br />

CICSVR_INIT = NO CICSVR_DSNAME_PREFIX = DWW.<br />

CICSVR_RCDS_PREFIX = DWW<br />

CICSVR_GRPNAME_SUFFIX = PROD<br />

CICSVR_ZZVALUE_PARM =<br />

CICSVR_UNDOLOG_CONTROL =<br />

CICSVR_UNDOLOG_PREFIX = DWW<br />

CICSVR_BACKOUT_CONTROL =<br />

CICSVR_GENERAL_CONTROL =<br />

Rls_MaxCfFeatureLevel = Z<br />

RlsAboveTheBarMaxPoolSize = 0<br />

RlsFixedPoolSize = 0<br />

DSSTIMEOUT = 0 FAST_VOLSEL = OFF<br />

PDSE_MONITOR = (YES,0,0)<br />

PDSE1_MONITOR = (YES,0,0)<br />

PDSE_DIRECTORY_STORAGE = 2000M<br />

PDSE1_DIRECTORY_STORAGE = 2000M<br />

PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E = YES<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E = YES<br />

BLOCKTOKENSIZE = NOREQUIRE<br />

Figure 3-54 SET SMS=89 command and listing of results<br />

For PDSE this has verified that the syntax of member IGDSMS89 is good, but the change<br />

does not take effect until an IPL is done using this member.<br />

For PDSE1, the change takes place with an IPL using this member, but the SMSPDSE1<br />

address space uses the new setting if it was restarted.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 65


3.8.6 <strong>DFSMS</strong> <strong>V1R8</strong> PDSE enhancements in storage requirements<br />

Implementation of PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E or<br />

PDSE1_BUFFER_BEYOND_CL<strong>OS</strong>E results in a requirement for more storage than before,<br />

so the ability to specify higher values for PDSE_HSP_SIZE, PDSE1_HSP_SIZE,<br />

PDSE_DIRECTORY_STORAGE, or PDSE1_DIRECTORY_STORAGE may be important.<br />

There is no new instrumentation provided to specifically address effects on the Buffer<br />

Management Facility (BMF) of these higher values because the PDSE address spaces are<br />

always using 64-bit storage for buffers.<br />

However, the techniques presented in Section 9.8 of Partitioned Data Set Extended Usage<br />

Guide, SG24-6106, remain valid. The SMF42T1 program referenced in that section must be<br />

re-assembled using the <strong>V1R8</strong> version of the macros.<br />

A simplified version of the information in Partitioned Data Set Extended Usage Guide,<br />

SG24-6106, is presented in 3.9, “PDSE buffer management statistics” on page 66.<br />

3.9 PDSE buffer management statistics<br />

SMF is used to record data that may be useful in determining how the PDSE buffer<br />

management function is performing, and may allow values to be tuned to improve<br />

performance or reduce over commitment of real storage. BMF is responsible for managing<br />

access to and from the PDSE hiperspace, and other than through SMF there is no way to<br />

determine whether hiperspace is being used.<br />

SMF record type 42, subtype 1 provides overall buffer use totals for SMSPDSE and, if<br />

implemented, separately for SMSPDSE1, and totals for each storage class being used by the<br />

SMSPDSE[1] address spaces and their hiperspaces.<br />

3.9.1 BMF data capture preparation<br />

In order to have SMF capture BMF data, the following items must be addressed:<br />

► PDSE_BMFTIME and, if SMSPDSE1 is in use, PDSE1_BMFTIME must be set to<br />

appropriate values. The default setting of 3600 seconds (1 hour) may be too long for<br />

meaningful analysis. Note that if no PDSE eligible activity occurs, no BMF data is captured<br />

because hiperspace cache is not used. After eligible PDSE data sets are accessed, the<br />

BMF data recording function starts, and it continues even after the triggering PDSE is no<br />

longer in use.<br />

► Note that there is no eye catcher in the data to distinguish BMF data associated with<br />

SMSPDSE from that associated with SMSPDSE1. However, as each address space has<br />

its own LRUCYCLES definition, making these different does provide a way of inferring<br />

which is which. The default setting for SMSPDSE is 15, and for SMSPDSE1 is 50. Note<br />

that LRUCYCLES is one of the variables that may need to be adjusted to limit CPU or real<br />

storage use, so if they are changed, be sure to maintain some difference between the two.<br />

3.9.2 BMF analysis preparation<br />

We provide a sample program that formats the information from what was recorded by SMF.<br />

The program needs to be assembled and linked into an appropriate data set before use.<br />

Refer to “SMF record type 42 sub type 1 data” on page 478 for information about building the<br />

program.<br />

66 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


So that the user can relate the program output to the SMF manuals and other sources of<br />

information, the field names as defined in the SMF macros are used.<br />

The SMF records that are collected from the BMF totals are shown in Figure 3-55.<br />

SMF4201A DSECT ,<br />

SMF42BMF DS 0CL0036 Description of BMF totals section<br />

SMF42TNA DS 1FL4 Total number of storage classes<br />

SMF42TMT DS 1FL4 Interval length (total time of measurement<br />

period)<br />

SMF42TRT DS 1FL4 Total number of member data page reads<br />

SMF42TRH DS 1FL4 Total number of member data page read hits<br />

(found in BMF)<br />

SMF42TDT DS 1FL4 Total number of directory data page reads<br />

SMF42TDH DS 1FL4 Total number of directory data page read hits<br />

(found in BMF)<br />

SMF42BUF DS 1FL4 Total number of active BMF 4K buffers @18A<br />

SMF42BMX DS 1FL4 High water mark of BMF buffers @18A<br />

SMF42LRU DS 1FL2 BMF LRU interval time @18A<br />

SMF42UIC DS 1FL2 BMF LRU cycles before buffer cast out @18A<br />

Figure 3-55 Extract of the BMF SMF data fields used<br />

For the same SMF record as above, the data collected for the storage classes are shown in<br />

Figure 3-56.<br />

SMF4201B DSECT ,<br />

SMF42SC DS 0CL0048 Description of Stor Class Sum section @OW00573<br />

SMF42PNA DS 0CL0032 Storage class name<br />

SMF42PNL DS 1FL2 Storage class name length<br />

SMF42PNN DS 1CL0030 Storage class name<br />

SMF42SRT DS 1FL4 Total number of member data page reads<br />

SMF42SRH DS 1FL4 Total number of member data page read hits X<br />

(found in BMF)<br />

SMF42SDT DS 1FL4 Total number of directory data page reads<br />

SMF42SDH DS 1FL4 Total number of directory data page read hits X<br />

(found in BMF)<br />

Figure 3-56 Extract of the BMF storage class fields used<br />

Depending on the structure of the system, there may be one or more BMF totals sections,<br />

which are shown in the program output as BMF TOTALS SET #: nnnnnnn, where nnnnnnn is<br />

a numeric value, and there may be one or more storage class sections that are identified by<br />

their names as defined to SMS. Normally, there is one set of SMF records for SMSPDSE and<br />

one for SMSPDSE1.<br />

The extract program assumes that the data it is processing is an extract from the SMF data<br />

prepared by the SMF-supplied extraction program IFASMFDP. The SMFPRMxx member of<br />

SYS1.PARMLIB should be checked to ensure that SMF record type 42 is being selected or<br />

that it is not being suppressed.<br />

The extract may be taken from the running copy of the VSAM ‘SYS1.MAN*’ data sets or from<br />

a previously extracted sequential data set. IFASMFDP manages the correct handing of the<br />

input data set, and regardless of the form of the input, produces a sequential data set. In<br />

order to limit the amount of data extracted, the recommended control statement input to<br />

IFASMFDP limits the output to select only records of type 42 subtype 1.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 67


If the IFASMFDP is set to extract all type 42 records, all those that are not type 42 subtype 1<br />

are discarded by the SMF42T1.<br />

Listings of the program source and examples of JCL to assemble and link the program are<br />

shown in “SMF record type 42 sub type 1 data” on page 478. Assembly is required only once<br />

for initial implementation of a given level of the operating system, then if maintenance is<br />

applied to the IGWSMF macro.<br />

An example of the job required to extract the SMF records then run the formatting program is<br />

shown in Figure 3-57. This assumes that the formatting program is called SMF42T1 and that<br />

it has previously been assembled and stored in the data set PDSERES.SMF42T1J.PDS (an<br />

example name only). The IFASMFDP selection specification is part of the OUTDD statement<br />

OUTDD(OUTDD,TYPE(42(1))).<br />

//MHLRES1S JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//EXTRACT EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=A<br />

//ADUPRINT DD SYSOUT=A<br />

//*DUMPIN DD DISP=SHR,DSN=SMFDATA.ALLRECS<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//DUMPOUT DD DUMMY<br />

//OUTDD DD DSN=&T1,SPACE=(CYL,(10,5)),RECFM=VB,LRECL=5096,<br />

// DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(42(1)))<br />

/*<br />

//FORMAT EXEC PGM=SMF42T1<br />

//STEPLIB DD DISP=SHR,DSN=PDSERES.SMF42T1J.PDS<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DSN=&T1<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 3-57 Example of JCL to format SMF record type 42 subtype 1 records<br />

68 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


An example of output from the IFASMFDP program is shown in Figure 3-58. The full output<br />

shows all the records found, and the right-most column shows the number of records<br />

selected. In this partial output example, no records were selected for types 41 and 43, and 41<br />

records were found for the type 42 record, which is consistent with the selection criteria<br />

specified on the OUTDD control statement.<br />

IFA010I SMF DUMP PARAMETERS<br />

IFA010I END(2400) -- DEFAULT<br />

IFA010I START(0000) -- DEFAULT<br />

IFA010I DATE(1900000,2099366) -- DEFAULT<br />

IFA010I OUTDD(OUTDD,TYPE(42(1))) -- SYSIN<br />

IFA010I INDD(DUMPIN,OPTIONS(DUMP)) -- SYSIN<br />

IFA020I OUTDD -- SYS07053.T123632.RA000.MHLRES1S.T1.H01<br />

IFA020I DUMPIN -- SMFDATA.ALLRECS.G3142V00<br />

SUMMARY ACTIVITY REPORT<br />

START DATE-TIME 02/21/2007-18:40:00 END DATE-TIME 02/21/2007-20:10:00<br />

RECORD RECORDS PERCENT AVG. RECORD MIN. RECORD MAX. RECORD RECORDS<br />

TYPE READ OF TOTAL LENGTH LENGTH LENGTH WRITTEN<br />

2 1 .01 % 18.00 18 18 1<br />

.<br />

.<br />

40 216 2.98 % 74.00 74 74 0<br />

41 6 .08 % 332.00 332 332 0<br />

42 651 8.98 % 605.10 176 32,620 2<br />

Figure 3-58 Example of part of the output from IFASMFDP showing selection of type 42 records<br />

3.9.3 SMF statistics interpretation<br />

There are no absolute values that are correct or wrong for the tuning parameters. The SMF<br />

data is useful to determine what is happening, then after a change verify that the change had<br />

some effect.<br />

An example of output from the SMF type 42 record formatting program is shown in<br />

Figure 3-59. Note that the value for SMF42TNA of 1corresponds to the one SCLASS entries<br />

that follows it. By checking the output from the d sms,options command we infer from the<br />

value of 0006000 for SMF42LRU that this is data from SMSPDSE.<br />

SMF TYPE 42 S/TYPE 1 RECORDS. COLS USE SMF NAMES<br />

BMF TOTALS SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42TNA SMF42TMT SMF42TRT SMF42TRH SMF42TDT SMF42TDH SMF42BUF SMF42BMX SMF42LRU SMF42UIC<br />

19:32:51 2007052 0000001 0003599 0000000 0000000 0000000 0000000 0000010 0000121 0006000 0000015<br />

SMF42PNN (SCLASS): **NONE**<br />

HH:MM:SS YYYYDDD SMF42SRT SMF42SRH SMF42SDT SMF42SDH<br />

19:32:51 2007052 0000000 0000000 0000000 0000000<br />

Figure 3-59 Example 1 of output from program formatting SMF type 42 subtype 1 records<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 69


A further example of output from the SMF type 42 record formatting program is shown in<br />

Figure 3-60. Note that the value for SMF42TNA of 1 corresponds to the one SCLASS entry<br />

that follows it. By checking the output from the d sms,options command we infer from the<br />

value of 0005000 for SMF42LRU that this is data from SMSPDSE1.<br />

BMF TOTALS SET #: 0000001<br />

HH:MM:SS YYYYDDD SMF42TNA SMF42TMT SMF42TRT SMF42TRH SMF42TDT SMF42TDH SMF42BUF SMF42BMX SMF42LRU SMF42UIC<br />

19:32:51 2007052 0000003 0003599 0000001 0000000 0000056 0000047 0000017 0001399 0005000 0000200<br />

SMF42PNN (SCLASS): STANDARD<br />

HH:MM:SS YYYYDDD SMF42SRT SMF42SRH SMF42SDT SMF42SDH<br />

19:32:51 2007052 0000000 0000000 0000000 0000000<br />

Figure 3-60 Example 2 of output from program formatting SMF type 42 subtype 1 records<br />

For reference, some of the data reported shows what the current settings are, and there<br />

would not be any change in these unless some specific action was taken, but the various<br />

counts can be expected to change.<br />

For each PDSE data space in use, that is always one and optionally two, there will be data for<br />

the BMF and also for the processing as it relates to the storage classes involved.<br />

The data that is recorded by SMF and ultimately returned in the SMF type 42 subtype 1<br />

records are as shown in Figure 3-55 on page 67 and Figure 3-56 on page 67.<br />

The following comments are presented in the order shown in the collection data fields in the<br />

examples mentioned above.<br />

BMF totals data<br />

There is no specific data in the BMF totals data section to indicate which of the SMSPDSE or<br />

SMSPDSE1 data spaces it applies to. In the SMF42T1 program output, the sections are<br />

identified in the output in the program header as:<br />

BMF TOTALS SET #: 000000n<br />

Where n is replaced by the relative number of the BMF totals section found.<br />

The default system settings for LRUCYCLES and BMFTIME are different for the SMSPDSE<br />

and SMSPDSE1 data sets, so as long as a difference is retained in any site settings between<br />

one or another of these, you can determine which one is for SMSPDSE and which for<br />

SMSPDSE1. Example 3-1 shows two lines from a sample report. You can see the values<br />

0005000 and 000200 under the SMF42LRU and SMF42UIC columns, respectively. From the<br />

output from the command d sms,options you can see both the LRUCYCLES and BMFTIME<br />

values, and from that determine which set of BMF totals is which. Refer to the SMF42LRU<br />

explanation below for comments on the apparent multiplication factor applied over what was<br />

specified in the IGDSMSxx parameters.<br />

Example 3-1 Sample program showing SMF42LRU and SMF42UIC columns<br />

YYYYDDD SMF42TNA SMF42TMT SMF42TRT SMF42TRH SMF42TDT SMF42TDH SMF42BUF SMF42BMX SMF42LRU SMF42UIC<br />

2004327 0000002 0003599 0000000 0000000 0000010 0000008 0000011 0001080 0005000 0000200<br />

70 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Note: The number assigned to the BMF totals heading represents the relative order that<br />

the data appears in the SMF type 42 subtype 1 records. For the life of a given IPL, it is<br />

likely that the order will remain the same if there is more than one, but it is possible that<br />

after a subsequent IPL, the order will have changed.<br />

The columns are:<br />

► SMF42TNA - total number of storage classes<br />

Number of storage classes defined in the system. This is useful to correlate the number of<br />

storage classes reported on in the storage class data report.<br />

► SMF42TMT - interval length for data gathering<br />

This is the value defined in the BMF_TIME fields and may not be what is being used,<br />

because this value is documented as overridden by the SMF INTVAL if the SMS OPTION<br />

SMS_TIME is set to YES.<br />

► SMF42TRT - total number of member data page reads<br />

This is the overall number of member data page reads, including those found in BMF.<br />

► SMF42TRH - total number of member data page reads found in BMF<br />

This is the number of member data page reads satisfied from BMF. When BMF is<br />

functioning in support of a PDSE, we expect to see that SMF42TRH is not zero, and that it<br />

is less than SMF42TRT. Whether or not member data is cached by BMF depends on the<br />

MSR value specified in the storage class associated with a particular data set being low.<br />

► SMF42TDT - total number of directory data page reads<br />

This is the overall number of directory data page reads, including those found in BMF.<br />

► SMF42TDH - total number of directory data page reads found in BMF<br />

This is the number of directory data page reads satisfied from BMF. When BMF is<br />

functioning in support of a PDSE, we expect to see that SMF42TDH is not zero, and that it<br />

is less than SMF42TDT. Directory data page reads should be managed by BMF whether<br />

or not the data set is associated with a storage class.<br />

► SMF42BUF - total number of active BMF buffers<br />

This number should correspond to the number of 4-K pages that will fit in the hiperspace<br />

as defined by the HSP_SIZE.<br />

► SMF42BMX - high water mark of BMF buffers<br />

This number represents the largest number of BMF buffers used from the total number of<br />

BMF buffers available. If the number presented here is consistently significantly lower that<br />

the number of buffers available, this may be an indication that the HSP_SIZE can safely<br />

be reduced. Likewise, if the number presented here is consistently close to the total<br />

number of buffers available, it may be necessary to consider increasing the HSP_SIZE.<br />

However, the number of buffers in use is influenced by the values used for LRUCYCLES<br />

and LRUTIME, and it may be that adjusting these should be done before considering<br />

changing HSP_SIZE, as that requires a system IPL to implement.<br />

► SMF42LRU - BMF LRU interval time<br />

This value corresponds to the PDSE[1]_LRUTIME value as specified or as defaulted in<br />

the IGDSMSxx PARMLIB options member, or as subsequently altered by SETSMS<br />

command. Note that the value as present is shown as multiplied by 100.<br />

► SMF42UIC - BMF LRU cycles before buffer cast out<br />

This value corresponds to the PDSE[1]_LRUCYCLES value as specified in the<br />

IGDSMSxx options member, or as subsequently altered by SETSMS command. Note that<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 71


LRUTIME is not an actual time value, but an indication of how many times a buffer may<br />

remain in the buffer but not allocated when buffer management cycle runs, which is<br />

controlled by LRUCYCLES.<br />

Attention: The higher that LRUCYCLES is set the more CPU time is used running the<br />

BMF process, and the lower that LRUTIME is set the more real storage remains allocated.<br />

Tuning LRUCYCLES and LRUTIME for each of the SMSPDSE and SMSPDSE1 address<br />

spaces can be carried out without a system IPL. Any changes should be carefully<br />

monitored in conjunction with measurements of the committed CPU and real storage<br />

frames. Any sudden increase in CPU or REAL storage commitment may reflect the<br />

introduction of a PDSE into the system.<br />

Storage class summary data<br />

There is one of these sections for each storage class in the system related to each of the<br />

SMSPDSE or SMSPDSE1 address spaces. For ease of interpretation, storage classes<br />

intended to manage the PDSE buffer management processes should be named according to<br />

a convention that indicates that they are intended for PDSE data set management, and<br />

indicate whether the management intended was to have the PDSE cached in the PDSE<br />

hiperspaces.<br />

► SMF42PNL - storage class data section name length<br />

Reference information<br />

► SMF42PNN - Storage class name<br />

Reference information<br />

► SMF42SRT - total number of member data page reads<br />

This is the overall number of members read.<br />

► SMF42SRH - total number of member data pages read from BMF<br />

This is the number of member data page reads supplied from the BMF buffers.<br />

When a PDSE associated with this storage class is being serviced by BMF, the<br />

SMF42SRH value should not be zero, but it will be less than the total number of member<br />

data reads. This shows zero if the storage class does not have a low MSR value.<br />

► SMF42SDT - total number of directory data page reads<br />

This is the total number of data pages read using this storage class.<br />

► SMF42SDH - total number of directory data page reads serviced by BMF.<br />

This is the total number of directory data pages read that were found in the BMF buffers.<br />

Directory pages are eligible for BMF processing whether or not the PDSE is associated<br />

with an eligible storage class.<br />

The value in SMF42SDH should not be zero, and will likely be less than the value in<br />

SMF42SDT if the BMF function is managing the data to and from hiperspace.<br />

Recommendation for further analysis<br />

If the SMF42SRH results are significantly lower than SMF42SRT, it is likely to be an<br />

indication that for some reason few PDSE data sets are being cached to hiperspace. If the<br />

PDSE data sets in use are being used by single or very few users at a time, then there may<br />

be no concern. However, if a PDSE is intended to be shared, then the benefits of using<br />

hiperspace should be investigated.<br />

One comparatively simple way to measure whether a particular data set comes into that<br />

category is to assign it its own storage class for test purposes. That requires the creation of<br />

72 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


the storage class if not already available, and probably requires an adjustment to the ACS<br />

routines to ensure that the data set is assigned, by itself, to the test storage class. Once<br />

implemented, the SMF type 42 subtype 1 records automatically pick up the additional storage<br />

class, and the effect of changes to the MSR can be monitored.<br />

Once the data set is being managed by BMF, any specific changes made to improve the BMF<br />

member data hit ratio can then be fitted back into the original storage class.<br />

3.10 Integrated Catalog Forward Recovery Utility<br />

The Integrated Catalog Forward Recovery Utility (ICFRU) was originally available as a<br />

separate product. With z/<strong>OS</strong> V1R7, it was integrated into the base product. With z/<strong>OS</strong> <strong>V1R8</strong><br />

the documentation was expanded to include details of a technique to verify readiness of the<br />

product for use in a real disaster.<br />

In order to use ICFRU a mechanism must exist to restore a valid version of a given catalog,<br />

so a backup process must exist, and the correct SMF records need to be recorded and saved<br />

in appropriate data sets.<br />

The full description of ICFRU is contained in Appendix A of <strong>DFSMS</strong> Managing Catalogs,<br />

SC26-7409.<br />

3.10.1 ICFRU system flow<br />

In summary, ICFRU is a pair of programs that are used to update a valid catalog from activity<br />

records that have been recorded in the system SMF data sets.<br />

Program CRURRSV is Integrated Catalog Forward Recovery Record Selection and<br />

Validation, and CRURRAP is Integrated Catalog Forward Recovery Record Analysis and<br />

Processing.<br />

You can control the execution of ICFRU programs through the specification of execution<br />

parameters (the same parameters for CRURRSV and CRURRAP) and by providing the<br />

appropriate SMF record data and an IDCAMS EXPORT of the original catalog.<br />

To use the ICFRU you need:<br />

► The name of the catalog to be recovered<br />

► Recovery start date and time - the date and time at which the backup to be used for<br />

recovery was made<br />

► Recovery stop date and time - the date and time that correspond to the closing of the<br />

catalog (or the time after which no updates were possible)<br />

► An SMF gap time - the (approximate) interval just smaller than the minimum time used to<br />

fill (or switch) an SMF recording data set<br />

► A multi-system clock difference (approximate) maximum difference between the TOD<br />

clocks of any two systems sharing the catalog<br />

► All SMF dump data sets spanning the recovery period<br />

► A sort utility and appropriate sort control<br />

► The IDCAMS EXPORT data set to be used as the basis for recovery<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 73


In Figure 3-61 we show the overall flow of the ICFRU process.<br />

OLD CATALOG<br />

EXPORT COPY<br />

Figure 3-61 ICFRU Process flow<br />

3.10.2 ICFRU installation readiness overview<br />

This section provides a practical example based on Appendix A, section “Confirming<br />

Installation Readiness,” of the manual <strong>DFSMS</strong> Managing Catalogs, SC26-7409.<br />

74 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

PARAMETERS<br />

PARAMETERS<br />

PARAMETERS<br />

SYSIN<br />

SMF DUMP DATA SETS<br />

SMFIN<br />

CRURRSV<br />

SORTIN<br />

SORT<br />

CRURRAP<br />

IDCAMS<br />

IMPORT<br />

SELECTED<br />

SMF CATALOG<br />

RECORDS<br />

SORTOUT<br />

EXPIN SMFIN<br />

INFILE<br />

SORTED SMF<br />

CATALOG<br />

RECORDS<br />

NEW<br />

CATALOG<br />

EXPORT COPY<br />

OUTDATASET<br />

RECOVERED<br />

CATALOG<br />

REPORTS<br />

(SYSLOG)<br />

REPORTS<br />

(SYSLOG)<br />

SYSPRINT<br />

REPORTS<br />

(SYSPRINT)<br />

MESSAGES<br />

(SYSLOG)<br />

SYSPRINT<br />

Note: This is a simulation of the process that allows you to verify that all items required are<br />

available. You must set up the complete process for recovery that runs automatically to<br />

ensure that you have all the data necessary to restore catalogs in the event of an<br />

unexpected failure.


The simulation is done by carrying out the following phases:<br />

► Phase 1<br />

One-time preparation steps that need only be run once. See 3.10.3, “Installation readiness<br />

preparation” on page 75.<br />

► Phase 2<br />

Execution steps that may be repeated as necessary. See 3.10.4, “Installation readiness<br />

verification” on page 77.<br />

3.10.3 Installation readiness preparation<br />

In this section we discuss installation readiness preparation.<br />

Step 1 - verify that SMF is recording record types 61, 65, and 66<br />

In Figure 3-62 on page 76 we show command D SMS,OPTIONS being issued and the<br />

results. The options of interest are bolded. The TYPE entries for both SUBSYS(STC..) and<br />

SYS.. must both cover the required records. In this case all records other than record type 99<br />

are being collected. If the display had shown that any of record types 61, 65, or 66 were not<br />

included, the SMFPRMxx PARMLIB member must be updated and implemented.<br />

Note: It is necessary to carry out this check on all systems that share the same catalogs.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 75


D SMF,O<br />

IEE967I 18.47.14 SMF PARAMETERS 451<br />

MEMBER = SMFPRM00<br />

MULCFUNC -- DEFAULT<br />

BUFUSEWARN(25) -- DEFAULT<br />

BUFSIZMAX(0128M) -- DEFAULT<br />

SYNCVAL(00) -- DEFAULT<br />

DUMPABND(RETRY) -- DEFAULT<br />

SUBSYS(STC,NOINTERVAL) -- SYS<br />

SUBSYS(STC,NODETAIL) -- SYS<br />

SUBSYS(STC,EXITS(IEFUSO)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFUJP)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFUJI)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFACTRT)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFU85)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFU84)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFU83)) -- PARMLIB<br />

SUBSYS(STC,EXITS(IEFU29)) -- PARMLIB<br />

SUBSYS(STC,TYPE(0:98,100:255)) -- PARMLIB<br />

SYS(NODETAIL) -- PARMLIB<br />

SYS(NOINTERVAL) -- PARMLIB<br />

SYS(EXITS(IEFU29)) -- PARMLIB<br />

SYS(EXITS(IEFUTL)) -- PARMLIB<br />

SYS(EXITS(IEFUJI)) -- PARMLIB<br />

SYS(EXITS(IEFUSO)) -- PARMLIB<br />

SYS(EXITS(IEFUJP)) -- PARMLIB<br />

SYS(EXITS(IEFUSI)) -- PARMLIB<br />

SYS(EXITS(IEFUJV)) -- PARMLIB<br />

SYS(EXITS(IEFACTRT)) -- PARMLIB<br />

SYS(EXITS(IEFU85)) -- PARMLIB<br />

SYS(EXITS(IEFU84)) -- PARMLIB<br />

SYS(EXITS(IEFU83)) -- PARMLIB<br />

SYS(TYPE(0:98,100:255)) -- PARMLIB<br />

NOBUFFS(MSG) -- PARMLIB<br />

LASTDS(MSG) -- PARMLIB<br />

LISTDSN -- PARMLIB<br />

SID(SC64) -- PARMLIB<br />

DDCONS(NO) -- PARMLIB<br />

JWT(2400) -- PARMLIB<br />

MEMLIMIT(NOLIMIT) -- PARMLIB<br />

STATUS(010000) -- PARMLIB<br />

MAXDORM(3000) -- PARMLIB<br />

INTVAL(10) -- PARMLIB<br />

REC(PERM) -- PARMLIB<br />

NOPROMPT -- PARMLIB<br />

DSNAME(SYS1.SC64.MAN3) -- PARMLIB<br />

DSNAME(SYS1.SC64.MAN2) -- PARMLIB<br />

DSNAME(SYS1.SC64.MAN1) -- PARMLIB<br />

Figure 3-62 D SMF,OPTIONS command and results<br />

76 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 2 - create initial IDCAMS EXPORT data set and GDG<br />

For the purposes of this simulation it is advisable to ensure that the catalog is free of errors<br />

since any errors may affect the final compare. In a real disaster situation, whatever state the<br />

catalog is in when it is backed up (for example, EXPORTED) is all you have to deal with.<br />

You need to retain information about the status of the catalog and the EXPORT process, so<br />

data sets are defined to capture this information. In this example Generation Data Group<br />

(GDG) data sets are used, but any method that provides unique data set names can be used.<br />

You need to establish data set and GDG information one time, then the same structure for<br />

subsequent runs.<br />

In Figure 3-63 we show the job to create the data sets and GDGs. The DELETE command for<br />

the GDGs can be omitted the first time the job is run.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*<br />

//*************************************************************<br />

//* THE GDGS AND MODEL DSCBS FOR THE DATA SETS ASSOCIATED WITH<br />

//* EXPORTING CATALOG UCAT.VSBOX01 ARE DEFINED. BY CONVENTION<br />

//* ALL BACKUP DATA SETS WILL START WITH MHLRES1.BCAT .<br />

//*************************************************************<br />

//SETUPDS EXEC PGM=IDCAMS<br />

//LIST DD DSN=MHLRES1.BCAT.LIST.DCB,DISP=(NEW,CATLG),<br />

// VOL=SER=SBOX01,UNIT=SYSDA,SPACE=(0,0),<br />

// DCB=(RECFM=VBA,LRECL=125,BLKSIZE=4250)<br />

//EXPORT DD DSN=MHLRES1.BCAT.EXPORT.DCB,DISP=(NEW,CATLG),<br />

// VOL=SER=SBOX01,UNIT=SYSDA,SPACE=(0,0),<br />

// DCB=(RECFM=VBS,LRECL=32404)<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES1.BCAT.CATALOG.LISTING GDG<br />

DELETE MHLRES1.BCAT.CATALOG.BACKUP GDG<br />

DELETE MHLRES1.BCAT.PROBLEM.LISTING GDG<br />

DEFINE GDG (NAME(MHLRES1.BCAT.CATALOG.LISTING) LIM(7) NEMP SCR -<br />

FOR(9999))<br />

DEFINE GDG (NAME(MHLRES1.BCAT.CATALOG.BACKUP) LIM(7) NEMP SCR -<br />

FOR(9999))<br />

DEFINE GDG (NAME(MHLRES1.BCAT.PROBLEM.LISTING) LIM(7) NEMP SCR -<br />

FOR(9999))<br />

LISTC LEVEL(MHLRES1.BCAT) ALL<br />

Figure 3-63 ICFRU readiness check - set up data sets and GDGs<br />

3.10.4 Installation readiness verification<br />

To verify:<br />

1. Create an IDCAMS EXPORT. This is similar to the job that is run regularly.<br />

2. Wait a while.<br />

3. Create an IDCAMS EXPORT. This is similar to the job that is run regularly after the one<br />

from step 1.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 77


4. Create an EXPORT data set from the EXPORT created in step 1 together with SMF<br />

records that cover the period between steps 1 and 3.<br />

5. Compare the EXPORT created in step 4 with that taken at step 3.<br />

Note: In a real situation, at step 5 the EXPORT from step 4 is what will be used as an<br />

IMPORT to create the replacement catalog rather then be used for comparison processes,<br />

as shown here.<br />

78 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-64 we show the job to run the catalog diagnosis and make the first export of<br />

catalog UCAT.FLETCHER.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* DIAGN<strong>OS</strong>E THE CATALOG<br />

//* LIST ITS ALIASES<br />

//* LIST ITS SELF-DESCRIBING ENTRY COMPLETELY<br />

//* LIST ITS ENTRIES WITH JUST THE VOLUME INFORMATION<br />

//DIAGLIST EXEC PGM=IDCAMS<br />

//SETBKDS DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(NEW,PASS),<br />

// DCB=MHLRES1.BCAT.EXPORT.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

//SYSPRINT DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(MOD,PASS),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

//SYSIN DD *<br />

DIAG ICFCAT INDATASET(UCAT.FLETCHER)<br />

LISTCAT ENTRY(UCAT.FLETCHER) ALL<br />

LISTCAT ENTRY(UCAT.FLETCHER) ALL CAT(UCAT.FLETCHER)<br />

LISTCAT VOLUME CAT(UCAT.FLETCHER)<br />

/*<br />

//*****************************************************************<br />

//* EXPORT THE CATALOG IF THE DIAGN<strong>OS</strong>TICS WERE OKAY<br />

//EXPCAT EXEC PGM=IDCAMS,COND=(8,LE)<br />

//CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,PASS),<br />

// DCB=MHLRES1.BCAT.EXPORT.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

//SYSPRINT DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(MOD,PASS),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

//SYSIN DD *<br />

EXPORT UCAT.FLETCHER OFILE(CATBACK) TEMP<br />

/*<br />

//*****************************************************************<br />

//* CATALOG THE BACKUP AND LISTING IF EXPORT WAS OK<br />

//CATAL EXEC PGM=IEFBR14,COND=(8,LE)<br />

//CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,CATLG)<br />

//SYSLIST DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(OLD,CATLG)<br />

//*****************************************************************<br />

//* COPY THE LISTING AND DISCARD THE BACKUP IF EXPORT FAILED<br />

//REPOUT EXEC PGM=IDCAMS,COND=(0,EQ,CATAL)<br />

//SYSPRINT DD SYSOUT=*<br />

//CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,DELETE)<br />

//CATLIST DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(OLD,DELETE)<br />

//CATPROB DD DSN=MHLRES1.BCAT.PROBLEM.LISTING(+1),DISP=(NEW,CATLG),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

//SYSIN DD *<br />

REPRO INFILE(CATLIST) OUTFILE(CATPROB)<br />

/*<br />

Figure 3-64 ICFRU readiness check IDCAMS diagnose and first EXPORT job<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 79


In Figure 3-65 and Figure 3-66 on page 81 we show the JES2 output from running the job<br />

listed in Figure 3-64 on page 79.<br />

J E S 2 J O B L O G -- S Y S T E M S C 6 4 -- N O D E W T S C P L X 2<br />

12.39.14 JOB21908 ---- FRIDAY, 16 MAR 2007 ----<br />

12.39.14 JOB21908 IRR010I USERID MHLRES1 IS ASSIGNED TO THIS JOB.<br />

12.39.14 JOB21908 ICH70001I MHLRES1 LAST ACCESS AT 12:33:00 ON FRIDAY, MARCH 16, 2007<br />

12.39.14 JOB21908 $HASP373 MHLRES1I STARTED - INIT 1 - CLASS A - SYS SC64<br />

12.39.14 JOB21908 IEF403I MHLRES1I - STARTED - TIME=12.39.14 - ASID=002A - SC64<br />

12.39.15 JOB21908 - --TIMINGS (MINS.)-- ----PAGING COUNTS---<br />

12.39.15 JOB21908 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV PG PAGE SWAP VIO SWAPS STEPNO<br />

12.39.15 JOB21908 -MHLRES1I DIAGLIST 00 99 .00 .00 .00 554 0 0 0 0 0 1<br />

12.39.15 JOB21908 -MHLRES1I EXPCAT 00 75 .00 .00 .00 920 0 0 0 0 0 2<br />

12.39.15 JOB21908 -MHLRES1I CATAL 00 10 .00 .00 .00 25 0 0 0 0 0 3<br />

12.39.15 JOB21908 -MHLRES1I REPOUT FLUSH 0 .00 .00 .00 0 0 0 0 0 0 4<br />

12.39.15 JOB21908 IEF404I MHLRES1I - ENDED - TIME=12.39.15 - ASID=002A - SC64<br />

12.39.15 JOB21908 -MHLRES1I ENDED. NAME-MHLRES2 TOTAL CPU TIME= .00 TOTAL ELAPSED TIME= .00<br />

12.39.15 JOB21908 $HASP395 MHLRES1I ENDED<br />

------ JES2 JOB STATISTICS ------<br />

16 MAR 2007 JOB EXECUTION DATE<br />

50 CARDS READ<br />

124 SYSOUT PRINT RECORDS<br />

0 SYSOUT PUNCH RECORDS<br />

8 SYSOUT SPOOL KBYTES<br />

0.00 MINUTES EXECUTION TIME<br />

1 //MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T, JOB21908<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M 00020000<br />

/*JOBPARM L=999,SYSAFF=* 00030000<br />

//*****************************************************************<br />

//* DIAGN<strong>OS</strong>E THE CATALOG<br />

//* LIST ITS ALIASES<br />

//* LIST ITS SELF-DESCRIBING ENTRY COMPLETELY<br />

//* LIST ITS ENTRIES WITH JUST THE VOLUME INFORMATION<br />

IEFC653I SUBSTITUTION JCL - (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,NOTIFY=MHLRES1,TIME=1440,REGION=6M<br />

2 //DIAGLIST EXEC PGM=IDCAMS<br />

3 //SETBKDS DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(NEW,PASS),<br />

// DCB=MHLRES1.BCAT.EXPORT.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

4 //SYSPRINT DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(MOD,PASS),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

5 //SYSIN DD *<br />

//*****************************************************************<br />

//* EXPORT THE CATALOG IF THE DIAGN<strong>OS</strong>TICS WERE OKAY<br />

6 //EXPCAT EXEC PGM=IDCAMS,COND=(8,LE)<br />

7 //CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,PASS),<br />

// DCB=MHLRES1.BCAT.EXPORT.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

8 //SYSPRINT DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(MOD,PASS),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

9 //SYSIN DD *<br />

//*****************************************************************<br />

//* CATALOG THE BACKUP AND LISTING IF EXPORT WAS OK<br />

10 //CATAL EXEC PGM=IEFBR14,COND=(8,LE)<br />

11 //CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,CATLG)<br />

12 //SYSLIST DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(OLD,CATLG)<br />

//*****************************************************************<br />

//* COPY THE LISTING AND DISCARD THE BACKUP IF EXPORT FAILED<br />

13 //REPOUT EXEC PGM=IDCAMS,COND=(0,EQ,CATAL)<br />

14 //SYSPRINT DD SYSOUT=*<br />

15 //CATBACK DD DSN=MHLRES1.BCAT.CATALOG.BACKUP(+1),DISP=(OLD,DELETE)<br />

16 //CATLIST DD DSN=MHLRES1.BCAT.CATALOG.LISTING(+1),DISP=(OLD,DELETE)<br />

17 //CATPROB DD DSN=MHLRES1.BCAT.PROBLEM.LISTING(+1),DISP=(NEW,CATLG),<br />

// DCB=MHLRES1.BCAT.LIST.DCB,<br />

// UNIT=SYSALLDA,SPACE=(TRK,(15,15),RLSE)<br />

18 //SYSIN DD *<br />

Figure 3-65 ICFRU Readiness check IDCAMS Diagnose and first EXPORT job JES2 output (1 of 2)<br />

80 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


STMT NO. MESSAGE<br />

-<br />

ICH70001I MHLRES1 LAST ACCESS AT 12:33:00 ON FRIDAY, MARCH 16, 2007<br />

IEF236I ALLOC. FOR MHLRES1I DIAGLIST<br />

IGD101I SMS ALLOCATED TO DDNAME (SETBKDS )<br />

DSN (MHLRES1.BCAT.CATALOG.BACKUP.G0005V00 )<br />

STORCLAS (STANDARD) MGMTCLAS (MCDB22) DATACLAS ( )<br />

VOL SER N<strong>OS</strong>= MLD00C<br />

IGD101I SMS ALLOCATED TO DDNAME (SYSPRINT)<br />

DSN (MHLRES1.BCAT.CATALOG.LISTING.G0005V00 )<br />

STORCLAS (STANDARD) MGMTCLAS (MCDB22) DATACLAS ( )<br />

VOL SER N<strong>OS</strong>= MLD10C<br />

IEF237I JES2 ALLOCATED TO SYSIN<br />

IEF237I 8019 ALLOCATED TO SYS00001<br />

IGD104I UCAT.FLETCHER RETAINED, DDNAME=SYS00001<br />

IEF142I MHLRES1I DIAGLIST - STEP WAS EXECUTED - COND CODE 0000<br />

IGD106I MHLRES1.BCAT.CATALOG.BACKUP.G0005V00 PASSED, DDNAME=SETBKDS<br />

IGD106I MHLRES1.BCAT.CATALOG.LISTING.G0005V00 PASSED, DDNAME=SYSPRINT<br />

IEF285I MHLRES1.MHLRES1I.JOB21908.D0000101.? SYSIN<br />

IEF373I STEP/DIAGLIST/START 2007075.1239<br />

IEF374I STEP/DIAGLIST/STOP 2007075.1239 CPU 0MIN 00.02SEC SRB 0MIN 00.00SEC VIRT 1236K SYS 360K EXT 144K SYS<br />

IEF236I ALLOC. FOR MHLRES1I EXPCAT<br />

IGD103I SMS ALLOCATED TO DDNAME CATBACK<br />

IGD103I SMS ALLOCATED TO DDNAME SYSPRINT<br />

IEF237I JES2 ALLOCATED TO SYSIN<br />

IEF237I 8019 ALLOCATED TO SYS00002<br />

IGD104I UCAT.FLETCHER RETAINED, DDNAME=SYS00002<br />

IEF142I MHLRES1I EXPCAT - STEP WAS EXECUTED - COND CODE 0000<br />

IGD106I MHLRES1.BCAT.CATALOG.BACKUP.G0005V00 PASSED, DDNAME=CATBACK<br />

IGD106I MHLRES1.BCAT.CATALOG.LISTING.G0005V00 PASSED, DDNAME=SYSPRINT<br />

IEF285I MHLRES1.MHLRES1I.JOB21908.D0000102.? SYSIN<br />

IEF373I STEP/EXPCAT /START 2007075.1239<br />

IEF374I STEP/EXPCAT /STOP 2007075.1239 CPU 0MIN 00.03SEC SRB 0MIN 00.00SEC VIRT 444K SYS 360K EXT 1752K SYS<br />

IEF236I ALLOC. FOR MHLRES1I CATAL<br />

IGD103I SMS ALLOCATED TO DDNAME CATBACK<br />

IGD103I SMS ALLOCATED TO DDNAME SYSLIST<br />

IEF142I MHLRES1I CATAL - STEP WAS EXECUTED - COND CODE 0000<br />

IGD107I MHLRES1.BCAT.CATALOG.BACKUP.G0005V00 ROLLED IN, DDNAME=CATBACK<br />

IGD107I MHLRES1.BCAT.CATALOG.LISTING.G0005V00 ROLLED IN, DDNAME=SYSLIST<br />

IEF373I STEP/CATAL /START 2007075.1239<br />

IEF374I STEP/CATAL /STOP 2007075.1239 CPU 0MIN 00.00SEC SRB 0MIN 00.00SEC VIRT 4K SYS 316K EXT 0K SYS<br />

IEF202I MHLRES1I REPOUT - STEP WAS NOT RUN BECAUSE OF CONDITION CODES<br />

IEF272I MHLRES1I REPOUT - STEP WAS NOT EXECUTED.<br />

IEF373I STEP/REPOUT /START 2007075.1239<br />

IEF374I STEP/REPOUT /STOP 2007075.1239 CPU 0MIN 00.00SEC SRB 0MIN 00.00SEC VIRT 0K SYS 0K EXT 0K SYS<br />

IEF375I JOB/MHLRES1I/START 2007075.1239<br />

IEF376I JOB/MHLRES1I/STOP 2007075.1239 CPU 0MIN 00.05SEC SRB 0MIN 00.00SEC<br />

Figure 3-66 ICFRU Readiness check IDCAMS Diagnose and first EXPORT job JES2 output (2 of 2)<br />

This was not the first run of this job since the initial data sets and GDGs were set up, so the<br />

relative GDG number is G0005V00 rather than G0001V00 as might be expected.<br />

The significant data sets from this run are MHLRES1.BCAT.CATALOG.BACKUP.G0005V00<br />

and MHLRES1.BCAT.CATALOG.LISTING.G0005V00.<br />

The output from this job, as captured in the MHLRES1.BCAT.CATALOG.LISTING.* output,<br />

should be checked for errors, and if necessary any errors found should be corrected and the<br />

job run again.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 81


Once the run is clean, as in this case, the significant part of the output is the last part of<br />

Figure 3-67.<br />

EXPORT UCAT.FLETCHER OFILE(CATBACK) TEMP<br />

IDC0005I NUMBER OF RECORDS PROCESSED WAS 6<br />

IDC0594I PORTABLE DATA SET CREATED SUCCESSFULLY ON 03/16/07 AT 12:39:15<br />

IDC1147I IT IS RECOMMENDED THAT DIAGN<strong>OS</strong>E AND EXAMINE BE RUN BEFORE<br />

IDC1147I IMPORT OF CATALOG<br />

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0<br />

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0<br />

Figure 3-67 ICFRU Readiness check IDCAMS Diagnose and first EXPORT job captured output - last part<br />

For the purposes of simulating a catalog recovery, we noted the time and date that the<br />

EXPORT was created, as listed in the message:<br />

IDC0594I PORTABLE DATA SET CREATED SUCCESSFULLY ON 03/16/07 AT 12:39:15<br />

In order to guarantee that there has been some catalog activity since the initial EXPORT was<br />

created, we created a job to define sixteen data sets.<br />

82 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-68 we show the job to allocate these data sets.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* CATALOG A NUMBER OF DATASETS TO ENSURE THERE HAS BEEN SOME<br />

//* CATALOG ACTIVITY<br />

//* N.B. RUN THE CORRESPONDING DELETE JOB AFTER THE SECOND<br />

//* EXPORT HAS BEEN CREATED<br />

//DEFDS EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//DD01 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST01,UNIT=SYSALLDA<br />

//DD02 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST02,UNIT=SYSALLDA<br />

//DD03 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST03,UNIT=SYSALLDA<br />

//DD04 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST04,UNIT=SYSALLDA<br />

//DD05 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST05,UNIT=SYSALLDA<br />

//DD06 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST06,UNIT=SYSALLDA<br />

//DD07 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST07,UNIT=SYSALLDA<br />

//DD08 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST08,UNIT=SYSALLDA<br />

//DD09 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST09,UNIT=SYSALLDA<br />

//DD10 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST10,UNIT=SYSALLDA<br />

//DD11 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST11,UNIT=SYSALLDA<br />

//DD12 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST12,UNIT=SYSALLDA<br />

//DD13 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST13,UNIT=SYSALLDA<br />

//DD14 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST14,UNIT=SYSALLDA<br />

//DD15 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST15,UNIT=SYSALLDA<br />

//DD16 DD DISP=(,CATLG),SPACE=(TRK,(1,1)),<br />

// DSN=MHLCAT9.BCAT.TEST16,UNIT=SYSALLDA<br />

//SYSIN DD *<br />

LISTCAT LVL(MHLCAT9.BCAT)<br />

/*<br />

Figure 3-68 ICFRU Readiness check - allocate test data sets<br />

We then ran the same job as used to create the first EXPORT — the job shown in Figure 3-64<br />

on page 79. The output was basically the same as when run the first time except that the data<br />

sets generated were suffixed G0006V00 instead of G0005V00.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 83


In Figure 3-69 we show the last part of the MHLRES1.BCAT.CATALOG.LISTING.G0006V00<br />

data set, which shows the result of the EXPORT command.<br />

EXPORT UCAT.FLETCHER OFILE(CATBACK) TEMP<br />

IDC0005I NUMBER OF RECORDS PROCESSED WAS 22<br />

IDC0594I PORTABLE DATA SET CREATED SUCCESSFULLY ON 03/16/07 AT 12:51:25<br />

IDC1147I IT IS RECOMMENDED THAT DIAGN<strong>OS</strong>E AND EXAMINE BE RUN BEFORE<br />

IDC1147I IMPORT OF CATALOG<br />

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0<br />

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0<br />

Figure 3-69 ICFRU Readiness job last part of MHLRES1.BCAT.CATALOG.LISTING.G0002V00<br />

For the purposes of simulating a catalog recovery, we noted the time and date that the<br />

second EXPORT was created, as listed in the message:<br />

IDC0594I PORTABLE DATA SET CREATED SUCCESSFULLY ON 03/16/07 AT 12:51:25<br />

We then identified the SMF data sets that contained the SMF data from just before the first<br />

export was created until just after the second export was created from 03/16/07 AT 12:39:15<br />

to 03/16/07 AT 12:51:25.<br />

The data sets were identified as SMFDATA.ALLRECS.G3350V00 through to<br />

SMFDATA.ALLRECS.G3351V00.<br />

We then used this information in the job to run program ICFRRSV.<br />

In Figure 3-71 on page 85 we show the JCL to run the CRURRSV program. It has been set<br />

up to use the SMF records that may contain updates to the catalog, and set up with the start<br />

and stop date and times as taken from the IDCAMS EXPORT job and the SMF records.<br />

The significant PARM values of catalog name, start_time, stop_time, and gap time are<br />

highlighted in Figure 3-70.<br />

// PARM=('UCAT.FLETCHER',<br />

// '03/16/07','12:39:15',<br />

// '03/16/07','12:51:25',<br />

// '0030',<br />

Figure 3-70 CRURRSV program PARM values<br />

84 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The appropriate SMF data set names and the output data set have been specified.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* THIS JCL EXECUTES CRURRSV TO SELECT THE APPROPRIATE SMF<br />

//* RECORDS FROM THE DATASETS COVERING THE PERIOD WHERE RECORDS<br />

//* MAY BE L<strong>OS</strong>T FROM THE CATALOG.<br />

//* THE INPUT IS THE SMF DATA SET(S), OUTPUT IS A CONSOLIDATED<br />

//* SET OF SMF RECORDS. SELECTION IS CONTROLED THROUGH THE PARM<br />

//*<br />

//RRSV EXEC PGM=CRURRSV,<br />

// PARM=('UCAT.FLETCHER',<br />

// '03/16/07','12:39:15',<br />

// '03/16/07','12:51:25',<br />

// '0030',<br />

// '0000')<br />

//*PARM=('CATALOG.NAME',<br />

//* 'STARTDATE','STARTTIME', MM/DD/YY HH:MM:SS<br />

//* 'STOPDATE,'STOPTIME',<br />

//* 'GAPTIME', (MINUTES)<br />

//* 'CLOCKDIFFERENCE') (SECONDS)<br />

//SYSDUMP DD SYSOUT=*<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSLOG DD SYSOUT=*<br />

//SMFIN DD DISP=SHR,DCB=BUFNO=60,DSN=SMFDATA.ALLRECS.G3350V00<br />

// DD DISP=SHR,DCB=BUFNO=60,DSN=SMFDATA.ALLRECS.G3351V00<br />

//SMFOUT DD DISP=(,CATLG),DCB=BUFNO=60,<br />

// UNIT=SYSDA,SPACE=(CYL,(10,2)),<br />

// DSN=MHLRES1.BCAT.SMF.CAT.RECS.FLETCHER<br />

Figure 3-71 ICFRU Readiness check - CRURRSV job<br />

CRURRSV produces several reports based on the analysis of the SMF data. For explanation<br />

of the information you should refer to Appendix A of <strong>DFSMS</strong> Managing Catalogs, SC26-7409.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 85


In Figure 3-72 we show the output from running the job as shown in Figure 3-71 on page 85.<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRSV SYSPRINT 03/16/07 (07.075) 17:42:17 PAGE 01<br />

RECORD SELECTION AND VALIDATION REPORT<br />

EXECUTION PARAMETERS<br />

CATALOG NAME UCAT.FLETCHER<br />

RECORD SELECTION START 03/16/07 (07.075) 12:39:15<br />

RECORD SELECTION STOP 03/16/07 (07.075) 12:51:25<br />

SIGNIFICANT GAP TIME 0030 MINUTES<br />

MAXIMUM CLOCK DIFFERENCE 0000 SECONDS<br />

REPORT FOR ALL SYSTEMS<br />

RECORD SELECTION AND VALIDATION CONDITION CODE IS 00<br />

0 ANOMALIES (L<strong>OS</strong>T DATA, GAPS) DETECTED<br />

16 RECORDS SELECTED FOR UCAT.FLETCHER<br />

16 DEFINE (TYPE 61) RECORDS SELECTED<br />

0 DELETE (TYPE 65) RECORDS SELECTED<br />

0 ALTER (TYPE 66) RECORDS SELECTED<br />

01 SYSTEM(S) RECORDED CHANGES TO THIS CATALOG<br />

SC64<br />

FOR CATALOG UCAT.FLETCHER<br />

03/16/07 (07.075) 11:29:33.57 OLDEST SMF CATALOG RECORD FOUND<br />

03/16/07 (07.075) 12:44:24.44 OLDEST SMF CATALOG RECORD SELECTED<br />

03/16/07 (07.075) 12:44:24.59 NEWEST SMF CATALOG RECORD SELECTED<br />

03/16/07 (07.075) 12:44:24.59 NEWEST SMF CATALOG RECORD FOUND<br />

FOR ALL SMF RECORD TYPES<br />

03/16/07 (07.075) 06:40:01.08 OLDEST SMF RECORD FOUND (ANY TYPE)<br />

03/16/07 (07.075) 16:30:08.64 NEWEST SMF RECORD FOUND (ANY TYPE)<br />

1 SYSTEM IDENTIFIERS WERE FOUND<br />

26,478 TOTAL SMF RECORDS WERE READ<br />

2 SMF SWITCH (TYPE 90, SUBTYPE 6) RECORDS WERE FOUND<br />

0 SMF EOD (TYPE 90, SUBTYPE 7) RECORDS WERE FOUND<br />

0 SMF IPL (TYPE 0) RECORDS WERE FOUND<br />

0 SMF L<strong>OS</strong>T DATA (TYPE 7) RECORDS WERE FOUND<br />

0 FORWARD GAPS IN SINGLE-SYSTEM SMF RECORDS LONGER THAN<br />

0030 MINUTES WERE FOUND<br />

0 BACKWARD GAPS IN SINGLE-SYSTEM SMF RECORDS LONGER THAN<br />

0030 MINUTES WERE FOUND<br />

RECORD SELECTION AND VALIDATION CONDITION CODE IS 00<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRSV SYSPRINT 03/16/07 (07.075) 17:42:17 PAGE 02<br />

RECORD SELECTION AND VALIDATION REPORT<br />

EXECUTION PARAMETERS<br />

CATALOG NAME UCAT.FLETCHER<br />

RECORD SELECTION START 03/16/07 (07.075) 12:39:15<br />

RECORD SELECTION STOP 03/16/07 (07.075) 12:51:25<br />

SIGNIFICANT GAP TIME 0030 MINUTES<br />

MAXIMUM CLOCK DIFFERENCE 0000 SECONDS<br />

REPORT FOR SYSTEM SC64<br />

RECORD SELECTION AND VALIDATION CONDITION CODE IS 00<br />

0 ANOMALIES (L<strong>OS</strong>T DATA, GAPS) DETECTED<br />

16 RECORDS SELECTED FOR UCAT.FLETCHER<br />

16 DEFINE (TYPE 61) RECORDS SELECTED<br />

0 DELETE (TYPE 65) RECORDS SELECTED<br />

0 ALTER (TYPE 66) RECORDS SELECTED<br />

FOR CATALOG UCAT.FLETCHER<br />

03/16/07 (07.075) 11:29:33.57 OLDEST SMF CATALOG RECORD FOUND<br />

03/16/07 (07.075) 12:44:24.44 OLDEST SMF CATALOG RECORD SELECTED<br />

03/16/07 (07.075) 12:44:24.59 NEWEST SMF CATALOG RECORD SELECTED<br />

03/16/07 (07.075) 12:44:24.59 NEWEST SMF CATALOG RECORD FOUND<br />

FOR ALL SMF RECORD TYPES<br />

03/16/07 (07.075) 06:40:01.08 OLDEST SMF RECORD FOUND (ANY TYPE)<br />

03/16/07 (07.075) 16:30:01.08 NEWEST SMF RECORD FOUND (ANY TYPE)<br />

26,478 TOTAL SMF RECORDS WERE READ<br />

2 SMF SWITCH (TYPE 90, SUBTYPE 6) RECORDS WERE FOUND<br />

0 SMF EOD (TYPE 90, SUBTYPE 7) RECORDS WERE FOUND<br />

0 SMF IPL (TYPE 0) RECORDS WERE FOUND<br />

0 SMF L<strong>OS</strong>T DATA (TYPE 7) RECORDS WERE FOUND<br />

0 FORWARD GAPS IN SINGLE-SYSTEM SMF RECORDS LONGER THAN<br />

0030 MINUTES WERE FOUND<br />

0 BACKWARD GAPS IN SINGLE-SYSTEM SMF RECORDS LONGER THAN<br />

0030 MINUTES WERE FOUND<br />

RECORD SELECTION AND VALIDATION CONDITION CODE IS 00<br />

Figure 3-72 ICFRU Readiness check - CRURRSV job output<br />

86 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In addition to the report output, a separate SYSLOG file is produced. This is useful for<br />

determining the number of SMF switches that occurred and whether there might be gaps in<br />

the SMF data.<br />

In Figure 3-73 we show the output from the CRURRSV SYSLOG.<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRSV SYSLOG 03/16/07 (07.075) 17:42:17<br />

CRU023I SWITCH SMF RECORD FOUND FOR SYSID SC64<br />

03/16/07 (07.075) 06:40:01.17 RECORD BEING PROCESSED - DUMP FOLLOWS<br />

+0000 00AEC8 00A40000 1E5A0024 9F750107 075FE2C3 F6F40000 00000024 000C0001 00000030 *.u...!.......¬SC64..............*<br />

+0020 00AEE8 00740001 0006F0F1 E2D4C640 40404040 40404040 40404040 40404040 40404040 *......01SMF *<br />

+0040 00AF08 40404040 0064FD95 0107056F E2E8E2F1 4BE2C3F6 F44BD4C1 D5F24040 40404040 * ...n...?SYS1.SC64.MAN2 *<br />

+0060 00AF28 40404040 40404040 40404040 40404040 40404040 40404040 E2E8E2F1 4BE2C3F6 * SYS1.SC6*<br />

+0080 00AF48 F44BD4C1 D5F14040 40404040 40404040 40404040 40404040 40404040 40404040 *4.MAN1 *<br />

+00A0 00AF68 40404040 * *<br />

CRU023I SWITCH SMF RECORD FOUND FOR SYSID SC64<br />

03/16/07 (07.075) 11:40:00.57 RECORD BEING PROCESSED - DUMP FOLLOWS<br />

+0000 00AEC8 00A40000 1E5A0040 16790107 075FE2C3 F6F40000 00000024 000C0001 00000030 *.u...!. .....¬SC64..............*<br />

+0020 00AEE8 00740001 0006F0F1 E2D4C640 40404040 40404040 40404040 40404040 40404040 *......01SMF *<br />

+0040 00AF08 40404040 0064FD95 0107056F E2E8E2F1 4BE2C3F6 F44BD4C1 D5F14040 40404040 * ...n...?SYS1.SC64.MAN1 *<br />

+0060 00AF28 40404040 40404040 40404040 40404040 40404040 40404040 E2E8E2F1 4BE2C3F6 * SYS1.SC6*<br />

+0080 00AF48 F44BD4C1 D5F24040 40404040 40404040 40404040 40404040 40404040 40404040 *4.MAN2 *<br />

+00A0 00AF68 40404040 * *<br />

Figure 3-73 CFRU Readiness check - CRRRSV SYSLOG output<br />

Once the SMF records have been selected, they must be sorted into the form required by<br />

CRURRAP.<br />

In Figure 3-74 we show the JCL to sort the SMF records. The input and output data sets are<br />

bolded.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* THIS JCL EXECUTES SORT TO PREPARE FOR INPUT TO CRURRAP<br />

//*<br />

//RRSV EXEC PGM=ICEMAN<br />

//SYSOUT DD SYSOUT=*<br />

//SORTIN DD DISP=SHR,<br />

// DSN=MHLRES1.BCAT.SMF.CAT.RECS.FLETCHER<br />

//SORTOUT DD DISP=(,CATLG,DELETE),UNIT=SYSDA,<br />

// SPACE=(CYL,(10,2),RLSE),<br />

// DSN=MHLRES1.BCAT.SORTED.SMF.CAT.RECS.FLETCHER<br />

//SYSIN DD *<br />

OPTION DYNALLOC=SYSDA,FILSZ=E10000<br />

SORT FIELDS=(218,44,CH,A,262,1,BI,A,11,4,PD,D,7,4,BI,D)<br />

/*<br />

Figure 3-74 ICFRU Readiness check - SMF sort job<br />

The output from the SORT should be checked to verify that the correct number of records as<br />

reported by CRURRSV have been sorted.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 87


In Figure 3-75 we show the message output resulting from running the JCL as shown in<br />

Figure 3-74 on page 87.<br />

BLOCKSET SORT TECHNIQUE SELECTED<br />

VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE<br />

- CONTROL STATEMENTS FOR 5694-A01, Z/<strong>OS</strong> DFSORT V1R5 - 17:42 ON FRI MAR 16, 2007 -<br />

OPTION DYNALLOC=SYSDA,FILSZ=E10000<br />

SORT FIELDS=(218,44,CH,A,262,1,BI,A,11,4,PD,D,7,4,BI,D)<br />

RECORD TYPE IS V - DATA STARTS IN P<strong>OS</strong>ITION 5<br />

C5-K21008 C6-K90007 C7-K90000 C8-K90007 E4-K90007 C9-BASE E5-K18181 E6-K18181 B0-Q96745 E7-K11698<br />

ICEAM1 ENVIRONMENT IN EFFECT - ICEAM1 INSTALLATION MODULE SELECTED<br />

MHLRES1I.RRSV . , INPUT LRECL = 32760, BLKSIZE = 4096, TYPE = VBS<br />

MAIN STORAGE = (MAX,6291456,6291456)<br />

MAIN STORAGE ABOVE 16MB = (6214096,6214096)<br />

OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=256<br />

OPTIONS: SIZE=6291456,MAXLIM=1048576,MINLIM=450560,EQUALS=Y,LIST=Y,ERET=RC16 ,MSGDDN=SYSOUT<br />

OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=(SYSDA<br />

,004),ABCODE=MSG<br />

OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,STIMER=Y,COBEXIT=COB2<br />

OPTIONS: TMAXLIM=6291456,ARESALL=0,ARESINV=0,OVERRGN=65536,CINV=Y,CFW=Y,DSA=0<br />

OPTIONS: VLSHRT=N,ZDPRINT=Y,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N<br />

OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=Y,VLLONG=N,VSAMIO=N,M<strong>OS</strong>IZE=MAX<br />

OPTIONS: NULLOUT=RC0<br />

EXCP ACCESS METHOD USED FOR SORTOUT<br />

EXCP ACCESS METHOD USED FOR SORTIN<br />

DC 8184 TC 0 CS DSV KSZ 58 VSZ 58<br />

FSZ=8184 BC IGN=10000 E AVG=16380 0 WSP=10 C DYN=0 0<br />

B1-K19866 B2-K17569 EC-K10929 B4-K17569 E8-K21008<br />

OUTPUT LRECL = 32760, BLKSIZE = 27998, TYPE = VBS (SDB)<br />

IN MAIN STORAGE SORT<br />

INSERT 0, DELETE 0<br />

RECORDS - IN: 16, OUT: 16<br />

NUMBER OF BYTES SORTED: 4864<br />

AVERAGE RECORD LENGTH = 304 BYTES<br />

TOTAL WORK DATA SET TRACKS ALLOCATED: 0 , TRACKS USED: 0<br />

MEMORY OBJECT STORAGE USED = 1M BYTES<br />

HIPERSPACE STORAGE USED = 0K BYTES<br />

DATA SPACE STORAGE USED = 0K BYTES<br />

END OF DFSORT<br />

Figure 3-75 ICFRU Readiness check - SORT job messages<br />

The sorted SMF records must be processed by CRURRAP to produce a data set that is to be<br />

used as a file for IDCAMS IMPORT. For the purposes of this ICFRU readiness check, it is not<br />

used as import by IDCAMS, but it will be compared with the second IDCAMS EXPORT made<br />

during this check.<br />

88 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-76 we show the job set up to construct a pseudo IDCAMS EXPORT data set that<br />

could be used to re-create a lost catalog.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* THIS JCL EXECUTES CRURRAP TO GENERATE THE EQUIVALENT OF<br />

//* AND IDCAMS EXPORT.<br />

//* THE INPUT IS THE SMF DATA SET(S) AS PRODUCED BY CRURRSV AND<br />

//* SORTED BY SMF.<br />

//* EXACTLY THE SAME SELECTION PARAMETERS MUST BE SET AS SPECIFIED<br />

//* TO CRURRSV.<br />

//*<br />

//RRSV EXEC PGM=CRURRAP,<br />

// PARM=('UCAT.FLETCHER',<br />

// '03/16/07','12:39:15',<br />

// '03/16/07','12:51:25',<br />

// '0030',<br />

// '0000')<br />

//*PARM=('CATALOG.NAME',<br />

//* 'STARTDATE','STARTTIME', MM/DD/YY HH:MM:SS<br />

//* 'STOPDATE,'STOPTIME',<br />

//* 'GAPTIME', (MINUTES)<br />

//* 'CLOCKDIFFERENCE') (SECONDS)<br />

//SYSDUMP DD SYSOUT=*<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSLOG DD SYSOUT=*<br />

//SMFIN DD DISP=SHR,DCB=BUFNO=60,<br />

// DSN=MHLRES1.BCAT.SORTED.SMF.CAT.RECS.FLETCHER<br />

//EXPIN DD DISP=SHR,DCB=BUFNO=60,<br />

// DSN=MHLRES1.BCAT.CATALOG.BACKUP.G0006V00<br />

//EXPOUT DD DISP=(,CATLG),DCB=BUFNO=60,<br />

// UNIT=SYSDA,SPACE=(CYL,(10,2)),<br />

// DSN=MHLRES1.BCAT.NEW.CATALOG.EXPORT.FLETCHER<br />

Figure 3-76 ICFRU Readiness check - CRURRAP job<br />

The PARM values used for CRURRAP must be the same as those used for CRURRSV.<br />

For the purposes of this readiness check we compare it with the second IDCAMS EXPORT<br />

data set. The two should be equal.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 89


In Figure 3-77 through to Figure 3-79 on page 91 we show the output from the CRURRAP job<br />

as defined in Figure 3-76 on page 89.<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRAP SYSPRINT 03/16/07 (07.075) 20:10:32 PAGE 1<br />

RECORD ANALYSIS AND PROCESSING REPORT<br />

EXECUTION PARAMETERS<br />

CATALOG NAME UCAT.FLETCHER<br />

RECORD SELECTION START 03/16/07 (07.075) 12:39:15<br />

RECORD SELECTION STOP 03/16/07 (07.075) 12:51:25<br />

SIGNIFICANT GAP TIME 0030 MINUTES<br />

MAXIMUM CLOCK DIFFERENCE 0000 SECONDS<br />

RECORD ANALYSIS AND PROCESSING CONDITION CODE IS 08<br />

ERROR REPORT<br />

16 TOTAL ERRORS (CONDITION CODES 12 AND 8)<br />

0 RECORDS REJECTED FROM EXPIN (LOGGED, DUMPED, CC=12)<br />

0 RECORDS WITH INVALID LENGTHS (CRU302I)<br />

0 RECORDS WITH INVALID CATALOG RECORD TYPES (CRU303I)<br />

16 ERRORS IN EVENT SEQUENCE INVOLVING THE M<strong>OS</strong>T CURRENT RECORD<br />

(LOGGED, DUMPED, CC=8)<br />

16 SEQUENCE ERRORS, BUT NO SYNCHRONIZATION CHECK<br />

0 SMF UPDATE FOR A NON-EXISTENT RECORD (CRU203I)<br />

0 SMF DELETE FOR A NON-EXISTENT RECORD (CRU204I)<br />

0 SMF INSERT PRECEDED BY AN SMF INSERT (CRU205I)<br />

0 SMF INSERT PRECEDED BY AN SMF UPDATE (CRU206I)<br />

0 SMF UPDATE PRECEDED BY AN SMF DELETE (CRU207I)<br />

0 SMF DELETE PRECEDED BY AN SMF DELETE (CRU208I)<br />

16 SMF INSERT PRECEDED BY EXPORT RECORD (CRU209I)<br />

0 SEQUENCE ERRORS, WITH A SYNCHRONIZATION CHECK<br />

0 SMF INSERT PRECEDED BY AN SMF INSERT (CRU205I)<br />

0 SMF INSERT PRECEDED BY AN SMF UPDATE (CRU206I)<br />

0 SMF UPDATE PRECEDED BY AN SMF DELETE (CRU207I)<br />

0 SMF DELETE PRECEDED BY AN SMF DELETE (CRU208I)<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRAP SYSPRINT 03/16/07 (07.075) 20:10:32 PAGE 2<br />

ANOMALY REPORT<br />

0 ANOMALIES (CONDITION CODES 4 AND 0)<br />

0 SYNCHRONIZATION CHECKS INVOLVING THE M<strong>OS</strong>T CURRENT RECORD<br />

BUT WITH NO EVENT SEQUENCE ERROR (CRU113I)<br />

(LOGGED, DUMPED, CC=4)<br />

0 SMF UPDATE PRECEDED BY AN SMF INSERT (CRU003I)<br />

0 SMF DELETE PRECEDED BY AN SMF INSERT (CRU004I)<br />

0 SMF UPDATE PRECEDED BY AN SMF UPDATE (CRU005I)<br />

0 SMF DELETE PRECEDED BY AN SMF UPDATE (CRU006I)<br />

0 SMF INSERT PRECEDED BY AN SMF DELETE (CRU007I)<br />

0 ERRORS IN EVENT SEQUENCE INVOLVING A SUPERSEDED RECORD<br />

(LOGGED, CC=4)<br />

0 SEQUENCE ERRORS, BUT NO SYNCHRONIZATION CHECK<br />

0 SMF UPDATE FOR A NON-EXISTENT RECORD (CRU106I)<br />

0 SMF DELETE FOR A NON-EXISTENT RECORD (CRU107I)<br />

0 SMF INSERT PRECEDED BY AN SMF INSERT (CRU108I)<br />

0 SMF INSERT PRECEDED BY AN SMF UPDATE (CRU109I)<br />

0 SMF UPDATE PRECEDED BY AN SMF DELETE (CRU110I)<br />

0 SMF DELETE PRECEDED BY AN SMF DELETE (CRU111I)<br />

0 SMF INSERT PRECEDED BY EXPORT RECORD (CRU112I)<br />

0 SEQUENCE ERRORS, WITH A SYNCHRONIZATION CHECK<br />

0 SMF INSERT PRECEDED BY AN SMF INSERT (CRU108I)<br />

0 SMF INSERT PRECEDED BY AN SMF UPDATE (CRU109I)<br />

0 SMF UPDATE PRECEDED BY AN SMF DELETE (CRU110I)<br />

0 SMF DELETE PRECEDED BY AN SMF DELETE (CRU111I)<br />

0 SYNCHRONIZATION CHECKS INVOLVING A SUPERSEDED RECORD<br />

BUT WITH NO EVENT SEQUENCE ERROR (CRU020I)<br />

(NOT LOGGED, CC=0)<br />

0 SMF UPDATE PRECEDED BY AN SMF INSERT (CRU013I)<br />

0 SMF DELETE PRECEDED BY AN SMF INSERT (CRU014I)<br />

0 SMF UPDATE PRECEDED BY AN SMF UPDATE (CRU015I)<br />

0 SMF DELETE PRECEDED BY AN SMF UPDATE (CRU016I)<br />

0 SMF INSERT PRECEDED BY AN SMF DELETE (CRU017I)<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

Figure 3-77 ICFRU Readiness check - CRURRAP job output (part 1 of 3)<br />

90 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


CRURRAP SYSPRINT 03/16/07 (07.075) 20:10:32 PAGE 3<br />

REPORT OF RECORDS PROCESSED WITHOUT ERROR OR ANOMALY<br />

22 TOTAL RECORDS PROCESSED (NO ERROR/NO ANOMALY, CONDITION CODE 0)<br />

6 M<strong>OS</strong>T CURRENT RECORDS PROCESSED WITHOUT ERROR OR ANOMALY<br />

0 SMF INSERT FOR A NEW RECORD (CRU002I)<br />

0 SMF UPDATE PRECEDED BY AN SMF INSERT (CRU003I)<br />

0 SMF DELETE PRECEDED BY AN SMF INSERT (CRU004I)<br />

0 SMF UPDATE PRECEDED BY AN SMF UPDATE (CRU005I)<br />

0 SMF DELETE PRECEDED BY AN SMF UPDATE (CRU006I)<br />

0 SMF INSERT PRECEDED BY AN SMF DELETE (CRU007I)<br />

0 SMF UPDATE PRECEDED BY EXPORT RECORD (CRU008I)<br />

0 SMF DELETE PRECEDED BY EXPORT RECORD (CRU009I)<br />

6 EXPORT RECORD CARRIED FORWARD (CRU001I)<br />

16 SUPERSEDED RECORDS PROCESSED WITHOUT ERROR OR ANOMALY<br />

0 SMF INSERT FOR A NEW RECORD (CRU012I)<br />

0 SMF UPDATE PRECEDED BY AN SMF INSERT (CRU013I)<br />

0 SMF DELETE PRECEDED BY AN SMF INSERT (CRU014I)<br />

0 SMF UPDATE PRECEDED BY AN SMF UPDATE (CRU015I)<br />

0 SMF DELETE PRECEDED BY AN SMF UPDATE (CRU016I)<br />

0 SMF INSERT PRECEDED BY AN SMF DELETE (CRU017I)<br />

0 SMF UPDATE PRECEDED BY EXPORT RECORD (CRU018I)<br />

0 SMF DELETE PRECEDED BY EXPORT RECORD (CRU019I)<br />

16 EXPORT RECORD SUPERSEDED (CRU011I)<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

Figure 3-78 ICFRU Readiness check - CRURRAP job output (part 2 of 3)<br />

CRURRAP SYSPRINT 03/16/07 (07.075) 20:10:32 PAGE 4<br />

REPORT OF RECORDS BY DATA SET<br />

32 TOTAL RECORDS IN THE NEW EXPORT DATA SET (EXPOUT)<br />

10 CONTROL RECORDS<br />

22 CATALOG RECORDS<br />

16 RECORDS FORWARDED FROM THE OLD EXPORT DATA SET (EXPIN)<br />

10 CONTROL RECORDS<br />

6 CATALOG RECORDS<br />

16 CATALOG RECORDS SELECTED FROM THE SMF DATA SET (SMFIN)<br />

32 TOTAL RECORDS FROM THE OLD EXPORT DATA SET (EXPIN)<br />

16 RECORDS CARRIED FORWARD TO THE NEW EXPORT DATA SET<br />

10 CONTROL RECORDS<br />

6 CATALOG RECORDS<br />

16 RECORDS SUPERSEDED OR DELETED (BASED ON SMF DATA)<br />

0 RECORDS REJECTED BECAUSE OF ERRORS<br />

0 INVALID LENGTH<br />

0 UNRECOGNIZED CATALOG RECORD TYPE<br />

16 TOTAL RECORDS FROM THE SMF DATA SET (SMFIN)<br />

16 RECORDS CARRIED FORWARD TO THE NEW EXPORT DATA SET<br />

0 RECORDS SUPERSEDED OR DELETED BY NEWER SMF RECORDS<br />

0 RECORDS REJECTED<br />

0 NOT AN MVS SMF RECORD<br />

0 NOT AN SMF CATALOG RECORD<br />

0 NOT AN SMF CATALOG RECORD FOR THIS CATALOG<br />

0 DATE/TIME EARLIER THAN EFFECTIVE START TIME<br />

0 DATE/TIME LATER THAN EFFECTIVE STOP TIME<br />

32 TOTAL OF ALL OUTPUT RECORDS<br />

16 TOTAL OF ALL RECORDS DISCARDED<br />

48 TOTAL OF ALL INPUT RECORDS<br />

Figure 3-79 ICFRU Readiness check - CRURRAP job output (part 3 of 3)<br />

In addition to the standard job output, as with CRURRSV, CRURRAP also produces a<br />

SYSLOG.<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 91


In Figure 3-80 we show the SYLOG output. In this case the data reflected documents the<br />

checking that occurred to determine whether a record found by the ICFRU analysis is more or<br />

less up to date than that shown in the second IDCAMS EXPORT run.<br />

INTEGRATED CATALOG FORWARD RECOVERY UTILITY V2R1<br />

CRURRAP SYSLOG 03/16/07 (07.075) 20:10:32<br />

CRU104I SPECIFIED START PRECEDES EXPORT, ANOMALIES P<strong>OS</strong>SIBLE<br />

CRU209I SMF INSERT IS M<strong>OS</strong>T CURRENT BUT IS PRECEDED BY EXPORT RECORD FOR<br />

(A) MHLCAT9.BCAT.TEST01 /00<br />

NEWER: DEFINE FROM SYS SC64 AT 12:44:24.44 ON 03/16/07 (07.075)<br />

OLDER: EXPORT RECORD<br />

SMF INSERT RECORD IS WRITTEN TO THE NEW EXPORT DATA SET<br />

+0000 4F8000 01300000 1E3D0045 FBCC0107 075FE2C3 F6F44040 4040C9D5 00000028 000A0001 *.............¬SC64 IN........*<br />

+0020 4F8020 00000032 009E0001 40F1C3C1 E3D4C7D4 E340D4C8 D3D9C5E2 F1C90045 FB950107 *........ 1CATMGMT MHLRES1I...n..*<br />

+0040 4F8040 075FD4C8 D3D9C5E2 F14040E4 C3C1E34B C6D3C5E3 C3C8C5D9 40404040 40404040 *.¬MHLRES1 UCAT.FLETCHER *<br />

+0060 4F8060 40404040 40404040 40404040 40404040 40404040 404040C1 D4C8D3C3 C1E3F94B * AMHLCAT9.*<br />

+0080 4F8080 C2C3C1E3 4BE3C5E2 E3F0F140 40404040 40404040 40404040 40404040 40404040 *BCAT.TEST01 *<br />

+00A0 4F80A0 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * *<br />

+00C0 4F80C0 40404040 40404040 40404040 00644040 00600034 C1000001 2DD4C8D3 C3C1E3F9 * .. .-..A....MHLCAT9*<br />

+00E0 4F80E0 4BC2C3C1 E34BE3C5 E2E3F0F1 40404040 40404040 40404040 40404040 40404040 *.BCAT.TEST01 *<br />

+0100 4F8100 40404040 40000014 01FFFFFF FFFFFFFF FF080707 5F00000F 01000016 0400E2C2 * ...............¬.........SB*<br />

+0120 4F8120 D6E7C5F1 3010200F 08000000 00000000 *OXE1............ *<br />

CRU011I EXPORT RECORD WAS SUPERSEDED AND WAS THE OLDEST RECORD FOR<br />

(A) MHLCAT9.BCAT.TEST01 /00<br />

RECORD IS BYPASSED, ACTION WAS TAKEN FOR A MORE CURRENT RECORD<br />

CRU209I SMF INSERT IS M<strong>OS</strong>T CURRENT BUT IS PRECEDED BY EXPORT RECORD FOR<br />

(A) MHLCAT9.BCAT.TEST02 /00<br />

NEWER: DEFINE FROM SYS SC64 AT 12:44:24.45 ON 03/16/07 (07.075)<br />

OLDER: EXPORT RECORD<br />

SMF INSERT RECORD IS WRITTEN TO THE NEW EXPORT DATA SET<br />

+0000 4F8000 01300000 1E3D0045 FBCD0107 075FE2C3 F6F44040 4040C9D5 00000028 000A0001 *.............¬SC64 IN........*<br />

+0020 4F8020 00000032 009E0001 40F1C3C1 E3D4C7D4 E340D4C8 D3D9C5E2 F1C90045 FB950107 *........ 1CATMGMT MHLRES1I...n..*<br />

+0040 4F8040 075FD4C8 D3D9C5E2 F14040E4 C3C1E34B C6D3C5E3 C3C8C5D9 40404040 40404040 *.¬MHLRES1 UCAT.FLETCHER *<br />

+0060 4F8060 40404040 40404040 40404040 40404040 40404040 404040C1 D4C8D3C3 C1E3F94B * AMHLCAT9.*<br />

+0080 4F8080 C2C3C1E3 4BE3C5E2 E3F0F240 40404040 40404040 40404040 40404040 40404040 *BCAT.TEST02 *<br />

+00A0 4F80A0 40404040 40404040 40404040 40404040 40404040 40404040 40404040 40404040 * *<br />

+00C0 4F80C0 40404040 40404040 40404040 00644040 00600034 C1000001 2DD4C8D3 C3C1E3F9 * .. .-..A....MHLCAT9*<br />

+00E0 4F80E0 4BC2C3C1 E34BE3C5 E2E3F0F2 40404040 40404040 40404040 40404040 40404040 *.BCAT.TEST02 *<br />

+0100 4F8100 40404040 40000014 01FFFFFF FFFFFFFF FF080707 5F00000F 01000016 0400E2C2 * ...............¬.........SB*<br />

+0120 4F8120 D6E7C1F7 3010200F 08000000 00000000 *OXA7............ *<br />

CRU011I EXPORT RECORD WAS SUPERSEDED AND WAS THE OLDEST RECORD FOR<br />

(A) MHLCAT9.BCAT.TEST02 /00<br />

RECORD IS BYPASSED, ACTION WAS TAKEN FOR A MORE CURRENT RECORD<br />

.<br />

.<br />

.<br />

Figure 3-80 ICFRU Readiness check - CRURRAP SYSLOG output<br />

There are several instances of these checks. They are not all shown in the example because<br />

they all reflect the same situation.<br />

For the purpose of the ICFRU readiness check, the last step is to compare the second<br />

IDCAMS EXPORT data set with the one constructed by running CRURRSV, DFSORT, and<br />

CRURRAP.<br />

92 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 3-81 we show the job used to do the compare using the standard IEBCOMPR utility.<br />

//MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M<br />

/*JOBPARM L=999,SYSAFF=*<br />

//*****************************************************************<br />

//* THIS JCL EXECUTES IEBCOMPR TO COMPARE THE NEW EXPORT DATA SET<br />

//* PRODUCED BY CRURRAP WITH THE SECOND EXPORT DATA SET CREATED<br />

//* AS PART OF THE ICFRU READINESS CHECK<br />

//*<br />

//* THIS COMPARISON IS ONLY FOR TESTING THE CATALOG UPDATE PROCESS<br />

//* SINCE THE SECOND EXPORT DATA SET WILL NOT EXIST IN A REAL<br />

//* RECOVERY SITUATION<br />

//*<br />

//COMP EXEC PGM=IEBCOMPR<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.BCAT.CATALOG.BACKUP.G0006V00<br />

//SYSUT2 DD DISP=SHR,DSN=MHLRES1.BCAT.NEW.CATALOG.EXPORT.FLETCHER<br />

//SYSIN DD DUMMY<br />

Figure 3-81 ICFRU Readiness check - IEBCOMPR compare job<br />

Chapter 3. <strong>DFSMS</strong>dfp <strong>V1R8</strong> enhancements 93


In Figure 3-82 we show the full output from the IEBCOMPR job because the utility does not<br />

document the data sets in its output, so it is necessary to show the JES2 output showing the<br />

SYSUT1 and SYSUT2 DDNAMEs with data sets.<br />

J E S 2 J O B L O G -- S Y S T E M S C 6 4 -- N O D E W T S C P L X 2<br />

20.11.18 JOB22060 ---- FRIDAY, 16 MAR 2007 ----<br />

20.11.18 JOB22060 IRR010I USERID MHLRES1 IS ASSIGNED TO THIS JOB.<br />

20.11.18 JOB22060 ICH70001I MHLRES1 LAST ACCESS AT 20:10:32 ON FRIDAY, MARCH 16, 2007<br />

20.11.18 JOB22060 $HASP373 MHLRES1I STARTED - INIT 1 - CLASS A - SYS SC64<br />

20.11.18 JOB22060 IEF403I MHLRES1I - STARTED - TIME=20.11.18 - ASID=002A - SC64<br />

20.11.18 JOB22060 - --TIMINGS (MINS.)-- ----PAGING COUNTS---<br />

20.11.18 JOB22060 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV PG PAGE SWAP VIO SWAPS STEPNO<br />

20.11.18 JOB22060 -MHLRES1I COMP 00 53 .00 .00 .00 209 0 0 0 0 0 1<br />

20.11.18 JOB22060 IEF404I MHLRES1I - ENDED - TIME=20.11.18 - ASID=002A - SC64<br />

20.11.18 JOB22060 -MHLRES1I ENDED. NAME-MHLRES2 TOTAL CPU TIME= .00 TOTAL ELAPSED TIME= .00<br />

20.11.18 JOB22060 $HASP395 MHLRES1I ENDED<br />

------ JES2 JOB STATISTICS ------<br />

16 MAR 2007 JOB EXECUTION DATE<br />

17 CARDS READ<br />

54 SYSOUT PRINT RECORDS<br />

0 SYSOUT PUNCH RECORDS<br />

3 SYSOUT SPOOL KBYTES<br />

0.00 MINUTES EXECUTION TIME<br />

1 //MHLRES1I JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T, JOB22060<br />

// NOTIFY=&SYSUID,TIME=1440,REGION=6M 00020000<br />

/*JOBPARM L=999,SYSAFF=* 00030000<br />

//*****************************************************************<br />

//* THIS JCL EXECUTES IEBCOMPR TO COMPARE THE NEW EXPORT DATA SET<br />

//* PRODUCED BY CRURRAP WITH THE SECOND EXPORT DATA SET CREATED<br />

//* AS PART OF THE ICFRU READINESS CHECK<br />

//*<br />

//* THIS COMPARISON IS ONLY FOR TESTING THE CATALOG UPDATE PROCESS<br />

//* SINCE THE SECOND EXPORT DATA SET WILL NOT EXIST IN A REAL<br />

//* RECOVERY SITUATION<br />

//*<br />

IEFC653I SUBSTITUTION JCL - (999,POK),'MHLRES2',CLASS=A,MSGCLASS=T,NOTIFY=MHLRES1,TIME=1440,REGION=6M<br />

2 //COMP EXEC PGM=IEBCOMPR<br />

3 //SYSPRINT DD SYSOUT=*<br />

4 //SYSUT1 DD DISP=SHR,DSN=MHLRES1.BCAT.CATALOG.BACKUP.G0006V00<br />

5 //SYSUT2 DD DISP=SHR,DSN=MHLRES1.BCAT.NEW.CATALOG.EXPORT.FLETCHER<br />

6 //SYSIN DD DUMMY<br />

ICH70001I MHLRES1 LAST ACCESS AT 20:10:32 ON FRIDAY, MARCH 16, 2007<br />

IEF236I ALLOC. FOR MHLRES1I COMP<br />

IEF237I JES2 ALLOCATED TO SYSPRINT<br />

IGD103I SMS ALLOCATED TO DDNAME SYSUT1<br />

IGD103I SMS ALLOCATED TO DDNAME SYSUT2<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

IEF142I MHLRES1I COMP - STEP WAS EXECUTED - COND CODE 0000<br />

IEF285I MHLRES1.MHLRES1I.JOB22060.D0000101.? SYSOUT<br />

IGD104I MHLRES1.BCAT.CATALOG.BACKUP.G0006V00 RETAINED, DDNAME=SYSUT1<br />

IGD104I MHLRES1.BCAT.NEW.CATALOG.EXPORT.FLETCHER RETAINED, DDNAME=SYSUT2<br />

IEF373I STEP/COMP /START 2007075.2011<br />

IEF374I STEP/COMP /STOP 2007075.2011 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC VIRT 376K SYS 320K EXT 4K SYS<br />

IEF375I JOB/MHLRES1I/START 2007075.2011<br />

IEF376I JOB/MHLRES1I/STOP 2007075.2011 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC<br />

COMPARE UTILITY PAGE 0001<br />

END OF JOB-TOTAL NUMBER OF RECORDS COMPARED = 00000032<br />

Figure 3-82 ICFRU Readiness check - IEBCOMPR compare job output<br />

3.10.5 ICFRU implementation final steps<br />

One ICFRU has been validated as a means to reconstruct IDCAMS EXPORT data sets, the<br />

processes necessary to regularly capture IDCAMS EXPORT copies of catalogs and to<br />

capture SMF records need to be set up.<br />

Note: It is important to take into account the necessity to capture the SMF records from all<br />

systems that have access to the catalogs in question, and they must all participate in the<br />

recovery process.<br />

94 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 4. OAM enhancements<br />

4<br />

In this chapter we discuss new and changed functions in OAM. The following topics are<br />

covered:<br />

► Binary large object support<br />

► Immediate backup copy<br />

► Automated selection of RECYCLE volumes<br />

► Global display keyword<br />

► <strong>Update</strong> from z/<strong>OS</strong> V1.7<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 95


4.1 Binary large object support<br />

4.1.1 Implementing<br />

DB2 UDB for <strong>OS</strong>/390 Version 6 introduced the support for large objects (LOBs). They can<br />

contain text documents, images, or movies, and can be stored directly in the DBMS with sizes<br />

up to 2 gigabytes per object and 65,536 TB for a single LOB column in a 4,096 partition table.<br />

The introduction of these new data types has implied some changes in the administration<br />

processes and programming techniques. The <strong>IBM</strong> Redbook LOBs with DB2 for z/<strong>OS</strong>:<br />

Stronger and Faster, SG24-7270, describes the usage of LOBs with DB2 for z/<strong>OS</strong>. In z/<strong>OS</strong><br />

<strong>V1R8</strong>, OAM has been enhanced for use with DB2’s LOB support.<br />

If LOB support is not enabled, OAM stores objects larger than 32 K in multiple rows in the<br />

32 K DB2 table. A 256 MB object for example would take approximately 8,000 rows to store.<br />

When LOB support is enabled, objects up to 256 MB in size can be stored in a single row.<br />

This has the effect of improving performance and reducing the frequency of lock escalations<br />

and time outs.<br />

These are the steps we used in order to implement the LOB function:<br />

1. Ensure that the values for LOBVALA and LOBVALS in DB2’s DSNZPARM are sufficient<br />

for supporting large objects. They must allow for objects greater than 256 M in size in<br />

order to use OAM’s new function. See the <strong>IBM</strong> <strong>Redbooks</strong> publication LOBs with DB2 for<br />

z/<strong>OS</strong>: Stronger and Faster, SG24-7270, for more information about preparing DB2 for<br />

LOBs.<br />

2. Verify that the M<strong>OS</strong>=xxx value in your IEFSSNxx PARMLIB member is sufficient. The<br />

default is 50 M, and future attempts to use <strong>OS</strong>REQ to store objects larger than 50 M fail if<br />

this value is not specified. Figure 4-1 shows an example of an IEFSSNxx member with<br />

M<strong>OS</strong>=xxx customized to support objects up to 256 M in size.<br />

EDIT SYS1.PARMLIB(IEFSSNR7) - 01.76<br />

Command ===><br />

000213 SUBSYS SUBNAME(OAM1)<br />

000214 INITRTN(CBRINIT)<br />

000215 INITPARM('MSG=EM,M<strong>OS</strong>=256')<br />

Figure 4-1 Setting the M<strong>OS</strong>=xxx value in IEFSSNxx<br />

96 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


3. Add the LOB keyword in your IEFSSNxx PARMLIB member. The allowed values are A, P,<br />

and N. LOB=N is the default. Specifying A puts objects for all storage groups into a LOB<br />

storage structure, specifying P places objects for a partial list of storage groups into a LOB<br />

storage structure, and specifying N does not put any objects into a LOB storage structure.<br />

Figure 4-2 is an excerpt from the <strong>DFSMS</strong> OAM Planning, Installation, and Storage<br />

Administration Guide for Object Support, SC26-0426, publication explaining each value in<br />

detail.<br />

LOB=x<br />

Specifies whether or not OAM exploits DB2 LOB support for large<br />

objects that exceed 32 KB (32640 bytes). LOB has the following<br />

options:<br />

LOB=A specifies that, for all storage groups, objects that<br />

exceed 32 KB are to be stored in a LOB storage structure<br />

when stored to DB2. LOB=A indicates to OAM that the<br />

installation has created LOB storage structures and<br />

associated V_<strong>OS</strong>M_LOB_BASE_TBL views for ALL object storage<br />

groups defined in the ACDS. This results in optimal<br />

performance when you want to store large objects(greater<br />

than 32 KB) to DB2, because OAM does not query DB2 to see if<br />

the LOB base table view exists. If the LOB base table view<br />

does not exist, the large object store fails.<br />

LOB=P indicates to OAM that the installation has created LOB<br />

storage structures and associated V_<strong>OS</strong>M_LOB_BASE_TBL views<br />

for a PARTIAL list of object storage groups defined in the<br />

ACDS. This requires OAM to query DB2 to see if the LOB base<br />

table view exists for a given object storage group for each<br />

large object stored. If the LOB base table view does exist<br />

for a given object storage group, large objects are stored<br />

in the associated LOB storage structure. If the LOB base<br />

table view does not exist, large objects are stored in the<br />

32 KB data table.<br />

LOB=N specifies that objects that exceed 32 KB are to be<br />

stored in a 32 KB data table when stored to DB2. This is the<br />

default option.<br />

Figure 4-2 Definition of the LOB parameter in PARMLIB<br />

Figure 4-3 shows an example of an IEFSSNxx member customized to use LOB support<br />

for a partial list of the object storage groups defined to SMS.<br />

EDIT SYS1.PARMLIB(IEFSSNR7) - 01.76<br />

Command ===><br />

000213 SUBSYS SUBNAME(OAM1)<br />

000214 INITRTN(CBRINIT)<br />

000215 INITPARM('MSG=EM,M<strong>OS</strong>=256,LOB=P')<br />

Figure 4-3 Setting the LOB=x value in IEFSSNxx<br />

4. Modify and run the CBRSMR18 migration job. This job performs the migration from the<br />

z/<strong>OS</strong> V1R7 version of the Object Storage Database to the z/<strong>OS</strong> <strong>V1R8</strong> version that<br />

supports DB2 large objects. Running this job is required even if you do not intend on using<br />

the LOB function. The latest version of CBRSMR18 is found in SAMPLIB, and it has been<br />

updated by recent APARs.<br />

Chapter 4. OAM enhancements 97


4.1.2 Validating<br />

5. Modify and run the CBRILOB sample job found in SAMPLIB. This job defines the VSAM<br />

ESDS that is used by DB2 to create the LOB storage structure and creates the LOB base<br />

table, base table view, auxiliary table, and index that comprise the LOB storage structure<br />

within the object storage table hierarchy. It should be customized to create the LOB<br />

structure for every storage group that you intend to have exploit large objects. If you<br />

specify LOB=A in IEFSSNxx, all groups need to have the LOB structure defined using this<br />

job. Figure 4-4 shows some tips for calculating primary and secondary space needs within<br />

this job if you do it manually.<br />

Calculating the primary and secondary space needs for <strong>OS</strong>MLBTS, OTLOBX1, <strong>OS</strong>MLATS<br />

and OTLOBAX1 in a customized CBRILOB job.<br />

Each formula results in number of cylinders.<br />

The result could be calculated as number of tracks if you divide by 49152<br />

instead of 720K.<br />

<strong>OS</strong>MLBTS:<br />

(Number of objects stored in this table * 78 ) / 720K<br />

OTLOBX1:<br />

(Number of objects stored in this table * 50) / 720K<br />

<strong>OS</strong>MLATS:<br />

(Number of objects stored in this table * average object size) / 720K<br />

OTLOBAX1:<br />

(Number of objects stored in this table * 21 ) / 720K<br />

Figure 4-4 Calculating primary and secondary space needs in CBRILOB<br />

6. Modify and run the CBRPBIND sample job found in SAMPLIB. This job performs a DB2<br />

bind for the packages needed to access the OAM storage object group, OAM<br />

administration, and OAM configuration tables. It has been updated by recent APARs and it<br />

now uses VALIDATE(RUN) instead of VALIDATE(BIND). The <strong>DFSMS</strong> Using the New<br />

Functions, SC26-7473, publication contains more information about when you might want<br />

to change this default to VALIDATE(BIND).<br />

7. Verify the state of your OAM/DB2 environment and the functionality of the LOB support,<br />

as discussed in “Validating” on page 98.<br />

After implementing the LOB function, you should verify the state of your OAM/DB2<br />

environment. The <strong>OS</strong>REQ command and SMF analysis are two good methods to accomplish<br />

this task.<br />

<strong>OS</strong>REQ<br />

<strong>OS</strong>REQ is a TSO/E command processing tool that can be used to manipulate objects in your<br />

OAM/DB2 environment. Refer to <strong>DFSMS</strong> OAM Planning, Installation, and Storage<br />

Administration Guide for Object Support, SC26-0426, for more information about this tool.<br />

<strong>OS</strong>REQ requires that the DSNALI module, or DSNCLI module when OAM is running under<br />

CICS, be APF authorized and in the LINKLST concatenation or in the STEPLIBs of any jobs<br />

using <strong>OS</strong>REQ to store and access objects. If you attempt to use <strong>OS</strong>REQ and these<br />

prerequisites are not met, message CBR0401I is issued with a return code 16 and reason<br />

code D8010000. CBRSAMIV is a sample member in SAMPLIB that runs <strong>OS</strong>REQ in a batch<br />

job.<br />

98 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 4-5 is an example of a customized CBRSAMIV job that stores a new 200 million byte<br />

object, lists it, queries it, retrieves it, and deletes it.<br />

//STEP1 EXEC PGM=IKJEFT01,REGION=4096K<br />

//SYSPRINT DD SYSOUT=*<br />

//STEPLIB DD DSN=DB2M8.SDSNLOAD,DISP=SHR<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

<strong>OS</strong>REQ STORE OAMTEST.LOB200A OAMTEST.LOB200A LENGTH(200000000)<br />

LISTCAT ENTRIES('OAMTEST.LOB200A') ALL<br />

<strong>OS</strong>REQ QUERY OAMTEST.LOB200A OAMTEST.LOB200A<br />

<strong>OS</strong>REQ RETRIEVE OAMTEST.LOB200A OAMTEST.LOB200A COMPARE VIEW(PRIMARY)<br />

<strong>OS</strong>REQ DELETE OAMTEST.LOB200A OAMTEST.LOB200A<br />

/*<br />

Figure 4-5 Customized JCL for the CBRSAMIV sample job<br />

Chapter 4. OAM enhancements 99


Running the customized CVRSAMIV sample job results in the output seen in Figure 4-6.<br />

IEF375I JOB/CBROAMIV/START 2007057.1654<br />

IEF376I JOB/CBROAMIV/STOP 2007057.1654 CPU 0MIN 01.89SEC SRB 0MIN<br />

00.00S<br />

READY<br />

<strong>OS</strong>REQ STORE OAMTEST.LOB200A OAMTEST.LOB200A LENGTH(200000000)<br />

<strong>OS</strong>REQ STORE successful. Return code = 00000004, reason code = 04020480.<br />

<strong>OS</strong>REQ STORE response time is 6845 milliseconds.<br />

<strong>OS</strong>REQ STORE data rate is 28533 kilobytes/second.<br />

READY<br />

LISTCAT ENTRIES('OAMTEST.LOB200A') ALL<br />

NONVSAM ------- OAMTEST.LOB200A<br />

IN-CAT --- UCAT.VSBOX01<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.057<br />

RELEASE----------------2 EXPIRATION------9999.999<br />

ACCOUNT-INFO-----------------------------------(NULL)<br />

OAMDATA<br />

DIRECTORYTOKEN----GROUP00<br />

SMSDATA<br />

STORAGECLASS ----OBJDASD MANAGEMENTCLASS--OBJDASD<br />

DATACLASS --------(NULL) LBACKUP ---XXXX.XXX.XXXX<br />

ASSOCIATIONS--------(NULL)<br />

ATTRIBUTES<br />

READY<br />

<strong>OS</strong>REQ RETRIEVE OAMTEST.LOB200A OAMTEST.LOB200A COMPARE VIEW(PRIMARY)<br />

<strong>OS</strong>REQ QUERY successful. Return code = 00000000, reason code = 00000000.<br />

<strong>OS</strong>REQ QUERY response time is 12 milliseconds.<br />

<strong>OS</strong>REQ RETRIEVE successful. Return code = 00000000, reason code = 00000000.<br />

<strong>OS</strong>REQ RETRIEVE response time is 1611 milliseconds.<br />

<strong>OS</strong>REQ RETRIEVE data rate is 121236 kilobytes/second.<br />

Data comparison for object OAMTEST.LOB200A OAMTEST.LOB200A successful.<br />

READY<br />

<strong>OS</strong>REQ DELETE OAMTEST.LOB200A OAMTEST.LOB200A<br />

<strong>OS</strong>REQ DELETE successful. Return code = 00000000, reason code = 00000000.<br />

<strong>OS</strong>REQ DELETE response time is 13 milliseconds.<br />

READY<br />

END<br />

Figure 4-6 Output from running the CBRSAMIV sample job<br />

The return and reason code from the STORE operation above indicates that in this case the<br />

catalog entry was created for this collection and that the storage class specified for the<br />

collection was overridden. The <strong>DFSMS</strong>dfp Diagnosis, GY27-7618, publication is very useful<br />

in determining what the <strong>OS</strong>REQ return codes mean.<br />

SMF<br />

SMF data should be analyzed in order to validate that the new LOB support and associated<br />

performance improvements are being used when running the CBRSAMIV sample job.<br />

OAM writes SMF Record type 85 subtype 2/3/6 to document the <strong>OS</strong>REQ macros use of the<br />

LOB support.<br />

100 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


We have written a simple program called SMF85TA to scan the SMF records and summarize<br />

activity. The program itself and how to construct it is documented in “SMF record type 85<br />

subtype 1-7 data display program” on page 513<br />

In Figure 4-7 we show the JCL to extract the SMF records and run the program.<br />

If you do not want output from all the types that the program can process, change the<br />

SMFselection statement to only include those subtypes that you do want. For example,<br />

change OUTDD(OUTDD,TYPE(85(1,2,3,4,5,6,7))) to OUTDD(OUTDD,TYPE(85(2,3,4,5,6)))<br />

to only exclude subtypes 1 and 7.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT85I program. The JCL could be changed to make a permanent<br />

extract of the SMF data, or to read an already created SMF data extract.<br />

//MHLRES1O JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//SMFEXTR EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=5096,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(85(1,2,3,4,5,6,7)))<br />

/*<br />

// EXEC PGM=SMF85TA<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF85TA.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 4-7 SMF85TA program execution JCL<br />

In Figure 4-8 on page 102 and Figure 4-9 on page 103 we show an example of output from<br />

the execution of program SMF85TA with all records selected in the SMFEXTR step. At the<br />

bottom in bold, you can see an <strong>OS</strong>REQ DELETE with a value of 81000000. Looking at the<br />

CBRSMF member of MACLIB, you can see that the 8 indicates “PRIMARY COPY OF<br />

OBJECT DELETED FROM DASD” and the 1 indicates “PRIMARY COPY OF THE OBJECT<br />

WAS DELETED FROM A LOB STORAGE STRUCTURE”.<br />

Looking further up in the output you can see an <strong>OS</strong>REQ RETRIEVE with a value of<br />

80040000. If we look at CBRSMF again, we can see that the 8 indicates “PRIMARY COPY<br />

OF OBJECT RETRIEVED FROM DASD” and the 4 indicates “PRIMARY COPY OF THE<br />

OBJECT WAS RETRIEVED FROM A LOB STORAGE STRUCTURE”. This same method is<br />

also used to translate values for output from <strong>OS</strong>REQ STORE. Another important thing about<br />

STORE is that ST2FLGS8 equals X'80' when an immediate backup copy is scheduled, as<br />

seen in the CBRSMF data pasted in Figure 4-12 on page 106. The SMF Type 85 Subtype 39<br />

record is preferred, however, for analyzing Immediate Backup Copy results, as seen in “SMF”<br />

on page 112.<br />

Chapter 4. OAM enhancements 101


SMF TYPE 85 SUBTYPE 1-7 RECORDS<br />

SMFDTE/TME: 2007061 14:14:01.013<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:01.020<br />

STYPE: 2 <strong>OS</strong>REQ STORE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000004 07241088 80C00000<br />

SMFDTE/TME: 2007061 14:14:01.021<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:02.022<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:02.023<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:02.026<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:04.031<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:04.032<br />

STYPE: 5 <strong>OS</strong>REQ CHANGE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 20000000<br />

SMFDTE/TME: 2007061 14:14:04.033<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:05.034<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:05.035<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:05.038<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

Figure 4-8 SMF85TA output - all subtypes part (1 of 2)<br />

102 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SMFDTE/TME: 2007061 14:14:06.039<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:06.040<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:06.041<br />

STYPE: 3 <strong>OS</strong>REQ RETRIEVE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 80040000<br />

SMFDTE/TME: 2007061 14:14:06.042<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:07.043<br />

STYPE: 1 <strong>OS</strong>REQ ACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:07.044<br />

STYPE: 6 <strong>OS</strong>REQ DELETE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 81000000<br />

SMFDTE/TME: 2007061 14:14:07.045<br />

STYPE: 7 <strong>OS</strong>REQ UNACCESS<br />

COLN/OBJN:<br />

SGN/SCN/MCN/LEN/TTOK/TOK: 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

Figure 4-9 SMF85TA output - all subtypes part (2 of 2)<br />

Chapter 4. OAM enhancements 103


In Figure 4-10 we show example of output from the execution of program SMF85TA with<br />

records 1 and 7 not selected in the SMFEXTR step. Using this method to leave out the<br />

<strong>OS</strong>REQ ACCESS and UNACCESS data serves to reduce the amount of data that appears in<br />

your output, thereby simplifying things.<br />

SMF TYPE 85 SUBTYPE 1-7 RECORDS<br />

SMFDTE/TME: 2007061 14:14:01.020<br />

STYPE: 2 <strong>OS</strong>REQ STORE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000004 07241088 80C00000<br />

SMFDTE/TME: 2007061 14:14:02.023<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:04.032<br />

STYPE: 5 <strong>OS</strong>REQ CHANGE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000000000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 20000000<br />

SMFDTE/TME: 2007061 14:14:05.035<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:06.040<br />

STYPE: 4 <strong>OS</strong>REQ QUERY<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 OBJDASD OBJDASD 00000000001 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 00000000<br />

SMFDTE/TME: 2007061 14:14:06.041<br />

STYPE: 3 <strong>OS</strong>REQ RETRIEVE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 80040000<br />

SMFDTE/TME: 2007061 14:14:07.044<br />

STYPE: 6 <strong>OS</strong>REQ DELETE<br />

COLN/OBJN: OAMTEST.MAR020A OAMTEST.OBJ0020A<br />

SGN/SCN/MCN/LEN/TTOK/TOK: GROUP00 00000500000 00000000000000000000000000000000 D6E2D4C97F667A08<br />

VSN/MT/RC/RS/FLGS: 00000000 00000000 81000000<br />

Figure 4-10 SMF85TA output - excluding subtypes 1 and 7<br />

104 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 4-11 to Figure 4-15 on page 109 we show the SMF records that relate to this output.<br />

The Flags field, as shown in the output, reflects the flag bits as mapped by the flag fields in<br />

the SMF records corresponding to the particular subtype.<br />

SMF record type 85 subtype 1 is used to map subtype records 1, 2, 3, 4, 5, 6, and 7.<br />

Note: You should not use the contents of the CBRSMF macro as presented here. When<br />

you assemble the program, or wish to refer to the macro, it will be found in SYS1.MACLIB.<br />

ST1 DSECT SUBTYPES 1 - 7<br />

ST1COLN DS CL44' ' COLLECTION NAME<br />

ST1OBJN DS CL44' ' OBJECT NAME<br />

ST1SGN DS CL8' ' STORAGE GROUP NAME<br />

ST1SCN DS CL8' ' STORAGE CLASS NAME<br />

ST1MCN DS CL8' ' MANAGEMENT CLASS NAME<br />

ST1OFF DS BL4'0' OFFSET FOR PARTIAL OBJECT<br />

* RETRIEVE (SUBTYPE 3), ZERO FOR<br />

* ALL OTHERS.<br />

ST1LEN DS BL4'0' LENGTH,<br />

* SUBTYPE 1 - UNUSED<br />

* SUBTYPE 2 - LENGTH OF OBJECT STORED<br />

* SUBTYPE 3 - NUMBER OF BYTES RETRIEVED<br />

* SUBTYPE 4 - NUMBER OF QEL ELEMENTS<br />

* RETURNED.<br />

* SUBTYPE 5 - UNUSED<br />

* SUBTYPE 6 - LENGTH OF OBJECT DELETED<br />

* SUBTYPE 7 - UNUSED<br />

ST1TTOK DS CL16' ' <strong>OS</strong>REQ TRACKING TOKEN, SUPPLIED<br />

* WITH TTOKEN KEYWORD ON <strong>OS</strong>REQ<br />

* MACRO<br />

ST1TOK DS CL8' ' <strong>OS</strong>REQ ACCESS TOKEN<br />

ST1VSN DS CL6' ' VOLUME SERIAL NUMBER<br />

ST1VMT DS CL2' ' VOLUME MEDIA TYPE<br />

ST1RC DS BL4'0' <strong>OS</strong>REQ RETURN CODE, IN REGISTER 15<br />

* FOLLOWING <strong>OS</strong>REQ MACRO<br />

ST1RS DS BL4'0' <strong>OS</strong>REQ REASON CODE, IN REGISTER 15<br />

* FOLLOWING <strong>OS</strong>REQ MACRO<br />

ST1FLGS DS BL4'0' PROCESSING FLAGS. MEANING<br />

* DEPENDENT ON RECORD SUBTYPE.<br />

Figure 4-11 SMF record type 85 subtype 1 significant fields (extract from CBRSMF macro) (1 of 5)<br />

Chapter 4. OAM enhancements 105


***********************************************************************<br />

* *<br />

* SUBTYPE 2 - <strong>OS</strong>REQ STORE FLAGS *<br />

* *<br />

***********************************************************************<br />

ST2FLGS0 EQU X'80' OBJECT STORE TO DASD<br />

ST2FLGS1 EQU X'40' OBJECT STORE TO OPTICAL<br />

ST2FLGS2 EQU X'20' OBJECT STORE TO TAPE<br />

ST2FLGS3 EQU X'10' UNUSED<br />

ST2FLGS4 EQU X'08' UNUSED<br />

ST2FLGS5 EQU X'04' WHEN ON, THE <strong>OS</strong>REQ STORE<br />

* REQUEST RESULTED IN THE MOUNTING<br />

* OF A SHELF-RESIDENT REMOVABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL)<br />

* BY A HUMAN OPERATOR. ONLY VALID<br />

* IF BIT 1 OR 2 IS ON.<br />

ST2FLGS6 EQU X'02' WHEN ON, THE <strong>OS</strong>REQ STORE<br />

* REQUEST RESULTED IN THE MOUNTING<br />

* OF A LIBRARY-RESIDENT REMOVABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL)<br />

* BY A HUMAN OPERATOR. ONLY VALID<br />

* IF BIT 1 OR 2 IS ON.<br />

ST2FLGS7 EQU X'01' WHEN ON, THE <strong>OS</strong>REQ STORE<br />

* REQUEST WAS SATISIFIED USING<br />

* AN ALREADY MOUNTED REMOVEABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL).<br />

* ONLY VALID<br />

* IF BIT 1 OR 2 IS ON.<br />

ST2FLGS8 EQU X'80' WHEN ON, AN IMMEDIATE BACKUP COPY<br />

* WAS SCHEDULED FOR THIS OBJECT. @L5A<br />

ST2FLGS9 EQU X'40' WHEN ON, THE OBJECT IS STORED<br />

* TO LOB STORAGE STRUCTURE @L5A<br />

Figure 4-12 SMF record type 85 subtype 1 significant fields (extract from CBRSMF macro) (2 of 5)<br />

106 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


***********************************************************************<br />

* *<br />

* SUBTYPE 3 - <strong>OS</strong>REQ RETRIEVE FLAGS *<br />

* *<br />

***********************************************************************<br />

ST3FLGS0 EQU X'80' WHEN ON, PRIMARY COPY OF OBJECT<br />

* RETRIEVED FROM DASD.<br />

ST3FLGS1 EQU X'40' WHEN ON, PRIMARY COPY OF OBJECT<br />

* RETRIEVED FROM OPTICAL.<br />

ST3FLGS2 EQU X'20' WHEN ON, PRIMARY COPY OF OBJECT<br />

* RETRIEVED FROM TAPE.<br />

ST3FLGS3 EQU X'10' WHEN ON, EITHER THE FIRST OR THE<br />

* SECOND BACKUP COPY OF THE OBJECT WAS<br />

* RETRIEVED FROM OPTICAL AS RESULT OF<br />

* VIEW=BACKUP OR VIEW=BACKUP2 BEING<br />

* SPECIFIED ON THE <strong>OS</strong>REQ MACRO.<br />

* REFER TO BIT 10 TO INDICATE WHICH<br />

* BACKUP COPY WAS RETRIEVED. @L2C<br />

ST3FLGS4 EQU X'08' WHEN ON, EITHER THE FIRST OR THE<br />

* SECOND BACKUP COPY OF THE OBJECT WAS<br />

* RETRIEVED FROM TAPE AS RESULT OF<br />

* VIEW=BACKUP OR VIEW=BACKUP2 BEING<br />

* SPECIFIED ON THE <strong>OS</strong>REQ MACRO.<br />

* REFER TO BIT 10 TO INDICATE WHICH<br />

* BACKUP COPY WAS RETRIEVED. @P1C<br />

ST3FLGS5 EQU X'04' WHEN ON, EITHER THE FIRST OR THE<br />

* SECOND BACKUP COPY OF THE OBJECT WAS<br />

* RETRIEVED FROM OPTICAL AS A RESULT<br />

* OF THE PRIMARY COPY OF THE OBJECT<br />

* RESIDING ON AN UNREADABLE OPTICAL<br />

* DISK VOLUME AND THE AUTOMATIC ACCESS<br />

* TO BACKUP WAS ACTIVE.<br />

* REFER TO BIT 10 TO INDICATE WHICH<br />

* BACKUP COPY WAS RETRIEVED. @P1C<br />

ST3FLGS6 EQU X'02' WHEN ON, EITHER THE FIRST OR THE<br />

* SECOND BACKUP COPY OF THE OBJECT WAS<br />

* RETRIEVED FROM TAPE AS A RESULT<br />

* OF THE PRIMARY COPY OF THE OBJECT<br />

* RESIDING ON AN UNREADABLE OPTICAL<br />

* DISK VOLUME AND THE AUTOMATIC ACCESS<br />

* TO BACKUP WAS ACTIVE.<br />

* REFER TO BIT 10 TO INDICATE WHICH<br />

* BACKUP COPY WAS RETRIEVED. @P1C<br />

ST3FLGS7 EQU X'01' WHEN ON, THE <strong>OS</strong>REQ RETRIEVE<br />

* REQUEST RESULTED IN THE MOUNTING<br />

* OF A SHELF-RESIDENT REMOVABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL)<br />

* BY A HUMAN OPERATOR. ONLY VALID<br />

* IF BIT 1, 2, 3, 5 OR 6 IS ON.<br />

Figure 4-13 SMF record type 85 subtype 1 significant fields (extract from CBRSMF macro) (3 of 5)<br />

Chapter 4. OAM enhancements 107


ST3FLGS8 EQU X'80' WHEN ON, THE <strong>OS</strong>REQ RETRIEVE<br />

* REQUEST RESULTED IN THE MOUNTING<br />

* OF A LIBRARY-RESIDENT REMOVABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL)<br />

* BY A HUMAN OPERATOR. ONLY VALID<br />

* IF BIT 1, 2, 3, 5 OR 6 IS ON.<br />

ST3FLGS9 EQU X'40' WHEN ON, THE <strong>OS</strong>REQ RETRIEVE<br />

* REQUEST WAS SATISIFIED USING<br />

* AN ALREADY MOUNTED REMOVEABLE<br />

* MEDIA VOLUME (TAPE OR OPTICAL).<br />

* ONLY VALID<br />

* IF BIT 1, 2, 3, 5 OR 6 IS ON.<br />

ST3FLGS10 EQU X'20' WHEN ON, THE SECOND BACKUP COPY OF<br />

* THE OBJECT WAS RETRIEVED @L4C<br />

ST3FLGS11 EQU X'10' WHEN ON, A RECALL WAS SCHEDULED<br />

* FOR THIS OBJECT @L4A<br />

ST3FLGS12 EQU X'08' WHEN ON, A RECALL WAS EXPLICITYLY<br />

* SPECIFIED ON THE <strong>OS</strong>REQ RETRIEVE<br />

* REQUEST @L4A<br />

ST3FLGS13 EQU X'04' WHEN ON, THE PRIMARY COPY OF<br />

* THE OBJECT WAS RETRIEVED FROM<br />

* A LOB STORAGE STRUCTURE @L5A<br />

*<br />

***********************************************************************<br />

* *<br />

* SUBTYPE 4 - <strong>OS</strong>REQ QUERY FLAGS *<br />

* *<br />

***********************************************************************<br />

***********************************************************************<br />

* *<br />

* SUBTYPE 5 - <strong>OS</strong>REQ CHANGE FLAGS *<br />

* *<br />

***********************************************************************<br />

ST5FLG0 EQU X'80' WHEN ON, MANAGEMENT CLASS<br />

* SPECIFIED ON <strong>OS</strong>REQ CHANGE.<br />

ST5FLG1 EQU X'40' WHEN ON, STORAGE CLASS<br />

* SPECIFIED ON <strong>OS</strong>REQ CHANGE.<br />

ST5FLG2 EQU X'20' WHEN ON, RETENTION PERIOD<br />

* SPECIFIED ON <strong>OS</strong>REQ CHANGE.<br />

Figure 4-14 SMF record type 85 subtype 1 significant fields (extract from CBRSMF macro) (4 of 5)<br />

108 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


***********************************************************************<br />

* *<br />

* SUBTYPE 6 - <strong>OS</strong>REQ DELETE FLAGS *<br />

* *<br />

***********************************************************************<br />

ST6FLG0 EQU X'80' WHEN ON, PRIMARY COPY OF OBJECT<br />

* DELETED FROM DASD.<br />

ST6FLG1 EQU X'40' WHEN ON, PRIMARY COPY OF OBJECT<br />

* DELETED FROM OPTICAL.<br />

ST6FLG2 EQU X'20' WHEN ON, PRIMARY COPY OF OBJECT<br />

* DELETED FROM TAPE.<br />

ST6FLG3 EQU X'10' WHEN ON, BACKUP COPY OF OBJECT<br />

* DELETED FROM OPTICAL.<br />

ST6FLG4 EQU X'08' WHEN ON, BACKUP COPY OF OBJECT<br />

* DELETED FROM TAPE.<br />

ST6FLG5 EQU X'04' WHEN ON, 2ND BACKUP COPY OF OBJECT<br />

* DELETED FROM OPTICAL. @L2A<br />

ST6FLG6 EQU X'02' WHEN ON, 2ND BACKUP COPY OF OBJECT<br />

* DELETED FROM TAPE. @L2A<br />

ST6FLG7 EQU X'01' WHEN ON, THE PRIMARY OCPY OF<br />

* THE OBJECT WAS DELETED FROM<br />

* A LOB STORAGE STRUCTURE @L5A<br />

***********************************************************************<br />

* *<br />

* SUBTYPE 7 - <strong>OS</strong>REQ UNACCESS FLAGS *<br />

* *<br />

***********************************************************************<br />

Figure 4-15 SMF record type 85 subtype 1 significant fields (extract from CBRSMF macro) (5 of 5)<br />

Migration and coexistence<br />

Migration considerations include running the CBRILOB, CBRSMR18, and CBRPBIND jobs<br />

as described in 4.1.1, “Implementing” on page 96. Running CBRSMR18 is required even if<br />

you do not intend to exploit large object support. Pre-<strong>V1R8</strong> systems in the same OAMplex as<br />

a <strong>V1R8</strong> system must have the fix for APAR OA12683 applied, regardless of whether the<br />

<strong>V1R8</strong> system is exploiting large object support. DB2 Version 6.1 or later is required before<br />

OAM can use DB2’s LOB support.<br />

Maintenance<br />

The fix for APAR OA16562 must be applied prior to running the CBRILOB and CBRSMR18<br />

jobs associated with LOB implementation. This APAR updates those sample jobs.<br />

4.2 Immediate backup copy<br />

You now have the ability to immediately back up your objects when they first get stored. Prior<br />

to this support, objects would not get backed up until the object storage management cycle<br />

(<strong>OS</strong>MC) was run, which would often times be several hours later.<br />

Chapter 4. OAM enhancements 109


4.2.1 Implementing<br />

4.2.2 Validating<br />

Two changes must be made in the management class definition for the objects that you want<br />

to exploit this function. The BACKUP FREQUENCY field must be set to 0 and the AUTO<br />

BACKUP field must be set to Y, as seen in Figure 4-16. When these two fields are updated,<br />

an immediate backup copy will automatically be used.<br />

MANAGEMENT CLASS ALTER Page 3 of 5<br />

Command ===><br />

SCDS Name . . . . . . : SYS1.SMS.SCDS<br />

Management Class Name : OBJDASD<br />

To ALTER Management Class, Specify:<br />

Backup Attributes<br />

Backup Frequency . . . . . . . . 0 (0 to 9999 or blank)<br />

Number of Backup Vers . . . . . . 1 (1 to 100 or blank)<br />

(Data Set Exists)<br />

Number of Backup Vers . . . . . . 1 (0 to 100 or blank)<br />

(Data Set Deleted)<br />

Retain days only Backup Ver . . . 60 (1 to 9999, NOLIMIT or blank)<br />

(Data Set Deleted)<br />

Retain days extra Backup Vers . . 30 (1 to 9999, NOLIMIT or blank)<br />

Admin or User command Backup . . BOTH (BOTH, ADMIN or NONE)<br />

Auto Backup . . . . . . . . . . . Y (Y or N)<br />

Backup Copy Technique . . . . . . P (P=Conc Preferred, R=Conc<br />

Required or S=Standard)<br />

Use ENTER to Perform Verification; Use UP/DOWN Command to View other Panels;<br />

Figure 4-16 Altering an existing management class in ISMF for immediate backup<br />

After you have implemented immediate backup copy, there are several methods that you can<br />

use to validate its function.<br />

RETCODE2<br />

As described in the binary large object support section, <strong>OS</strong>REQ can be used to store objects.<br />

A new RETCODE2 parameter can be coded when using the <strong>OS</strong>REQ store function, and<br />

indicates whether the store request successfully scheduled an immediate backup copy for the<br />

object. The RETCODE2 output is only valid when the STORE is successful, in which case<br />

one of the following return codes is provided:<br />

► 0: Immediate backup copy request successfully scheduled.<br />

► 4: Immediate backup copy request not required.<br />

► 8: An attempt to schedule an immediate backup for this object was not successful<br />

because <strong>OS</strong>MC is not up and running.<br />

► 14: An attempt to schedule an immediate backup for this object was not successful due to<br />

an unexpected scheduling error.<br />

110 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 4-17 provides an example JCL showing an <strong>OS</strong>REQ STORE with the RETCODE2<br />

parameter.<br />

//CBROAMIV JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),REGION=0M<br />

/*JOBPARM SYSAFF=SC64<br />

//STEP1 EXEC PGM=IKJEFT01,REGION=4096K<br />

//SYSPRINT DD SYSOUT=*<br />

//STEPLIB DD DSN=DB2M8.SDSNLOAD,DISP=SHR<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

<strong>OS</strong>REQ STORE OAMTEST.LOB200C OAMTEST.LOB200C LENGTH(2000) RETCODE2<br />

Figure 4-17 Example JCL for <strong>OS</strong>REQ STORE with RETCODE2 parameter<br />

JOBLOG output from running this sample JCL can be seen in Figure 4-18. This output<br />

indicates that the immediate backup was scheduled successfully.<br />

IEF375I JOB/CBROAMIV/START 2007057.1950<br />

IEF376I JOB/CBROAMIV/STOP 2007057.1950 CPU 0MIN 00.05SEC SRB 0MIN<br />

00.00<br />

1READY<br />

<strong>OS</strong>REQ STORE OAMTEST.LOB200C OAMTEST.LOB200C LENGTH(2000) RETCODE2<br />

<strong>OS</strong>REQ STORE successful. Return code = 00000004, reason code = 04020480,<br />

retcode2 = 00000000.<br />

<strong>OS</strong>REQ STORE response time is 181 milliseconds.<br />

<strong>OS</strong>REQ STORE data rate is 10 kilobytes/second.<br />

READY<br />

Figure 4-18 Example of an <strong>OS</strong>REQ STORE with successful immediate backup<br />

Chapter 4. OAM enhancements 111


SYSLOG<br />

You can look at SYSLOG immediately after an <strong>OS</strong>REQ STORE is run in order to see if the<br />

immediate backup copy is performed. Figure 4-19 shows an example of the mount seen when<br />

backing up to tape.<br />

$HASP373 CBROAMIV STARTED - INIT 1 - CLASS A - SYS SC64<br />

IEF403I CBROAMIV - STARTED - TIME=17.13.54 - ASID=002A - SC64<br />

+IGD01009I MC ACS GETS CONTROL &ACSENVIR=STORE<br />

+IGD01010I SG ACS GETS CONTROL &ACSENVIR=STORE<br />

IEC501A M 0B91,TST006,SL,COMP,OAM,OAM,OAM.BACKUP.DATA<br />

- --TIMINGS (MINS.)--<br />

----PAGING COUNTS---<br />

-JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV<br />

PG PAGE SWAP VIO SWAPS STEPNO<br />

-CBROAMIV STEP1 00 379 .03 .00 .19 537K<br />

0 0 0 0 0 1<br />

IEF404I CBROAMIV - ENDED - TIME=17.14.06 - ASID=002A - SC64<br />

-CBROAMIV ENDED. NAME- TOTAL CPU TIME= .03<br />

TOTAL ELAPSED TIME= .19<br />

$HASP395 CBROAMIV ENDED<br />

$HASP309 INIT 1 INACTIVE ******** C=ABCDE<br />

IEC205I CBRRT001,OAM,OAM,FILESEQ=1, COMPLETE VOLUME LIST, 241<br />

DSN=OAM.BACKUP.DATA,VOLS=TST006,TOTALBLOCKS=1228<br />

IEF234E K 0B91,TST006,PVT,OAM,OAM<br />

Figure 4-19 SYSLOG indicating OAM is backing up to tape after <strong>OS</strong>REQ STORE<br />

SMF<br />

OAM writes SMF record type 85 subtype 39 to document the use of the immediate backup<br />

facility. It also uses subtype 2 to document when an immediate backup copy has been<br />

scheduled as a result of running the <strong>OS</strong>REQ macro. See the SMF section for large object<br />

support for more information about immediate backup and subtype 2.<br />

We have written a simple program called SMF85TI to scan the SMF records and summarize<br />

activity. The program itself and how to construct it is documented in “SMF record type 85<br />

subtype 39 data display program” on page 490.<br />

112 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 4-40 on page 130 we show the JCL to extract the SMF records and run the<br />

program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT85I program. The JCL could be changed to make a permanent<br />

extract of the SMF data, or to read of an already created SMF data extract.<br />

//MHLRES1O JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=5096,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(85(39)))<br />

/*<br />

// EXEC PGM=SMF85TO<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF85TI.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 4-20 SMF85TI program execution JCL<br />

Chapter 4. OAM enhancements 113


In Figure 4-21 we show an example of output from the execution of program SMF85TI.<br />

SMF TYPE 85 SUBTYPE 39 RECORDS<br />

COLN/CNID: OAMTEST.LOB200O 00000000035<br />

OBJN/SGN/OLEN: OAMTEST.LOB200O GROUP00 00000002000<br />

VSN/MT/TKN/FLGS: TST008 00000000004 82800000<br />

COLN/CNID: OAMTEST.LOB200P 00000000036<br />

OBJN/SGN/OLEN: OAMTEST.LOB200P GROUP00 00020000000<br />

VSN/MT/TKN/FLGS: TST003 00000000008 82800000<br />

COLN/CNID: OAMTEST.LOB200Q 00000000037<br />

OBJN/SGN/OLEN: OAMTEST.LOB200Q GROUP00 00020000000<br />

VSN/MT/TKN/FLGS: TST003 00000000622 82800000<br />

COLN/CNID: OAMTEST.LOB200R 00000000038<br />

OBJN/SGN/OLEN: OAMTEST.LOB200R GROUP00 00020000000<br />

VSN/MT/TKN/FLGS: TST004 00000000004 82800000<br />

COLN/CNID: OAMTEST.LOB200S 00000000039<br />

OBJN/SGN/OLEN: OAMTEST.LOB200S GROUP00 00020000000<br />

VSN/MT/TKN/FLGS: 01077952576 80000000<br />

Figure 4-21 SMF85TI output<br />

The left-hand side of the report contains abbreviations from the SMF records. Record type 85<br />

subtype 39 contains the fields of interest to verify that the function of OAM immediate backup<br />

is occurring. In the SMF records, as shown in Figure 4-22 on page 115, the fields are prefixed<br />

with ST39. In the report the fields are shown without the ST39, and have been compressed to<br />

have more than one entry per line.<br />

The fourth example shows a successful operation involving object OAMTEST.LOB200R and<br />

tape volume TST004. The Flgs field shows 8280000, which (as per the SMF record extract<br />

below) indicates that the primary copy is stored to DASD and the backup is on tape, and that<br />

the write to tape was successful. The VSN field is also filled in with TST004.<br />

The fifth example shows an unsuccessful operation involving object OAMTEST.LOB200S.<br />

The flgs field shows 8000000, which indicates that the primary copy is on DASD, but there is<br />

no indication of a successful backup.<br />

In Figure 4-22 on page 115 we show the SMF records that relate to this output.<br />

Note: You should not use the contents of the CBRSMF macro as presented here. When<br />

you assemble the program, or wish to refer to the macro, it will be found in SYS1.MACLIB.<br />

114 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ST39 DSECT SUBTYPE 39 @L5A<br />

ST39COLN DS CL44' ' COLLECTION NAME @L5A<br />

ST39CNID DS BL4'0' COLLECTION ID @L5A<br />

ST39OBJN DS CL44' ' OBJECT NAME @L5A<br />

ST39SGN DS CL8' ' STORAGE GROUP NAME @L5A<br />

ST39MCN DS CL8' ' MANAGEMENT CLASS NAME @L5A<br />

ST39OLEN DS BL4'0' OBJECT LENGTH @L5A<br />

ST39SVSN DS CL6' ' SOURCE VOLUME SERIAL NUMBER OF<br />

* OPTICAL VOLUME OR TAPE VOLUME<br />

* FROM WHICH THE PRIMARY OBJECT<br />

* WAS READ.<br />

* ONLY VALID IF THE BIT 1 OR 2<br />

* IS ON IN FIELD ST39FLGS @L5A<br />

ST39SMT DS CL2' ' SOURCE MEDIA TYPE OF THE VOLUME<br />

* FROM WHICH THE PRIMARY OBJECT<br />

* WAS READ.<br />

* ONLY VALID IF THE BIT 1 OR 2<br />

* IS ON IN FIELD ST39FLGS @L5A<br />

ST39TVSN DS CL6' ' TARGET VOLUME SERIAL NUMBER OF<br />

* OPTICAL VOLUME OR TAPE VOLUME<br />

* ON WHICH THE BACKUP COPY OF<br />

* THE OBJECT WAS WRITTEN.<br />

* ONLY VALID IF THE BIT 1 OR 2<br />

* IS ON IN FIELD ST39FLGS @L5A<br />

ST39TMT DS CL2' ' TARGET MEDIA TYPE OF THE VOLUME<br />

* ON WHICH THE BACKUP COPY OF<br />

* THE OBJECT WAS WRITTEN.<br />

* ONLY VALID IF THE BIT 1 OR 2<br />

* IS ON IN FIELD ST39FLGS @L5A<br />

ST39BTKN DS BL4'0' VOLUME LOCATION TOKEN ASSOCIATED<br />

* WITH THE COPY OF THE OBJECT<br />

* ON THE VOLUME SPECIFIED IN THE<br />

* ST39TVSN FIELD. @L5A<br />

ST39FLGS DS BL4'0' PROCESSING FLAGS @L5A<br />

ST39FLG0 EQU X'80' WHEN ON, THE PRIMARY COPY<br />

* IS STORED TO DASD. @L5A<br />

ST39FLG1 EQU X'40' WHEN ON, THE PRIMARY COPY<br />

* IS STORED TO OPTICAL. @L5A<br />

ST39FLG2 EQU X'20' WHEN ON, THE PRIMARY COPY<br />

* IS STORED TO TAPE. @L5A<br />

ST39FLG3 EQU X'10' RESERVED @L5A<br />

ST39FLG4 EQU X'08' RESERVED @L5A<br />

ST39FLG5 EQU X'04' WHEN ON, THE BACKUP COPY<br />

* IS STORED TO OPTICAL. @L5A<br />

ST39FLG6 EQU X'02' WHEN ON, THE BACKUP COPY<br />

* IS STORED TO TAPE. @L5A<br />

ST39FLG7 EQU X'01' RESERVED @L5A<br />

ST39FLG8 EQU X'80' WHEN ON, WRITE TO BACKUP COPY<br />

* WAS SUCCESSFUL. @L5A<br />

Figure 4-22 SMF record type 85 subtype 39 significant fields (extract from CBRSMF macro)<br />

Chapter 4. OAM enhancements 115


Migration and coexistence<br />

Pre-<strong>V1R8</strong> systems in the same OAMplex as a <strong>V1R8</strong> system must have the fix for APAR<br />

OA12683 applied.<br />

Maintenance<br />

The fix for APAR OA18519 must be applied or immediate backup copy could fail if <strong>OS</strong>REQ<br />

STORE is consuming all of the available DB2 threads.<br />

4.3 Automated selection of RECYCLE volumes<br />

4.3.1 Implementing<br />

OAM now provides a method to automatically recycle volumes based on user-defined criteria.<br />

It is intended for use in recycling full tape volumes associated with object or object backup<br />

storage groups. Optical volumes do not use this function and continue to be recycled<br />

individually with the MODIFY,OAM,START,MOVEVOL command.<br />

The MODIFY OAM,START command has been enhanced with a RECYCLE parameter. This<br />

command is used to start the RECYCLE based on criteria specified in the command and in<br />

PARMLIB. As seen in the <strong>DFSMS</strong> OAM Planning, Installation, and Storage Administration<br />

Guide for Object Support, SC26-0426, publication, the syntax of the command is as shown in<br />

Example 4-1.<br />

Example 4-1 Syntax of the MODIFY OAM,START,RECYCLE command<br />

MODIFY OAM,START,RECYCLE,scope{,PV=xxx}[,LIM=yy|,DISPLAY]<br />

Displays a list of candidate volumes that meet user-defined criteria<br />

to the hardcopy log, and in turn, automatically selects recycle<br />

candidate volumes and initiates the MOVEVOL with RECYCLE process on<br />

those candidates until either the user-specified limit is reached or<br />

no more volumes meeting criteria are available.<br />

scope<br />

Indicates one of the following:<br />

PV<br />

116 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Specified name of an object or object backup storage group,<br />

indicates that only tape volumes marked full, that belong to<br />

the specified object or object backup storage group, are<br />

considered candidates for this RECYCLE command.<br />

ALLGRP all full tape volumes that belong to all primary object<br />

storage groups defined in the ACTIVE SCDS are considered candidates<br />

for this RECYCLE command.<br />

ALLBK1 all full tape volumes that belong to all first backup<br />

storage groups defined in the ACTIVE SCDS are considered<br />

candidates for this RECYCLE command.<br />

ALLBK2 all full tape volumes that belong to all second backup<br />

storage groups defined in the ACTIVE SCDS are considered<br />

candidates for this RECYCLE command.


=nnn An optional keyword indicating the valid data threshold to be<br />

used in determining whether a volume is a candidate for RECYCLE.<br />

Full tape volumes that have a percentage of valid data less than<br />

or equal to nnn are candidates for RECYCLE. If PV=nnn is not<br />

specified, the percent valid to be used to determine RECYCLE<br />

candidates is derived from the PERCENTVALID default value as<br />

defined through the SETOAM command in the CBROAMxx PARMLIB member.<br />

Valid values for nnn are 0 to 100.<br />

DISPLAY<br />

An optional parameter that produces a list of volumes that meet<br />

criteria to be recycle candidates. This list is sorted by the<br />

percentage of valid data on each volume and is written to hardcopy<br />

system log through the CBR9875I message. This option does not<br />

initiate Recycle processing, and can be issued at anytime, whether<br />

a RECYCLE command is actively processing or not. The list of<br />

candidate volumes might be large as it shows all volumes that meet<br />

the user-specified criteria for RECYCLE.<br />

If DISPLAY is not specified then LIM=yy must be specified.<br />

LIM<br />

=yy If the DISPLAY parameter is not specified, this keyword is<br />

required to indicate the maximum number of volumes to be selected<br />

for RECYCLE processing. Valid values for yy are 1 to 40.<br />

If LIM=yy is not specified, then DISPLAY must be specified.<br />

New keywords have been added for the SETOAM statement in the CBROAMxx member of<br />

PARMLIB. They are:<br />

► MAXRECYCLETASKS<br />

► SGMAXRECYCLETASKS<br />

► PERCENTVALID<br />

Chapter 4. OAM enhancements 117


Figure 4-23 shows the definitions for these new keywords from the <strong>DFSMS</strong> OAM Planning,<br />

Installation, and Storage Administration Guide for Object Support, SC26-0426, publication.<br />

MAXRECYCLETASKS(nn)<br />

Can be specified at the global level. The nn is the maximum number of<br />

MOVEVOL tasks that can be run concurrently by the RECYCLE function.<br />

Valid values for nn are 0 - 15. The default is 1 if no value is<br />

specified. A value of 0 indicates that no RECYCLE operations can be<br />

run at the storage group or global level.<br />

SGMAXRECYCLETASKS(nn)<br />

An optional parameter that you can specify at the storage group<br />

level. The nn is the maximum number of MOVEVOL tasks that can be<br />

run concurrently by the RECYCLE function for a storage group. The<br />

value for SGMAXRECYCLETASKS cannot exceed the value for<br />

MAXRECYCLETASKS. Valid values for nn are 0 - 15. The default is 1<br />

if no value is specified. A value of 0 indicates that no RECYCLE<br />

operations can be run at the storage group level specified.<br />

Figure 4-23 The new SETOAM statements for CBROAMxx in PARMLIB<br />

118 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

If you only want to recycle volumes from one group, the setting<br />

for all other groups would be 0 to ensure that the group with a<br />

non-zero value receives all the recycling processing.<br />

If you specify a value for a group that is higher than the value<br />

for another group, the system selects more of the volumes to<br />

recycle from the group with the higher value. However, RECYCLE<br />

processing might be working with the original order of volumes<br />

that are sorted by the amount of valid data for each volume, and<br />

might select volumes from other groups to satisfy the limit before<br />

it processes the higher-value group.<br />

PERCENTVALID(nnn)<br />

You can only specify this keyword at the global (all storage groups)<br />

level. nnn represents the global default percentage of valid data<br />

threshold that is used to determine whether a full tape volume is a<br />

candidate for RECYCLE processing. This SETOAM value is used only if<br />

the optional PV= keyword is not specified on the RECYCLE command. The<br />

PERCENTVALID value that is specified on the RECYCLE command takes<br />

precedence over the PERCENTVALID value in the SETOAM statement. Valid<br />

values for nnn are 0 - 100. The default is 0 if no value is<br />

specified.


4.3.2 Validating<br />

An example of an updated CBROAMxx PARMLIB member can be seen in Figure 4-24.<br />

SYS1.PARMLIB(CBROAM00) - 01.44<br />

===><br />

***************************** Top of Data ********<br />

SETOAM TAPEDISPATCHERDELAY(45)<br />

TAPERECYCLEMODE(MVSSCRATCH)<br />

STORAGEGROUP(GROUP00 TAPEUNITNAME(3590-1))<br />

STORAGEGROUP(OBJBKP TAPEUNITNAME(3590-1))<br />

MAXRECYCLETASKS(2)<br />

STORAGEGROUP(GROUP00 SGMAXRECYCLETASKS(2))<br />

PERCENTVALID(10)<br />

SET<strong>OS</strong>MC MAXRECALLTASKS(2)<br />

RECALLALL(15)<br />

CLEAROLDLOC(TAPE)<br />

RECALLTAPE(0)<br />

FIRSTBACKUPGROUP(OBJBKP)<br />

STORAGEGROUP(GROUP00 RECALLOFF(ON)<br />

FIRSTBACKUPGROUP(OBJBKP))<br />

Figure 4-24 Example CBROAMxx PARMLIB member updated for RECYCLE<br />

In this section we discuss methods to validate and use the new function.<br />

START RECYCLE<br />

The DISPLAY option can be used to display RECYCLE candidates without actually<br />

performing the MOVEVOL with RECYCLE function. Figure 4-25 is an example of a<br />

RECYCLE command with the DISPLAY parameter for all first backup storage groups. You can<br />

also see that we are overriding the PERCENTVALID value that we have in PARMLIB.<br />

MODIFY OAM,START,RECYCLE,(ALLBK1),DISPLAY,PV=50<br />

CBR9880I OAM START RECYCLE command starting.<br />

CBR9875I Recycle Candidates: 720<br />

The following volumes are candidates for OAM RECYCLE command<br />

processing using pv=50, lim=N/A, scope=(ALLBK1), maxrecycletasks=2.<br />

VOLSER %VAL SGNAME STAT VOLSER %VAL SGNAME STAT<br />

TST016 16 OBJBKP<br />

CBR9879I OAM Recycle: End of OAM Recycle candidate volumes.<br />

CBR9881I OAM START RECYCLE command ending successfully. Reason is<br />

display specified.<br />

Figure 4-25 Showing RECYCLE candidates with the DISPLAY option<br />

Chapter 4. OAM enhancements 119


Figure 4-26 is an example of an actual RECYCLE taking place. In this case we again override<br />

the PERCENTVALID that we previously specified in PARMLIB because the PERCENTVALID<br />

value of the candidate volume is greater. We also setting LIM=2, although we could have set<br />

LIM=1 because we have only one candidate volume. The LIM= keyword is required when the<br />

DISPLAY parameter is not specified.<br />

MODIFY OAM,START,RECYCLE,(ALLBK1),LIM=2,PV=50<br />

CBR9880I OAM START RECYCLE command starting.<br />

CBR9875I Recycle Candidates: 725<br />

The following volumes are candidates for OAM RECYCLE command<br />

processing using pv=50, lim=2, scope=(ALLBK1), maxrecycletasks=2.<br />

VOLSER %VAL SGNAME STAT VOLSER %VAL SGNAME STAT<br />

TST016 16 OBJBKP<br />

CBR9879I OAM Recycle: End of OAM Recycle candidate volumes.<br />

CBR9800I OAM Move Volume Recycle starting for volumes TST016 and N/A.<br />

CBR9852I Move Volume Utility processing objects in storage group<br />

GROUP00 for volume TST016.<br />

IEC501A M 0B91,TST016,SL,COMP,OAM,OAM,OAM.BACKUP.DATA<br />

IEC205I CBRRT001,OAM,OAM,FILESEQ=1, COMPLETE VOLUME LIST, 730<br />

DSN=OAM.BACKUP.DATA,VOLS=TST017,TOTALBLOCKS=1<br />

IEF234E K 0B90,TST017,PVT,OAM,OAM<br />

IEC501A M 0B90,TST017,SL,COMP,OAM,OAM,OAM.BACKUP.DATA<br />

CBR9858I Move Volume Utility status for volume TST016. Total: 6,<br />

Attempted: 6, Successful: 6, Unsuccessful: 0.<br />

CBR9859I Move Volume Utility ending for volumes TST016 and N/A.<br />

CBR9881I OAM START RECYCLE command ending successfully. Reason is no<br />

more volumes available.<br />

IEC205I CBRRT001,OAM,OAM,FILESEQ=1, COMPLETE VOLUME LIST, 760<br />

DSN=OAM.BACKUP.DATA,VOLS=TST017,TOTALBLOCKS=1233<br />

IEF234E K 0B91,TST016,PVT,OAM,OAM<br />

CBR2164I Tape volume TST016 has had all objects expired or deleted<br />

and has been returned to OAM scratch status.<br />

IEF234E K 0B90,TST017,PVT,OAM,OAM<br />

Figure 4-26 Issuing the RECYCLE for first backup storage group tape volumes<br />

SMF<br />

OAM writes SMF record type 85 subtype 40 to document the use of the RECYCLE facility.<br />

We have written a simple program called SMF85TJ to scan the SMF records and summarize<br />

activity. The program itself and how to construct it is documented in “SMF record type 85<br />

subtype 40 data display program” on page 496.<br />

120 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 4-28 SMF85TJ output<br />

In Figure 4-27 we show the JCL to extract the SMF records and run the program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT85I program. The JCL could be changed to make a permanent<br />

extract of the SMF data, or to read an already created SMF data extract.<br />

//MHLRES1O JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN2<br />

//*DUMPIN DD DISP=SHR,DSN=SMFDATA.ALLRECS.G3196V00<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=5096,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(85(40)))<br />

/*<br />

// EXEC PGM=SMF85TJ<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF85TJ.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 4-27 SMF85TJ program execution JCL<br />

In Figure 4-28 we show an example of output from the execution of program SMF85TI. This<br />

example shows that volumes TST003 and TST004 were successfully processed by the<br />

<strong>OS</strong>MC command migration facility.<br />

SMF TYPE 85 SUBTYPE 40 RECORDS<br />

STRD/ENDD/VOLN/PCTV/LIM: 2007-02-28 2007-02-28 00000000002 00000000010 00000000003<br />

VSN:TST003<br />

VSN:TST004<br />

Chapter 4. OAM enhancements 121


In Figure 4-29 we show the SMF records that relate to this output.<br />

Note: You should not use the contents of the CBRSMF macro as presented here. When<br />

you assemble the program, or wish to refer to the macro, it will be found in SYS1.MACLIB.<br />

ST40 DSECT SUBTYPE 40<br />

ST40STRD DS CL10' ' DATE RECYCLE COMMAND STARTED @L5A<br />

ST40ENDD DS CL10' ' DATE RECYCLE COMMAND ENDED @L5A<br />

ST40VOLN DS BL2'0' NUMBER OF VOLSERS COMPLETED @L5A<br />

ST40PCTV DS BL2'0' PERCENT VALID USED FOR COMMAND @L5A<br />

ST40LIM DS BL2'0' LIMIT USED FOR COMMAND @L5A<br />

DS BL2'0' RESERVED @L5A<br />

ST40END DS 0C END OF BASE SECTION @L5A<br />

***********************************************************************<br />

* SUBTYPE 40 VOLUME ARRAY SECTION *<br />

***********************************************************************<br />

ST40VOLD DSECT ARRAY OF VOLS COMPLETED RECYCLE @L5A<br />

ST40VSN DS 40CL6' ' VOLSER @L5A<br />

Figure 4-29 SMF record type 85 subtype 40 significant fields (extract from CBRSMF macro)<br />

More SMF<br />

OAM also writes SMF record type 85 subtype 32/33/34/35 to document the use of this facility.<br />

For MOVEVOL (subtype 35), bit 0 in ST32FLGS is set to ON to indicate that the MOVEVOL<br />

was invoked automatically under software control as the result of a RECYCLE.<br />

We have written a simple program called SMF85TH to scan the SMF records and summarize<br />

activity. The program itself and how to construct it are documented in “SMF record type 85<br />

subtype 32-35 data display program” on page 502.<br />

In Figure 4-30 we show the JCL to extract the SMF records and run the program.<br />

//MHLRES1O JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//SMFEXTR EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=5096,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(85(32,33,34,35)))<br />

/*<br />

// EXEC PGM=SMF85TH<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF85TH.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 4-30 SMF85TH program execution JCL<br />

122 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 4-31 SMF85TH output<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the sSMFT85I program. The JCL could be changed to make a<br />

permanent extract of the SMF data, or to read of an already created SMF data extract.<br />

If you do not want output from all the types that the program can process, change the SMF<br />

selection statement to only include those subtypes that you do want. For example, change<br />

OUTDD(OUTDD,TYPE(85(32,33,34,35))) to OUTDD(OUTDD,TYPE(85(35))) to only select<br />

subtype 35.<br />

In Figure 4-31 we show an example of output from the execution of program SMF85TH. You<br />

can see that a RECYCLE command was processed for volume TST003 at 11:44 on day<br />

2007059.<br />

SMF TYPE 85 SUBTYPE 32-35 RECORDS<br />

SMFDTE/TME: 2007059 09:01:52.000<br />

STYPE/SGN/VSN0/VSN1/MT: 32 GROUP00 (STORAGE GROUP PROCESSING)<br />

PDWO/PDWK/PDRO/PDRK/PDDO/PDDK: 00000000000 00000000000 00000000004 00000078128 00000000004 00000078128<br />

POWO/POWK/PORO/PORD/PODO/PODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

PTWO/PTWK/PTRO/PTRD/PTDO/PTDK: 00000000004 00000078128 00000000000 00000000000 00000000000 00000000000<br />

BOWO/BOWK/BORO/BORK/BODO/BODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

BTWO/BTWK/BTRO/BTRK/BTDO/BTDK: 00000000001 00000019532 00000000000 00000000000 00000000000 00000000000<br />

B2OWO/B2OWK/B2ORO/B2ORK/B2ODO/B2ODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

B2TWO/B2TWK/B2TRO/B2TRK/B2TDO/B2TDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

DTUP/DTDE/4KIN/4KDE/32KI/32KD/NCE: 00000000017 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

FLGS/NTE/RCLD/RCLK/LOBI/LOBD: 81000000 00000000000 00000000000 00000000000 00000000000 00000000004<br />

SMFDTE/TME: 2007059 10:00:00.047<br />

STYPE/SGN/VSN0/VSN1/MT: 32 OBJBKP (STORAGE GROUP PROCESSING)<br />

PDWO/PDWK/PDRO/PDRK/PDDO/PDDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

POWO/POWK/PORO/PORD/PODO/PODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

PTWO/PTWK/PTRO/PTRD/PTDO/PTDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

BOWO/BOWK/BORO/BORK/BODO/BODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

BTWO/BTWK/BTRO/BTRK/BTDO/BTDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

B2OWO/B2OWK/B2ORO/B2ORK/B2ODO/B2ODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

B2TWO/B2TWK/B2TRO/B2TRK/B2TDO/B2TDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

DTUP/DTDE/4KIN/4KDE/32KI/32KD/NCE: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

FLGS/NTE/RCLD/RCLK/LOBI/LOBD: 80800000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

SMFDTE/TME: 2007059 11:44:00.048<br />

STYPE/SGN/VSN0/VSN1/MT: 35 OBJBKP TST003 N/A 06 (MOVE VOLUME (MOVEVOL) UTILITY)<br />

PDWO/PDWK/PDRO/PDRK/PDDO/PDDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

POWO/POWK/PORO/PORD/PODO/PODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

PTWO/PTWK/PTRO/PTRD/PTDO/PTDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

BOWO/BOWK/BORO/BORK/BODO/BODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

BTWO/BTWK/BTRO/BTRK/BTDO/BTDK: 00000000006 00000039072 00000000006 00000039072 00000000000 00000000000<br />

B2OWO/B2OWK/B2ORO/B2ORK/B2ODO/B2ODK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

B2TWO/B2TWK/B2TRO/B2TRK/B2TDO/B2TDK: 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

DTUP/DTDE/4KIN/4KDE/32KI/32KD/NCE: 00000000006 00000000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

FLGS/NTE/RCLD/RCLK/LOBI/LOBD: 82000000 00000000000 00000000000 00000000000 00000000000 00000000000<br />

In Figure 4-32 on page 124 to Figure 4-36 on page 128 we show the SMF records that relate<br />

to this output.<br />

Chapter 4. OAM enhancements 123


SMF record type 85 subtype 32 is used to map subtype records 32, 33, 34, and 35.<br />

Note: You should not use the contents of the CBRSMF macro as presented here. When<br />

you assemble the program, or wish to refer to the macro, it will be found in SYS1.MACLIB.<br />

ST32 DSECT SUBTYPES 32 - 35<br />

ST32SGN DS CL8' ' STORAGE GROUP NAME<br />

ST32VSN0 DS CL6' ' VOLUME SERIAL NUMBER OF OPTICAL<br />

* VOLUME. ONLY VALID FOR SUBTYPES<br />

* 34 AND 35, CONTAINS BLANKS FOR<br />

* OTHER SUBTYPES.<br />

ST32VSN1 DS CL6' ' VOLUME SERIAL NUMBER OF OPP<strong>OS</strong>ITE<br />

* SIDE OF OPTICAL DISK<br />

* VOLUME. ONLY VALID FOR SUBTYPES<br />

* 34 AND 35, CONTAINS BLANKS FOR<br />

* OTHER SUBTYPES.<br />

ST32OMT DS CL2' ' OPTICAL MEDIA TYPE. ONLY VALID<br />

* FOR SUBTYPES 34 AND 35, CONTAINS<br />

* BLANKS FOR OTHER SUBTYPES.<br />

DS CL2' ' RESERVED<br />

***********************************************************************<br />

* COUNTS OF PRIMARY OBJECTS (AND KILOBYTES) WRITTEN, READ AND<br />

* DELETED FROM DASD.<br />

***********************************************************************<br />

ST32PDWO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* WRITTEN TO DASD.<br />

ST32PDWK DS BL4'0' NUMBER OF KILOBYTES PRIMARY<br />

* OBJECTS WRITTEN TO DASD.<br />

ST32PDRO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* READ FROM DASD.<br />

ST32PDRK DS BL4'0' NUMBER OF KILOBYTES PRIMARY<br />

* OBJECTS READ FROM DASD.<br />

ST32PDDO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* DELETED FROM DASD.<br />

ST32PDDK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS DELETED FROM DASD.<br />

***********************************************************************<br />

* COUNTS OF PRIMARY OBJECTS (AND KILOBYTES) WRITTEN, READ AND<br />

* DELETED FROM OPTICAL.<br />

***********************************************************************<br />

ST32POWO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* WRITTEN TO OPTICAL.<br />

ST32POWK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS WRITTEN TO OPTICAL.<br />

ST32PORO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* READ FROM OPTICAL.<br />

ST32PORK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS READ FROM OPTICAL.<br />

ST32PODO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* DELETED FROM OPTICAL.<br />

ST32PODK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS DELETED FROM OPTICAL.<br />

Figure 4-32 SMF record type 85 subtype 32 significant fields (extract from CBRSMF macro) (1 of 5)<br />

124 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


***********************************************************************<br />

* COUNTS OF PRIMARY OBJECTS (AND KILOBYTES) WRITTEN, READ AND<br />

* DELETED FROM TAPE.<br />

***********************************************************************<br />

ST32PTWO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* WRITTEN TO TAPE.<br />

ST32PTWK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS WRITTEN TO TAPE.<br />

ST32PTRO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* READ FROM TAPE.<br />

ST32PTRK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS READ FROM TAPE.<br />

ST32PTDO DS BL4'0' NUMBER OF PRIMARY OBJECTS<br />

* LOGICALLY DELETED FROM TAPE.<br />

ST32PTDK DS BL4'0' NUMBER OF KILOBYTES OF PRIMARY<br />

* OBJECTS LOGICALLY DELETED FROM<br />

* TAPE.<br />

***********************************************************************<br />

* COUNTS OF BACKUP OBJECTS (AND KILOBYTES) WRITTEN, READ AND<br />

* DELETED FROM OPTICAL.<br />

***********************************************************************<br />

ST32BOWO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* WRITTEN TO OPTICAL.<br />

ST32BOWK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS WRITTEN TO OPTICAL.<br />

ST32BORO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* READ FROM OPTICAL.<br />

ST32BORK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS READ FROM OPTICAL.<br />

ST32BODO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* DELETED FROM OPTICAL.<br />

ST32BODK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS DELETED FROM OPTICAL.<br />

***********************************************************************<br />

* COUNTS OF BACKUP OBJECTS (AND KILOBYTES) WRITTEN, READ AND<br />

* DELETED FROM TAPE.<br />

***********************************************************************<br />

ST32BTWO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* WRITTEN TO TAPE.<br />

ST32BTWK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS WRITTEN TO TAPE.<br />

ST32BTRO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* READ FROM TAPE.<br />

ST32BTRK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS READ FROM TAPE.<br />

ST32BTDO DS BL4'0' NUMBER OF BACKUP OBJECTS<br />

* LOGICALLY DELETED FROM TAPE.<br />

ST32BTDK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP<br />

* OBJECTS LOGICALLY DELETED FROM<br />

* TAPE.<br />

Figure 4-33 SMF record type 85 subtype 32 significant fields (extract from CBRSMF macro) (2 of 5)<br />

Chapter 4. OAM enhancements 125


***********************************************************************<br />

* COUNTS OF BACKUP2 OBJECTS (AND KILOBYTES) WRITTEN, READ AND @L2A<br />

* DELETED FROM OPTICAL. @L2A<br />

***********************************************************************<br />

ST32B2OWO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* WRITTEN TO OPTICAL. @L2A<br />

ST32B2OWK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS WRITTEN TO OPTICAL. @L2A<br />

ST32B2ORO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* READ FROM OPTICAL. @L2A<br />

ST32B2ORK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS READ FROM OPTICAL. @L2A<br />

ST32B2ODO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* DELETED FROM OPTICAL. @L2A<br />

ST32B2ODK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS DELETED FROM OPTICAL. @L2A<br />

***********************************************************************<br />

* COUNTS OF BACKUP2 OBJECTS (AND KILOBYTES) WRITTEN, READ AND @L2A<br />

* DELETED FROM TAPE. @L2A<br />

***********************************************************************<br />

ST32B2TWO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* WRITTEN TO TAPE. @L2A<br />

ST32B2TWK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS WRITTEN TO TAPE. @L2A<br />

ST32B2TRO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* READ FROM TAPE. @L2A<br />

ST32B2TRK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS READ FROM TAPE. @L2A<br />

ST32B2TDO DS BL4'0' NUMBER OF BACKUP2 OBJECTS @L2A<br />

* LOGICALLY DELETED FROM TAPE. @L2A<br />

ST32B2TDK DS BL4'0' NUMBER OF KILOBYTES OF BACKUP2 @L2A<br />

* OBJECTS LOGICALLY DELETED FROM @L2A<br />

* TAPE. @L2A<br />

Figure 4-34 SMF record type 85 subtype 32 significant fields (extract from CBRSMF macro) (3 of 5)<br />

126 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


***********************************************************************<br />

* COUNTS OF ACTIVITY AGAINST THE OBJECT STORAGE DATABASE<br />

* (OBJECT DIRECTORY TABLE, 4K OBJECT STORAGE TABLE AND 32K<br />

* OBJECT STORAGE TABLE).<br />

***********************************************************************<br />

ST32DTUP DS BL4'0' NUMBER OF ROWS UPDATED IN THE<br />

* OBJECT DIRECTORY TABLE.<br />

ST32DTDE DS BL4'0' NUMBER OF ROWS DELETED FROM THE<br />

* OBJECT DIRECTORY TABLE.<br />

ST324KIN DS BL4'0' NUMBER OF ROWS INSERTED INTO THE<br />

* 4K OBJECT STORAGE TABLE.<br />

ST324KDE DS BL4'0' NUMBER OF ROWS DELETED FROM THE<br />

* 4K OBJECT STORAGE TABLE.<br />

ST3232KI DS BL4'0' NUMBER OF ROWS INSERTED INTO THE<br />

* 32K OBJECT STORAGE TABLE.<br />

ST3232KD DS BL4'0' NUMBER OF ROWS DELETED FROM THE<br />

* 32K OBJECT STORAGE TABLE.<br />

ST32NCE DS BL4'0' NUMBER OF OPTICAL CARTRIDGES<br />

* EXPIRED. VALID ONLY FOR<br />

* SUBTYPE 32.<br />

ST32FLGS DS BL4'0' PROCESSING FLAGS<br />

ST32FLG0 EQU X'80' WHEN ON, THIS PROCESS WAS<br />

* INVOKED AUTOMATICALLY UNDER<br />

* SOFTWARE CONTROL.<br />

ST32FLG1 EQU X'40' WHEN ON, THIS PROCESS WAS<br />

* INVOKED BY A MODIFY OAM,START<br />

* COMMAND.<br />

ST32FLG2 EQU X'20' WHEN ON, THIS PROCESS WAS<br />

* INVOKED USING AN ISMF LINE<br />

* OPERATOR.<br />

ST32FLG3 EQU X'10' WHEN ON, VOL RECOVERY WAS<br />

* INVOKED W/ BACKUP1 KEYWORD OR<br />

* DEFAULTED TO BACKUP1 @L2A<br />

ST32FLG4 EQU X'08' WHEN ON, VOL RECOVERY WAS<br />

* INVOKED W/ BACKUP2 KEYWORD @L2A<br />

ST32FLG5 EQU X'04' WHEN ON, VOL RECOVERY OR MOVEVOL WAS<br />

* SPECIFIED WITH DELETE OPTION @L3A<br />

ST32FLG6 EQU X'02' WHEN ON, VOL RECOVERY OR MOVEVOL WAS<br />

* SPECIFIED WITH RECYCLE OPTION @L3A<br />

ST32FLG7 EQU X'01' WHEN ON, INDICATED PROCESSING OBJECT<br />

* STORAGE GROUP @L3A<br />

ST32FLG8 EQU X'80' WHEN ON, INDICATED PROCESSING BACKUP<br />

* OBJECT STORAGE GROUP @L3A<br />

ST32FLG9 EQU X'40' WHEN ON, CYCLE ENDTIME EXCEEDED @L3A<br />

*<br />

Figure 4-35 SMF record type 85 subtype 32 significant fields (extract from CBRSMF macro) (4 of 5)<br />

Chapter 4. OAM enhancements 127


Figure 4-36 SMF record type 85 subtype 32 significant fields (extract from CBRSMF macro) (5 of 5)<br />

Migration and coexistence<br />

Pre-<strong>V1R8</strong> systems in the same OAMplex as a <strong>V1R8</strong> system must have the fix for APAR<br />

OA12683 applied.<br />

Maintenance<br />

The fix for APAR OA17310 must be applied prior to using the OAM RECYCLE function. It<br />

fixes an ABEND0C4, a message problem when there are no more volumes to be recycled,<br />

and a problem with SMF record type 85 missing new fields.<br />

4.4 GLOBAL display keyword<br />

4.4.1 Usage<br />

ST32NTE DS BL4'0' NUMBER OF TAPE VOLUMES EXPIRED<br />

* VALID ONLY FOR SUBTYPE 32 @L3A<br />

ST32RCLD DS BL4'0' NUMBER OF RECALLED OBJECTS<br />

* VALID ONLY FOR SUBTYPE 32 @00A<br />

ST32RCLK DS BL4'0' NUMBER OF KILOBYTES OF<br />

* RECALLED OBJECTS<br />

* VALID ONLY FOR SUBTYPE 32 @00A<br />

ST32LOBI DS BL4'0' NUMBER OF LOB ROWS INSERTED<br />

* VALID ONLY FOR SUBTYPE 32 @00A<br />

ST32LOBD DS BL4'0' NUMBER OF LOB ROWS DELETED<br />

* VALID ONLY FOR SUBTYPE 32 @00A<br />

A GLOBAL keyword has been added to the MODIFY OAM,DISPLAY command.<br />

You can use the MODIFY OAM,DISPLAY command to display the current settings of the<br />

SETOAM, SETOPT, or SET<strong>OS</strong>MC statements for the OAM address space.<br />

The syntax of this command, from the <strong>DFSMS</strong> OAM Planning, Installation, and Storage<br />

Administration Guide for Object Support, SC26-0426, publication, is as follows:<br />

MODIFY OAM,DISPLAY,keyword1,keyword2<br />

keyword1 must be one of the options shown in Figure 4-37.<br />

SETOPT | SETOAM | SET<strong>OS</strong>MC<br />

Specifies the command parameter being displayed. Use SETOAM to display<br />

values of settings in an object tape environment. SETOPT is used to<br />

display values of settings in an optical environment. Use SET<strong>OS</strong>MC to<br />

display the values of settings for <strong>OS</strong>MC processing.<br />

Figure 4-37 The options for keyword1<br />

128 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


keyword2 must be one of the options shown in Figure 4-38.<br />

ALL|GLOBAL|storgrp<br />

Specifies the kind of information that the system is to display. For<br />

the SETOAM, SET<strong>OS</strong>MC, and SETOPT parameters, the valid values are as<br />

follows:<br />

ALL<br />

Displays the settings for each valid storage group as well as the<br />

global default settings. If ALL is specified, the global default,<br />

if applicable, is displayed as well as the settings for each<br />

valid storage group in the active SMS configuration.<br />

GLOBAL<br />

Displays only the OAM global keywords.<br />

storgrp<br />

Displays only the settings for the specified storage group<br />

name. There can be up to fourteen storage group names<br />

indicated on a single DISPLAY command.<br />

Figure 4-38 The new GLOBAL keyword2<br />

Figure 4-39 is an example of the new GLOBAL keyword in action when displaying SET<strong>OS</strong>MC<br />

settings.<br />

Figure 4-39 Displaying SET<strong>OS</strong>MC settings with the GLOBAL keyword<br />

Migration and coexistence<br />

There are no migration or coexistence considerations for use of this new keyword.<br />

4.5 <strong>Update</strong> from z/<strong>OS</strong> V1.7<br />

Displays the settings for the FIRSTBACKUPGROUP and<br />

SECONDBACKUPGROUP for the specified storage group name.<br />

F OAM,DISPLAY,SET<strong>OS</strong>MC,GLOBAL<br />

CBR1075I GLOBAL value for BACKUP1 is OBJBKP<br />

CBR1075I GLOBAL value for BACKUP2 is -NONE-<br />

CBR1075I GLOBAL value for CYCLEW is STRTONLY<br />

CBR1075I GLOBAL value for MAXRECAL is 2<br />

CBR1075I GLOBAL value for RECALLO is 15, ON<br />

CBR1075I GLOBAL value for RECALLT is 0, ON<br />

CBR1075I GLOBAL value for CLEAROLD is TAPE<br />

z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>, SG24-7225, contains a description of various OAM<br />

enhancements. One in particular relates to <strong>OS</strong>MC SINGLE OBJECT RECALL UTILITY.<br />

There has been no change to that in z/<strong>OS</strong> <strong>V1R8</strong>, but the function was retested because an<br />

SMF MACRO error was found in z/<strong>OS</strong> V1R7.<br />

The SMF error is still present in z/<strong>OS</strong> <strong>V1R8</strong>, but it now has an APAR number OA20170<br />

(“OA20170” on page 464).<br />

Chapter 4. OAM enhancements 129


Figure 4-41 SMF85TO output<br />

In z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> OAM introduced the ability to recall objects from tape and store them<br />

in DB2 to improve performance for subsequent retrievals.<br />

OAM writes SMF record type 85 subtype 38 to document the use of this facility.<br />

We have written a simple program called SMF85TO to scan the SMF records and summarize<br />

activity. This was originally made available in z/<strong>OS</strong> V1R7 <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>,<br />

SG24-7225. The example provided here is smaller but has the same function.<br />

The program itself and how to construct it is documented in “SMF record type 85 subtype 38<br />

data display program” on page 484.<br />

In Figure 4-40 we show the JCL to extract the SMF records and run the program.<br />

Note: This JCL assumes that an extract is being taken from the active SMF data set, which<br />

is then passed to the SMFT85O program. The JCL could be changed to make a<br />

permanent extract of the SMF data, or to read an already created SMF data extract.<br />

//MHLRES1O JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

// EXEC PGM=IFASMFDP<br />

//SYSPRINT DD SYSOUT=*<br />

//DUMPIN DD DISP=SHR,DSN=SYS1.SC64.MAN1<br />

//OUTDD DD DSN=&SMFT85,<br />

// SPACE=(CYL,(10,5)),<br />

// RECFM=VB,LRECL=5096,<br />

// DISP=(,PASS,DELETE),<br />

// UNIT=SYSDA<br />

//SYSIN DD *<br />

INDD(DUMPIN,OPTIONS(DUMP))<br />

OUTDD(OUTDD,TYPE(85(38)))<br />

/*<br />

// EXEC PGM=SMF85TO<br />

//STEPLIB DD DISP=SHR,DSN=MHLRES1.SMF85TO.LOAD<br />

//SYSUDUMP DD SYSOUT=A<br />

//SMFIN DD DISP=SHR,DCB=BFTEK=A,<br />

// DSN=&SMFT85<br />

//PRINT DD SYSOUT=A,RECFM=UA<br />

Figure 4-40 SMF85TO program execution JCL<br />

In Figure 4-41 we show an example of output from the execution of program SMF85TO. In<br />

Figure 4-42 on page 131 we show the SMF records that relate to this output.<br />

SMF TYPE 85 SUBTYPE 38 RECORDS<br />

COLN/CNID: OAMTEST.MAR210E 00000000046<br />

OBJN/SGN/OLEN: OAMTEST.OBJ0210E GROUP00 00000050000<br />

VSN/MT/TKN/VT/BT/FLGS:TST000 06 00000001242 FLG0 ON<br />

130 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The left-hand side of the report contains abbreviations from the SMF records. Record type 85<br />

subtype 38 contains the fields of interest to verify the function of OAM object recall to DB2. In<br />

the SMF records, as shown in Figure 4-42, the fields are prefixed with ST38. In the report the<br />

fields are shown without the ST38, and have been compressed to have more than one entry<br />

per line.<br />

In this example, Collection OAMTEST.MAR210E, which contains object<br />

OMATEST.OBJ0210E, was recalled. Object OAMTEST.OBJ0210E is 50000 long. The flags<br />

field shown in the fourth line as been interpreted from the SMF field ST38FLG0 as being ON,<br />

which indicates that the recall was successful.<br />

Note: You should not use the contents of the CBRSMF macro as presented here. When<br />

you assemble the program, or wish to refer to the macro, it will be found in SYS1.MACLIB.<br />

ST38 DSECT SUBTYPE 38 @P2A<br />

ST38COLN DS CL44' ' COLLECTION NAME @P2A<br />

ST38CNID DS BL4'0' COLLECTION ID @P2A<br />

ST38OBJN DS CL44' ' OBJECT NAME @P2A<br />

ST38SGN DS CL8' ' STORAGE GROUP NAME @P2A<br />

ST38OLEN DS BL4'0' OBJECT LENGTH @P2A<br />

ST38VSN DS CL6' ' VOLUME SERIAL NUMBER OF OPTICAL<br />

* VOLUME OR TAPE VOLUME FROM WHICH<br />

* THE COPY OF THE OBJECT<br />

* WAS READ. @P2A<br />

ST38MT DS CL2' ' MEDIA TYPE OF THE VOLUME FROM<br />

* WHICH THE COPY OF THE OBJECT<br />

* WAS READ. @P2A<br />

ST38TKN DS BL4'0' VOLUME LOCATION TOKEN ASSOCIATED<br />

* WITH THE COPY OF THE OBJECT<br />

* ON THE VOLUME SPECIFIED IN THE<br />

* ST39VSN FIELD. @P2A<br />

ST38VT DS CL1' ' VOLUME TYPE @P2A<br />

ST38BT DS CL1' ' BACKUP TYPE @P2A<br />

DS CL2' ' RESERVED @P2A<br />

ST38FLGS DS BL4'0' PROCESSING FLAGS @P2A<br />

*<br />

ST38FLG0 EQU X'80' WHEN ON, OBJECT RECALL<br />

* WAS SUCCESSFUL. @P2A<br />

Figure 4-42 SMF record type 85 subtype 38 significant fields (extract from CBRSMF macro)<br />

Chapter 4. OAM enhancements 131


132 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 5. <strong>DFSMS</strong>dss enhancements<br />

In z/OZ <strong>V1R8</strong> a number of enhancements have been incorporated into <strong>DFSMS</strong>dss. The<br />

majority of the enhancements are used by <strong>DFSMS</strong>hsm in support of Fast Replicate.<br />

Users should refer to <strong>DFSMS</strong>hsm for information concerning fast replication.<br />

The interface to Physical Data Set COPY and Physical Data Set DUMP/RESTORE is<br />

available for users of <strong>DFSMS</strong>dss without using <strong>DFSMS</strong>hsm. This document concentrates on<br />

this use of <strong>DFSMS</strong>dss.<br />

<strong>DFSMS</strong>dss continues to support logical data set operations.<br />

5<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 133


5.1 Defining logical and physical processing<br />

The following information is based on Chapter 3 of <strong>DFSMS</strong>dss Storage Administration Guide,<br />

SC26-0423, as it provides a background to the new physical processing in z/<strong>OS</strong> <strong>V1R8</strong>.<br />

<strong>DFSMS</strong>dss can perform two kinds of processing when executing COPY, DUMP, and<br />

RESTORE commands:<br />

► Logical processing operates against data sets independently of physical device format.<br />

► Physical processing moves data at the track-image level and operates against volumes,<br />

tracks, and data sets.<br />

Each type of processing offers different capabilities and advantages.<br />

During a restore operation, the data is processed the same way in which it is dumped<br />

because physical and logical dump tapes have different formats. If a data set is dumped<br />

logically, it is restored logically. If it is dumped physically, it is restored physically. A data set<br />

restore operation from a full-volume dump is a physical data set restore operation.<br />

Logical processing<br />

A logical copy, dump, or restore operation treats each data set and its associated information<br />

as a logical entity, and processes an entire data set before beginning the next one.<br />

Each data set is moved by tracks from the source device and is potentially written to the<br />

target device as a set of data records, allowing data movement between devices with<br />

different track and cylinder configurations. Checking of data record consistency is not<br />

performed during dump operations.<br />

<strong>DFSMS</strong>dss performs logical processing if:<br />

► You specify the DATASET keyword with the COPY command. A data set copy is always a<br />

logical operation regardless of how or whether you specify input volumes.<br />

► You specify the DATASET keyword with the DUMP command, and either no input volume<br />

is specified, or LOGINDDNAME, LOGINDYNAM, or STORGRP is used to specify input<br />

volumes.<br />

► The RESTORE command is performed, and the input volume was created by a logical<br />

dump.<br />

<strong>DFSMS</strong>dss uses catalogs or VTOCs to select data sets for logical processing. If you do not<br />

specify input volumes, <strong>DFSMS</strong>dss uses the catalogs to select data sets for copy and dump<br />

operations. If you specify input volumes using the LOGINDDNAME, LOGINDYNAM, or<br />

STORGRP keywords on the COPY or DUMP command, <strong>DFSMS</strong>dss uses VTOCs to select<br />

data sets for processing.<br />

Note: To copy or dump entire multivolume data sets, you do not need to specify all the<br />

volumes in the LOGINDDNAME or LOGINDYNAM volume list. However, you must specify<br />

the SELECTMULTI keyword with either the FIRST or ANY subkeywords.<br />

When to use logical processing<br />

Use logical processing for the following situations:<br />

► Data is copied to an unlike device.<br />

Logical processing is the only way to move data between unlike device types.<br />

134 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


► Data that may need to be restored to an unlike device is dumped.<br />

Data must be restored the same way in which it is dumped. This is particularly important to<br />

keep in mind when making backups that you plan to retain for a long period of time (such<br />

as vital records backups). If a backup is retained for a long period of time, it is possible<br />

that the device type it originally resided on will no longer be in use at your site when you<br />

want to restore it. This means that you have to restore it to an unlike device, which can<br />

only be done if the backup was made logically.<br />

► Aliases of VSAM user catalogs are to be preserved during the copy and restore functions.<br />

Aliases are not preserved for physical processing.<br />

► Unmovable data sets or data sets with absolute track allocation are moved to different<br />

locations.<br />

► Multivolume data sets are processed.<br />

► VSAM and multivolume data sets are cataloged as part of <strong>DFSMS</strong>dss processing.<br />

► Data sets are deleted from the source volume after a successful copy or restore operation.<br />

► Non-VSAM and VSAM data sets are renamed after a successful copy or restore<br />

operation.<br />

► You want to control the percentage of space allocated on each of the output volumes for<br />

copy or restore operations.<br />

► You want to copy and convert a PDS to PDSE or vice versa.<br />

► You want to copy or restore a data set with an undefined DSORG to an unlike device.<br />

► You want to keep together all parts of a VSAM sphere.<br />

Physical processing<br />

Physical processing moves data based on physical track images. Because data movement is<br />

carried out at the track level, only target devices with track sizes equal to those of the source<br />

device are supported. Physical processing operates on volumes, ranges of tracks, or data<br />

sets. For data sets, it relies on volume information (in the VTOC and VVDS) for data set<br />

selection, and processes only that part of a data set residing on the specified input volumes.<br />

Notes: VSAM data sets are not cataloged during physical processing within SMS or<br />

non-SMS environments. The CATALOG keyword is ignored for VSAM data set during<br />

physical restore. Use IDCAMS DEFINE RECATALOG to catalog the data sets after the<br />

restore.<br />

The RENAME and RENAMEUNCONDITIONAL keywords are ignored for VSAM data sets<br />

during physical restore.<br />

<strong>DFSMS</strong>dss performs physical processing when the following conditions exist:<br />

► You specify the FULL or TRACKS keyword with the COPY or DUMP command.<br />

This results in a physical volume or physical tracks operation.<br />

Attention: Take care when invoking the TRACKS keyword with the COPY and<br />

RESTORE keywords. The TRACKS keyword should only be used for a data set<br />

recovery operation. For example, you can use it to repair a bad track in the VTOC or a<br />

data set, or to retrieve data from a damaged data set. You cannot use it in place of a<br />

full-volume or a logical data set operation. Doing so could destroy or impair data<br />

integrity.<br />

Chapter 5. <strong>DFSMS</strong>dss enhancements 135


► You specify the DATASET keyword on the COPY or DUMP command and input volumes<br />

with the PHYSINDDNAME or PHYSINDYNAM keyword. This produces a physical data<br />

set copy or physical data set dump.<br />

► The RESTORE command is executed and the input volume is created by a physical dump<br />

operation.<br />

When to use physical processing<br />

Use physical processing when the following conditions exist:<br />

► Backing up system volumes that you might want to restore with a stand-alone <strong>DFSMS</strong>dss<br />

restore operation.<br />

Stand-Alone <strong>DFSMS</strong>dss restore only supports physical dump tapes.<br />

► Performance is an issue.<br />

Generally, the fastest way (measured by elapsed time) to copy or dump an entire volume<br />

is with a physical full-volume command. This is primarily because minimal catalog<br />

searching is necessary for physical processing.<br />

► Substituting one physical volume for another or recovering an entire volume.<br />

With a COPY or RESTORE (full-volume or track) command, the volume serial number of<br />

the input DASD volume can be copied to the output DASD volume.<br />

► Dealing with I/O errors. Physical processing provides the capability to copy, dump, and<br />

restore a specific track or range of tracks.<br />

► Dumping or copying between volumes of the same device type but different capacity.<br />

5.2 Physical and logical data set difference summary<br />

The form that data sets are used by application programs in is what <strong>DFSMS</strong>dss refers to as<br />

the logical form. The data set physical structure and location are provided to the application<br />

through the system catalog (usually) and supplementary information from the DASD VTOC<br />

and VVDS entries for the data set. For single volume non-VSAM data sets there is not much<br />

further information to be obtained, but when the data set becomes multi-volume and has a<br />

more complicated structure such as VSAM and may be multi-volume it is necessary to use<br />

these sources of data for effective use of the data set. There is a trade off, however, in that<br />

obtaining all that information takes time.<br />

For utility programs such as <strong>DFSMS</strong>dss, whether used in its own right or as support for<br />

<strong>DFSMS</strong>hsm, for example, there may be situations where a copy of a data set may be able to<br />

be made more rapidly by using a physical process. This is where the <strong>DFSMS</strong>dss Physical<br />

COPY can be used.<br />

5.3 Physical and logical data set copy specification changes<br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong>dss command specifications have been updated to better emphasize the<br />

difference between logical and physical processing.<br />

The INDDNAME/INDYNAM keyword is replaced by LOGINDDNAME/LOGINDYNAM and<br />

PHYSINDDNAME/PHYSINDDNAM. LOGINDDNAME/LOGINDYNAM was available prior to<br />

z/<strong>OS</strong> <strong>V1R8</strong>.<br />

136 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Use of the INDDNAME/INDYNAM keywords is accepted, but they are internally replaced by<br />

PHYSINDDNAME/PHYSINDDNAM. Message ADR146I is issued to advise of this once<br />

APAR OA20242 has been implemented (as is the case for Physical DUMP). See “OA20242”<br />

on page 465 for details.<br />

Physical DUMP operation changes<br />

Although there are code changes in the Physical DUMP part of <strong>DFSMS</strong>dss to support<br />

Physical COPY, to the user there is minimal change. New keywords PHYSINDDNAME and<br />

PHYSINDYNAM, if used, make it more obvious that the operations relate to physical<br />

operations.<br />

The main keyword difference is the change from the use of the INDDNAME and INDYNAM<br />

keywords, which in the past were used in conjunction with the DUMP command to specify<br />

physical copies. The new keywords PHYSINDDNAME and PHYSINDYNAM to replace<br />

INDDNAME and INDYNAM make it more obvious that the operations relate to physical<br />

operations.<br />

You can continue to use existing DUMP jobs using INDDNAME or INDYNAM, and will<br />

receive a warning message ADR146I advising that the obsolete keyword has been replaced.<br />

Note: There is no prior system toleration for the new PHYSINDDNAME or<br />

PHYSINDYNAM keywords, so jobs should not be changed to use these new keywords<br />

until all systems are converted to z/<strong>OS</strong> <strong>V1R8</strong> or later.<br />

In Figure 5-1 we show use of the INDD keyword (short form of INDDNAME) to specify the<br />

source volume.<br />

//MHLRES1D JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//STEP01 EXEC PGM=ADRDSSU,TIME=1440,REGION=6000K,<br />

// PARM='UTILMSG=YES'<br />

//SYSPRINT DD SYSOUT=*<br />

//SBOX38 DD DISP=SHR,UNIT=SYSDA,DSN=MHLRES1.JOBS.JCL<br />

//TEMP DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1))<br />

//SYSIN DD *<br />

DUMP DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

INDD(SBOX38) OUTDD(TEMP)<br />

Figure 5-1 <strong>DFSMS</strong>dss DUMP job using INDD<br />

Chapter 5. <strong>DFSMS</strong>dss enhancements 137


In Figure 5-2 we show the output from the job shown in Figure 5-1 on page 137, where<br />

<strong>DFSMS</strong>dss has substituted the keyword PHYSINDDNAME for INDD.<br />

PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.065 11:40<br />

DUMP DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

INDD(SBOX38) OUTDD(TEMP)<br />

ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ADR109I (R/I)-RI01 (01), 2007.065 11:40:49 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ADR146I (R/I)-RI03 (13), OBSOLETE KEYWORD 'INDDNAME ' SPECIFIED. 'PHYSINDDNAME ' WILL BE USED.<br />

ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ADR006I (001)-STEND(01), 2007.065 11:40:49 EXECUTION BEGINS<br />

ADR378I (001)-DTDS (01), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED FROM VOLUME SBOX38<br />

MHLRES1.JOBS.JCL<br />

ADR006I (001)-STEND(02), 2007.065 11:40:50 EXECUTION ENDS<br />

ADR013I (001)-CLTSK(01), 2007.065 11:40:50 TASK COMPLETED WITH RETURN CODE 0000<br />

ADR012I (SCH)-DSSU (01), 2007.065 11:40:50 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

Figure 5-2 <strong>DFSMS</strong>dss DUMP job output showing message about substitution of PHYSINDDNAME for INDD<br />

5.3.1 Logical copy operations<br />

To make a logical copy of a data set, the COPY command and keywords DATASET and<br />

OUTDD are required, and they can be used together with many optional modifiers.<br />

In Figure 5-3 we show the JCL to copy a data set using the system catalog to locate the<br />

volume that the data set is on. The example demonstrates the input data set lookup with as<br />

few other operands as possible, so the data set is not renamed. As a result, because this is a<br />

COPY operation, the copy fails. This situation differs from the case when Physical COPY is<br />

used (see 5.3.3, “Physical copy operations” on page 140).<br />

//MHLRES1D JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//STEP01 EXEC PGM=ADRDSSU,TIME=1440,REGION=6000K,<br />

// PARM='UTILMSG=YES'<br />

//SYSPRINT DD SYSOUT=*<br />

//TEMP DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1))<br />

//SYSIN DD *<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

OUTDD(TEMP)<br />

Figure 5-3 Logical COPY without LOGINDDNAME<br />

138 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 5-4 we show the output from the job selecting data set by just using the system<br />

catalog. As predicted, the copy was not allowed to proceed because no rename keyword was<br />

specified.<br />

PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.066 15:08<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

OUTDD(TEMP)<br />

ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ADR109I (R/I)-RI01 (01), 2007.066 15:08:13 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ADR006I (001)-STEND(01), 2007.066 15:08:13 EXECUTION BEGINS<br />

ADR713E (001)-ALLOC(01), UNABLE TO ALLOCATE SMS MANAGED DATA SET MHLRES1.JOBS.JCL BECAUSE NEITHER DELETE NOR RENAMEU WAS SPE<br />

ADR801I (001)-DDDS (01), DATA SET FILTERING IS COMPLETE. 1 OF 1 DATA SETS WERE SELECTED: 0 FAILED SERIALIZATION AND 0 FAILED<br />

OTHER REASONS.<br />

ADR455W (001)-DDDS (02), THE FOLLOWING DATA SETS WERE NOT SUCCESSFULLY PROCESSED<br />

MHLRES1.JOBS.JCL<br />

ADR006I (001)-STEND(02), 2007.066 15:08:14 EXECUTION ENDS<br />

ADR013I (001)-CLTSK(01), 2007.066 15:08:14 TASK COMPLETED WITH RETURN CODE 0008<br />

ADR012I (SCH)-DSSU (01), 2007.066 15:08:14 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0008 FROM:<br />

TASK 001<br />

Figure 5-4 Logical COPY output without LOGINDDNAME<br />

If there is a reason to locate a data set other than through the system catalog, for example,<br />

because there is a copy on another volume, the LOGINDDNAME keyword can be specified. If<br />

the DDNAME specified on LOGINDDNAME refers to the volume that the requested data set<br />

is on, the copy is able to proceed.<br />

If, however, the volume referred to was not where the requested data set was, the copy would<br />

not be able to proceed.<br />

In Figure 5-5 we show a sample job to make a copy of a data set, illustrating the use of the<br />

LOGINDDNAME keyword, but the DDNAME referred to does not contain the data set to be<br />

copied, so the job should fail.<br />

//MHLRES1D JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//STEP01 EXEC PGM=ADRDSSU,TIME=1440,REGION=6000K,<br />

// PARM='UTILMSG=YES'<br />

//SYSPRINT DD SYSOUT=*<br />

//SBOXA8 DD DISP=SHR,UNIT=SYSDA,VOL=SER=SBOXA8<br />

//TEMP DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1))<br />

//SYSIN DD *<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

LOGINDDNAME(SBOXA8) OUTDD(TEMP)<br />

Figure 5-5 Logical COPY with LOGINDDNAME referring to the wrong volume<br />

Chapter 5. <strong>DFSMS</strong>dss enhancements 139


In Figure 5-6 we show the output from running the example in Figure 5-5 on page 139.<br />

The volume referred to by LOGINDDNAME(SBOXA8) in the JCL DDNAME(SBOXA8) does<br />

not contain data set MHLRES1.JOBS.JCL, so the job fails.<br />

PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.066 15:15<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

LOGINDDNAME(SBOXA8) OUTDD(TEMP)<br />

ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ADR109I (R/I)-RI01 (01), 2007.066 15:15:53 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ADR006I (001)-STEND(01), 2007.066 15:15:53 EXECUTION BEGINS<br />

ADR383W (001)-DDDS (01), DATA SET MHLRES1.JOBS.JCL NOT SELECTED<br />

ADR455W (001)-DDDS (03), THE FOLLOWING DATA SETS WERE NOT SUCCESSFULLY PROCESSED<br />

MHLRES1.JOBS.JCL<br />

ADR470W (001)-DDDS (04), NO DATA SETS SELECTED FOR PROCESSING<br />

ADR006I (001)-STEND(02), 2007.066 15:15:54 EXECUTION ENDS<br />

ADR013I (001)-CLTSK(01), 2007.066 15:15:54 TASK COMPLETED WITH RETURN CODE 0004<br />

ADR012I (SCH)-DSSU (01), 2007.066 15:15:54 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0004 FROM:<br />

TASK 001<br />

Figure 5-6 Logical COPY output with LOGINDDNAME referring to the wrong volume<br />

5.3.2 DSS LOGICAL COPY warning<br />

A VSAM KSDS with data and index components on different volumes may lose its SMS<br />

RLSDATA attribute during DSS COPY. Refer to “OA18319” on page 462, for further<br />

information.<br />

5.3.3 Physical copy operations<br />

To make a physical copy of a data set, the COPY command and keywords DATASET,<br />

OUTDDNAME, and PHYSINDDNAME or PHYSINDYNAM are required, which can be used<br />

together with many optional modifiers. The significant difference over a logical COPY is the<br />

presence of the PHYSINDDNAME or PHYSINDYNAM keyword. In this respect the syntax is<br />

like the version using LOGINDDNAME or LOGINDYNAM.<br />

When using a physical COPY, a data set that is SMS managed can be copied. This is not<br />

allowed with a logical copy, as demonstrated in Figure 5-4 on page 139.<br />

The user must then adjust the catalog to refer to the new data set if that is what is intended.<br />

140 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 5-7 we show sample JCL to make a physical copy of a data set. The input data set<br />

is SMS managed (and must therefore be catalogged), and the target volume as specified in<br />

OUTDDNAME must also refer to an SMS managed volume.<br />

Figure 5-7 Physical COPY JCL<br />

In Figure 5-8 we show the output from the job shown in Figure 5-7. There is no specific<br />

indication that this is the result of a Physical COPY, but that can be inferred from the fact that<br />

the input data set MHLRES1.JOBS.JCL, which is SMS managed, has been copied, which<br />

would not have been permitted with a Logical COPY.<br />

Figure 5-8 Physical COPY job output<br />

//MHLRES1D JOB (999,POK),MSGLEVEL=1,NOTIFY=MHLRES1<br />

//STEP01 EXEC PGM=ADRDSSU,TIME=1440,REGION=6000K,<br />

// PARM='UTILMSG=YES'<br />

//SYSPRINT DD SYSOUT=*<br />

//SBOX08 DD DISP=SHR,UNIT=SYSDA,DSN=MHLRES1.JOBS.JCL<br />

//TEMP DD DISP=SHR,VOL=SER=MLD40C<br />

//SYSIN DD *<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

PHYSINDDNAME(SBOX08) OUTDD(TEMP)<br />

PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.066 17:22<br />

COPY DATASET(INCLUDE(-<br />

MHLRES1.JOBS.JCL -<br />

)) -<br />

SHARE -<br />

PHYSINDDNAME(SBOX08) OUTDD(TEMP)<br />

ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ADR109I (R/I)-RI01 (01), 2007.066 17:22:21 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ADR006I (001)-STEND(01), 2007.066 17:22:21 EXECUTION BEGINS<br />

ADR396I (001)-PCNVS(01), DATA SET MHLRES1.JOBS.JCL ALLOCATED, ON VOLUME(S): MLD40C<br />

ADR801I (001)-DDDS (01), DATA SET FILTERING IS COMPLETE. 1 OF 1 DATA SETS WERE SELECTED: 0 FAILED<br />

SERIALIZATION AND 0 FAILED<br />

OTHER REASONS.<br />

ADR454I (001)-DDDS (02), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

MHLRES1.JOBS.JCL<br />

ADR006I (001)-STEND(02), 2007.066 17:22:22 EXECUTION ENDS<br />

ADR013I (001)-CLTSK(01), 2007.066 17:22:22 TASK COMPLETED WITH RETURN CODE 0000<br />

ADR012I (SCH)-DSSU (01), 2007.066 17:22:22 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

Chapter 5. <strong>DFSMS</strong>dss enhancements 141


In Figure 5-9 we show the results of attempting to display the characteristics of the<br />

MHLRES1.JOBS.JCL data set on volume MLD40C. The warning duplicate data set name is<br />

displayed in the top right-hand corner of the panel, as highlighted in bold.<br />

Menu Options View Utilities Compilers Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

DSLIST - Data Sets on volume MLD40C Duplicate data set name<br />

Command ===> Scroll ===> CSR<br />

Command - Enter "/" to select action Message Volume<br />

-------------------------------------------------------------------------------<br />

I MHLRES1.JOBS.JCL MLD40C<br />

***************************** End of Data Set list ****************************<br />

Figure 5-9 ISPF 3.4 listing of data set MHLRES1.JOBS.JCL on volume MLD40C<br />

In Figure 5-10 we show the help information about the situation that exists as a result of<br />

making a physical copy of the data set and trying to locate it.<br />

TUTORIAL ----------------- DUPLICATE DATA SET NAMES ------------------ TUTORIAL<br />

COMMAND ===><br />

The data set that you are accessing via ISPF:<br />

MHLRES1.JOBS.JCL<br />

is also cataloged on a volume other than MLD40C .<br />

Since MLD40C is an SMS volume, the allocation of the data set<br />

will use the catalog to find the data set and will allocate the<br />

data set that is on another volume. Since this is not the volume<br />

you specified, the command fails.<br />

Figure 5-10 ISPF Help information for the duplicate data set name situation<br />

ISPF prevented any attempt to process the copy of the data set while the original was still<br />

catalogged.<br />

The original was renamed so that there was no longer a duplicate catalog situation, but the<br />

copied data set could not be cataloged using ISPF as it, being SMS managed, is in an error<br />

state.<br />

This copied data set was cataloged by means of the IDCAMS command<br />

DEFINE NVSAM(NAME('MHLRES1.jobs.jcl') VOLUMES(Mld40c) DEVT(3390) recatalog)<br />

issued under TSO.<br />

142 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 6. <strong>DFSMS</strong>hsm enhancements<br />

The <strong>DFSMS</strong>hsm enhancements in <strong>DFSMS</strong> <strong>V1R8</strong> provide improvements in the areas of error<br />

handling for alternate duplex tapes, tape recycling, migration of non-VSAM data sets,<br />

ARECOVER processing, and altering the priority of queued requests. For details on the<br />

<strong>DFSMS</strong>hsm fast replication function in <strong>DFSMS</strong> <strong>V1R8</strong> refer to Chapter 7, “<strong>DFSMS</strong>hsm fast<br />

replication” on page 169.<br />

The following topics are covered:<br />

► Error handling on alternate duplex tapes<br />

► Recycle SYNCDEV at intervals<br />

► Migration scratch queue for non-VSAM data set<br />

► Individual data set restore for ARECOVER processing<br />

► New command ALTERPRI<br />

6<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 143


6.1 Error handling on alternate duplex tapes<br />

Before z/<strong>OS</strong> <strong>V1R8</strong>.0, when an error was detected on the alternate tape, during the duplex<br />

process, this alternate tape was de-mounted and returned to scratch, and <strong>DFSMS</strong>hsm<br />

continues to write to the original volume.<br />

It has become problematic for users with high capacity tapes and using duplex tape function<br />

to create alternate copies for disaster recovery, due the tape size and the total time the user<br />

would be without a valid tape copy.<br />

In z/<strong>OS</strong> <strong>V1R8</strong>.0, the duplex tape migration option is improved. A new keyword,<br />

ERRORALTERNATE(CONTINUE | MARKFULL), is added to the existing SETSYS<br />

DUPLEX(MIGRATION(Y)). If you choose the DUPLEX option, two tapes are created<br />

concurrently, and the most common use of that is to keep one on site and the other on a<br />

remote tape library.<br />

The new option lets users choose to MARK FULL original and alternate tapes in case of a<br />

problem writing on the alternate tape. In this case, both tapes are demounted and the failing<br />

data set is retried on a new set of tapes.<br />

The other option on this command is CONTINUE. If you specify CONTINUE, and an error<br />

occurs on the alternate volume, then the process continues on the original tape. <strong>DFSMS</strong>hsm<br />

creates a TCN record (Tape Copy Need) and a TAPECOPY is immediately attempted after<br />

completion of the original tape, or else it will be scheduled to the next auto function window.<br />

The default to ERRORALTERNATE is CONTINUE.<br />

This new option is valid when duplexing a tape migration or recycling a tape migration. The<br />

syntax of the SETSYS DUPLEX command is shown in Figure 6-1.<br />

SETSYS DUPLEX(MIGRATION(Y ERRORALTERNATE(CONTINUE | MARKFULL)))<br />

The default for ERRORALTERNATE is CONTINUE.<br />

-SETSYS-----------------------------------------------------------------------<br />

| |-Y-| |<br />

|DUPLEX-(-BACKUP(--N--)----------------------------------------------)|<br />

| |<br />

| |-MARKFULL-| |<br />

| |-Y-(ERRORALTERNATE(--CONTINUE--))-| |<br />

|-MIGRATION(--N---------------------------------)----------|<br />

| |<br />

| |MARKFULL| |<br />

| |-Y-| |-Y-(ERRORALTERNATE(-CONTINUE-))-|<br />

|-BACKUP(--N--)-MIGRATION(--N-----------------------------)|<br />

Figure 6-1 New keyword ERRORALTERNATE syntax<br />

Remember that if you want this option working all the time, do not forget to write the<br />

command on the <strong>DFSMS</strong>hsm PARMLIB member that you use, as a regular SETSYS<br />

command. This causes the command to be issued at <strong>DFSMS</strong>hsm start up. It can be issued<br />

dynamically also.<br />

144 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 6-2 shows the result of a dynamic command issue.<br />

�<br />

STC18988 ARC0442I TAPE OUTPUT PROMPT FOR TAPECOPY=NO, DUPLEX<br />

ARC0442I (CONT.) BACKUP TAPES=NO, DUPLEX MIGRATION TAPES=NO<br />

...<br />

...<br />

-F DFHSM64,SETSYS DUPLEX(MIGRATION(Y ERRORALTERNATE(MARKFULL))<br />

STC18988 ARC0100I SETSYS COMMAND COMPLETED<br />

...<br />

...<br />

�<br />

STC18988 ARC0442I TAPE OUTPUT PROMPT FOR TAPECOPY=NO, DUPLEX<br />

ARC0442I (CONT.) BACKUP TAPES=NO, DUPLEX MIGRATION TAPES=(Y,<br />

ARC0442I (CONT.) ERRORALTERNATE=MARKFULL)<br />

Figure 6-2 Dynamic command output<br />

Figure 6-2 shows how SETSYS was before � and after � the command SETSYS<br />

DUPLEX(MIGRATION(Y ERRORALTERNATE(MARKFULL)).<br />

Figure 6-3 shows the effect of the command to DUPLEX migration tape. One data set is<br />

migrated, but two mounts occur due to the DUPLEX(MIGRATION(Y) option.<br />

STC18988 00000290 IEC501A M<br />

0B90,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.HMIGTAPE.DATASET<br />

STC18988 00000090 IEC705I TAPE ON<br />

0B90,TST029,SL,COMP,DFHSM64,DFHSM64,HSM.HMIGTAPE.DATASET,MEDIA3<br />

STC18988 00000090 ARC0120I MIGRATION VOLUME TST029 ADDED, RC=0000 �, 863<br />

863 00000090 ARC0120I (CONT.) REAS=0000<br />

STC18988 00000290 IEC501A M<br />

0B91,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.COPY.HMIGTAPE.DATASE T<br />

STC18988 00000090 IEC705I TAPE ON<br />

0B91,TST000,SL,COMP,DFHSM64,DFHSM64,HSM.COPY.HMIGTAPE.<br />

DATASET,MEDIA3<br />

STC18988 00000090 IEC205I SYS00303,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME<br />

LIST, 866<br />

866 00000090 DSN=HSM.HMIGTAPE.DATASET,VOLS=TST029,TOTALBLOCKS=133<br />

STC18988 00000090 IEC205I SYS00304,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME<br />

LIST, 867<br />

867 00000090 DSN=HSM.COPY.HMIGTAPE.DATASET,VOLS=TST000,TOTALBLOCKS=133<br />

00000290 IEA989I SLIP TRAP ID=X33E MATCHED. JOBNAME=DFHSM64 ,<br />

ASID=0076.<br />

STC18988 00000290 IEF234E K 0B90,TST029,PVT,DFHSM64,DFHSM64<br />

STC18988 00000290 IEF234E K 0B91,TST000,PVT,DFHSM64,DFHSM64<br />

Figure 6-3 Output of DUPLEX command<br />

Message ARC0120I in Figure 6-3 tells you that, if the return code (RC=) was 0 (zero) �, an<br />

ADDVOL command has been processed for the type of volume volser specified in the<br />

message. If the volume record is successfully created or updated, the return code is zero.<br />

When SETSYS DUPLEX(MIGRATION(Y ERRORALTERNATE(MARKFULL))) has been<br />

specified, migration processing ignores the patch provided by APAR OA09928 (refer to<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 145


“OA09928” on page 465) that turns off SYNCDEVs as each data set is written to the<br />

migration alternate volume.<br />

Note: PATCH OA0998, OW45264, and OW43224 deal with error handling on alternate<br />

duplex tapes. The PATCH to turn off the SYNCDEV was suggested to decrease the<br />

elapsed recycle processing time. With z/<strong>OS</strong> <strong>V1R8</strong>.0, it is no longer beneficial and no<br />

longer recommended.<br />

Figure 6-4 shows the PATCH provided by APAR OA09928.<br />

...<br />

...<br />

Customers can now suppress syncs on the alternate tape during duplex migration.<br />

Syncs for the migration alternate tape can be turned off via:<br />

PATCH .MCVT.+196 BITS(..1.....)<br />

and back on via:<br />

PATCH .MCVT.+196 BITS(..0.....)<br />

The default is to do syncs on the alternate tapes.<br />

This patch is not recommended for earlier technology tape drives such as the 3490 and<br />

3590.<br />

Prior APAR OW45264 describes a similar patch for turning off alternate tape syncs for<br />

Recycle. This can also dramatically improve performance with the 3592 -J tape drive.<br />

...<br />

...<br />

Figure 6-4 PATCH from APAR OA09928<br />

In this case, with the patch ON (see Figure 6-4) and SETSYS DUPLEX(MIGRATION(Y<br />

ERRORALTERNATE(MARKFULL))), a new PDA trace is added, with text (‘APAR OW43224 is<br />

ignored’), so it is easily identified during a problem determination. For more information about<br />

APAR OW43224, see “OW43224” on page 466.<br />

146 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 6-5 shows the PATCH provided by APAR OW45264.<br />

...<br />

...<br />

Bypassing the SYNCDEV for the duplex alternate tape during Recycle is now<br />

supported. This reduces the time Recycle takes by bypassing the SYNCDEV of the<br />

duplex alternate tape after each dataset. To bypass the alternate tapes SYNCDEV<br />

operation, enter the following PATCH command for your release:<br />

For releases HDZ11D0 AND HDZ11E0:<br />

PATCH .YGCB.+88 BITS(......1.)<br />

.<br />

For releases HDZ11F0, HDZ11G0, HDZ11H0, HDZ11J0 & HDZ11K0:<br />

PATCH .YGCB.+C8 BITS(......1.)<br />

.<br />

To preserve the PATCH when HSM is restarted, place the PATCH command in the HSM<br />

startup PARMLIB member ARCCMDxx.<br />

.<br />

To remove the patch and allow the SYNCDEV to be again occur on the alternate<br />

volume, enter the following PATCH command for your release and remove the<br />

previous PATCH from ARCCMDxx:<br />

.<br />

For releases HDZ11D0 AND HDZ11E0:<br />

PATCH .YGCB.+88 BITS(......0.)<br />

For releases HDZ11F0, HDZ11G0, HDZ11H0, HDZ11J0 & HDZ11K0:<br />

PATCH .YGCB.+C8 BITS(......0.)<br />

.<br />

If you had the following PATCH installed from APAR OW43224:<br />

PATCH .MCVT.+295 BITS(....1...)<br />

it should be removed at this time.<br />

...<br />

...<br />

Figure 6-5 PATCH from APAR OW45264<br />

To simulate a problem on the alternate tape, we issued a V unit,xxxx,FORCE on its unit tape<br />

drive that caused an interruption. See Figure 6-6 for log details.<br />

00000090 *038 IEE800D CONFIRM VARY FORCE FOR B91 - REPLY NO OR YES<br />

00000290 R 38,YES<br />

00000090 IEE600I REPLY TO 038 IS;YES<br />

00000090 I<strong>OS</strong>102I DEVICE 0B91 BOXED, OPERATOR REQUEST, WAS ASSIGNED<br />

00000090 IEE793I 0B91 PENDING OFFLINE AND BOXED<br />

00000090 I<strong>OS</strong>000I 0B91,**,SIM,**,**06,,**,TST000,DFHSM64<br />

00000090 IEC020I 001-3,DFHSM64,DFHSM64,SYS00325,0B91,TST000,<br />

00000090 IEC020I HSM.COPY.HMIGTAPE.DATASET<br />

00000090 IEC020I NON-ACCEPTABLE ERROR<br />

00000090 IEF524I 0B91 PENDING OFFLINE<br />

Figure 6-6 VARY OFFLINE FORCE to simulate the tape problem<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 147


Figure 6-7 shows the <strong>DFSMS</strong>hsm behavior after the VARY OFFLINE FORCE command.<br />

00000090 IEA794I SVC DUMP HAS CAPTURED: 983<br />

00000090 DUMPID=001 REQUESTED BY JOB (DFHSM64 )<br />

00000090 DUMP TITLE=<strong>DFSMS</strong>DSS-DUMP ABEND=001,COMPID=DF175,ADRFTARR,JOBNAM<br />

00000090 E=DFHSM64<br />

00000090 ARC0421I MIGRATION VOLUME TST029 IS NOW MARKED FULL<br />

00000090 ARC0443I MIGRATION VOLUME TST029 WITH ALTERNATE TST000 985<br />

00000090 ARC0443I (CONT.) IS NOW MARKED FULL<br />

...<br />

...<br />

00000090 IEC205I SYS00324,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME LIST, 990<br />

00000090 DSN=HSM.HMIGTAPE.DATASET,VOLS=TST029,TOTALBLOCKS=11126<br />

00000090 IEC215I 714-0C,IFG0200Z,DFHSM64,DFHSM64,SYS00325,0B91,TST000,<br />

HSM.COPY.HMIGTAPE.DATASET<br />

00000090 I<strong>OS</strong>000I 0B91,**,SIM,**,**06,,**,TST000,DFHSM64<br />

00000090 I<strong>OS</strong>000I 0B91,**,SIM,**,**06,,**,TST000,DFHSM64<br />

00000090 I<strong>OS</strong>000I 0B91,**,SIM,**,**06,,**,TST000,DFHSM64<br />

00000290 IEA989I SLIP TRAP ID=X33E MATCHED. JOBNAME=MHLRES2 , ASID=005B.<br />

00000290 IEF234E K 0B90,TST029,PVT,DFHSM64,DFHSM64<br />

00000290 IEF196I IGD104I DUMP.D070223.H23.SC64.DFHSM64.S00001<br />

RETAINED,<br />

00000290 IEF196I DDNAME=SYS00011<br />

00000090 IEA611I COMPLETE DUMP ON DUMP.D070223.H23.SC64.DFHSM64.S00001 999<br />

...<br />

...<br />

00000090 INCIDENT TOKEN: SANDBOX SC64 02/23/2007 23:56:48<br />

00000090 ERROR ID = SEQ00744 CPU00 ASID0074 TIME18.56.48.1<br />

00000290 IEF196I IEF237I 8074 ALLOCATED TO IPCSDDIR<br />

00000290 IEF234E K 0B91,TST000,PVT,DFHSM64,DFHSM64<br />

00000090 IEF244I DFHSM64 DFHSM64 - UNABLE TO ALLOCATE 1 UNIT(S) 002<br />

00000090 AT LEAST 1 OFFLINE UNIT(S) NEEDED.<br />

00000090 IEF877E DFHSM64 NEEDS 1 UNIT(S) 003<br />

00000090 FOR DFHSM64 SYS00333<br />

...<br />

...<br />

STC19100 00000290 �IEF234E D 0B91,TST000,,DFHSM64,DFHSM64<br />

STC19100 00000290 IEC501A M<br />

0B90,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.HMIGTAPE.DATASET<br />

...<br />

...<br />

STC19100 00000090 IEC705I TAPE ON�<br />

0B90,TST001,SL,COMP,DFHSM64,DFHSM64,HSM.HMIGTAPE.DATAS<br />

ET,MEDIA3<br />

STC19100 00000090 ARC0120I MIGRATION VOLUME TST001 ADDED, RC=0000, 150<br />

150 00000090 ARC0120I (CONT.) REAS=0000<br />

STC19100 00000290 IEC501A M<br />

0B91,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.COPY.HMIGTAPE.DATASE<br />

T<br />

STC19100 00000090 IEC705I TAPE ON<br />

0B91,TST002,SL,COMP,DFHSM64,DFHSM64,HSM.COPY.HMIGTAPE.<br />

DATASET,MEDIA3<br />

Figure 6-7 Output of <strong>DFSMS</strong>hsm behavior after VARY OFFLINE FORCE<br />

148 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In the sequence in Figure 6-7 on page 148 �, tape - TST000 - is demounted. What happens<br />

with the tape depends on what TAPE manager you are using in your environment and the<br />

respective policy you have adopted. After that, on �, <strong>DFSMS</strong>hsm requests two new tapes to<br />

continue from where it had a problem.<br />

Because of this new option on SETSYS DUPLEX, an additional keyword was added on the<br />

LIST TTOC command so that you can produce a list with only tapes that were closed due to<br />

the ERRORALTERNATE option. Figure 6-8 shows some optional parameters on LIST TTOC<br />

command.<br />

TTOC SELECT Optional Parameters:<br />

_ ________________ __<br />

|_EMPTY__________|<br />

|_FULL___________|<br />

|_NOTFULL________|<br />

|_ASSOCIATED_____|<br />

|_NOTASSOCIATED__|<br />

|_ERRORALTERNATE_| � new option<br />

Figure 6-8 Optional parameters from TTOC<br />

Figure 6-9 is a sample of the LIST TTOC command with the new option ERRORALTERNATE.<br />

LIST TTOC SELECT(ERRORALTERNATE) ODS('MHLRES4.HSM.OUTPUT')<br />

- <strong>DFSMS</strong>HSM CONTROL DATASET - TAPE VOLUME TTOC - LISTING - AT 17:05:15 ON 07/03/02 FOR SYSTEM=SC64<br />

VOLSER UNIT VOL REUSE VALID PCT VOL RACF PREV SUCC NUM ONE ALT LIB STORAGE<br />

NAME TYPE CAPACITY BLKS VALID STATUS VOL VOL REC FILE VOL GROUP<br />

TST001 3590-1 ML2 00197300 00197270 100 FULL NO *NONE* *NONE* 001 YES TST002 LIB1 SGLIB1<br />

----- END OF - TAPE VOLUME TTOC - LISTING -----<br />

Figure 6-9 Output of LIST TTOC command<br />

This enhancement only applies to <strong>DFSMS</strong>hsm at the V1.8 or later level that have specified<br />

the option SETSYS DUPLEX with the ERRORALTERNATE(MARKFULL) option. If<br />

<strong>DFSMS</strong>hsm is not at the V1.8 level, <strong>DFSMS</strong>hsm continues to work as it did previously.<br />

Message change<br />

Message ARC0442I changed because of this improvement, including the new keywords. See<br />

Figure 6-10 for details.<br />

ARC0442I TAPE OUTPUT PROMPT FOR TAPECOPY = x, DUPLEX BACKUP TAPES =x,<br />

DUPLEX MIGRATION TAPES = x, ERRORALTERNATE= {CONTINUE | MARKFULL}<br />

Figure 6-10 Output of changed message ARC0442I<br />

For more information about <strong>DFSMS</strong>hsm messages, refer to z/<strong>OS</strong> MVS System Messages<br />

Vol 2 (ARC-ASA), SA22-7632.<br />

Coexistence and migration<br />

Table 6-1 details coexistence and migration for SESTYS DUPLEX with the new<br />

ERRORALTERNATE option.<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 149


Table 6-1 Coexistence table for SESTYS DUPLEX with new option ERRORALTERNATE.<br />

Element or feature <strong>DFSMS</strong>hsm<br />

When change was introduced z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Applies to migration from None<br />

Timing After the first IPL of z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Target system hardware requirements None<br />

Target system software requirements None<br />

Other system (coexistence or fallback)<br />

requirements<br />

6.2 Recycle SYNCDEV at intervals<br />

Prior to z/<strong>OS</strong> V1.8, using the option SETSYS DUPLEX caused <strong>DFSMS</strong>hsm to issue a<br />

SYNCDEV after each successful processed data set for both primary and alternate tapes.<br />

This is a time-consuming operation. To avoid the SYNCDEV operation and improve<br />

performance, a patch was provided to turn it off.<br />

With z/<strong>OS</strong> V1.8 the recycle process issues the SYNCDEV at intervals. It occurs at about each<br />

20 data sets or 500 Mb, whichever comes first. So, even if you are duplexing, performance<br />

should improve on your process. After the last data set on the recycle input volume has been<br />

moved to the output tape volumes, a SYNCDEV is done regardless of any counts. This<br />

guarantees that all data from the input tape has been written to the recycle output tape (both<br />

original and alternate).<br />

With this new function implemented, <strong>DFSMS</strong>hsm continues to honor the existing patch to turn<br />

off all SYNCDEV, except in the case where <strong>DFSMS</strong>hsm recycles a migration tape and<br />

SETSYS DUPLEX(MIGRATION(Y ERRORALTERNATE(MARKFULL))) is specified. In this<br />

case, <strong>DFSMS</strong>hsm issues a PDA trace entry with text (‘APAR OW43224 is ignored’) to identify<br />

this condition.<br />

The specifics of how Recycle SYNCDEV at intervals works are:<br />

► If you are working with NO duplexing:<br />

– Standard: SYNCDEV executes after 20 data sets or 500 Mb, whichever comes first.<br />

– Error: If an error occurs on the output volume, it is marked full, a new output volume is<br />

selected, and the process continues starting on the first data set after the last<br />

successful SYNCDEV on the previous tape.<br />

► If you are working with duplexing and recycling a BACKUP volume:<br />

– Standard: SYNCDEV executes after each 20 data sets or 500 Mb, whichever comes<br />

first.<br />

150 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

None<br />

Restrictions None<br />

System impacts None<br />

Note: The PATCH to turn off the SYNCDEV was suggested to decrease the elapsed<br />

recycle processing time. On z/<strong>OS</strong> <strong>V1R8</strong>.0 it is no longer beneficial and no longer<br />

recommended.


– Original volume error: If an output error occurs on the original volume, the result is that<br />

both original and alternate are marked full, a new set of tapes is selected, and recycle<br />

continues after the first data set after the last successful SYNCDEV on the previous<br />

tape.<br />

– Alternate volume error: If an error occurs on the alternate volume, <strong>DFSMS</strong>hsm<br />

continues to write on the original volume tape and the alternate is demounted. When it<br />

has completed writing the original tape, it marks the tape full and schedules a<br />

TAPECOPY to create a new alternate tape.<br />

► If you are working with duplexing and recycling a MIGRATE volume:<br />

– Standard: SYNCDEV executes after each 20 data sets or 500 Mb, whichever comes<br />

first.<br />

– Original volume error: If an output error occurs on the original volume, the result is that<br />

both original and alternate are marked full, a new set of tapes is selected, and recycle<br />

continues after the first data set after the last successful SYNCDEV on the previous<br />

tape.<br />

– Alternate volume error: If an error occurs on the alternate volume, <strong>DFSMS</strong>hsm works<br />

as defined on the ERRORALTERNATE parameter of the SETSYS<br />

DUPLEX(MIGRATON(Y)) option.<br />

If ERRORALTERNATE(CONTINUE) is specified, the alternate tape is demounted<br />

and <strong>DFSMS</strong>hsm continues write on the original tape. When <strong>DFSMS</strong>hsm finishes<br />

writing the original tape, it schedules a TAPECOPY to create a new alternate<br />

volume.<br />

If ERRORALTERNATE(MARKFULL) is specified, both the original and alternate<br />

tape are marked FULL. <strong>DFSMS</strong>hsm recycle requests two new volumes and<br />

continues writing with the first data set after the last SYNCDEV on the previous<br />

tape.<br />

Important: If you currently do calculations to track recycle times, take into consideration<br />

that now SYNCDEV works with a block of 20 data sets or 500 Mb, whichever comes first.<br />

Coexistence and migration<br />

The enhancement on SYNCDEV on z/<strong>OS</strong> V1.R8 made the patch to bypass it no longer<br />

beneficial. See Table 6-2 for details.<br />

Table 6-2 Coexistence table for SYNCDEV enhancement<br />

Element or feature <strong>DFSMS</strong>hsm<br />

When change was introduced z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Applies to migration from None<br />

Timing After the first IPL of z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Is the migration action required? No, but recommended because the patch is no<br />

longer beneficial<br />

Target system hardware requirements None<br />

Target system software requirements None<br />

Other system (coexistence or fallback)<br />

requirements<br />

None<br />

Restrictions None<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 151


Element or feature <strong>DFSMS</strong>hsm<br />

System impacts None<br />

6.3 Migration scratch queue for non-VSAM data set<br />

Prior to z/<strong>OS</strong> V1.8, during the migration of non-VSAM data sets, <strong>DFSMS</strong>hsm used<br />

considerable time doing the scratch operation from the L0 volume.<br />

With z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong>hsm is able to create a new task under the migration queue when<br />

migrating from L0 to tape that does the scratch activity (from scratch queue requests), so the<br />

performance is improved, as the requests are now handled asynchronously. If you have<br />

multiple migrate tasks, you have this new task to each one.<br />

This new process is applied when migrating conditions are:<br />

► From L0 volume<br />

► On command volume migration<br />

► On primary space management<br />

► On interval migration<br />

And are not applied when:<br />

► You are migrating a single data set.<br />

► During L1 to L2 migration - secondary space management.<br />

6.3.1 Individual data set restore for ARECOVER processing<br />

Aggregate Backup and Recovery Support (ABARS) facilitates a point-in-time backup of a<br />

collection of related data in a consistent manner. This group of related data is defined to<br />

ABARS as an aggregate. The backup copies are created in a device-independent format.<br />

During backup processing, the data is packaged as a single entity in preparation for taking it<br />

off-site. This enables the recovery of individual applications in user-priority sequence.<br />

ABARS has three components:<br />

► Aggregate group definition: The aggregate group lists the selection data set names,<br />

instruction data set name, and the management class for the aggregate. This component<br />

is implemented through the Interactive Storage Management Facility (ISMF) and requires<br />

the storage management subsystem (SMS) address space to be active.<br />

152 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


► Aggregate backup (ABACKUP): The ABACKUP command backs up a user-defined group<br />

(aggregate group) of data sets at that moment in time. This <strong>DFSMS</strong>hsm function also<br />

requires the SMS address space to be active. ABACKUP is capable to get data sets from<br />

user tapes, ML1, ML2, SMS, and Non-SMS volumes. See a simplified Aggregate backup<br />

(ABACKUP) flow in Figure 6-11.<br />

Figure 6-11 Simplified aggregate backup flow<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 153


► Aggregate recovery (ARECOVER): The ARECOVER command recovers data sets that<br />

were previously backed up by an aggregate backup. The SMS address space is not<br />

required, but it is highly recommended to simplify the recovery process. This address<br />

space is required to recover VSAM data sets in the ALLOCATE list and any extended<br />

format data sets. See a simplified aggregate backup (ARECOVER) flow in Figure 6-12.<br />

Figure 6-12 Simplified aggregate recover flow<br />

Prior to z/<strong>OS</strong> <strong>V1R8</strong> we were not able to select one single data set to recover. Now, we have<br />

additional keywords ONLYDATASET and LISTOFNAMES that make it possible.<br />

Figure 6-13 shows the keywords that were added to ARECOVER in <strong>DFSMS</strong>hsm 1.8.0.<br />

>>_ARECOVER...<br />

______________________________________________________________... ><<br />

| |<br />

|___ONLYDATASET___(_____NAME(dsname)___________________)_|<br />

|_ONLYDS______| | |<br />

|___LISTOFNAMES(listdsname)___|<br />

|_LON______________________|<br />

Figure 6-13 ARECOVER new keywords<br />

The optional ONLYDATASET parameter allows you to recover individual data sets from an<br />

aggregate backup version. You can specify a single fully qualified data set name using the<br />

NAME(dsname) parameter of ONLYDATASET to recover a particular data set.<br />

To recover multiple data sets, you can supply the name of a data set that contains a list of<br />

data set names to be recovered on the LISTOFNAMES(listdsname) parameter of<br />

ONLYDATASET. The LISTOFNAMES data set must be a sequential data set, fixed-block,<br />

154 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ecord size of 80, and be cataloged. The LISTOFNAMES data set should contain one fully<br />

qualified data set name per record.<br />

The abbreviation for ONLYDATASET is ONLYDS and the abbreviation for LISTOFNAMES is<br />

LON.<br />

For more details about these new keywords, refer to <strong>DFSMS</strong>hsm Storage Administration<br />

Guide, SC26-0421.<br />

First you need a valid ABACKUP file. So, to accomplish that, you should have an ABARS<br />

environment prepared to do backup and recovery. We do not show in this book how to set up<br />

the ABARS function.<br />

To reach ABARS panels under ISMF, go to the ISMF main panel and choose 9 Aggregate<br />

Group. Check whether you have storage administrator privileges (on the main panel select<br />

option 0, then option 0, and then option 2 for Storage Admin) or you will be able to list only.<br />

After that, choose option 5, Abackup - Backup an Aggregate Group. Figure 6-14 and<br />

Figure 6-15 on page 156 show the AGGREGATE GROUP BACKUP panels used to do this<br />

preparation.<br />

Panel Utilities Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP BACKUP Page 1 of 2<br />

Command ===><br />

CDS Name : ACTIVE<br />

Aggregate Group Name . . MHLRES4<br />

Unit Name . . . . . . . .<br />

� Processing Option . . . . 1 (1=Verify, 2=Execute)<br />

� Wait for Completion . . . N (Y or N)<br />

Stack / Nostack . . . . . (S=STACK, N=N<strong>OS</strong>TACK or blank)<br />

Optimize . . . . . . . . 3 (1 to 4 or blank)<br />

Delete Data Sets After Abackup . . N (Y or N)<br />

Filter Output Data Set Name (1 to 44 Characters)<br />

� ===> 'MHLRES4.ABARS.OUTPUT'<br />

Enter "/" to select option<br />

Process only � / L0 ML1 ML2 USERTAPE<br />

Use ENTER to Continue;<br />

Figure 6-14 Output 1 of 2 about creating a AGGREGATE GROUP BACKUP<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 155


To prepare our backup, we choose in the first panel (Figure 6-14 on page 155) the<br />

parameters:<br />

► � and �, which are self-explanitory.<br />

► �, which will be a file that will receive our output results.<br />

► �, which is a slash before L0, so this specific backup selects from the filter list only data<br />

sets from L0.<br />

At anytime, using the panel, you can choose Help (usually pre-set as PF1).<br />

Attention: If you are a first-time TSO user, issue a PFSHOW ON/OFF or FKA ON/OFF to<br />

check your predefined PF Keys.<br />

Panel Utilities Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP BACKUP Page 2 of 2<br />

Command ===><br />

<strong>DFSMS</strong>hsm Command and Processing Option:<br />

NOWAIT ABACKUP MHLRES4 VERIFY<br />

FILTEROUTPUTDATASET('MHLRES4.ABARS.OUTPUT')<br />

OPTIMIZE(3) PONLY(L0)<br />

Enter 1 to Submit <strong>DFSMS</strong>hsm ABACKUP COMMAND<br />

Enter 2 to Save Generated ABACKUP PARAMETERS<br />

Select Option . . 1 (1=SUBMIT, 2=SAVE)<br />

Use ENTER to Perform Selection;<br />

Figure 6-15 Output 2 of 2 about creating a AGGREGATE GROUP BACKUP<br />

It is a good practice to use the VERIFY option, as shown in Figure 6-15. After the VERIFY,<br />

check the results and do any required adjustments. Run the VERIFY option until you get a RC<br />

00 as a result. After that, change the option to EXECUTE (2). You can use the EXECUTE<br />

option directly.<br />

Figure 6-16 on page 157 shows where you are going to find the ACTIVITY LOG from<br />

ABACKUP function.<br />

156 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ARC6054I AGGREGATE BACKUP STARTING FOR AGGREGATE GROUP<br />

ARC6054I (CONT.) MHLRES4, AT 19:16:35,<br />

ARC6054I (CONT.) STARTED TASK = DFHSMABR.ABAR0135<br />

ARC6030I ACTIVITY LOG FOR AGGREGATE GROUP MHLRES4 WILL BE<br />

ARC6030I (CONT.) ROUTED TO<br />

ARC6030I (CONT.) HSMACT.H2.ABACKUP.MHLRES4.D07051.T191635<br />

COMMAND REQUEST 00000018 SENT TO <strong>DFSMS</strong>HSM<br />

Figure 6-16 Support information where your dynamically allocated ACTIVITY LOG file is placed<br />

Figure 6-17 shows you a sample of the ACTIVITY LOG from ABARS.<br />

PAGE 0001 Z/<strong>OS</strong> <strong>DFSMS</strong>HSM 1.8.0 DATA FACILITY HIERARCHICAL STORAGE MANAGER<br />

07.051 19:16<br />

ARC6000I ABACKUP MHLRES4 EXECUTE FILTEROUTPUTDATASET('MHLRES4.ABARS.OUTPUT')<br />

OPTIMIZE(3) PONLY(L0 )<br />

ARC6054I AGGREGATE BACKUP STARTING FOR AGGREGATE GROUP MHLRES4, AT 19:16:35,<br />

STARTED TASK = DFHSMABR.ABAR0135<br />

ARC6030I ACTIVITY LOG FOR AGGREGATE GROUP MHLRES4 WILL BE ROUTED TO<br />

HSMACT.H2.ABACKUP.MHLRES4.D07051.T191635<br />

ARC6379I THE MANAGEMENT CLASS CONSTRUCTS USED IN THE AGGREGATE GROUP, MHLRES4,<br />

ARE:<br />

CLASS NAME : MCDB22<br />

DESCRIPTION:<br />

MGMT CLASS FOR DB2 TS<br />

EXPIRATION ATTRIBUTES<br />

EXPIRE AFTER DAYS NON-USAGE: NOLIMIT<br />

EXPIRE AFTER DATE/DAYS : NOLIMIT<br />

...<br />

...<br />

ARC6004I 0079 ABACKUP DATA SET FILTERING IS COMPLETE. 18 OF 18 DATA SETS WERE<br />

SELECTED: 0 FAILED SERIALIZATION AND 0<br />

ARC6004I 0079 ABACKUP FAILED FOR<br />

PAGE 0002 Z/<strong>OS</strong> <strong>DFSMS</strong>HSM 1.8.0 DATA FACILITY HIERARCHICAL STORAGE MANAGER<br />

07.051 19:16<br />

ARC6004I 0079 ABACKUP OTHER REASONS.<br />

ARC6004I 0079 ABACKUP ADR454I (001)-DTDSC(01), THE FOLLOWING DATA SETS WERE<br />

SUCCESSFULLY PROCESSED �<br />

ARC6004I 0079 ABACKUP MHLRES4.SC64.SPFLOG2.LIST<br />

ARC6004I 0079 ABACKUP MHLRES4.JCL.CNTL<br />

ARC6004I 0079 ABACKUP MHLRES4.SC63.ISPF42.ISPPROF<br />

...<br />

...<br />

ARC6071I VOLUMES USED FOR INSTRUCTION/ACTIVITY LOG FILE<br />

MHLRES4.ABARS.OUTPUT.I.C01V0001 DURING AGGREGATE BACKUP FOR<br />

AGGREGATE GROUP MHLRES4 ARE:<br />

TST022 �<br />

ARC6051I AN INSTRUCTION DATA SET WAS NOT SPECIFIED FOR AGGREGATE GROUP MHLRES4<br />

ARC6055I AGGREGATE BACKUP HAS COMPLETED FOR AGGREGATE GROUP MHLRES4, AT<br />

19:18:08, RETCODE = 000<br />

Figure 6-17 ACTIVITY LOG containing information about the current ABACKUP execution<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 157


In this ACTIVITY LOG (Figure 6-17 on page 157) you will find � files that you saved at this<br />

time and the tape you used �, among other information.<br />

The output data set that you chose on the first panel on the ABACKUP function (see<br />

Figure 6-14 on page 155, �) is similar to the one shown in Figure 6-18.<br />

000001 FILTEROUTPUTDATASET LIST FOR AGGREGATE GROUP MHLRES4,<br />

000002 VERSION 0001, CREATED ON 2007/02/20 AT 19:16:35<br />

000003<br />

000004 THE FOLLOWING DATA SETS WERE SPECIFIED IN THE INCLUDE LIST:<br />

000005 MHLRES4.ABARS.OUTPUT VOLSER= MLD30C<br />

000006 MHLRES4.ABARS.SELECT VOLSER= MLD30C<br />

000007 MHLRES4.BRODCAST VOLSER= SBOX88<br />

000008 MHLRES4.JCL.CNTL VOLSER= MLD20C<br />

000009 MHLRES4.LIST VOLSER= MLD50C<br />

000010 MHLRES4.LOG.MISC VOLSER= SBOX88<br />

000011 MHLRES4.SC63.ISPF42.ISPPROF VOLSER= MLD20C<br />

000012 MHLRES4.SC64.SPFLOG1.LIST VOLSER= MLD20C<br />

000013 MHLRES4.SC64.SPFLOG2.LIST VOLSER= MLD00C<br />

000014 MHLRES4.SC64.SPFLOG3.LIST VOLSER= MLD30C<br />

000015 MHLRES4.SC64.SPFTEMP2.CNTL VOLSER= SBOX88<br />

000010 MHLRES4.SC63.ISPF42.ISPPROF VOLSER= MLD20C<br />

...<br />

...<br />

000022 MHLRES4.TCPIP.PROFILE VOLSER= SBOX88<br />

000023 A TOTAL OF 000018 DATA SETS SPECIFIED IN THE INCLUDE LIST WERE SELECTED.<br />

Figure 6-18 Print panel from MHLRES4.ABARS.OUTPUT used on out test<br />

Note: Not all panels were used from all available. On some panels, pressing DOWN, you<br />

have more options.<br />

Now, let us do the ARECOVER choosing just one data set. Note that the first panel has a new<br />

line:<br />

Recover Individual Data Sets. Y (Y or N)<br />

See � in Figure 6-19 on page 159.<br />

To get this panel, go to the ISMF main panel, then choose option 9. Aggregate Group and<br />

after that option 6. Arecover - Recover an Aggregate Group.<br />

158 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 6-19 shows panel 1 of 8 from AGGREGATE GROUP RECOVER.<br />

Panel Utilities Scroll Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP RECOVER Page 1 of 8<br />

Command ===><br />

�Abackup Control Dataset . . 'MHLRES4.ABARS.OUTPUT.C.C01V0001'<br />

(1 to 44 Characters)<br />

Xmit . . . . . . . . . . . N (Y or N)<br />

Stack / Nostack . . . . . (S=STACK, N=N<strong>OS</strong>TACK or blank)<br />

Aggregate Group Name . . . .<br />

Date . . . . . . . . . . . (yyyy/mm/dd)<br />

Version . . . . . . . . . (1 to 9999)<br />

�Processing Option . . . . . 2 (1=Prepare, 2=Verify, 3=Execute)<br />

�Wait for Completion . . . . N (Y or N)<br />

Target GDG Data Set Status (A=ACTIVE, D=DEFERRED, R=ROLLEDOFF,<br />

S=SOURCE or blank)<br />

Volume Count . . . . . . . . (A=ANY or blank)<br />

Recover Instruction Data Set . . N (Y or N)<br />

Recover Activity Log . . . . . . N (Y or N)<br />

�Recover Individual Data Sets . . Y (Y or N)<br />

Use ENTER to Continue; Use DOWN to View Additional Options;<br />

Figure 6-19 ARECOVER panel 01 of 08<br />

In Figure 6-19, we used the ABACKUP CONTROL DATASET �field to specify the name of<br />

the aggregate group backup control file to be used for aggregate recovery.<br />

Other fields we choose on this test were:<br />

► � In a first step, we did a verify and after all checked, we choose Execute<br />

► � Usually we choose N here. If you choose Y for any reason, be advised that you will do<br />

a synchronous operation, so your session will be locked up until the end of the process.<br />

► � To demonstrate the new option, we choose Y.<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 159


Figure 6-20 shows panel 2 of 8 from AGGREGATE GROUP RECOVER.<br />

Panel Utilities Scroll Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP RECOVER Page 2 of 8<br />

Command ===><br />

ABACKUP CONTROL DATASET: 'MHLRES4.ABARS.OUTPUT.C.C01V0001'<br />

Model Entity . . . .<br />

Target Unit Name . .<br />

Target Utilization Percentage . . (1 to 100)<br />

Figure 6-20 ARECOVER panel 2 of 8<br />

In Figure 6-20 we choose � Y for the Backup Migrated Data Sets field to indicate whether<br />

you want to cause a backup of all data sets that were successfully recovered to ML1 DASD<br />

volumes the next time automatic backup is run. �For New Migration Level choose 3 to<br />

indicate that migrated data sets are to be recovered to the same migration level as the<br />

original data set from the aggregate backup site. Specify N for � Rename Selected Data<br />

Sets so on this test, your recovered data set is not renamed. Specify N � for the Specify<br />

Conflict Resolution Option field to indicate whether you want to specify the action to be taken<br />

when a like-named data set conflict occurs.<br />

160 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

(1 to 44 Characters)<br />

�Backup Migrated Data Sets . . . . Y (Y or N)<br />

�New Migration Level . . . . . . . 3 (1=ML1, 2=ML2, 3=SOURCELEVEL)<br />

Rename All to High Level Qualifier . . (1 to 8 characters)<br />

�Rename Selected Data Sets . . . . . . . N (Y or N)<br />

�Specify Conflict Resolution Option . . N (Y or N)<br />

Use ENTER to Continue; Use UP to View Previous Options;


Figure 6-21 shows panel 3 of 8 from AGGREGATE GROUP RECOVER. It lets you choose<br />

your unit name � and tape volume �.<br />

Panel Utilities Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP RECOVER Page 3 of 8<br />

Command ===><br />

Abackup Control Dataset: 'MHLRES4.ABARS.OUTPUT.C.C01V0001'<br />

Unit Name . . 3590-1 �<br />

Volumes ===> TST022 �===> ===> ===><br />

===> ===> ===> ===><br />

===> ===> ===> ===><br />

===> ===> ===><br />

Use ENTER to Continue;<br />

Figure 6-21 ARECOVER panel 03 of 08<br />

In Figure 6-17 on page 157 you have information about the volume that was used to save<br />

your data. This information is duplicated here � in Figure 6-22.<br />

...<br />

...<br />

ARC6071I VOLUMES USED FOR INSTRUCTION/ACTIVITY LOG FILE<br />

MHLRES4.ABARS.OUTPUT.I.C01V0001 DURING AGGREGATE BACKUP FOR<br />

AGGREGATE GROUP MHLRES4 ARE:<br />

� TST022<br />

...<br />

...<br />

Figure 6-22 The tape volume that was used in our demonstration<br />

We jump to panel 7 of 8, but you have more options on panels that were not shown. It is your<br />

decision as to whether you need these extra options. To complete our test, we do not.<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 161


Figure 6-23 shows you panel 7 of 8 from AGGREGATE GROUP RECOVER. Here you can<br />

choose one specific data set to restore.<br />

Panel Utilities Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP RECOVER Page 7 of 8<br />

Command ===><br />

ABACKUP CONTROL DATASET:<br />

'MHLRES4.ABARS.OUTPUT.C.C01V0001'<br />

Specify Data Set Name for Individual Recovery:<br />

� Single Data Set Name . . . . 'MHLRES4.SC64.SPFTEMP2.CNTL'<br />

(1 to 44 Characters)<br />

� List Of Names Data Set . . .<br />

(1 to 44 Characters)<br />

Use ENTER to Continue;<br />

Figure 6-23 ARECOVER panel 7 of 8<br />

In Figure 6-23, you can choose from � and specify one data set to recover (this is our test at<br />

this time) or from � and specify the name of the data set that consists of names in the<br />

aggregate group to be used for recovery.<br />

For the List Of Names Data Set you can specify at � (Figure 6-23), there are the following<br />

rules:<br />

► Must be a sequential file<br />

► Can be fixed format, block size=80 and length=80 or fixed blocked format, any multiple of<br />

80, length=80<br />

► Must be cataloged<br />

► Only fully qualified data set names accepted<br />

► PDS member name not accepted<br />

► GDG data sets - only fully qualified accepted (no relative generation here)<br />

► Aliases not supported<br />

162 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Panel 8 of 8 from AGGREGATE GROUP RECOVER on Figure 6-24 shows you the set of<br />

commands that <strong>DFSMS</strong>hsm executes through the ABARS task.<br />

Panel Utilities Help<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

AGGREGATE GROUP RECOVER Page 8 of 8<br />

Command ===><br />

<strong>DFSMS</strong>hsm Command and Processing Option:<br />

NOWAIT ARECOVER<br />

EXECUTE<br />

DATASETNAME('MHLRES4.ABARS.OUTPUT.C.C01V0001')<br />

MIGRATEDDATA(SOURCELEVEL)<br />

UNIT(3590-1) VOLUMES(...)<br />

ONLYDATASET(NAME('MHLRES4.SC64.SPFTEMP2.CNTL'))<br />

Enter 1 to Submit <strong>DFSMS</strong>hsm ARECOVER COMMAND<br />

Enter 2 to Save Generated ARECOVER PARAMETERS<br />

Select Option . . 1 (1=SUBMIT, 2=SAVE)<br />

Use ENTER to Perform Selection;<br />

Figure 6-24 ARECOVER panel 8 of 8<br />

After this recovery, you see a message like the one in Figure 6-25 telling you about your<br />

success by RETCODE = 000. It will be shown on your current session and will be recorded in<br />

the recover log. For details about how the recover log name is created, see Table 6-3 on<br />

page 164.<br />

ARC6103I AGGREGATE RECOVERY HAS COMPLETED FOR AGGREGATE<br />

ARC6103I (CONT.) GROUP MHLRES4,<br />

ARC6103I (CONT.) USING CONTROL FILE DATA SET<br />

ARC6103I (CONT.) MHLRES4.ABARS.OUTPUT.C.C01V0001,<br />

ARC6103I (CONT.) AT 20:24:37, RETCODE = 000<br />

ARC1000I MHLRES4.ABARS.OUTPUT.C.C01V0001 ARECOVER PROCESSING ENDED<br />

Figure 6-25 Message indicating ARECOVER PROCESSING ENDED<br />

Note: Only the main panels from the ARECOVER were shown here. You can navigate<br />

there and see all other options.<br />

You can receive other messages, indicating a failure or a non-ZERO return code. In this case,<br />

you can search on your environment the high level qualifier HSMACT. This is the default used<br />

by <strong>DFSMS</strong>hsm DASD activity logs. It may be the case that in your installation, it had been<br />

changed using a patch. Check with your <strong>DFSMS</strong>hsm administrator about that. In our case,<br />

the recover log was recorded in data set<br />

HSMACT.H2.ARECOVER.MHLRES4.D07051.T202329. See the Table 6-3 on page 164<br />

about the conventions used for activity log names. If you want more details regarding this<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 163


point, see the manual <strong>DFSMS</strong>hsm Implementation and Customization Guide, SC35-0418,<br />

under the topic “Controlling the Device Type for the Activity Logs.”<br />

Table 6-3 provides details about the activity log data sets names conventions.<br />

Table 6-3 Type of activity log name<br />

ABARS mcvtactn.Hmcvthost.function.agname.Dyyddd.Thhmmss<br />

All other types mcvtactn.Hmcvthost.function.Dyyddd.Thhmmss<br />

mcvtactn Activity log high-level qualifier (in our test, HSMACT (This is the default.))<br />

H, D, and T Constants<br />

mcvthost Identifier for the <strong>DFSMS</strong>hsm host that creates these activity logs<br />

function ABACKUP, ARECOVER, CMDLOG, BAKLOG, DMPLOG, or MIGLOG<br />

agname Aggregate group name<br />

yyddd Year and day of allocation<br />

hhmmss Hour, minute, and second of allocation<br />

Messages<br />

With z/<strong>OS</strong> <strong>DFSMS</strong> V1.8 there are updated messages and a new one, ARC6411E. See<br />

details on Table 6-4.<br />

Table 6-4 Changed messages<br />

ARC6173E Added LOCATE (indicating the data set not cataloged) and OBTAIN (indicating the<br />

data set received an OBTAIN error).<br />

ARC6309E Added LISTOFNAMES keyword and explanation.<br />

ARC6310E Added LISTOFNAMES keyword and explanation.<br />

ARC6311I Added LISTOFNAMES keyword and explanation and change the type code from “E”<br />

to “I”.<br />

ARC6312I Added LISTOFNAMES keyword and explanation and change the type code from “E”<br />

to “I”.<br />

| ARC6411E Data set data-set-name1 specified on the ONLYDATASET with the NAME parameter<br />

on ARECOVER command is not identified as being part of the aggregate group being<br />

recovered.<br />

For more details about messages in Table 6-4, refer to z/<strong>OS</strong> MVS System Messages Vol 2<br />

(ARC-ASA), SA22-7632.<br />

Coexistence and migration<br />

The new algorithm of ARECOVER on z/<strong>OS</strong> V1.8 made it possible to specify a single fully<br />

qualified data set name to recover from an AGGREGATE GROUP. See Table 6-5 for details.<br />

Table 6-5 Coexistence table for ARECOVER new option<br />

Element or feature <strong>DFSMS</strong>hsm<br />

When change was introduced z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Applies to migration from None<br />

164 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Element or feature <strong>DFSMS</strong>hsm<br />

Timing After the first IPL of z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Is the migration action required? None<br />

Target system hardware requirements None<br />

Target system software requirements None<br />

Other system (coexistence or fallback)<br />

requirements<br />

6.4 New command ALTERPRI<br />

None<br />

Restrictions None<br />

System impacts None<br />

There is a new <strong>DFSMS</strong>hsm command, ALTERPRI, to alter the priority of queued requests.<br />

You can alter the priority of the following request types:<br />

► ABACKUP<br />

► ARECOVER<br />

► BACKDS<br />

► BACKVOL<br />

► DELETE<br />

► FRBACKUP<br />

► FREEVOL<br />

► FRRECOV<br />

► MIGRATE<br />

► RECALL<br />

► RECOVER<br />

You cannot alter the priority of BACKVOL CDS commands and requests that have already<br />

been selected for processing. You should use the ALTERPRI command to alter the priority of<br />

queued requests on an as-needed basis. You should not use this command as the primary<br />

means of assigning priority values to new requests.<br />

There are two options of priority here:<br />

► The HIGH parameter, which is the default, alters the specified request so that it has the<br />

highest priority on its respective queue.<br />

► Conversely, the LOW parameter alters the request so that it has the lowest priority on its<br />

respective queue.<br />

The mutually exclusive REQUEST, USER, or DATASETNAME parameters indicate which<br />

requests <strong>DFSMS</strong>hsm should re-prioritize. Use the QUERY REQUEST command to<br />

determine the request number to issue on the ALTERPRI command. <strong>DFSMS</strong>hsm<br />

re-prioritizes all queued requests that match the REQUEST, USERID, or DATASETNAME<br />

criteria specified on the ALTERPRI command.<br />

To re-prioritize a recall request on the Common Recall Queue, issue the ALTERPRI<br />

command on the same host that originated the recall request.<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 165


Figure 6-26 shows ALTERPRI syntax.<br />

>>__ALTERPRI__ _REQUEST(reqnum)___________ __ __________ ___________><<br />

|_USERID(userid)____________| | _HIGH_ |<br />

|__ _DATASETNAME_ _(dsname)_| |_|_LOW__|_|<br />

|_DSNAME______|<br />

Figure 6-26 Output of ALTERPRI command keywords<br />

The following command alters all requests for a particular data set so that they have the<br />

highest priority on their respective queues:<br />

ALTERPRI DATASETNAME(dsname)<br />

The following command alters all requests with a particular request number so that they have<br />

the highest priority on their respective queue:<br />

ALTERPRI REQUEST(reqnum) HIGH<br />

The following command alters all requests issued by a particular user so that they have the<br />

lowest priority on their respective queues:<br />

ALTERPRI USERID(userid) LOW<br />

Figure 6-27 shows the result of a query command, See that MHLRES4.TCPIP.PROFILE � is<br />

in the last position in the recall queue.<br />

-F DFHSM64,Q REQUEST<br />

STC20554 ARC0101I QUERY REQUEST COMMAND STARTING ON H<strong>OS</strong>T=2<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#1,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000211, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000000 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#2,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000212, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000001 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#3,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000213, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000002 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.TCPIP.PROFILE �,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000214, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000003 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

Figure 6-27 Output of command F DFHSM64,Q REQUEST before ALTERPRI<br />

166 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


To demonstrate our test, we issue an ALTERPRI command and move<br />

MHLRES4.TCPIP.PROFILE � (see Figure 6-27 on page 166) to the highest position.<br />

Figure 6-28 shows the results of the ALTERPRI command.<br />

00000290 F DFHSM64,ALTERPRI REQUEST(00000214) HIGH<br />

00000090 ARC0980I ALTERPRI REQUEST COMMAND STARTING<br />

00000090 ARC0982I RECALL MWE FOR DATA SET MHLRES4.TCPIP.PROFILE 546<br />

00000090 ARC0982I (CONT.) FOR USER MHLRES4, REQUEST 00000214, REPRIORITIZED TO<br />

00000090 ARC0982I (CONT.) HIGH<br />

00000090 ARC0981I ALTERPRI REQUEST COMMAND COMPLETED, RC=0000<br />

Figure 6-28 Output of F DFHSM64,ALTERPRI command<br />

After issuing the ALTERPRI command the file MHLRES4.TCPIP.PROFILE � is now on the<br />

top.<br />

Figure 6-29 shows the result of a QUERY command. Note that MHLRES4.TCPIP.PROFILE<br />

� is the first one to recall.<br />

-F DFHSM64,Q REQUEST<br />

STC20554 ARC0101I QUERY REQUEST COMMAND STARTING ON H<strong>OS</strong>T=2<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.TCPIP.PROFILE �,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000214, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000000 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#1,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000211, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000001 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#2,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000212, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000002 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC1543I RECALL MWE FOR DATASET MHLRES4.DUMP.OUT.#3,<br />

ARC1543I (CONT.) FOR USER MHLRES4, REQUEST 00000213, WAITING TO BE<br />

ARC1543I (CONT.) PROCESSED ON A COMMON QUEUE,00000003 MWES AHEAD OF<br />

ARC1543I (CONT.) THIS ONE<br />

STC20554 ARC0101I QUERY REQUEST COMMAND COMPLETED ON H<strong>OS</strong>T=2<br />

Figure 6-29 Output of F DFHSM64,Q REQUEST after the ALTERPRI command<br />

The first recall results after changing the queue priority are shown in Figure 6-30.<br />

ARC1000I MHLRES4.TCPIP.PROFILE RECALL PROCESSING ENDED<br />

ARC0612I VOLUME MOUNT ISSUED FOR RECALL OR RECOVER OF MHLRES4.DUMP.OUT.#1<br />

Figure 6-30 Output of first results after change the recall priority<br />

For more details about this command, you can refer to z/<strong>OS</strong> <strong>V1R8</strong>.0 <strong>DFSMS</strong> Storage<br />

Administration Reference (for <strong>DFSMS</strong>hsm, <strong>DFSMS</strong>dss, <strong>DFSMS</strong>dfp).<br />

Chapter 6. <strong>DFSMS</strong>hsm enhancements 167


Protecting ALTERPRI command<br />

Each storage administrator command can be protected through the following fully qualified<br />

discrete FACILITY class profile:<br />

STGADMIN.ARC.command<br />

In this case, a security administrator can create the fully qualified, discrete profile to authorize<br />

this command to storage administrators:<br />

STGADMIN.ARC.ALTERPRI<br />

You can find more details like the entire command list and specific RACF profiles in the<br />

manual <strong>DFSMS</strong>hsm Implementation and Customization Guide, SC35-0418.<br />

Tip: Search for ALTERPRI in the <strong>DFSMS</strong>hsm Implementation and Customization Guide,<br />

SC35-0418. You will find an item about protecting the <strong>DFSMS</strong>hsm FACILITY.<br />

Coexistence and migration<br />

See Table 6-6 for details.<br />

Table 6-6 Coexistence table for ALTERPRI new command<br />

Element or feature <strong>DFSMS</strong>hsm<br />

When change was introduced z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Applies to migration from None<br />

Timing After the first IPL of z/<strong>OS</strong> <strong>V1R8</strong>.0<br />

Is the migration action required? None<br />

Target system hardware requirements None<br />

Target system software requirements None<br />

Other system (coexistence or fallback)<br />

requirements<br />

168 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

None<br />

Restrictions None<br />

System impacts None


Chapter 7. <strong>DFSMS</strong>hsm fast replication<br />

The <strong>DFSMS</strong>hsm fast replication function in <strong>DFSMS</strong> <strong>V1R8</strong> allows you to dump fast replication<br />

backup copies to tape (through operator commands or automatic dump processing), and<br />

allows you to restore individual data sets from copy pool backup copies.<br />

The following topics are covered:<br />

► Fast replication review<br />

► Backup and recovery of copy pools<br />

► Tape support<br />

► Data set recovery<br />

► Reporting on the <strong>DFSMS</strong>hsm fast replication environment<br />

► Security for <strong>DFSMS</strong>hsm fast replication<br />

► Audit and error recovery<br />

7<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 169


7.1 Fast replication overview<br />

Point in time is the appearance of an almost instantaneous volume copy.<br />

Fast Data Replication occurs so fast because it builds a map, with pointers, to the source<br />

volume tracks or extents. There is no longer a need to wait for the physical copy to complete<br />

before applications can resume their access to the data. Both the source and target data are<br />

available for read/write access almost immediately, while the copy process continues in the<br />

background. This process guarantees that the contents of the target volume are an exact<br />

duplicate of the source volume at that point in time. You can back up, recover to, and resume<br />

processing from that point in time.<br />

Point-in-time copy is a mirroring technology that provides an instant copy of the data. It is a<br />

duplication of source files by means of mirrored disks. In other words, all data residing on disk<br />

is mirrored to another disk residing on the same storage subsystem. Most 24x7 database<br />

operations require a mirror solution. It has no impact on application performance, and<br />

provides immediate access to a copy of the mirrored data. This access to a copy of mirrored<br />

data, which can be obtained by various techniques with a minimal impact on mirroring, is one<br />

of the main returns on investment that many companies practice.<br />

Point-in-time copy is also known as a T0 (time-zero) copy. After the copy is finished, the<br />

connection between source and mirror is split off. The mirror can be mounted to another host<br />

and can be used for backup and recovery purposes.<br />

A Split of a Continuous Mirror is caused by the creation and maintenance of a mirror<br />

relationship between the source and the target volumes. This relationship occurs on-site, as<br />

opposed to a remote environment. The target volume is not accessible until a split or detach<br />

of the mirror relationship is initiated. A Split of a Continuous Mirror guarantees that the<br />

contents of the target volume are an exact duplicate of the source volume at the point in time<br />

where the split occurs. After the split is complete, you can back up, recover to, and resume<br />

processing from that point in time.<br />

In the past, volume level point-in-time copies have been used almost exclusively as disaster<br />

recovery backups. With new software services that are available, these copies, clones, or<br />

mirrors can be used for job restart, data mining, and application testing.<br />

Point-in-time hardware support<br />

The <strong>DFSMS</strong>hsm fast replication line item supports the volume-level FlashCopy® function of<br />

the <strong>IBM</strong> System Storage DS8000, <strong>IBM</strong> TotalStorage Enterprise Storage Server® (ESS)<br />

DASD, SnapShot feature of the <strong>IBM</strong> RAMAC® Virtual Array (RVA) and STK Shared Virtual<br />

Array (SVA), and any other DASD that support FlashCopy APIs.<br />

Note: Appropriate microcode levels may be required to activate these features on the<br />

storage device.<br />

The process of creating a point-in-time copy has two phases. The first phase completes in a<br />

few seconds by constructing a map to describe the source volume.<br />

At the completion of this first phase, the data has been cloned and both the source and target<br />

volumes are available for read and write access. From the user’s perspective, the source and<br />

target volumes’ contents are an exact duplicate at this point in time, even though actual<br />

copying of data has not actually been initiated.<br />

The second phase consists of copying the physical source volume data to the target volume.<br />

The point-in-time copy is maintained and preserved by an on-demand copy of the data to the<br />

170 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


7.1.1 FlashCopy<br />

target volume. When an update request has been issued for either a source or target volume<br />

data set that has not yet been copied to the target volume, the Fast Data Replication tool<br />

immediately copies the data from the source volume to the target volume before the update is<br />

applied. The possible situations are:<br />

► Read request to the source volume<br />

The data is read from the source volume.<br />

► Read request to the target volume<br />

If the data has already been copied from the source volume to the target volume, the data<br />

is read from the target volume. If the data has not yet been copied to the target volume,<br />

the data is read from the source volume.<br />

► Write request to the source volume<br />

If the data has already been copied from the source volume to the target volume, this<br />

results in a normal write to source volume. However, if the data has not yet been copied<br />

from the source volume to the target volume, the data will be copied from the source<br />

volume to the target volume before the source volume update occurs.<br />

► Write request to the target volume<br />

If the data has already been copied from the source volume to the target volume, the write<br />

request results in a normal write to the target volume. However, if the data has not yet<br />

been copied from the source volume to the target volume, the data will be copied to the<br />

target volume before the target volume update occurs.<br />

FlashCopy provides a point-in-time copy of a logical volume, with almost instant availability<br />

for the application of both the source and target volumes. Only a minimal interruption is<br />

required for the FlashCopy relationship to be established, so the copy operation can be<br />

initiated. The copy is then created in the background by the <strong>IBM</strong> TotalStorage ESS, with<br />

minimal impact on other ESS activities.<br />

Note: FlashCopy is an optional feature that must be enabled in the DS8000.<br />

FlashCopy: background copy<br />

By default, FlashCopy performs a background copy. The background copy task makes a<br />

physical copy of all tracks from the source volume to the target volume. De-staging<br />

algorithms are used to efficiently manage the background ESS copy process. The<br />

background copy task runs at a lower priority than normal I/O on the ESS, so as not to affect<br />

the normal application I/O processing.<br />

The ESS, using the metadata structure that was created during establish, keeps track of<br />

which data has been copied from the source to the target and manages the integrity of both<br />

copies. If an application wants to read some data from the target that has not yet been<br />

copied, the data is read from the source. Otherwise, the read can be satisfied from the target<br />

volume.<br />

Before updating a not-yet-copied track on the source volume, the ESS performs an on<br />

demand copy of the track to the target volume. Subsequent reads to this track on the target<br />

volume are satisfied from the target volume.<br />

Before updating a not-yet-copied track on the target volume, the ESS performs an on<br />

demand copy of this track to the target volume. This on demand activity is done<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 171


asynchronously after the host has received I/O completion (after the data is written in cache<br />

and NVS), so host I/O is not delayed.<br />

After some time, when all tracks have been copied to the target volume, the FlashCopy<br />

relationship automatically ends unless the persistent FlashCopy option was specified.<br />

As Figure 7-1 illustrates, a FlashCopy relationship goes through three stages:<br />

► Establishing the relationship<br />

► Copying the data<br />

► Terminating the relationship<br />

Time Source Target<br />

Figure 7-1 FlashCopy with background copy<br />

FlashCopy: no background copy<br />

When selecting not to perform the background copy, the relationship is established but the<br />

background copy task — of all source volume tracks — is not initiated. Only the source tracks<br />

that receive application updates are copied to the target. Before updating a track on the<br />

source volume, the ESS performs an on demand copy of the track to the target volume, thus<br />

preserving the T0 copy. Similarly, before updating a track on the target volume, the ESS<br />

performs an on demand copy of this track to the target volume.<br />

A FlashCopy relationship that was established selecting no-background remains active until<br />

one of the following occurs:<br />

► An explicit FlashCopy withdraw is done to terminate the relationship.<br />

► All source device tracks have been copied on the target device because they were all<br />

updated.<br />

► All target device tracks have been updated by user applications.<br />

172 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Write Read<br />

Bitmap<br />

FlashCopy requested<br />

FlashCopy relationship is<br />

established<br />

Both source and target volumes<br />

immediately available<br />

Read and write to both source and<br />

target volumes possible<br />

When copy is complete,<br />

relationship between<br />

source and target ends


When a no-background copy FlashCopy relationship is terminated, the target volume is left in<br />

an indeterminate state. Some of the tracks on the volume may contain data from the source<br />

volume, while other tracks may contain residual data that was on the target volume before the<br />

copy. The volume should not be used in these conditions unless it is reformatted or used for<br />

another copy operation.<br />

FlashCopy Version 1<br />

FlashCopy V1 is invoked at volume level. The following considerations apply:<br />

► The source and target volumes must have the same track format.<br />

► The target volume must be as large as the source volume.<br />

► The source and target volumes must be within the same ESS logical subsystem (LSS).<br />

► A source and a target volume can only be involved in one FlashCopy relationship at a<br />

time.<br />

As soon as a FlashCopy establish command is issued (either invoked by a TSO command,<br />

the <strong>DFSMS</strong>dss utility, the ANTRQST macro, or by means of the ESS Copy Services Web<br />

user interface (WUI)), the ESS establishes a FlashCopy relationship between the target<br />

volume and the source volume.<br />

FlashCopy Version 2<br />

FlashCopy Version 2 supports all of the FlashCopy V1 functions plus these enhancements:<br />

► FlashCopy V2 can be used for data set copies, as well as volume copies.<br />

► The source and target of a FlashCopy can be on different LSSs within a DS8000 or an<br />

ESS.<br />

► Multiple FlashCopy relationships are allowed.<br />

► Incremental copies are possible.<br />

► Inband commands can be sent over PPRC links to a remote site.<br />

► FlashCopy consistency groups can be created.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 173


In addition, there has been a reduction in the FlashCopy establish times. Figure 7-2<br />

compares the features of FlashCopy Version 1 and FlashCopy Version 2.<br />

Restriction: When you are using FlashCopy Version 1, any subsequent FRBACKUP<br />

COPYPOOL command that is issued against the same copy pool or against another copy<br />

pool with a common storage group before all of the background copies are complete<br />

causes the command to fail. This restriction does not exist for FlashCopy Version 2<br />

because a source volume can be in multiple concurrent relationships.<br />

Background<br />

Copy Mode<br />

Disposition<br />

Data Movement<br />

Relationship(s)<br />

Granularity<br />

Data Set<br />

Source/Target<br />

Boundries<br />

Figure 7-2 FlashCopy V1 and FlashCopy V2 comparison<br />

7.1.2 <strong>DFSMS</strong>hsm fast replication<br />

<strong>DFSMS</strong>hsm was enhanced in z/<strong>OS</strong> <strong>DFSMS</strong> V1.5 to manage full volume fast replication<br />

backup versions. <strong>DFSMS</strong>hsm fast replication supports both FlashCopy Version 1 and<br />

FlashCopy Version 2.<br />

Copy pool constructs<br />

Copy pools are defined through a new SMS construct named copy pool. This construct<br />

enables customers to define which storage group should be processed collectively for fast<br />

replication functions and specifies how many backup versions of the pool <strong>DFSMS</strong>hsm should<br />

maintain. When the maximum number of versions has been reached, the oldest version is<br />

rolled off.<br />

SMS also introduced a copy pool backup storage group type that is used to define which<br />

volumes <strong>DFSMS</strong>hsm may use as the target volumes of the fast replication backup versions.<br />

174 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

FlashCopy V1<br />

Original<br />

COPY or<br />

NOCOPY<br />

FlashCopy V1<br />

<strong>Update</strong>d<br />

COPY, NOCOPY<br />

NOCOPY->COPY<br />

FlashCopy V2<br />

Lic 2.2.0<br />

COPY, NOCOPY<br />

NOCOPY->COPY<br />

Ended Ended / Persistent Ended / Persistent<br />

Full Full Full or Incremental<br />

Single Single Multiple<br />

Volumes, Tracks Volumes, Tracks Volumes, Tracks,<br />

Data Set<br />

Single Single Multiple<br />

Same LSS Same LSS Cross LSS<br />

Cross Cluster<br />

Applies to DS8000 and ESS models F10, F20, and 800


<strong>DFSMS</strong>hsm invokes the <strong>DFSMS</strong>dss COPY FULL function to perform a full volume copy of<br />

the data from the source devices in a copy pool to the target devices in a copy pool backup<br />

storage group.<br />

<strong>DFSMS</strong>hsm invokes the <strong>DFSMS</strong>dss physical data set COPY function to perform a fast<br />

replication recovery at the data set level from the target devices in a copy pool backup<br />

storage group to the source devices in a copy pool.<br />

Related <strong>DFSMS</strong>hsm commands<br />

Three new <strong>DFSMS</strong>hsm commands were being introduced in z/<strong>OS</strong> <strong>DFSMS</strong> V1.5 to support<br />

this new function:<br />

► FRBACKUP<br />

Create a fast replication backup version for each volume in a specified copy pool. This<br />

command is not supported as part of automatic backup or dump. It is invoked by entering<br />

the command at the operator console, HSEND TSO command, and batch or by a program<br />

through the ARCHSEND macro interface.<br />

► FRDELETE<br />

Delete one or more unneeded fast replication backup versions.<br />

► FRRECOV<br />

Use fast replication to recover a data set, single volume, or a pool of volumes from the<br />

managed backup versions.<br />

Note: Recovery can be performed at the volume or copy pool level, and since z/<strong>OS</strong><br />

<strong>DFSMS</strong> V1.8 at the data set level.<br />

ISMF is updated to support these enhancements to SMS. The <strong>DFSMS</strong>hsm LIST and QUERY<br />

commands and the ARCXTRCT macro are also modified to aid you in the use and monitoring<br />

of the fast replication backup versions.<br />

<strong>DFSMS</strong>dss support<br />

<strong>DFSMS</strong>hsm invokes <strong>DFSMS</strong>dss to invoke fast replication support. The control is returned to<br />

DFHSMhsm after the fast replication has been initiated for all of the volumes (within minutes).<br />

If a volume failed, <strong>DFSMS</strong>hsm messages are issued.<br />

<strong>DFSMS</strong>dss was enhanced to support the following functions:<br />

► Individual data set restore for extended format VSAM data sets, including extended format<br />

linear striped data sets, which are often used by DB2 customers.<br />

► Provides a new FASTREPLICATION(REQUIRED) keyword.<br />

► Callers of <strong>DFSMS</strong>hsm may specify the new <strong>DFSMS</strong>hsm keyword NOVTOCENQ to<br />

indicate no volume serialization (no reserve on the VTOC) to <strong>DFSMS</strong>dss.<br />

Note: The NOVTOCENQ must only be used when another utility, such as DB2, is<br />

providing the serialization. If it is used improperly, the results can be disastrous.<br />

► Bypass security verification options during full volume copy.<br />

What is a copy pool<br />

A copy pool is an SMS construct that defines which storage groups should be processed<br />

collectively by the <strong>DFSMS</strong>hsm function. A copy pool can contain the names of up to 256<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 175


storage groups that should be processed collectively for fast replication. An optional<br />

parameter can be used to specify how many backup versions of the pool <strong>DFSMS</strong>hsm should<br />

maintain.<br />

The name of this new construct may be up to 30 characters in length. The first character of<br />

the name can be an uppercase alphabetic or national character. Any of the remaining<br />

characters can be uppercase alphabetic, national, or numeric.<br />

When defining a copy pool, the individual source pool storage group names are recorded.<br />

The actual volumes that are associated with each storage group are retrieved during<br />

subsequent processing. Consequently, the volumes that are processed during a function,<br />

such as fast replication backup, may or may not be the same volumes that are associated<br />

with the storage group at the time the copy pool was established. For example, if one or more<br />

volumes are added to a storage group within a copy pool, then those volumes are processed<br />

as part of the next fast replication backup automatically. There is no need to update the copy<br />

pool definition unless storage groups are to be added or removed from the pool.<br />

An individual storage group may be associated with more than one copy pool. Due to<br />

implementation limitations, <strong>DFSMS</strong>hsm must limit to 50 the number of copy pools with which<br />

a storage group may be associated.<br />

As many as 85 backup versions may be maintained for each copy pool. Each version that is<br />

maintained requires a unique target volume for each source volume. If specifying five backup<br />

versions, then five target volumes must be available for each source volume that is<br />

associated with the copy pool. All target volumes must be available when the backup<br />

command is issued.<br />

With ESS FlashCopy Version 1, the source and target volumes must be in the same Logical<br />

Subsystem (LSS), which is limited to a maximum of 256 total volumes.<br />

With ESS FlashCopy Version 2, the source and target volumes may be in separate LSSs.<br />

Restriction: An individual storage group can be associated with more than one copy pool,<br />

but with no more than 50. Although you can include a storage group in multiple copy pools,<br />

<strong>IBM</strong> recommends against doing so when FlashCopy Version 1 is used as the fast<br />

replication utility. Each individual copy pool with its associated background copies for all of<br />

the volumes in the common storage group must process completely before the next copy<br />

pool can be processed. This processing can take several hours and prevents the volumes<br />

in the non-common storage groups in those copy pools from having a timely backup<br />

created. (FlashCopy Version 2 and SnapShot do not have this restriction.)<br />

Restriction: You can maintain as many as 85 backup versions for each copy pool. Each<br />

maintained version requires a unique target volume for each source volume. If you specify<br />

five dedicated versions, there must be five target volumes that are available for each<br />

source volume that is associated with the copy pool. All target volumes must be available<br />

when you issue the FRBACKUP COPYPOOL(cpname) PREPARE command. If the<br />

PREPARE function is not performed, the target volumes need not be available until the<br />

actual backup version is created.<br />

Restriction: With ESS FlashCopy Version 1, the source and target volumes must be in the<br />

same LSS, which is limited to 256 total volumes. Thus, for three unique versions, you<br />

could have up to 64 source volumes, leaving 192 volumes available as target volumes.<br />

The source volumes within a storage group can span logical and physical subsystems.<br />

176 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


What is a copy pool backup storage group<br />

SMS storage group types consist of Pool, VIO, Dummy, Tape, Object, and Object Backup. A<br />

new storage group type, copy pool backup, is introduced to specify candidate target volumes<br />

where the copies of the pool storage groups are kept.<br />

Volumes that are associated with the new copy pool backup storage group are for<br />

<strong>DFSMS</strong>hsm use. SMS SCDS validation fails if a copy pool backup storage group is assigned<br />

for allocation by the SMS ACS storage group selection routines.<br />

The SMS status of storage group and volume are used during data set allocation and<br />

end-of-volume extend. The SMS status of a copy pool backup storage group and volume are<br />

not used by <strong>DFSMS</strong>hsm during a fast replication request. (For example, a status of Disable<br />

New or Disable All does not prevent <strong>DFSMS</strong>hsm from processing the volume.) You may<br />

restrict <strong>DFSMS</strong>hsm access to a volume in a copy pool backup storage group by varying the<br />

volume off-line to MVS.<br />

A new field is provided in the storage group definition for POOL storage groups to specify the<br />

name of the associated copy pool backup storage group. Only pool storage groups may<br />

define associated copy pool backup storage groups. A pool storage group may specify its<br />

own copy pool backup storage group or specify a copy pool backup storage group that is<br />

shared by multiple pool storage groups.<br />

For each source volume in a storage group to be copied, there must exist enough eligible<br />

target volumes in the copy pool backup storage group to satisfy the needs of the number of<br />

specified backup versions.<br />

An eligible target volume must:<br />

► Have the same track format as the source volume.<br />

► Be the exact size of the source volume.<br />

► For FlashCopy:<br />

Not also be a primary or secondary volume in an XRC or PPRC volume pair.<br />

– For Version 1, reside in the same LSS as the source volume.<br />

– For Version 1, at the time of the backup, not be in a FlashCopy relationship.<br />

► For SnapShot:<br />

Reside in the same RVA/SVA as the source volume.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 177


ISMF panels<br />

The Interactive Storage Management Facility (ISMF) provides a series of applications for<br />

storage administrators to define and manage the SMS configuration. Figure 7-3 shows the<br />

ISMF primary option menu for storage administrators.<br />

This primary option menu differs from the one that users see. In addition to the options found<br />

on the ISMF Primary Option Menu for users, the primary option menu for storage<br />

administrators includes:<br />

► Storage Group<br />

► Automatic Class Selection<br />

► Control Data Set<br />

► Library Management<br />

► Data Collection<br />

Panel Help<br />

------------------------------------------------------------------------------<br />

ISMF PRIMARY OPTION MENU - z/<strong>OS</strong> <strong>DFSMS</strong> V1 R8<br />

Enter Selection or Command ===><br />

Select one of the following options and press Enter:<br />

0 ISMF Profile - Specify ISMF User Profile<br />

1 Data Set - Perform Functions Against Data Sets<br />

2 Volume - Perform Functions Against Volumes<br />

3 Management Class - Specify Data Set Backup and Migration Criteria<br />

4 Data Class - Specify Data Set Allocation Parameters<br />

5 Storage Class - Specify Data Set Performance and Availability<br />

6 Storage Group - Specify Volume Names and Free Space Thresholds<br />

7 Automatic Class Selection - Specify ACS Routines and Test Criteria<br />

8 Control Data Set - Specify System Names and Default Criteria<br />

9 Aggregate Group - Specify Data Set Recovery Parameters<br />

10 Library Management - Specify Library and Drive Configurations<br />

11 Enhanced ACS Management - Perform Enhanced Test/Configuration Management<br />

C Data Collection - Process Data Collection Function<br />

L List - Perform Functions Against Saved ISMF Lists<br />

P Copy Pool - Specify Pool Storage Groups for Copies<br />

R Removable Media Manager - Perform Functions Against Removable Media<br />

X Exit - Terminate ISMF<br />

Use HELP Command for Help; Use END Command or X to Exit.<br />

Figure 7-3 ISMF Primary Option Menu<br />

7.1.3 Preparing for fast replication<br />

Your storage administrator must define copy pools and associated source and backup<br />

storage groups in order to use the <strong>DFSMS</strong>hsm fast replication function.<br />

The following steps should be used to define the necessary copy pool construct, copy pool<br />

backup storage group, and associate existing pool storage groups for fast replication support.<br />

178 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Defining copy pools<br />

Define your copy pool definitions by selecting option P Copy Pool from the ISMF Primary<br />

Option Menu shown in Figure 7-3 on page 178.<br />

The Copy Pool Application Selection Panel appears as shown in Figure 7-4. You can work<br />

with existing copy pools or define a new one by entering the copy pool name and selecting<br />

option 3 Define a Copy Pool.<br />

Panel Utilities Help<br />

------------------------------------------------------------------------------<br />

COPY POOL APPLICATION SELECTION<br />

Command ===><br />

To perform Copy Pool Operations, Specify:<br />

CDS Name . . . . SYS1.SMS.SCDS<br />

(1 to 44 character data set name or 'Active' )<br />

Copy Pool Name CP1 (For Copy Pool List, fully<br />

or partially specified or * for all)<br />

Select one of the following options :<br />

3 1. List - Generate a list of Copy Pools<br />

2. Display - Display a Copy Pool<br />

3. Define - Define a Copy Pool<br />

4. Alter - Alter a Copy Pool<br />

If List Option is chosen,<br />

Enter "/" to select option Respecify View Criteria<br />

Respecify Sort Criteria<br />

Use ENTER to Perform Selection;<br />

Use HELP Command for Help; Use END Command to Exit.<br />

Figure 7-4 Copy Pool Application Selection panel<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 179


The Copy Pool Define panel appears, as shown in Figure 7-5. Specify the dump classes to be<br />

used with this copy pool, and you can specify the number of backup versions that you want to<br />

keep of this copy pool. The default is two copies.<br />

Note: <strong>DFSMS</strong>hsm can keep up to 85 backup versions for each copy pool. We recommend<br />

keeping at least two versions. Before a new version is created, the oldest version is<br />

invalidated and the target volumes from that version are used as targets for the new<br />

version. If the new version fails for some reason, then only n-1 valid versions are available,<br />

where n is the number of requested versions. Maintaining two versions ensures that at<br />

least one valid version is always available.<br />

We recommend that if n backups are required, n+1 should be kept.<br />

Panel Utilities Scroll Help<br />

------------------------------------------------------------------------------<br />

COPY POOL DEFINE Page 1 of 4<br />

Command ===><br />

SCDS Name . . : SYS1.SMS.SCDS<br />

Copy Pool Name : CP1<br />

To DEFINE Copy Pool, Specify:<br />

Description ==> COPY POOL 1<br />

==><br />

Auto Dump . . . N (Y or N) Dump Sys/Sys Group Name . . .<br />

Dump Class . . Dump Class . .<br />

Dump Class . . Dump Class . .<br />

Dump Class . .<br />

Number of Recoverable DASD Fast<br />

Replicate Backup Versions . . . . 2 (0 to 85 or blank)<br />

Use ENTER to Perform Verification; Use DOWN Command to View next Panel;<br />

Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.<br />

Figure 7-5 Copy Pool Define panel (page 1 of 2)<br />

180 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Scroll down to reach the next page (shown in Figure 7-6) in order to specify the Storage<br />

Groups to include in the copy pool. You can specify up to 256 Storage Groups in a copy pool.<br />

Scroll down to pages 3 and 4 if needed.<br />

Panel Utilities Scroll Help<br />

------------------------------------------------------------------------------<br />

COPY POOL DEFINE Page 2 of 4<br />

Command ===><br />

SCDS Name . . : SYS1.SMS.SCDS<br />

Copy Pool Name : CP1<br />

To DEFINE Copy Pool, Specify:<br />

Storage Group Names: (specify 1 to 256 names)<br />

==> SG1<br />

==><br />

==><br />

==><br />

==><br />

==><br />

==><br />

==><br />

==><br />

==><br />

==><br />

Use ENTER to Perform Verification; Use UP/DOWN Command to View other Panels;<br />

Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.<br />

Figure 7-6 Copy Pool Define panel (page 2 of 2)<br />

Note: You can specify Storage Groups not yet defined in the SCDS, but this makes the<br />

SCDS invalid for activation. The Storage Groups specified must be defined in the SCDS<br />

before activating the configuration.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 181


Defining copy pool backup storage groups<br />

You now have to define a copy pool backup storage group. This storage group is designated<br />

as the target where the copies of the Pool Storage Groups will be kept. Start to define your<br />

copy pool backup definitions by selecting option 6 Storage Group from the ISMF Primary<br />

Option Menu shown in Figure 7-3 on page 178. Figure 7-7 shows the Storage Group<br />

Application Selection panel.<br />

Panel Utilities Help<br />

------------------------------------------------------------------------------<br />

STORAGE GROUP APPLICATION SELECTION<br />

Command ===><br />

To perform Storage Group Operations, Specify:<br />

CDS Name . . . . . . SYS1.SMS.SCDS<br />

(1 to 44 character data set name or 'Active' )<br />

Storage Group Name CPBSG1 (For Storage Group List, fully or<br />

partially specified or * for all)<br />

Storage Group Type COPY POOL BACKUP (VIO, POOL, DUMMY, COPY POOL BACKUP,<br />

OBJECT, OBJECT BACKUP, or TAPE)<br />

Select one of the following options :<br />

2 1. List - Generate a list of Storage Groups<br />

2. Define - Define a Storage Group<br />

3. Alter - Alter a Storage Group<br />

4. Volume - Display, Define, Alter or Delete Volume Information<br />

If List Option is chosen,<br />

Enter "/" to select option Respecify View Criteria<br />

Respecify Sort Criteria<br />

Use ENTER to Perform Selection;<br />

Use HELP Command for Help; Use END Command to Exit.<br />

Figure 7-7 Storage Group Application Selection panel<br />

The Storage Group Application Selection panel enables you to:<br />

► Specify the storage group name for the copy pool backup.<br />

► Specify the storage group type of copy pool backup.<br />

► Associate your existing source pool storage groups with the copy pool backup storage<br />

group where you want to keep your copies.<br />

After entering the chosen storage group name and storage group type of copy pool backup,<br />

select option 2 Define - Define a Storage Group.<br />

When the copy pool backup storage group is defined you should also define volumes in it.<br />

Here you need to know which pool storage group should be associated with this copy pool<br />

backup storage group and the number of versions that are to be kept for the pool storage<br />

group. The number of versions is defined in the related copy pool definition. For example, if<br />

your pool storage group contains 10 volumes and you want to keep two backup versions,<br />

then the copy pool backup storage group must contain 20 target volumes.<br />

If the pool storage group has extended or overflow storage groups defined, you must also<br />

define target volumes for those. For example, if the pool storage group with 10 volumes has<br />

an overflow storage group with 5 volumes, you must define 30 target volumes in the copy<br />

pool backup storage group for two backup versions.<br />

182 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


After defining the copy pool backup storage group, you must alter your existing pool storage<br />

groups to define the copy pool backup storage group where you want to keep their copies.<br />

Start by selecting option 6 Storage Group from the ISMF Primary Option Menu, as shown in<br />

Figure 7-3 on page 178. The Storage Group Application Selection Panel appears. Specify the<br />

desired storage group name and storage group type. Then select option 3 Alter (Figure 7-8).<br />

Panel Utilities Help<br />

------------------------------------------------------------------------------<br />

STORAGE GROUP APPLICATION SELECTION<br />

Command ===><br />

To perform Storage Group Operations, Specify:<br />

CDS Name . . . . . . SYS1.SMS.SCDS<br />

(1 to 44 character data set name or 'Active' )<br />

Storage Group Name SG1 (For Storage Group List, fully or<br />

partially specified or * for all)<br />

Storage Group Type POOL (VIO, POOL, DUMMY, COPY POOL BACKUP,<br />

OBJECT, OBJECT BACKUP, or TAPE)<br />

Select one of the following options :<br />

3 1. List - Generate a list of Storage Groups<br />

2. Define - Define a Storage Group<br />

3. Alter - Alter a Storage Group<br />

4. Volume - Display, Define, Alter or Delete Volume Information<br />

If List Option is chosen,<br />

Enter "/" to select option Respecify View Criteria<br />

Respecify Sort Criteria<br />

Use ENTER to Perform Selection;<br />

Use HELP Command for Help; Use END Command to Exit.<br />

Figure 7-8 Storage Group Application Selection panel: Alter a Storage Group<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 183


The Pool Storage Group Alter panel appears. Specify the desired copy pool backup in the<br />

copy pool backup SG Name field (Figure 7-9).<br />

Panel Utilities Help<br />

------------------------------------------------------------------------------<br />

POOL STORAGE GROUP ALTER<br />

Command ===><br />

SCDS Name . . . . . : SYS1.SMS.SCDS<br />

Storage Group Name : SG1<br />

To ALTER Storage Group, Specify:<br />

Description ==><br />

==><br />

Auto Migrate . . N (Y, N, I or P) Migrate Sys/Sys Group Name . .<br />

Auto Backup . . N (Y or N) Backup Sys/Sys Group Name . .<br />

Auto Dump . . . N (Y or N) Dump Sys/Sys Group Name . . .<br />

Overflow . . . . N (Y or N) Extend SG Name . . . . . . . .<br />

Copy Pool Backup SG Name . . . CPBSG1<br />

Dump Class . . . (1 to 8 characters)<br />

Dump Class . . . Dump Class . . .<br />

Dump Class . . . Dump Class . . .<br />

Allocation/migration Threshold: High . . 85 (1-99) Low . . (0-99)<br />

Guaranteed Backup Frequency . . . . . . (1 to 9999 or NOLIMIT)<br />

ALTER SMS Storage Group Status . . . N (Y or N)<br />

Use ENTER to Perform Verification and Selection;<br />

Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.<br />

Figure 7-9 Pool Storage Group Alter panel<br />

A pool storage group can have only one copy pool backup storage group associated with it.<br />

Many pool storage groups can be associated with the same copy pool backup storage group,<br />

so we can have different versions of different pool storage groups in a copy pool backup<br />

storage group. <strong>DFSMS</strong>hsm keeps control of the copies that you have.<br />

From the Pool Storage Group Alter panel, you can also alter the SMS storage group status by<br />

typing Y in the ALTER SMS Storage Group Status field. There is also a change related to<br />

copy pool backup storage group SMS status — it can only have an SMS status of ENABLE or<br />

NOTCON.<br />

The modifications in the source CDS must be made in a z/<strong>OS</strong> V1.5 or later system.<br />

184 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


7.2 Backup and recovery of copy pools<br />

We used for our tests an environment with one storage group per copy pool. The copy pool<br />

CP1 was made up of storage group SG1, which was linked with copy pool backup storage<br />

group CPBSG1, as shown in Figure 7-10.<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

Figure 7-10 Lab environment<br />

The copy pool was defined (see Figure 7-15 on page 192) to hold a maximum of two fast<br />

replication backup versions and to use dump class DCREDB18 for full volume dumps of<br />

target volumes.<br />

In order to show all <strong>DFSMS</strong>hsm messages we used a setting of SETSYS MSGLEVEL(FULL).<br />

7.2.1 Creating a fast replication backup copy<br />

Now we created a fast replication backup version of copy pool CP1 by using the command<br />

shown in Example 7-1.<br />

Example 7-1 Requesting a new version of a fast replication backup<br />

FRBACKUP COPYPOOL(CP1) EXECUTE TOKEN(EX1)<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL1AE<br />

MHL1AD<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 185


The <strong>DFSMS</strong>hsm backup log contained the messages shown in Example 7-2. There were no<br />

messages in the dump log because full volume dump was not involved at this point.<br />

Example 7-2 Backup log for fast replication of copy pool CP1 without copy to tape<br />

ARC1801I FAST REPLICATION BACKUP IS STARTING FOR COPY POOL CP1, AT 14:49:20 ON 2007/02/19, TOKEN='EX1'<br />

ARC0640I ARCFRTM - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 14:49<br />

ARC0640I ARCFRTM - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCFRTM - PARALLEL<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'PARALLEL'<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A0) ODY(MHL0AF) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 002 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A1) ODY(MHL1AC) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 003 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - ADR109I (R/I)-RI01 (01), 2007.050 14:49:20 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCFRTM - ADR014I (SCH)-DSSU (02),<br />

2007.050 14:49:20 ALL PREVIOUSLY SCHEDULED TASKS COMPLETED. PARALLEL MODE NOW IN EFFECT<br />

ARC0640I ARCFRTM - ADR050I (002)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (002)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR050I (003)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (003)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(01), 2007.050 14:49:20 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (003)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (003)-T0MI (02), VOLUME MHL0A1 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(02), 2007.050 14:49:20 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (003)-CLTSK(01), 2007.050 14:49:20 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(01), 2007.050 14:49:20 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (002)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (002)-T0MI (02), VOLUME MHL0A0 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(02), 2007.050 14:49:21 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (002)-CLTSK(01), 2007.050 14:49:21 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR012I (SCH)-DSSU (01), 2007.050 14:49:21 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC1805I THE FOLLOWING 00002 VOLUME(S) WERE SUCCESSFULLY PROCESSED BY FAST REPLICATION BACKUP OF COPY POOL CP1<br />

ARC1805I (CONT.) MHL0A0<br />

ARC1805I (CONT.) MHL0A1<br />

ARC1802I FAST REPLICATION BACKUP HAS COMPLETED FOR COPY POOL CP1, AT 14:49:21 ON 2007/02/19, FUNCTION RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

The resulting fast replication backup version can be shown by using the <strong>DFSMS</strong>hsm LIST<br />

command (see Example 7-3).<br />

Example 7-3 LIST command to show copy pool backup versions<br />

HSEND LIST COPYPOOL(CP1)<br />

186 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The output of the LIST command shows a DUMPSTATE of NONE, which means that there is<br />

at this point neither a full volume dump in creation, nor available for this fast replication<br />

backup version (see Figure ). For a detailed description of the possible contents of the new<br />

DUMPSTATE field see the explanations related to Figure on page 211.<br />

1-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 16:34:37 ON<br />

07/02/22 FOR SYSTEM=SC64<br />

0COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

003 Y 2007/02/22 16:31:22 RECOVERABLE NONE<br />

TOKEN(C)=C'EX3'<br />

TOKEN(H)=X'C5E7F3'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

Figure 7-11 Output of the LIST COPYPOOL(CP1) command<br />

Note: The output of the LIST COPYPOOL command has changed significantly since<br />

<strong>DFSMS</strong>hsm V1.7 and there are new keywords available in order to request more or less<br />

information for display (see Figure 7-17 on page 196 and Figure 7-18 on page 197 for<br />

more details).<br />

There is a new column heading FASTREPLICATIONSTATE that has replaced the former<br />

VALID column to provide more detailed information about whether this version can be used<br />

for recovery by the FRRECOV command.<br />

Possible contents of the field FASTREPLICATIONSTATE are:<br />

RECOVERABLE The copy pool has a valid DASD copy version that can be used for<br />

recovery.<br />

DUMPONLY The copy pool was defined with a number of 0 replicate backup<br />

versions, so the DASD copies that are currently available are only kept<br />

until the dump copies of a particular version have completed<br />

successfully.<br />

FAILED The copy pool cannot be recovered by using the DASD copy of this<br />

version because the FRBACKUP did not complete successfully due to<br />

a failure or a WITHDRAW being done before all volumes in the copy<br />

pool were successfully copied.<br />

NONE A DASD copy does not exist. For example, this status applies if only a<br />

dump copy exists for a particular backup version of a copy pool.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 187


So far, we have created a fast replication backup version of copy pool CP1, which copied the<br />

contents of volumes MHL0A0 and MHL0A1 to volumes MHL0AF and MHL1AC (see<br />

Figure 7-12).<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

Figure 7-12 FRBACKUP without dump processing<br />

7.2.2 Using fast replication backups for recovery of copy pools and volumes<br />

You can use the FRRECOV command to recover copy pools or volumes from the fast<br />

replication backup versions.<br />

Recovery of an entire copy pool is very easy to request and runs very quickly (at a similar<br />

speed as fast replication backup). Usually, you start with a command (as shown in<br />

Example 7-4) to make sure that no source volumes in the copy pool are in an existing<br />

FlashCopy relationship. If one or more volumes are in an existing FlashCopy relationship, the<br />

recovery fails.<br />

Example 7-4 FRRECOV command that works at the copy pool level<br />

HSEND FRRECOV CP(CP1) VERIFY(Y) GENERATION(0) FROMDASD<br />

If one of the volumes cannot be serialized by <strong>DFSMS</strong>hsm, the recovery of that particular<br />

volume fails. A very common reason for this kind of failure is an open ICF catalog. You can<br />

close the catalog by using the F CATALOG command, as shown in Example 7-5.<br />

Example 7-5 MODIFY CATALOG,UNALLOCATE to close an open ICF catalog<br />

F CATALOG,UNALLOCATE(UCAT.TESTFR)<br />

188 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

FRBACKUP CP(CP1) -<br />

EXECUTE -<br />

TOKEN(EX3)<br />

MHL1AE<br />

MHL1AD<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)


MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

Flashcopy<br />

FRRECOV CP(CP1) -<br />

VERIFY(Y) -<br />

FROMDASD -<br />

GENERATION(0)<br />

Figure 7-13 FRRECOV command at the copy pool level<br />

The process during execution of command FRRECOV CP(CP1) FROMDASD is exactly the<br />

same as during execution of command FRBACKUP CP(CP1), but source and target volumes<br />

have swapped places with each other. An example for accompanying messages in the<br />

JESMSGLG output of <strong>DFSMS</strong>hsm is shown in Figure 7-14.<br />

ARC1801I FAST REPLICATION RECOVERY IS STARTING FOR 350<br />

ARC1801I (CONT.) COPY POOL CP1, AT 19:05:10 ON 2007/03/16<br />

ARC1805I THE FOLLOWING 00002 VOLUME(S) WERE 351<br />

ARC1805I (CONT.) SUCCESSFULLY PROCESSED BY FAST REPLICATION RECOVERY<br />

ARC1805I (CONT.) OF COPY POOL CP1<br />

ARC1805I (CONT.) MHL0A0<br />

ARC1805I (CONT.) MHL0A1<br />

ARC1802I FAST REPLICATION RECOVERY HAS COMPLETED FOR 354<br />

ARC1802I (CONT.) COPY POOL CP1, AT 19:05:11 ON 2007/03/16, FUNCTION<br />

ARC1802I (CONT.) RC=0000, MAXIMUM VOLUME RC=0000<br />

Figure 7-14 Messages during execution of FRRECOV CP(CP1) FROMDASD<br />

If there is an open ICF catalog on one of the volumes, the resulting messages are as shown<br />

in Example 7-6.<br />

Example 7-6 Excerpt from the backup log during execution of a copy pool recovery<br />

MHL1AC<br />

MHL0AC<br />

MHL1AF<br />

MHL1AE<br />

MHL1AD<br />

ARC1801I FAST REPLICATION RECOVERY IS STARTING FOR COPY POOL CP1, AT 18:41:29 ON 2007/03/16<br />

ARC0640I ARCFRTM - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.075 18:41<br />

ARC0640I ARCFRTM - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCFRTM - PARALLEL<br />

MHL0AF<br />

MHL0AE<br />

MHL0AD<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 189


ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'PARALLEL'<br />

ARC0640I ARCFRTM - COPY IDY(MHL0AF) ODY(MHL0A0) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 002 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - COPY IDY(MHL1AC) ODY(MHL0A1) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 003 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - ADR109I (R/I)-RI01 (01), 2007.075 18:41:30 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCFRTM - ADR014I (SCH)-DSSU (02),<br />

2007.075 18:41:30 ALL PREVIOUSLY SCHEDULED TASKS COMPLETED. PARALLEL MODE NOW IN EFFECT<br />

ARC0640I ARCFRTM - ADR050I (002)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (002)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR050I (003)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (003)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(01), 2007.075 18:41:30 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR306E (002)-SBRTN(01),<br />

UNABLE TO COPY THE VOLUME BECAUSE OUTPUT VOLUME MHL0A0 IS IN USE. TASK IS TERMINATED<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(02), 2007.075 18:41:30 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (002)-CLTSK(01), 2007.075 18:41:30 TASK COMPLETED WITH RETURN CODE 0008<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(01), 2007.075 18:41:30 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (003)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (003)-T0MI (02), VOLUME MHL1AC WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(02), 2007.075 18:41:30 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (003)-CLTSK(01), 2007.075 18:41:30 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR012I (SCH)-DSSU (01),<br />

2007.075 18:41:30 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0008 FROM:<br />

ARC0640I ARCFRTM - TASK 002<br />

ARC0400I VOLUME MHL0A0 IS 00% FREE, 00000031 FREE TRACK(S), 000008 FREE CYLINDER(S), FRAG .198<br />

ARC0401I LARGEST EXTENTS FOR MHL0A0 ARE CYLINDERS 8, TRACKS 120<br />

ARC0402I VTOC FOR MHL0A0 IS 0090 TRACKS(04500 DSCBS), 04487 FREE DSCBS(99% OF TOTAL)<br />

ARC0400I VOLUME MHL0A1 IS 00% FREE, 00000000 FREE TRACK(S), 000000 FREE CYLINDER(S), FRAG .000<br />

ARC0401I LARGEST EXTENTS FOR MHL0A1 ARE CYLINDERS 0, TRACKS 0<br />

ARC0402I VTOC FOR MHL0A1 IS 0090 TRACKS(04500 DSCBS), 04488 FREE DSCBS(99% OF TOTAL)<br />

ARC1803E THE FOLLOWING 00001 VOLUME(S) FAILED DURING FAST REPLICATION RECOVERY OF COPY POOL CP1<br />

ARC1803E (CONT.) MHL0A0<br />

ARC1805I THE FOLLOWING 00001 VOLUME(S) WERE SUCCESSFULLY PROCESSED BY FAST REPLICATION RECOVERY OF COPY POOL CP1<br />

ARC1805I (CONT.) MHL0A1<br />

ARC1802I FAST REPLICATION RECOVERY HAS COMPLETED FOR COPY POOL CP1, AT 18:41:30 ON 2007/03/16, FUNCTION RC=0008,<br />

MAXIMUM VOLUME RC=0008<br />

After close of the catalog by using the command shown in Example 7-5 on page 188, the<br />

recovery process is resumed by a request at the volume level (see Example 7-7). We<br />

recommend this method because a new FRECOVER command at the copy pool level either<br />

fails due to existing FlashCopy relationships of some volumes or causes excessive and<br />

unnecessary copy activities for many volumes that were already successfully recovered (see<br />

the explanation of message ARC1803E in z/<strong>OS</strong> MVS System Messages Vol 2 (ARC-ASA),<br />

SA22-7632).<br />

Example 7-7 FRRECOV command at the volume level<br />

HSEND FRRECOV TOVOLUME(MHL0A0) FROMCOPYPOOL(CP1)<br />

If the volume needed for recovery is currently associated with more than one copy pool, the<br />

FRRECOV TOVOLUME command must specify the FROMCOPYPOOL keyword in order to<br />

reference the appropriate copy pool’s fast replication backup version. Example 7-8 shows the<br />

messages issued during volume level fast replication recovery in the <strong>DFSMS</strong>hsm backup log.<br />

Example 7-8 Excerpt from the backup log during execution of a fast replication recovery at the volume level<br />

ARC1801I FAST REPLICATION RECOVERY IS STARTING FOR VOLUME MHL0A0, AT 18:52:47 ON 2007/03/16<br />

ARC0640I ARCFRTM - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.075 18:52<br />

ARC0640I ARCFRTM - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCFRTM - COPY IDY(MHL0AF) ODY(MHL0A0) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - ADR109I (R/I)-RI01 (01), 2007.075 18:52:47 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

190 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ARC0640I ARCFRTM - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR006I (001)-STEND(01), 2007.075 18:52:47 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (001)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (001)-T0MI (02), VOLUME MHL0AF WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (001)-STEND(02), 2007.075 18:52:48 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (001)-CLTSK(01), 2007.075 18:52:48 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR012I (SCH)-DSSU (01), 2007.075 18:52:48 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC0400I VOLUME MHL0A0 IS 00% FREE, 00000018 FREE TRACK(S), 000000 FREE CYLINDER(S), FRAG .823<br />

ARC0401I LARGEST EXTENTS FOR MHL0A0 ARE CYLINDERS 0, TRACKS 6<br />

ARC0402I VTOC FOR MHL0A0 IS 0090 TRACKS(04500 DSCBS), 04487 FREE DSCBS(99% OF TOTAL)<br />

ARC1802I FAST REPLICATION RECOVERY HAS COMPLETED FOR VOLUME MHL0A0, AT 18:52:48 ON 2007/03/16, FUNCTION RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

7.3 Tape support<br />

Tape support of fast replication enhances <strong>DFSMS</strong>hsm to manage full volume dumps of the<br />

DASD volumes that are holding the replication backup data. The full volume dumps can be<br />

created:<br />

► Automatically as part of the automatic dump process<br />

► By command as part of the fast replication backup process<br />

► By command in a separate process at any time after a replication backup version of a<br />

copy pool was created<br />

The resulting dump copies provide the same look and feel as dump generations that are<br />

being created by dumping the volumes of the storage groups of a copy pool directly.<br />

There is also available a request for fast replication backups that are processed by using the<br />

NOCOPY option of FlashCopy. A DASD backup version created by this option cannot be<br />

used for recovery of the copy pool and is only maintained until the target volumes have been<br />

dumped to tape. By using this option you might need fewer volumes in the backup copy pool<br />

storage groups.<br />

7.3.1 Dump of target volumes during autodump<br />

Automatic dump was enhanced with z/<strong>OS</strong> <strong>DFSMS</strong>hsm 1.8 to process storage groups defined<br />

to automatic dump enabled copy pools.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 191


Prerequisites<br />

In order to enable a copy pool for automatic dump processing, Auto Dump must be set to Y<br />

and at least one dump class must be specified (see Figure 7-15).<br />

Panel Utilities Scroll Help<br />

------------------------------------------------------------------------------<br />

COPY POOL ALTER Page 1 of 4<br />

Command ===><br />

SCDS Name . . : SYS1.SMS.SCDS<br />

Copy Pool Name : CP1<br />

To ALTER Copy Pool, Specify:<br />

Description ==> COPY POOL 1<br />

==><br />

Auto Dump . . . Y (Y or N) Dump Sys/Sys Group Name . . .<br />

Dump Class . . DCREDB18 Dump Class . .<br />

Dump Class . . Dump Class . .<br />

Dump Class . .<br />

Number of Recoverable DASD Fast<br />

Replicate Backup Versions . . . . 2 (0 to 85 or blank)<br />

Use ENTER to Perform Verification; Use DOWN Command to View next Panel;<br />

Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.<br />

Figure 7-15 Definition of copy pool CP1<br />

You can request system affinity as with storage groups by entering the name of a system or a<br />

system group specified in the System or Sysgrp fields in the base configuration of the SMS<br />

configuration into the field Dump Sys/Sys Group Name.<br />

You can use any dump class definition for copy pools. For our tests we have defined a dump<br />

class by using the command shown in Example 7-9.<br />

Example 7-9 DEFINE DUMPCLASS for use with fast replication tape support<br />

HSEND DEFINE DUMPCLASS(DCREDB18 AUTOREUSE +<br />

DATASETRESTORE FREQUENCY(7) +<br />

FRDUMP(REQUIRED) +<br />

FRRECOV(AFM(YES)) +<br />

RETPD(356) +<br />

UNIT(3590-1) +<br />

STACK(30) +<br />

VTOCCOPIES(3) +<br />

DISP<strong>OS</strong>ITION('FASTR TARGET TO TAPE'))<br />

VTOC copies are not required to recover a data set from a dump tape generated from a fast<br />

replication backup copy. Also, DATASETRESTORE is not required to be specified in the<br />

dump class. If a dump class is only used for dump copies created from fast replication backup<br />

copies, and if you plan to use the FRRECOV for individual data sets, then you should<br />

192 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


consider creating VTOCCOPIES to enhance your options for recovery (see “Recovery of data<br />

sets from a fast replication dump copy” on page 224).<br />

While not being required for any technical reason, it might be a good idea to create new dump<br />

classes for fast replication dump processing. Unique dump classes for copy pools ensure that<br />

copy pool volumes are dumped as a set, as each dump volume will always contain only dump<br />

copies that were created using the same dump class during dump volume stacking.<br />

There are new keywords available for definition of a dump class that is intended for use with<br />

copy pools:<br />

FRDUMP(REQUIRED) The default setting of FRDUMP(REQUIRED) indicates that every<br />

volume in a copy pool must have been successfully dumped before<br />

the DASD backup version that is being dumped is replaced with a<br />

more recent backup copy.<br />

FRDUMP(OPTIONAL) The alternative setting allows you to replace the DASD backup<br />

version of a copy pool even if one or more volumes were not<br />

successfully dumped.<br />

FRRECOV(AFM(YES)) The default setting of FASTREPLICATIONRECOVER specifies<br />

that a dump class copy is available for recovery without needing to<br />

be specified on the FRRECOV command.<br />

FRRECOV(AFM(NO)) The alternative setting specifies that a dump class copy must be<br />

explicitly referenced by a FRRECOV command in order to be used.<br />

Automatic dump (phase 2)<br />

This phase is often referred to as volume function in contrast to phases 1 (deletion of expired<br />

dump copies) and 3 (deletion of excess dump VTOC copies), which are so-called level<br />

functions because they are executed on a primary host only. A complete description of what<br />

happens in these phases is contained in the manual <strong>DFSMS</strong>hsm Storage Administration<br />

Guide, SC26-0421. In this section we emphasize only the changes that are related to fast<br />

replication backup tape support.<br />

1. At the beginning of this phase, <strong>DFSMS</strong>hsm obtains volume lists from storage groups<br />

defined to automatic dump enabled copy pools.<br />

2. Volumes of copy pools are considered candidates if the frequency requirement for the<br />

dump class to which the copy pool belongs has been met.<br />

3. Volumes of copy pools are considered candidates even if they were processed by<br />

automatic dump within the last 14 hours.<br />

4. If a DASD fast replication backup copy generation 0 exists and has not previously been<br />

successfully dumped, automatic dump uses the dump classes specified in the copy pool<br />

to determine whether the frequency requirement is being met. If the generation 0 dump<br />

copy is partially complete, automatic dump skips all volumes that were successfully<br />

processed in the dump classes previously attempted.<br />

Note: Automatic dump never takes into account other fast replication backup copies<br />

than generation 0. In case you need to create a dump copy of generation 1 to 84<br />

consider using the FRBACKUP CP(..) DUMPONLY command.<br />

5. The automatic dump settings (Y/N) of the source volumes’ storage groups are ignored by<br />

automatic dump when it is processing a copy pool.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 193


6. Volumes associated with the same set of eligible dump classes, of which at least one<br />

enables dump stacking (parameter STACK(n) in dump class definition requests n > 1) will<br />

be always processed at first. Within those volumes, the order is:<br />

a. Affinity copy pool volumes<br />

b. Non-affinity copy pool volumes<br />

c. Affinity SMS volumes<br />

d. Non-affinity SMS volumes<br />

e. Non-SMS volumes<br />

7. Volumes associated with copy pools are not stacked with non-copy pool volumes.<br />

Note: If you want to make sure that only volumes of one copy pool will be stacked on<br />

the same tape volume you should use different dump classes for each copy pool.<br />

8. After all volumes eligible for stacking have been dumped, the remaining volumes are<br />

dumped, with <strong>DFSMS</strong>hsm selecting the order of processing as listed above.<br />

In Example 7-10 you can see the messages that were issued in the JESMSGLG data set of<br />

<strong>DFSMS</strong>hsm during automatic dump. The new messages ARC1841I and ARC1842I are<br />

issued for each copy pool being processed during automatic dump.<br />

Example 7-10 Excerpts from the JESMSGLG output of <strong>DFSMS</strong>hsm during automatic dump<br />

17.10.00 STC18988 ARC0620I AUTOMATIC DUMP STARTING<br />

17.10.00 STC18988 ARC0570I AUTOMATIC DUMP FOR ALL SMS MANAGED VOLUME(S) 555<br />

555 ARC0570I (CONT.) TERMINATED, RC=17 REASON=0<br />

17.10.00 STC18988 ARC1841I AUTOMATIC DUMP STARTING FOR COPY POOL CP1<br />

17.10.00 STC18988 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 557<br />

557 ARC0622I (CONT.) MHL0A1(SMS) AT 17:10:00 ON 2007/02/22, SYSTEM SC64,<br />

557 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

17.10.00 STC18988 ARC0728I VTOC FOR VOLUME MHL0A1 COPIED TO DATA SET 558<br />

558 ARC0728I (CONT.) HSM.DUMPVTOC.T223116.VMHL0A1.D07053 ON VOLUME SBXHS4<br />

17.10.00 STC18988 IEC501A M 0B90,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A1.D07053.T223116<br />

17.10.40 STC18988 IEC705I TAPE ON 0B90,TST025,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A1.D07053.T223116,MEDIA3<br />

17.10.41 STC18988 ARC0120I DUMP VOLUME TST025 ADDED, RC= 0, REAS= 0<br />

17.15.47 STC18988 IEC205I SYS00023,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME LIST, 599<br />

599 DSN=HSM.DMP.DCREDB18.VMHL0A1.D07053.T223116,VOLS=TST025,<br />

599 TOTALBLOCKS=50048<br />

17.15.47 STC18988 ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, 601<br />

601 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/13, DISP<strong>OS</strong>ITION= FASTR<br />

601 ARC0637I (CONT.) TARGET TO TAPE<br />

17.15.47 STC18988 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 602<br />

602 ARC0623I (CONT.) 17:15:47, PROCESSING SUCCESSFUL<br />

17.15.47 STC18988 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 603<br />

603 ARC0622I (CONT.) MHL0A0(SMS) AT 17:15:47 ON 2007/02/22, SYSTEM SC64,<br />

603 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

17.15.48 STC18988 ARC0728I VTOC FOR VOLUME MHL0A0 COPIED TO DATA SET 604<br />

604 ARC0728I (CONT.) HSM.DUMPVTOC.T223116.VMHL0A0.D07053 ON VOLUME SBXHS4<br />

17.21.16 STC18988 IEC205I SYS00023,DFHSM64,DFHSM64,FILESEQ=2, COMPLETE VOLUME LIST, 624<br />

624 DSN=HSM.DMP.DCREDB18.VMHL0A0.D07053.T223116,VOLS=TST025,<br />

624 TOTALBLOCKS=49976<br />

17.21.17 STC18988 ARC1842I AUTO DUMP HAS COMPLETED FOR COPY POOL CP1, AT 626<br />

626 ARC1842I (CONT.) 17:21:17 ON 2007/02/22, MAXIMUM VOLUME RC=0000<br />

17.21.17 STC18988 IEF234E K 0B90,TST025,PVT,DFHSM64,DFHSM64<br />

17.21.18 STC18988 ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, 628<br />

628 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/13, DISP<strong>OS</strong>ITION= FASTR<br />

628 ARC0637I (CONT.) TARGET TO TAPE<br />

17.21.18 STC18988 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 629<br />

629 ARC0623I (CONT.) 17:21:18, PROCESSING SUCCESSFUL<br />

17.21.18 STC18988 ARC0621I AUTOMATIC DUMP ENDING<br />

194 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Refer to Figure 7-16 to see what happens with copy pool CP1 in our test environment during<br />

autmatic dump. As <strong>DFSMS</strong>hsm always uses the DUMPCONDITIONING keyword when<br />

calling <strong>DFSMS</strong>dss for the full volume copies during fast replication backup processing, the<br />

dump generations appear to be made directly from the source volumes.<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

Figure 7-16 Automatic dump of copy pool CP1<br />

The <strong>DFSMS</strong>hsm dump log contained the messages shown in Example 7-11.<br />

Example 7-11 Dump log messages issued during automatic dump<br />

Automatic dump<br />

Full volume<br />

dump<br />

MHL1AC<br />

MHL0AC<br />

MHL1AF<br />

MHL1AE<br />

MHL1AD<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 16:45:45, DATE 07/02/22<br />

ARC0620I AUTOMATIC DUMP STARTING<br />

ARC0570I AUTOMATIC DUMP FOR ALL SMS MANAGED VOLUME(S) TERMINATED, RC=17 REASON=0<br />

ARC1841I AUTOMATIC DUMP STARTING FOR COPY POOL CP1<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A1(SMS) AT 17:10:00 ON 2007/02/22, SYSTEM SC64, TASK ID=ARCDVOL1 ,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A1 COPIED TO DATA SET HSM.DUMPVTOC.T223116.VMHL0A1.D07053 ON VOLUME SBXHS4<br />

ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.053 17:10<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00022) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00023) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.053 17:10:00 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.053 17:10:00 EXECUTION BEGINS<br />

ARC0120I DUMP VOLUME TST025 ADDED, RC= 0, REAS= 0<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.053 17:15:47 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.053 17:15:47 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.053 17:15:47 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/13, DISP<strong>OS</strong>ITION= FASTR TARGET TO TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 17:15:47, PROCESSING SUCCESSFUL<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A0(SMS) AT 17:15:47 ON 2007/02/22, SYSTEM SC64, TASK ID=ARCDVOL1 ,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A0 COPIED TO DATA SET HSM.DUMPVTOC.T223116.VMHL0A0.D07053 ON VOLUME SBXHS4<br />

MHL0AF<br />

MHL0AE<br />

MHL0AD<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

MHL2AF<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

TST025<br />

HSM.DMP.DCREDB18.VMHL0A0.D07053.T223116<br />

HSM.DMP.DCREDB18.VMHL0A1.D07053.T223116<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 195


ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.053 17:15<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00025) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00023) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.053 17:15:48 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.053 17:15:48 EXECUTION BEGINS<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.053 17:21:16 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.053 17:21:16 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.053 17:21:16 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC1842I AUTO DUMP HAS COMPLETED FOR COPY POOL CP1, AT 17:21:17 ON 2007/02/22, MAXIMUM VOLUME RC=0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/13, DISP<strong>OS</strong>ITION= FASTR TARGET TO TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 17:21:18, PROCESSING SUCCESSFUL<br />

ARC0621I AUTOMATIC DUMP ENDING<br />

When the new dump copy of copy pool CP1 in dump class DCREDB18 is created<br />

successfully you can request the execution of a LIST COPYPOOL command, as shown in<br />

Example 7-12, in order to see the results of the automatic dump as being stored in the BCDS.<br />

Example 7-12 LIST COPYPOOL command to show all information about generation 0<br />

HSEND LI CP(CP1) ALLVOLS<br />

The output of the command is shown in Figure 7-19 on page 198.<br />

Note the changed contents in field DUMPSTATE, which switched from NONE to<br />

ALLCOMPLETE.<br />

Since there is more information related with the fast replication backups of a copy pool if full<br />

volume dumps of the target volumes are being requested, the LIST COPYPOOL command<br />

was enhanced with z/<strong>OS</strong> <strong>DFSMS</strong>hsm V1.8 by supplying additional keywords.<br />

The new required parameters of the LIST COPYPOOL command are shown in Figure 7-17.<br />

|-FRVOLS--------------|<br />

|-FASTREPLICATIONVOLS-|<br />

>>------------------------------------------------><br />

|-NOVOLS------|<br />

|-DUMPVOLS----| |-GENERATION(0)----------|<br />

|-ALLVOLS ---------(|------------------------|)-><br />

|-GENERATION(--gennum--)-|<br />

|-TOKEN(token)-----------|<br />

|--ALLVERS---------------|<br />

Figure 7-17 New required parameters of the LIST COPYPOOL command<br />

The parameters are:<br />

► FRVOLS<br />

Requests a list of source and target pairs (default).<br />

► NOVOLS<br />

Requests a list of dump class information, if a dump copy version exists.<br />

► DUMPVOLS<br />

Requests a list of source and dump volumes for all dump versions.<br />

196 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


► ALLVOLS<br />

Shows all available information including dump classes as well as DASD and tape<br />

volumes in use for backups and dumps.<br />

► ALLVOLS(GENERATION(gennum))<br />

A particular generation (generation 0 is the default).<br />

► ALLVOLS(TOKEN(token))<br />

A backup version that was created by using this particular token.<br />

► ALLVOLS(ALLVERS)<br />

All versions.<br />

Note: While being introduced as required parameters, you need not really specify one of<br />

these. If you do not specify any of the keywords above, FRVOLS is used as the default<br />

setting.<br />

The new optional parameters of the LIST COPYPOOL command are shown in Figure 7-18.<br />

FASTREPLICATIONSTATE allows you to limit the display to fast replication backup versions<br />

based on the following parameters:<br />

RECOVERABLE Available on DASD (copy pool requests #versions > 0)<br />

DUMPONLY Still available on DASD (copy pool requests #versions = 0)<br />

FAILED Not available for recovery of the copy pool due to a failure during the<br />

FRBACKUP process or a request for WITHDRAW<br />

NONE Only available on tape<br />

-- SELECT (------------------------------------------------------)<br />

|-FASTREPLICATIONSTATE (|-RECOVERABLE----|---)-|<br />

|-|-FRSTATE----------| |-DUMPONLY-------| |<br />

| |-FAILED---------| |<br />

| |-NONE-----------| |<br />

|----DUMPSTATE (------|-ALLCOMPLETE------|-)---|<br />

| ---|-DSTATE-| -|-REQUIREDCOMPLETE-|<br />

|-PARTIAL----------|<br />

|-NONE-------------|<br />

Figure 7-18 New optional parameters of the LIST COPYPOOL command<br />

DUMPSTATE allows you to limit the display to fast replication backup versions based on the<br />

following parameters being specified:<br />

ALLCOMPLETE Have all volumes dumped to all dump classes specified.<br />

REQUIREDCOMPLETE Have all volumes dumped to at least the required dump<br />

classes.<br />

Note: A fast replication backup version is only marked with a DUMPSTATE of<br />

REQUIREDCOMPLETE if at least one dump class is specified that is not required (see<br />

Example 7-9 on page 192) and if not all volumes have been dumped to one of these<br />

non-required dump classes. If all the specified dump classes are required, DUMPSTATE is<br />

either PARTIAL or ALLCOMPLETE.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 197


PARTIAL Have at least one volume dumped to a dump class specified<br />

FAILED Have no volume dumped to any dump class specified<br />

NONE Not required for dump because there is no relationship<br />

between the copy pool and any dump class<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 17:25:03 ON<br />

07/02/22 FOR SYSTEM=SC64<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

003 Y 2007/02/22 16:31:22 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX3'<br />

TOKEN(H)=X'C5E7F3'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

0<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

DCREDB18 Y COMPLETE 00002 2008/02/13 Y<br />

Figure 7-19 Output of LIST CP(CP1) ALLVOLS<br />

The possible contents of the field DUMPSTATE at the version level are:<br />

ALLCOMPLETE All DASD volumes have been successfully dumped to the<br />

dump classes specified.<br />

REQUIRED COMPLETE All DASD volumes have been successfully dumped to at<br />

least the required dump classes.<br />

PARTIAL For at least one required dump class the DUMPSTATE at<br />

the dump class level is PARTIAL.<br />

NONE No dumps are associated with the copy pool.<br />

FAILED The creation of a dump copy is being requested but so far<br />

not a single volume has been successfully dumped.<br />

The possible contents of the field DUMPSTATE at the dump class level are:<br />

COMPLETE All DASD volumes have been successfully dumped to this<br />

particular dump class.<br />

PARTIAL At least one volume of the copy pool has not yet been successfully<br />

dumped to this particular dump class.<br />

FAILED A dump copy to this particular dump class is being requested but<br />

so far not a single volume has been successfully dumped.<br />

198 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO NONE ********* **************************************<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST025 3590-1<br />

FILE SEQ=02, DSNAME=HSM.DMP.DCREDB18.VMHL0A0.D07053.T223116<br />

MHL0A1 TST025 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.DCREDB18.VMHL0A1.D07053.T223116


Automatic dump (phases 1 and 3)<br />

These phases are executed in a primary host only.<br />

During deletion of expired dump copies the expiration of dump copies of copy pool volumes is<br />

determined at the dump class level. As with dump copies of non-copy pool volumes,<br />

<strong>DFSMS</strong>hsm does not automatically delete the last and only remaining copy of a source<br />

volume. If you want to delete such copies you must do this with one of the following<br />

commands:<br />

► You can use the DELVOL ... DUMP command, which must include the keywords<br />

LASTCOPY and COPYPOOLCOPY for dumps of copy pools.<br />

► You can use the FRDELETE command.<br />

Basically, there is no difference in processing of phase 1 between copy pool and no-copy<br />

pool volumes.<br />

Deletion of excess dump VTOC copy data sets (phase 3) works exactly the same way for all<br />

kind of volumes.<br />

7.3.2 FRBACKUP DUMP<br />

In case you want the dump copies to be created as soon as possible after a successful<br />

creation of a new fast replication backup version you can request the dump copy with the<br />

FRBACKUP command by including the DUMP parameter (see Example 7-13).<br />

Example 7-13 FRBACKUP command together with the DUMP parameter<br />

HSEND FRBACKUP COPYPOOL(CP1) EXECUTE DUMP<br />

The whole process is also called a fast replication dump. During execution of this command<br />

there are two phases:<br />

1. Fast replication backup - See Figure 7-20 on page 200.<br />

2. Copy pool dump - See Figure 7-23 on page 201.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 199


Copy pool fast replication backup<br />

As soon as the fast replication backup completes successfully for the copy pool, the next<br />

phase is started.<br />

Figure 7-20 Phase 1 of FRBACKUP with imbedded dump<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 19:00:29 ON<br />

07/02/19 FOR SYSTEM=SC64<br />

COPYPOOL=CP1<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

002 Y 2007/02/19 18:56:14 RECOVERABLE FAILED<br />

TOKEN(C)=C'EX2'<br />

TOKEN(H)=X'C5E7F2'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL1AD MHL0A1 - MHL1AE<br />

0----- END OF -- COPY POOL -- LISTING -----<br />

Figure 7-21 Output of a LIST CP(CP1) SELECT(DUMPSTATE(FAILED))<br />

Successful completion means that a FASTREPLICATIONSTATE of RECOVERABLE or<br />

DUMPONLY is displayed by the LIST COPYPOOL command (see Figure 7-21).<br />

200 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

FRBACKUP CP(CP1) -<br />

EXECUTE DUMP<br />

Flashcopy<br />

MHL1AE<br />

MHL1AD<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)


This does not necessarily imply that the internal FlashCopy process came to an end before<br />

the start of phase 2, as we can see in Figure 7-22, which is the output of a QUERY command<br />

that was requested at 18:57 (Example 7-14).<br />

Example 7-14 QERY COPYPOOL<br />

HSEND QUERY COPYPOOL(CP1)<br />

ARC1820I THE FOLLOWING VOLUMES IN COPY POOL CP1, VERSION 002, HAVE AN ACTIVE<br />

ARC1820I (CONT.) FLASHCOPY BACKGROUND COPY<br />

ARC1820I (CONT.) SGNAME FR-PRIMARY FR-BACKUP<br />

ARC1820I (CONT.) SG1 MHL0A0 MHL1AD<br />

ARC1820I (CONT.) SG1 MHL0A1 MHL1AE<br />

ARC1821I NONE OF THE VOLUMES IN COPY POOL CP1, VERSION 001, HAVE AN ACTIVE<br />

ARC1821I (CONT.) FLASHCOPY BACKGROUND COPY<br />

Figure 7-22 Output of QUERY COPYPOOL command<br />

This shows clearly that the background FlashCopy process is still going on while the copy<br />

pool dump process started at 18:56:15, as we can see in Example 7-15 on page 202, which<br />

is an excerpt of the JESMSGLG output of the HSM address space.<br />

Copy pool dump<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

FRBACKUP CP(CP1) -<br />

EXECUTE DUMP<br />

Full volume<br />

dump<br />

Figure 7-23 Phase 2 of FRBACKUP with imbedded dump<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL1AE<br />

MHL1AD<br />

MHL2AC<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

TST020<br />

HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618<br />

HSM.DMP.DCREDB18.VMHL0A1.D07050.T145618<br />

The full volume dump is performed to dump class DCREDB18, as we did not specify any<br />

dump class with the FRBACKUP command (see Example 7-13 on page 199). Alternatively,<br />

you can request a dump class with the command by using the DUMPCLASS parameter. In<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 201


this case all other dump classes associated with the copy pool are ignored during execution<br />

of this FRBACKUP command.<br />

Example 7-15 JESMSGLG of HSM address space (excerpt)<br />

18.56.14 STC18151 ARC1801I FAST REPLICATION DUMP IS STARTING FOR COPY 519<br />

519 ARC1801I (CONT.) POOL CP1, AT 18:56:14 ON 2007/02/19, TOKEN='EX2'<br />

18.56.15 STC18151 ARC1805I THE FOLLOWING 00002 VOLUME(S) WERE 527<br />

527 ARC1805I (CONT.) SUCCESSFULLY PROCESSED BY FAST REPLICATION BACKUP OF<br />

527 ARC1805I (CONT.) COPY POOL CP1<br />

18.56.15 STC18151 ARC1805I (CONT.) MHL0A0<br />

18.56.15 STC18151 ARC1805I (CONT.) MHL0A1<br />

18.56.15 STC18151 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 530<br />

530 ARC0622I (CONT.) MHL0A0(SMS) AT 18:56:15 ON 2007/02/19, SYSTEM SC64,<br />

530 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

18.56.16 STC18151 IEC501A M 0B91,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618<br />

18.57.17 STC18151 IEC705I TAPE ON 0B91,TST020,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618,MEDIA3<br />

18.57.17 STC18151 ARC0120I DUMP VOLUME TST020 ADDED, RC= 0, REAS= 0<br />

19.02.25 STC18151 IEC205I SYS00105,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME LIST, 539<br />

539 DSN=HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618,VOLS=TST020,<br />

539 TOTALBLOCKS=47476<br />

19.02.25 STC18151 ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, 541<br />

541 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR<br />

541 ARC0637I (CONT.) TARGET TO TAPE<br />

19.02.25 STC18151 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 542<br />

542 ARC0623I (CONT.) 19:02:25, PROCESSING SUCCESSFUL<br />

19.02.25 STC18151 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 543<br />

543 ARC0622I (CONT.) MHL0A1(SMS) AT 19:02:25 ON 2007/02/19, SYSTEM SC64,<br />

543 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

19.05.00 STC18151 ARC0405I H<strong>OS</strong>T 2 UPDATING SPACE INFORMATION ON ALL 546<br />

546 ARC0405I (CONT.) VOLUMES<br />

19.06.07 STC18151 IEC205I SYS00105,DFHSM64,DFHSM64,FILESEQ=2, COMPLETE VOLUME LIST, 547<br />

547 DSN=HSM.DMP.DCREDB18.VMHL0A1.D07050.T145618,VOLS=TST020,<br />

547 TOTALBLOCKS=47447<br />

19.06.07 STC18151 ARC1802I FAST REPLICATION BACKUP DUMP HAS COMPLETED 549<br />

549 ARC1802I (CONT.) FOR COPY POOL CP1, AT 19:06:07 ON 2007/02/19,<br />

549 ARC1802I (CONT.) FUNCTION RC=0000, MAXIMUM VOLUME RC=0000<br />

19.06.08 STC18151 IEF234E K 0B91,TST020,PVT,DFHSM64,DFHSM64<br />

19.06.08 STC18151 ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, 551<br />

551 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR<br />

551 ARC0637I (CONT.) TARGET TO TAPE<br />

19.06.08 STC18151 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 552<br />

552 ARC0623I (CONT.) 19:06:08, PROCESSING SUCCESSFUL<br />

Another execution of the QUERY COPYPOOL command (as shown in Example 7-14 on<br />

page 201) was requested at 19:01:00. As Figure 7-24 shows, the background copy is now<br />

complete and the FlashCopy relationship of the volume pairs has ended.<br />

ARC1821I NONE OF THE VOLUMES IN COPY POOL CP1, VERSION 002, HAVE AN ACTIVE<br />

ARC1821I (CONT.) FLASHCOPY BACKGROUND COPY<br />

ARC1821I NONE OF THE VOLUMES IN COPY POOL CP1, VERSION 001, HAVE AN ACTIVE<br />

ARC1821I (CONT.) FLASHCOPY BACKGROUND COPY<br />

Figure 7-24 Output of QUERY COPYPOOL command<br />

202 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ARC1801I FAST REPLICATION DUMP IS STARTING FOR COPY POOL CP1, AT 18:56:14 ON 2007/02/19, TOKEN='EX2'<br />

ARC0640I ARCFRTM - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 18:56<br />

ARC0640I ARCFRTM - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCFRTM - PARALLEL<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'PARALLEL'<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A0) ODY(MHL1AD) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 002 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A1) ODY(MHL1AE) DUMPCOND FR(REQ) PUR ALLX ALLD(*)<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 003 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - ADR109I (R/I)-RI01 (01), 2007.050 18:56:15 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCFRTM - ADR014I (SCH)-DSSU (02),<br />

2007.050 18:56:15 ALL PREVIOUSLY SCHEDULED TASKS COMPLETED. PARALLEL MODE NOW IN EFFECT<br />

ARC0640I ARCFRTM - ADR050I (002)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (002)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR050I (003)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (003)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(01), 2007.050 18:56:15 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (002)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS<br />

OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (002)-T0MI (02), VOLUME MHL0A0 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(02), 2007.050 18:56:15 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (002)-CLTSK(01), 2007.050 18:56:15 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(01), 2007.050 18:56:15 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (003)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS<br />

OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (003)-T0MI (02), VOLUME MHL0A1 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(02), 2007.050 18:56:15 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (003)-CLTSK(01), 2007.050 18:56:15 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR012I (SCH)-DSSU (01), 2007.050 18:56:15 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE<br />

IS 0000<br />

ARC1805I THE FOLLOWING 00002 VOLUME(S) WERE SUCCESSFULLY PROCESSED BY FAST REPLICATION BACKUP OF COPY POOL CP1<br />

ARC1805I (CONT.) MHL0A0<br />

ARC1805I (CONT.) MHL0A1<br />

ARC1802I FAST REPLICATION BACKUP DUMP HAS COMPLETED FOR COPY POOL CP1, AT 19:06:07 ON 2007/02/19, FUNCTION<br />

RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

Figure 7-25 <strong>DFSMS</strong>hsm backup log messages with fast replication dump<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 203


The processing of the fast replication dump is reported in the backup log of <strong>DFSMS</strong>hsm, as<br />

shown in Figure 7-25 on page 203. Note that the process is documented in messages<br />

ARC1801I and ARC1802I as FAST REPLICATION DUMP. The end of the process is reported<br />

after the last full volume dump has ended successfully.<br />

ARC0101I QUERY ACTIVE COMMAND STARTING ON H<strong>OS</strong>T=2<br />

ARC0144I AUDIT=NOT HELD AND INACTIVE, LIST=NOT HELD AND INACTIVE, RECYCLE=NOT<br />

ARC0144I (CONT.) HELD AND INACTIVE, REPORT=NOT HELD AND INACTIVE<br />

ARC0160I MIGRATION=NOT HELD, AUTOMIGRATION=HELD, RECALL=NOT HELD,<br />

ARC0160I (CONT.) TAPERECALL=NOT HELD, DATA SET MIGRATION=INACTIVE, VOLUME<br />

ARC0160I (CONT.) MIGRATION=INACTIVE, DATA SET RECALL=INACTIVE<br />

ARC0163I BACKUP=NOT HELD, AUTOBACKUP=HELD, RECOVERY=NOT HELD,<br />

ARC0163I (CONT.) TAPEDATASETRECOVERY=NOT HELD, DATA SET BACKUP=NOT HELD, VOLUME<br />

ARC0163I (CONT.) BACKUP=INACTIVE, DATA SET RECOVERY=INACTIVE, VOLUME<br />

ARC0163I (CONT.) RECOVERY=INACTIVE<br />

ARC0276I DATA SET BACKUP=INACTIVE, DATA SET BACKUP ACTUAL IDLETASKS=(ALLOC=00,<br />

ARC0276I (CONT.) MAX=00)<br />

ARC1826I FRBACKUP=NOT HELD AND INACTIVE,FRRECOV=NOT HELD AND INACTIVE,FRBACKUP<br />

ARC1826I (CONT.) DUMP=NOT HELD AND ACTIVE,FRRECOV(TAPE)=NOT HELD AND INACTIVE,<br />

ARC1826I (CONT.) FRRECOV(DATASET)=NOT HELD AND INACTIVE<br />

ARC0642I DUMP=NOT HELD, AUTODUMP=NOT HELD, VOLUME DUMP=INACTIVE, VOLUME<br />

ARC0642I (CONT.) RESTORE=INACTIVE, DATA SET RESTORE=INACTIVE<br />

ARC1822I FRBACKUP DUMP OR DUMPONLY OF COPY POOL CP1 FOR USER MHLRES2, REQUEST<br />

ARC1822I (CONT.) 59 ON H<strong>OS</strong>T 2 IS IN PROGRESS: NOT PROCESSED = 2, TOTAL = 2<br />

ARC0161I FRBACKUP DUMP OF VOLUME MHL0A0,COPY POOL=CP1 FOR USER MHLRES2,<br />

ARC0161I (CONT.) REQUEST 00000059<br />

ARC0437I - TAPECOPY NOT HELD AND INACTIVE<br />

ARC0437I - TAPEREPL NOT HELD AND INACTIVE<br />

ARC0415I EXPIREBV=NOT HELD AND INACTIVE, LAST STORED BACKUP VERSION KEY=, LAST<br />

ARC0415I (CONT.) STORED ABARS VERSION KEY=, LAST PLANNED END KEY=<br />

ARC0460I PRIVATE AREA LIMIT=8168K, UNALLOCATED=5560K, LARGEST FREE AREAS=5516K,<br />

ARC0460I (CONT.) 40K<br />

ARC0460I EXTENDED PRIVATE AREA LIMIT=1466M, UNALLOCATED=1436M, LARGEST FREE<br />

ARC0460I (CONT.) AREAS=1436M, 56K<br />

ARC6018I AGGREGATE BACKUP/RECOVERY = INACTIVE<br />

ARC6019I AGGREGATE BACKUP = NOT HELD, AGGREGATE RECOVERY = NOT HELD<br />

ARC1540I COMMON RECALL QUEUE PLACEMENT FACTORS: CONNECTION STATUS=CONNECTED,<br />

ARC1540I (CONT.) CRQPLEX HOLD STATUS=NONE,H<strong>OS</strong>T COMMONQUEUE HOLD STATUS=NONE,<br />

ARC1540I (CONT.) STRUCTURE ENTRIES=000% FULL,STRUCTURE ELEMENTS=000% FULL<br />

ARC1541I COMMON RECALL QUEUE SELECTION FACTORS: CONNECTION STATUS=CONNECTED,<br />

ARC1541I (CONT.) H<strong>OS</strong>T RECALL HOLD STATUS=NONE,H<strong>OS</strong>T COMMONQUEUE HOLD STATUS=NONE<br />

ARC0101I QUERY ACTIVE COMMAND COMPLETED ON H<strong>OS</strong>T=2<br />

Figure 7-26 Output of QUERY ACTIVE command during processing of a fast replication dump<br />

204 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


When you look at the output of a QUERY ACTIVE command during execution of a fast<br />

replication dump process you will find the FRBACKUP DUMP to be reported as active (see<br />

Figure 7-26 on page 204).<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A0(SMS) AT 18:56:15 ON 2007/02/19, SYSTEM SC64, TASK ID=ARCDVOL1<br />

,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A0 COPIED TO DATA SET HSM.DUMPVTOC.T145618.VMHL0A0.D07050 ON VOLUME SBXHS6<br />

ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 18:56<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00104) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00105) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.050 18:56:16 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.050 18:56:16 EXECUTION BEGINS<br />

ARC0120I DUMP VOLUME TST020 ADDED, RC= 0, REAS= 0<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.050 19:02:25 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.050 19:02:25 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.050 19:02:25 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE<br />

IS 0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR TARGET TO<br />

TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 19:02:25, PROCESSING SUCCESSFUL<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A1(SMS) AT 19:02:25 ON 2007/02/19, SYSTEM SC64, TASK ID=ARCDVOL1<br />

,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A1 COPIED TO DATA SET HSM.DUMPVTOC.T145618.VMHL0A1.D07050 ON VOLUME SBXHS6<br />

ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 19:02<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00108) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00105) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.050 19:02:25 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.050 19:02:25 EXECUTION BEGINS<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.050 19:06:07 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.050 19:06:07 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.050 19:06:07 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE<br />

IS 0000<br />

ARC1802I FAST REPLICATION BACKUP DUMP HAS COMPLETED FOR COPY POOL CP1, AT 19:06:07 ON 2007/02/19, FUNCTION<br />

RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR TARGET TO<br />

TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 19:06:08, PROCESSING SUCCESSFUL<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 19:06:08, DATE 07/02/19<br />

Figure 7-27 <strong>DFSMS</strong>hsm dump log messages with fast replication dump<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 205


The processing of the fast replication dump is reported in the dump log of <strong>DFSMS</strong>hsm, as<br />

shown in Figure 7-27 on page 205. We can see similar messages as during full volume<br />

dumps of level0 volumes. The end of the process is reported by message ARC1802I as FAST<br />

REPLICATION DUMP after the last full volume dump has ended successfully.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 19:13:20 ON<br />

07/02/19 FOR SYSTEM=SC64<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

002 Y 2007/02/19 18:56:14 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX2'<br />

TOKEN(H)=X'C5E7F2'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL1AD MHL0A1 - MHL1AE<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

DCREDB18 Y COMPLETE 00002 2008/02/10 Y<br />

Figure 7-28 Output of the LI COPYPOOL command after the end of the fast replication dump<br />

After the end of the fast replication dump process you can see all the details by executing a<br />

LIST command, as shown in Example 7-16.<br />

Example 7-16 LIST COPYPOOL(CP1) ALLVOLS<br />

HSEND LI CP(CP1) ALLVOLS(TOKEN(EX2))<br />

The output (see Figure 7-28) shows a DUMPSTATE of ALLCOMPLETE at the version level,<br />

which means that all outstanding dump copies for this version ended successfully and are<br />

reported at the dump class level with a DUMPSTATE of COMPLETE.<br />

The volume serial numbers of all the dump volumes that contain dump copies and the names<br />

of all dump files are included as well.<br />

206 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO NONE ********* **************************************<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST020 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618<br />

MHL0A1 TST020 3590-1<br />

FILE SEQ=02, DSNAME=HSM.DMP.DCREDB18.VMHL0A1.D07050.T145618<br />

0----- END OF -- COPY POOL -- LISTING -----


To determine the contents of such a dump copy we can use the LIST command, as shown in<br />

Example 7-22 on page 211.<br />

1-- <strong>DFSMS</strong>HSM CONTROL DATASET -DUMP VOLUME-BCDS-- LISTING --- AT 19:21:17 ON 07/02/19 FOR SYSTEM=SC64<br />

0DUMP VOL UNIT FILE SOURCE DUMPED DUMPED PCT HW ENC C SET OF<br />

DUMP<br />

VOLSER STATUS TYPE SEQ VOLSER SMS CLASS DATE TIME EXP DATE IDRC LIBRARY FULL P VOLSERS<br />

0TST020 UNEXP 3590-1 DCREDB18 2008/02/10 Y LIB1 04 N *** Y<br />

01 MHL0A0 Y 2007/02/19 18:56:14 TST020<br />

Figure 7-29 Output of LIST DUMPVOLUME DCONTENTS(MHL0A1)<br />

The output (see Figure 7-29) shows the same look and feel as with other dump volumes with<br />

the exception of column CP, which contains Y to indicate that the contents of this dump<br />

volume were created while processing at least one target volume of a fast replication backup.<br />

7.3.3 FRBACKUP DUMPONLY<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618<br />

1CONTENTS OF VTOC COPY FOR SOURCE VOLUME MHL0A0<br />

0DATASET NAME ORG MULTI CREATED REFERENCED EXP DATE RACF PSWD CHANGED<br />

0MHLRES2.DCOLLECT.D997 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

MHLRES2.DCOLLECT.D998 PS NO 07/02/16 07/02/16 00/00/00 NO NO NO<br />

MHLRES2.DCOLLECT.D999 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

SYS1.VTOCIX.MHL0A0 PS *** 03/10/20 00/00/00 00/00/00 NO NO NO<br />

SYS1.VVDS.VMHL0A0 VS *** 03/11/07 00/00/00 00/00/00 *** *** NO<br />

YYY.CNTL.JCL PO NO 07/02/19 07/02/19 00/00/00 NO NO YES<br />

02 MHL0A1 Y 2007/02/19 18:56:14 TST020<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A1.D07050.T145618<br />

0----- END OF - DUMP VOLUME - LISTING -----<br />

1-- <strong>DFSMS</strong>HSM CONTROL DATASET -DUMP VOLUME-BCDS-- LISTING --- AT 19:21:41 ON 07/02/19 FOR SYSTEM=SC64<br />

0DUMP VOL UNIT FILE SOURCE DUMPED DUMPED PCT HW ENC C SET OF<br />

DUMP<br />

VOLSER STATUS TYPE SEQ VOLSER SMS CLASS DATE TIME EXP DATE IDRC LIBRARY FULL P VOLSERS<br />

0TST020 UNEXP 3590-1 DCREDB18 2008/02/10 Y LIB1 04 N *** Y<br />

01 MHL0A0 Y 2007/02/19 18:56:14 TST020<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A0.D07050.T145618<br />

02 MHL0A1 Y 2007/02/19 18:56:14 TST020<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A1.D07050.T145618<br />

1CONTENTS OF VTOC COPY FOR SOURCE VOLUME MHL0A1<br />

0DATASET NAME ORG MULTI CREATED REFERENCED EXP DATE RACF PSWD CHANGED<br />

0MHLRES2.DCOLLECT.D987 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

MHLRES2.DCOLLECT.D988 PS NO 07/02/16 07/02/16 00/00/00 NO NO NO<br />

MHLRES2.DCOLLECT.D989 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

SYS1.VTOCIX.MHL0A1 PS *** 03/10/20 00/00/00 00/00/00 NO NO NO<br />

SYS1.VVDS.VMHL0A1 VS *** 03/11/07 00/00/00 00/00/00 *** *** NO<br />

YYY.CMD.CLIST PE NO 07/02/19 07/02/19 00/00/00 NO NO YES<br />

0----- END OF - DUMP VOLUME - LISTING -----<br />

If you want to create another dump copy of a copy pool or complete a dump copy for that<br />

version (DUMPSTATE is PARTIAL) at any time (as long as the DASD copy you want to dump<br />

exists) you can use the DUMPONLY parameter of the FRBACKUP command.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 207


Suppose that there was a Version 1 DASD copy (token EX1) of copy pool CP1 created some<br />

time ago (see Figure 7-30).<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

Figure 7-30 Creation of Version 1 DASD copy of copy pool CP1<br />

If it is still available, we can display its properties by using the LIST COPYPOOL command,<br />

as shown in Example 7-17.<br />

Example 7-17 LIST COPYPOOL command to verify the existence of a DASD copy<br />

HSEND LIST CP(CP1) ALLVOLS(TOKEN(EX1))<br />

The output of the LIST command is shown in Figure 7-31 on page 209. The<br />

FASTREPLICATIONSTATE of RECOVERABLE proves that the DASD copy is available and<br />

complete. The DUMPSTATE of NONE shows that there is no dump copy available so far.<br />

When we want to dump this particular fast replication backup version we can use the<br />

command shown in Example 7-18.<br />

Example 7-18 FRBACKUP COPYPOOL(CP1) DUMPONLY<br />

HSEND FRBACKUP COPYPOOL(CP1) DUMPONLY(TOKEN(EX1))<br />

208 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

FRBACKUP CP(CP1) -<br />

EXECUTE -<br />

TOKEN(EX1)<br />

Flashcopy<br />

MHL1AE<br />

MHL1AD<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)


If you do not specify a dump class with the FRBACKUP command <strong>DFSMS</strong>hsm looks up the<br />

copy pool definition and uses the dump classes specified with the copy pool.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 15:05:04 ON<br />

07/02/19 FOR SYSTEM=SC64<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

001 Y 2007/02/19 14:49:20 RECOVERABLE NONE<br />

TOKEN(C)=C'EX1'<br />

TOKEN(H)=X'C5E7F1'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

0----- END OF -- COPY POOL -- LISTING -----<br />

Figure 7-31 Output of the LIST COPYPOOL command to verify the existence of a DASD copy<br />

The resulting messages in the JESMSGLG data set of the HSM address space are shown in<br />

Example 7-19. Note the time stamp of the dump data set. While the full volume dump process<br />

actually starts at 17:42:50, the low-level qualifier of the dump data set name (T204914, format<br />

Tssmmhh) reflects the time stamp of the fast replication backup as reported by the LIST<br />

COPYPOOL command (see Figure on page 187).<br />

Example 7-19 Messages in JESMSGLG for FRBACKUP COPYPOOL(SG1) DUMPONLY<br />

17.42.49 STC18151 ARC1801I FAST REPLICATION DUMPONLY IS STARTING FOR 261<br />

261 ARC1801I (CONT.) COPY POOL CP1, AT 17:42:49 ON 2007/02/19<br />

17.42.50 STC18151 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 262<br />

262 ARC0622I (CONT.) MHL0A0(SMS) AT 17:42:50 ON 2007/02/19, SYSTEM SC64,<br />

262 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

17.42.50 STC18151 IEC501A M 0B90,PRIVAT,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914<br />

17.43.48 STC18151 IEC705I TAPE ON 0B90,TST019,SL,COMP,DFHSM64,DFHSM64,HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914,MEDIA3<br />

17.43.49 STC18151 ARC0120I DUMP VOLUME TST019 ADDED, RC= 0, REAS= 0<br />

17.47.28 STC18151 IEC205I SYS00073,DFHSM64,DFHSM64,FILESEQ=1, COMPLETE VOLUME LIST, 267<br />

267 DSN=HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914,VOLS=TST019,<br />

267 TOTALBLOCKS=47437<br />

17.47.28 STC18151 ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, 269<br />

269 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR<br />

269 ARC0637I (CONT.) TARGET TO TAPE<br />

17.47.28 STC18151 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 270<br />

270 ARC0623I (CONT.) 17:47:28, PROCESSING SUCCESSFUL<br />

17.47.28 STC18151 ARC0622I FULL VOLUME DUMP STARTING ON VOLUME 271<br />

271 ARC0622I (CONT.) MHL0A1(SMS) AT 17:47:28 ON 2007/02/19, SYSTEM SC64,<br />

271 ARC0622I (CONT.) TASK ID=ARCDVOL1 , TO DUMP CLASS(ES)= DCREDB18<br />

17.51.09 STC18151 IEC205I SYS00073,DFHSM64,DFHSM64,FILESEQ=2, COMPLETE VOLUME LIST, 280<br />

280 DSN=HSM.DMP.DCREDB18.VMHL0A1.D07050.T204914,VOLS=TST019,<br />

280 TOTALBLOCKS=47437<br />

17.51.10 STC18151 ARC1802I FAST REPLICATION BACKUP DUMPONLY HAS 282<br />

282 ARC1802I (CONT.) COMPLETED FOR COPY POOL CP1, AT 17:51:10 ON<br />

282 ARC1802I (CONT.) 2007/02/19, FUNCTION RC=0000, MAXIMUM VOLUME RC=0000<br />

17.51.10 STC18151 IEF234E K 0B90,TST019,PVT,DFHSM64,DFHSM64<br />

17.51.11 STC18151 ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, 284<br />

284 ARC0637I (CONT.) DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR<br />

284 ARC0637I (CONT.) TARGET TO TAPE<br />

17.51.11 STC18151 ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 285<br />

285 ARC0623I (CONT.) 17:51:11, PROCESSING SUCCESSFUL<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 209


The fast replication DUMPONLY processing is documented by messages in the backup log<br />

(see Figure 7-32), as well as in the dump log (see Example 7-20).<br />

ARC1801I FAST REPLICATION DUMPONLY IS STARTING FOR COPY POOL CP1, AT 17:42:49 ON 2007/02/19<br />

ARC1802I FAST REPLICATION BACKUP DUMPONLY HAS COMPLETED FOR COPY POOL CP1, AT 17:51:10 ON 2007/02/19, FUNCTION<br />

RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

Figure 7-32 Messages in the <strong>DFSMS</strong>hsm backup log for FRBACKUP COPYPOOL(SG1) DUMPONLY<br />

The messages in the <strong>DFSMS</strong>hsm dump log look very similar to what we can see at any time<br />

when a full volume dump takes place under control of <strong>DFSMS</strong>hsm. What we cannot see as<br />

part of the dump log is which volumes stand behind the references that are used with the<br />

INDDNAME statements.<br />

There is one hint available that this was not a full volume dump of MHL0A0 as usual. Look at<br />

the time stamp of the DUMPVTOC data set and you can once more realize that this does not<br />

represent the current time of full volume dump processing (which started at 17:42:50), but<br />

instead T204914 (format Tssmmhh) represents exactly the time (14:49:20) when fast<br />

replication backup of volume MHL0A0 was started (see Figure on page 211).<br />

Example 7-20 Messages in the <strong>DFSMS</strong>hsm dump log for FRBACKUP COPYPOOL(SG1) DUMPONLY<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 15:26:04, DATE 07/02/19<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A0(SMS) AT 17:42:50 ON 2007/02/19, SYSTEM SC64, TASK ID=ARCDVOL1 ,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A0 COPIED TO DATA SET HSM.DUMPVTOC.T204914.VMHL0A0.D07050 ON VOLUME SBXHS6<br />

ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 17:42<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00072) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00073) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.050 17:42:50 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.050 17:42:50 EXECUTION BEGINS<br />

ARC0120I DUMP VOLUME TST019 ADDED, RC= 0, REAS= 0<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.050 17:47:28 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.050 17:47:28 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.050 17:47:28 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS<br />

0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A0 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR TARGET TO TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A0 ENDING AT 17:47:28, PROCESSING SUCCESSFUL<br />

ARC0622I FULL VOLUME DUMP STARTING ON VOLUME MHL0A1(SMS) AT 17:47:28 ON 2007/02/19, SYSTEM SC64, TASK ID=ARCDVOL1 ,<br />

TO DUMP CLASS(ES)= DCREDB18<br />

ARC0728I VTOC FOR VOLUME MHL0A1 COPIED TO DATA SET HSM.DUMPVTOC.T204914.VMHL0A1.D07050 ON VOLUME SBXHS6<br />

ARC0640I ARCDVOL1 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.050 17:47<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCDVOL1 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I ARCDVOL1 - DUMP FULL INDDNAME(SYS00075) -<br />

ARC0640I ARCDVOL1 - OUTDDNAME(SYS00073) -<br />

ARC0640I ARCDVOL1 - ALLEXCP ALLDATA(*) OPTIMIZE(3) TOLERATE(IOERROR)<br />

ARC0640I ARCDVOL1 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'DUMP '<br />

ARC0640I ARCDVOL1 - ADR109I (R/I)-RI01 (01), 2007.050 17:47:28 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCDVOL1 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCDVOL1 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(01), 2007.050 17:47:28 EXECUTION BEGINS<br />

ARC0640I ARCDVOL1 - ADR006I (001)-STEND(02), 2007.050 17:51:09 EXECUTION ENDS<br />

ARC0640I ARCDVOL1 - ADR013I (001)-CLTSK(01), 2007.050 17:51:09 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCDVOL1 - ADR012I (SCH)-DSSU (01), 2007.050 17:51:09 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS<br />

0000<br />

ARC1802I FAST REPLICATION BACKUP DUMPONLY HAS COMPLETED FOR COPY POOL CP1, AT 17:51:10 ON 2007/02/19, FUNCTION RC=0000,<br />

210 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MAXIMUM VOLUME RC=0000<br />

ARC0637I DUMP COPY OF VOLUME MHL0A1 COMPLETE, DCLASS=DCREDB18, EXPDT=2008/02/10, DISP<strong>OS</strong>ITION= FASTR TARGET TO TAPE<br />

ARC0623I FULL VOLUME DUMP OF VOLUME MHL0A1 ENDING AT 17:51:11, PROCESSING SUCCESSFUL<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 17:51:11, DATE 07/02/19<br />

When a LIST COPYPOOL(CP1) command (as shown in Example 7-21) is performed after all<br />

related full volume dumps have completed successfully, the DUMPSTATE indicates<br />

ALLCOMPLETE (see Figure ).<br />

Example 7-21 Syntax of LIST COPYPOOL command<br />

LIST COPYPOOL(CP1) ALLVOLS(TOKEN(EX1))<br />

Use the ALLVOLS parameter to request the display of all available information (volume pairs,<br />

dump classes, dump volumes, names of dump copy data sets), as shown in Figure 7-33.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 17:52:36 ON<br />

07/02/19 FOR SYSTEM=SC64<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

001 Y 2007/02/19 14:49:20 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX1'<br />

TOKEN(H)=X'C5E7F1'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

0<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

DCREDB18 Y COMPLETE 00002 2008/02/10 Y<br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO NONE ********* ***************************************<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST019 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914<br />

MHL0A1 TST019 3590-1<br />

FILE SEQ=02, DSNAME=HSM.DMP.DCREDB18.VMHL0A1.D07050.T204914<br />

0----- END OF -- COPY POOL -- LISTING -----<br />

Figure 7-33 Output of the LIST COPYPOOL(CP1) ALLVOLS<br />

To determine the contents of such a dump copy we can use the LIST command, as shown in<br />

Example 7-22.<br />

Example 7-22 LIST DUMPVOLUME command including DCONTENTS keyword<br />

LIST DUMPVOLUME TST019 DCONTENTS(MHL0A1)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 211


The output (Example 7-23) shows the same look and feel as other dump volumes with the<br />

exception of column CP, which contains Y to indicate that the contents of this dump volume<br />

were created while processing at least one target volume of a fast replication backup.<br />

Example 7-23 Output of LIST DUMPVOLUME DCONTENTS(MHL0A1)<br />

1-- <strong>DFSMS</strong>HSM CONTROL DATASET -DUMP VOLUME-BCDS-- LISTING --- AT 18:08:58 ON 07/02/19 FOR SYSTEM=SC64<br />

0DUMP VOL UNIT FILE SOURCE DUMPED DUMPED PCT HW ENC C SET OF DUMP<br />

VOLSER STATUS TYPE SEQ VOLSER SMS CLASS DATE TIME EXP DATE IDRC LIBRARY FULL P VOLSERS<br />

0TST019 UNEXP 3590-1 DCREDB18 2008/02/10 Y LIB1 04 N *** Y<br />

01 MHL0A0 Y 2007/02/19 14:49:20 TST019<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914<br />

02 MHL0A1 Y 2007/02/19 14:49:20 TST019<br />

ENCTYPE RSAKEY/KPWD<br />

********* ****************************************************************<br />

DUMP COPY DATA SET NAME = HSM.DMP.DCREDB18.VMHL0A1.D07050.T204914<br />

1CONTENTS OF VTOC COPY FOR SOURCE VOLUME MHL0A1<br />

0DATASET NAME ORG MULTI CREATED REFERENCED EXP DATE RACF PSWD CHANGED<br />

0MHLRES2.DCOLLECT.D987 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

MHLRES2.DCOLLECT.D988 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

MHLRES2.DCOLLECT.D989 PS NO 07/02/16 07/02/16 00/00/00 NO NO YES<br />

SYS1.VTOCIX.MHL0A1 PS *** 03/10/20 00/00/00 00/00/00 NO NO NO<br />

SYS1.VVDS.VMHL0A1 VS *** 03/11/07 00/00/00 00/00/00 *** *** NO<br />

0----- END OF - DUMP VOLUME - LISTING -----<br />

212 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


By specifying the DUMPONLY parameter of the FRBACKUP command, a full volume dump<br />

is requested for all target volumes of a particular fast replication backup version of a copy<br />

pool (see Figure 7-34).<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP1<br />

(COPY POOL)<br />

FRBACKUP CP(CP1) -<br />

EXECUTE -<br />

DUMPONLY-<br />

(TOKEN(EX1))<br />

Figure 7-34 FRBACKUP with DUMPONLY parameter<br />

Full volume<br />

dump<br />

MHL1AC<br />

MHL0AC<br />

MHL1AF<br />

MHL1AE<br />

MHL1AD<br />

The DUMPONLY parameter of the FRBACKUP command can be used to request any dump<br />

class even if it is not assigned at the copy pool level. By using up to five different dump<br />

classes you can have up to five dump copies for each fast replication backup generation. This<br />

allows for a maximum of 425 dump copies per copy pool.<br />

7.3.4 Copy pools that request NOCOPY type FlashCopy processing<br />

MHL0AF<br />

MHL0AE<br />

MHL0AD<br />

MHL2AE<br />

MHL2AD<br />

MHL2AC<br />

MHL2AF<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

TST019<br />

HSM.DMP.DCREDB18.VMHL0A0.D07050.T204914<br />

HSM.DMP.DCREDB18.VMHL0A1.D07050.T204914<br />

If you are interested in a full volume dump of a volume pool and if you can quiesce the<br />

applications that are using these data only for a very short period of time, you should consider<br />

using fast replication. When you are short on volumes to hold the fast replication backups,<br />

you can request the FlashCopy process with NOCOPY and to maintain these DASD copies<br />

only until a dump copy is successfully created.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 213


Copy pool for NOCOPY processing<br />

You must define a copy pool that contains 0 (zero) in the field number of recoverable DASD<br />

fast replicate backup versions (see Figure 7-35).<br />

Panel Utilities Scroll Help<br />

------------------------------------------------------------------------------<br />

COPY POOL DEFINE Page 1 of 4<br />

Command ===><br />

SCDS Name . . : SYS1.SMS.SCDS<br />

Copy Pool Name : CP0<br />

To DEFINE Copy Pool, Specify:<br />

Description ==> DUMPONLY COPY POOL<br />

==><br />

Auto Dump . . . Y (Y or N) Dump Sys/Sys Group Name . . .<br />

Dump Class . . CRYPCOPY Dump Class . .<br />

Dump Class . . Dump Class . .<br />

Dump Class . .<br />

Number of Recoverable DASD Fast<br />

Replicate Backup Versions . . . . 0 (0 to 85 or blank)<br />

Use ENTER to Perform Verification; Use DOWN Command to View next Panel;<br />

Use HELP Command for Help; Use END Command to Save and Exit; CANCEL to Exit.<br />

Figure 7-35 Copy pool definition for NOCOPY processing during fast replication backup<br />

Depending on your needs you can specify Y or N in the field auto dump. If you specify Y you<br />

must specify at least one dump class, as shown in Example 7-24.<br />

Example 7-24 FRBACKUP command for NOCOPY<br />

HSEND FRBACKUP CP(CP0) DUMP(DCLASS(CRYPCOPY))<br />

214 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


When you request a command (as shown in Example 7-24 on page 214) <strong>DFSMS</strong>hsm<br />

requests a fast replication backup for CP0 followed by a full volume dump of all target<br />

volumes that were paired with volumes of copy pool CP0 during fast replication backup (see<br />

Figure 7-36).<br />

MHL0A1<br />

MHL0A0<br />

SG1<br />

(Storgrp)<br />

CP0<br />

(COPY POOL)<br />

#FRBUV = 0<br />

FRBACKUP CP(CP0) -<br />

EXECUTE -<br />

DUMP(DCLASS( -<br />

CRYPCOPY))<br />

Figure 7-36 Fast replication dump with NOCOPY<br />

FCNOCOPY<br />

(Flashcopy Nocopy)<br />

Full volume<br />

dump<br />

When you look at the backup log of <strong>DFSMS</strong>hsm (see Example 7-25) while executing this<br />

request, you can see that the copy commands for execution of the fast replication backup<br />

phase of the process include FCNC keywords.<br />

Example 7-25 <strong>DFSMS</strong>hsm backup log while executing a fast replication dump with NOCOPY<br />

MHL1AE<br />

MHL1AD<br />

MHL1AC<br />

MHL0AE<br />

MHL0AD<br />

MHL0AC<br />

MHL1AF<br />

MHL2AC<br />

MHL0AF<br />

MHL2AF<br />

MHL2AE<br />

MHL2AD<br />

CPBSG1<br />

(Copy Pool Backup Storgrp)<br />

TST019<br />

HSM.DMP.CRYPCOPY.VMHL0A0.D07072.T141318<br />

HSM.DMP.CRYPCOPY.VMHL0A1.D07072.T141318<br />

<strong>DFSMS</strong>HSM BACKUP LOG, TIME 18:05:18, DATE 07/03/12<br />

ARC1801I FAST REPLICATION DUMP IS STARTING FOR COPY POOL CP0, AT 18:13:14 ON 2007/03/13<br />

ARC0640I ARCFRTM - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.072 18:13<br />

ARC0640I ARCFRTM - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCFRTM - PARALLEL<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'PARALLEL'<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A0) ODY(MHL0AF) DUMPCOND FR(REQ) PUR ALLX ALLD(*) FCNC<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 002 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - COPY IDY(MHL0A1) ODY(MHL1AC) DUMPCOND FR(REQ) PUR ALLX ALLD(*) FCNC<br />

ARC0640I ARCFRTM - ADR101I (R/I)-RI01 (01), TASKID 003 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I ARCFRTM - ADR109I (R/I)-RI01 (01), 2007.072 18:13:14 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCFRTM - ADR014I (SCH)-DSSU (02),<br />

2007.072 18:13:14 ALL PREVIOUSLY SCHEDULED TASKS COMPLETED. PARALLEL MODE NOW IN EFFECT<br />

ARC0640I ARCFRTM - ADR050I (002)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (002)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR050I (003)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I ARCFRTM - ADR016I (003)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCFRTM - ADR006I (002)-STEND(01), 2007.072 18:13:14 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (002)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (002)-T0MI (02), VOLUME MHL0A0 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 215


ARC0640I ARCFRTM - ADR006I (002)-STEND(02), 2007.072 18:13:14 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (002)-CLTSK(01), 2007.072 18:13:14 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(01), 2007.072 18:13:14 EXECUTION BEGINS<br />

ARC0640I ARCFRTM - ADR241I (003)-DDTFP(01), TARGET VTOC BEGINNING AT 000003:0000 AND ENDING AT 000008:0014 IS OVERLAID<br />

ARC0640I ARCFRTM - ADR806I (003)-T0MI (02), VOLUME MHL0A1 WAS COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I ARCFRTM - ADR006I (003)-STEND(02), 2007.072 18:13:14 EXECUTION ENDS<br />

ARC0640I ARCFRTM - ADR013I (003)-CLTSK(01), 2007.072 18:13:14 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCFRTM - ADR012I (SCH)-DSSU (01), 2007.072 18:13:14 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC1805I THE FOLLOWING 00002 VOLUME(S) WERE SUCCESSFULLY PROCESSED BY FAST REPLICATION BACKUP OF COPY POOL CP0<br />

ARC1805I (CONT.) MHL0A0<br />

ARC1805I (CONT.) MHL0A1<br />

ARC1802I FAST REPLICATION BACKUP DUMP HAS COMPLETED FOR COPY POOL CP0, AT 18:43:45 ON 2007/03/13, FUNCTION RC=0000,<br />

MAXIMUM VOLUME RC=0000<br />

Execution of a LIST command (as shown in Example 7-26) at the beginning of the process of<br />

a fast replication dump shows a FASTREPLICATIONSTATE of DUMPONLY (see<br />

Figure 7-37), which means that you cannot use this fast replication backup for recovery of the<br />

copy pool.<br />

Example 7-26 LIST CP(CP0) command<br />

HSEND LIST CP(CP0) ALLVOLS<br />

The DUMPSTATE is FAILED on the version level as well as on the dump class level because<br />

the full volume dumps of the target volumes are still in progress (see Figure 7-37).<br />

1-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 18:14:40 ON 07/0<br />

0COPYPOOL=CP0<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

001 Y 2007/03/13 18:13:14 DUMPONLY FAILED<br />

TOKEN(C)=C''<br />

TOKEN(H)=X''<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

0<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

CRYPCOPY N FAILED ***** 2008/03/03 N<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 ****** ********<br />

FILE SEQ=**, DSNAME=**<br />

MHL0A1 ****** ********<br />

FILE SEQ=**, DSNAME=**<br />

0----- END OF -- COPY POOL -- LISTING -----<br />

Figure 7-37 Output of LIST CP(CP0) command while DUMPSTATE was FAILED<br />

216 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


When we repeated the same LIST command, after some minutes we saw messages as<br />

shown in Figure 7-38.<br />

Since at least one copy pool volume was successfully dumped to tape, the DUMPSTATE<br />

switched from FAILED to PARTIAL.<br />

The target volume that was successfully dumped so far is no longer reported as a member of<br />

a volume pair.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 18:43:36 ON 07/03<br />

COPYPOOL=CP0<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

001 Y 2007/03/13 18:13:14 DUMPONLY PARTIAL<br />

TOKEN(C)=C''<br />

TOKEN(H)=X''<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0A1 - MHL1AC<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

CRYPCOPY N PARTIAL 00001 2008/03/03 N<br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO KEYPW CLRAES128 PASSW0RD<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST019 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.CRYPCOPY.VMHL0A0.D07072.T141318<br />

MHL0A1 ****** ********<br />

FILE SEQ=**, DSNAME=**<br />

----- END OF -- COPY POOL -- LISTING -----<br />

Figure 7-38 Output of LIST CP(CP0) command while DUMPSTATE was PARTIAL<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 217


When all copy pool volumes were successfully dumped to tape, the same LIST command<br />

shows output as shown in Figure 7-39:<br />

► DUMPSTATE was changing to ALLCOMPLETE / COMPLETE.<br />

► FASTREPLICATIONSTATE changed from DUMPONLY to NONE.<br />

► The former shown target volumes of the volume pairs are no longer presented.<br />

Volumes MHL0AF and MHL1AC can be reused by fast replication for any other FlashCopy<br />

relationships.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 18:44:36 ON 07/03<br />

COPYPOOL=CP0<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

001 Y 2007/03/13 18:13:14 NONE ALLCOMPLETE<br />

TOKEN(C)=C''<br />

TOKEN(H)=X''<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - ****** MHL0A1 - ******<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

CRYPCOPY N COMPLETE 00002 2008/03/03 N<br />

Figure 7-39 Output of LIST CP(CP0) command when DUMPSTATE was ALLCOMPLETE<br />

7.3.5 Two kinds of dump copies<br />

<strong>DFSMS</strong>hsm can create dump copies of Level0 volumes by using one of the following<br />

methods:<br />

► Automatic dump<br />

► BACKVOL command with keyword DUMP<br />

► FRBACKUP command with keyword DUMP or keyword DUMPONLY<br />

In all cases a dump generation record (DGN) in the BCDS describes each dump copy and a<br />

dump volume record (DVL) in the BCDS describes each dump volume.<br />

218 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO KEYPW CLRAES128 PASSW0RD<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST019 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.CRYPCOPY.VMHL0A0.D07072.T141318<br />

MHL0A1 TST019 3590-1<br />

FILE SEQ=02, DSNAME=HSM.DMP.CRYPCOPY.VMHL0A1.D07072.T141318<br />

----- END OF -- COPY POOL -- LISTING -----


When we use a list command, as shown in Example 7-27, we can list the associated dump<br />

copies for each level 0 volume.<br />

Example 7-27 Request for a list of associated dump copies of a level 0 volume<br />

HSEND LI PVOL(MHL0A0) ALLDUMPS BCDS<br />

An example of the output of the list command is shown in Example 7-28.<br />

Example 7-28 Output of LI PVOL(MHL0A0) ALLDUMPS BCDS command<br />

1- <strong>DFSMS</strong>HSM CONTROL DATASET - PRIMARY VOLUME-BCDS--- ALLDUMPS----- AT 19:56:38 ON 07/02/28 FOR SYSTEM=SC64<br />

SOURCE SET OF DUMP<br />

VOLSER GEN SMS DUMPED TIME CLASS EXP DATE VOLSERS �<br />

MHL0A0 00 YES 07/02/28 15:52:42 MHLRES 07/03/07 TST015 ****** ****** ****** ****** ****** ****** ****** ******<br />

FAST REPLICATION ASSOCIATED DATA FOR VOLUME MHL0A0:<br />

COPY POOL GEN DUMPED TIME CLASS EXP DATE SET OF DUMP VOLSERS �<br />

CP1 00 2007/02/27 17:03:06 DCREDB18 2008/02/18 TST028 ****** ****** ****** ****** ******<br />

PLUSCOPY 2008/02/18 TST024 ****** ****** ****** ****** ******<br />

01 2007/02/26 14:00:35 DCREDB18 2008/02/17 TST005 ****** ****** ****** ****** ******<br />

02 2007/02/22 16:31:22 DCREDB18 2008/02/13 TST025 ****** ****** ****** ****** ******<br />

03 2007/02/19 18:56:14 DCREDB18 2008/02/10 TST020 ****** ****** ****** ****** ******<br />

04 2007/02/19 14:49:20 DCREDB18 2008/02/10 TST019 ****** ****** ****** ****** ******<br />

----- END OF - PRIMARY VOLUME - LISTING -----<br />

As you can see, there are two lists of generations of dump copies presented in the list:<br />

► The first list to be seen (�) results from full volume dumps of volume MHL0A0.<br />

► The second list (�) results from full volume dumps of target volumes that appeared to be<br />

volume MHL0A0 (same contents but with different volume label in cylinder 0 track 0).<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 219


The basic difference between the traditional full volume dump copies and the fast replication<br />

associated full volume dump copies is that the fast replication associated dump copies are<br />

created from volumes that were the target of a FULL COPY DUMPCONDITIONING<br />

operation. This results in an incorrect volume serial number (that of the target volume) being<br />

dumped from record three of cylinder 0 track 0. You do not need to worry about that at any<br />

time because during any reuse of a dump copy like this for full volume recovery purposes<br />

<strong>DFSMS</strong>dss remembers that this is a dump copy of a conditioned volume and will take<br />

appropriate action to restore the volume label as of the source volume’s (see Figure 7-40).<br />

DUMPCONDITIONING - Phase 2<br />

Figure 7-40 DUMPCONDITIONING<br />

To learn more about DUMPCONDITIONING see the manuals:<br />

► <strong>DFSMS</strong>dss Storage Administration Guide, SC26-0423<br />

► <strong>DFSMS</strong>dfp Storage Administration Reference, SC26-7402<br />

► APAR OW48234.<br />

The two types of full volume dump copies look very similar but must be treated in different<br />

ways by <strong>DFSMS</strong>hsm.<br />

Dump generation records of dump copies that are not associated with fast replication backup<br />

are referenced by the BCDS eligible volume record (MCP) of the related volumes and can<br />

only be used by the commands:<br />

► HRECOVER dsname<br />

► HSEND RECOVER dsname FROMDUMP<br />

► HSEND RECOVER * TOVOLUME(volser) FROMDUMP<br />

In case of a fast replication dump copy (that was created from a volume of a copy pool<br />

backup storage group), the dump generation records are not referenced by the BCDS eligible<br />

220 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Vol. A<br />

VTOC.A<br />

VVDS.A<br />

Dump Tape appears to be<br />

made directly from source<br />

No longer required to CLIP<br />

volume label after restore<br />

Enables physical restore of<br />

volume, or individual physical<br />

data set restores<br />

COPY FULL<br />

DUMPCONDITIONING<br />

RESTORE<br />

COPYVOLID<br />

volume<br />

or<br />

RESTORE<br />

DATASET<br />

Dump<br />

Tape<br />

Vol. B<br />

VTOC.A<br />

VVDS.A<br />

DUMP<br />

FULL<br />

Vol. A<br />

VTOC.A<br />

VVDS.A<br />

OW48234


volume record (MCP). Such dump generations are referenced by the new fast replication<br />

records (FRx®) and are exclusively available for recovery by the FRREVCOV command.<br />

See Table 7-1 for a detailed comparison between traditional dump copies that <strong>DFSMS</strong>hsm<br />

has been providing for the last 20 years and the new dump copies created from fast<br />

replication target volumes that are available since z/<strong>OS</strong> <strong>DFSMS</strong>hsm V1.8.<br />

Table 7-1 Comparison of fast replication dump copies and other dump copies<br />

Dump of pool storage group<br />

volumes<br />

Dump of copy pool backup<br />

storage group volumes<br />

Created by command BACKVOL volser DUMP FRBACKUP CP(cpname)<br />

{DUMP / DUMPONLY}<br />

Created during Autodump Yes Yes<br />

Described by DGN record Yes Yes<br />

Described by DVL record Yes Yes<br />

Referenced by MCP record Yes No<br />

Available for use with<br />

RECOVER dsn command<br />

Available for use with<br />

RECOVER * command<br />

Available for use with command<br />

HRECOVER dsn<br />

Available for use with<br />

FRRECOV command<br />

Reported with LIST DVOL<br />

command<br />

Reported with command LIST<br />

PVOL(volser) ALLDUMPS<br />

BCDS<br />

Reported with command LIST<br />

COPYPOOL DUMPVOLS<br />

Reported with command LIST<br />

COPYPOOL ALLVOLS<br />

Can be used by <strong>DFSMS</strong>dss in<br />

batch directly for recovery of<br />

volumes and data sets<br />

Warning in case of one of the<br />

volumes of a storage group was<br />

not successfully dumped<br />

Maximum number of dump<br />

copies<br />

Maximum number of parallel<br />

processes during creation<br />

Maximum number of parallel<br />

processes during recovery of<br />

volumes by <strong>DFSMS</strong>hsm<br />

Yes No<br />

Yes No<br />

Yes No<br />

No Yes<br />

Yes Yes<br />

Yes Yes<br />

No Yes<br />

No Yes<br />

Yes Yes<br />

No Yes<br />

100 generations<br />

up to 5 copies per generation<br />

SETSYS<br />

MAXDUMPTASKS(32)<br />

1 1<br />

85 generations<br />

up to 5 copies per generation<br />

SETSYS<br />

MAXDUMPTASKS(32)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 221


Maximum number of parallel<br />

processes during recovery of<br />

data sets<br />

7.3.6 Recovery from fast replication dumps<br />

Fast replication recovery processing was enhanced with z/<strong>OS</strong> <strong>DFSMS</strong> 1.8 to support<br />

recovery from dumps of copy pool volumes.<br />

The FRRECOV command allows request for recovery of a single volume or data sets when<br />

you refer to a replication dump copy.<br />

Recovery of a single volume from a fast replication dump copy<br />

Using the command shown in Example 7-29 selects the latest version (GEN(0)) of the set of<br />

replication dump copies of copy pool CP1 for the recovery of volume MHL0A0. The<br />

FROMCOPYPOOL is an optional keyword that must be used if the volume that is being<br />

recovered resides within a storage group that is shared by multiple copy pools.<br />

Example 7-29 FRRECOV command to recover a single volume from a dump copy<br />

FRRECOV TOVOLUME(MHL0A1) FROMCOPYPOOL(CP1) FROMDUMP<br />

If a version other than the current version is to be recovered, then use the GENERATION,<br />

VERSION, DATE, or TOKEN keyword. There is no option to perform a recovery at the<br />

storage group level.<br />

As with FRBACKUP, <strong>DFSMS</strong>hsm can process up to 64 concurrent invocations of<br />

<strong>DFSMS</strong>dss, with 15 being the default.<br />

Messages that were issued during execution of the FRRECOV command are in the dump<br />

activity log (see Example 7-30).<br />

Example 7-30 Excerpt from the dump log while processing a fast replication recovery at the volume level from dump<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 17:57:52, DATE 07/03/12<br />

ARC0622I FULL VOLUME RESTORE STARTING ON VOLUME MHL0A0 AT 17:59:16 ON 2007/03/12, SYSTEM SC64, TASK ID=ARCGRVOL<br />

ARC0640I ARCGRVOL - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.071 17:59<br />

ARC0640I ARCGRVOL - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I ARCGRVOL - RESTORE FULL INDDNAME(SYS00332) OUTDDNAME(SYS00331) -<br />

ARC0640I ARCGRVOL - PURGE COPYVOLID CANCELERROR<br />

ARC0640I ARCGRVOL - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'RESTORE '<br />

ARC0640I ARCGRVOL - ADR109I (R/I)-RI01 (01), 2007.071 17:59:16 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I ARCGRVOL - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I ARCGRVOL - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I ARCGRVOL - ADR006I (001)-STEND(01), 2007.071 17:59:16 EXECUTION BEGINS<br />

ARC0640I ARCGRVOL - ADR780I (001)-TDFP (01),<br />

THE INPUT DUMP DATA SET BEING PROCESSED IS IN FULL VOLUME FORMAT AND WAS CREATED BY <strong>DFSMS</strong>DSS VERSION 1<br />

ARC0640I ARCGRVOL - RELEASE 8 MODIFICATION LEVEL 0<br />

ARC0640I ARCGRVOL - ADR808I (001)-TDFP (01),<br />

THE INPUT DUMP DATA SET BEING PROCESSED WAS CREATED FROM A CONDITIONED VOLUME<br />

ARC0640I ARCGRVOL - ADR460I (001)-UTMSG(01), UTILITY GENERATED MESSAGES FOLLOW FOR VOLUME MHL0A0<br />

ARC0640I ARCGRVOL - ICKDSF - MVS/ESA DEVICE SUPPORT FACILITIES 17.0 TIME: 18:04:57 03/12/07<br />

222 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Dump of pool storage group<br />

volumes<br />

SETSYS<br />

MAXDSTAPERECOVERTASK<br />

S(64)<br />

Dump of copy pool backup<br />

storage group volumes<br />

SETSYS<br />

MAXDSTAPERECOVERTASK<br />

S(64)<br />

Note: Recovery of an entire copy pool by using just one command can only be performed<br />

from the DASD backup copies.


PAGE 1<br />

ARC0640I ARCGRVOL -<br />

ARC0640I ARCGRVOL - BUILDIX DDNAME(SYS00331) IXVTOC<br />

ARC0640I ARCGRVOL - ICK01502I BUILDIX FUNCTION STARTED<br />

ARC0640I ARCGRVOL - ICK00700I DEVICE INFORMATION FOR 8005 IS CURRENTLY AS FOLLOWS:<br />

ARC0640I ARCGRVOL - PHYSICAL DEVICE = 3390<br />

ARC0640I ARCGRVOL - STORAGE CONTROLLER = 2105<br />

ARC0640I ARCGRVOL - STORAGE CONTROL DESCRIPTOR = E8<br />

ARC0640I ARCGRVOL - DEVICE DESCRIPTOR = 0A<br />

ARC0640I ARCGRVOL - ADDITIONAL DEVICE INFORMATION = 4A000035<br />

ARC0640I ARCGRVOL - TRKS/CYL = 15, # PRIMARY CYLS = 3339<br />

ARC0640I ARCGRVOL - ICK04000I DEVICE IS IN SIMPLEX STATE<br />

ARC0640I ARCGRVOL - ICK01503I 8005 REQUEST RECEIVED TO CONVERT VTOC TO IXFORMAT<br />

ARC0640I ARCGRVOL - ICK01504I 8005 VTOC FORMAT IS CURRENTLY <strong>OS</strong>FORMAT, REQUEST ACCEPTED<br />

ARC0640I ARCGRVOL - ICK01513I 8005 BUILDIX PROCESSING COMPLETED: VTOC IS NOW IN IXFORMAT<br />

ARC0640I ARCGRVOL - ICK01317I VTOC-INDEX IS LOCATED AT CCHH=X'0001 0000' AND IS 30 TRACKS.<br />

ARC0640I ARCGRVOL - 18:05:05 03/12/07<br />

ARC0640I ARCGRVOL -<br />

ARC0640I ARCGRVOL - ICK00002I ICKDSF PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0<br />

ARC0640I ARCGRVOL - ADR006I (001)-STEND(02), 2007.071 18:05:16 EXECUTION ENDS<br />

ARC0640I ARCGRVOL - PAGE 0002 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.071 17:59<br />

ARC0640I ARCGRVOL - ADR013I (001)-CLTSK(01), 2007.071 18:05:16 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I ARCGRVOL - ADR012I (SCH)-DSSU (01), 2007.071 18:05:16 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS<br />

0000<br />

ARC0400I VOLUME MHL0A0 IS 26% FREE, 00000018 FREE TRACK(S), 000900 FREE CYLINDER(S), FRAG .008<br />

ARC0401I LARGEST EXTENTS FOR MHL0A0 ARE CYLINDERS 890, TRACKS 13350<br />

ARC0402I VTOC FOR MHL0A0 IS 0090 TRACKS(04500 DSCBS), 04489 FREE DSCBS(99% OF TOTAL)<br />

ARC0623I FULL VOLUME RESTORE OF VOLUME MHL0A0 ENDING AT 18:05:18, DCLASS=DCREDB18, DGEN=000, DATE=2007/03/12,<br />

PROCESSING SUCCESSFUL<br />

ARC1802I FAST REPLICATION RECOVERY FROM DUMP HAS COMPLETED FOR VOLUME MHL0A0, AT 18:05:18 ON 2007/03/12,<br />

FUNCTION RC=0000, MAXIMUM VOLUME RC=0000<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 18:05:18, DATE 07/03/12<br />

Volume restore FROMDUMP(APPLYINCREMENTAL)<br />

You can request a recovery from a fast replication backup copy on tape that includes<br />

APPLYINCREMENTAL processing by using a command, as shown in Example 7-31.<br />

Example 7-31 FRRECOV command that includes FROMDUMP(APPLYINCREMENTAL)<br />

HSEND FRRECOV TOVOLUME(MHL0A0) FROMCP(CP1) FROMDUMP(APPLYINCREMENTAL) GEN(0)<br />

This process is well-known from the command:<br />

RECOVER * TOVOLUME(...) FROMDUMP(APPLYINCREMENTAL)<br />

It works exactly the same way. After successful restore of a DASD volume from a full volume<br />

dump copy, an incremental volume recovery process follows on. A data set will be selected<br />

for processing during the incremental recovery phase if the data set was backed up by<br />

command or during volume backup after the creation of the fast replication backup.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 223


In Figure 7-41 you can see the messages from the backup log when we executed the<br />

command as shown in Example 7-31 on page 223. Note that there was an ICF catalog on<br />

volume MHL0A0.<br />

ARC1801I FAST REPLICATION RECOVERY FROM DUMP IS STARTING FOR VOLUME MHL0A0, AT 17:59:16 ON 2007/03/12<br />

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0<br />

IDC0604I DATA SET BEING IMPORTED WAS EXPORTED ON 03/12/07 AT 17:53:45<br />

IGD01010I SG ACS GETS CONTROL &ACSENVIR=RECOVER<br />

IGD01010I SG ACS GETS CONTROL &ACSENVIR=RECOVER<br />

IDC0181I MANAGEMENTCLASS USED IS MCDB22<br />

IDC0181I STORAGECLASS USED IS HSMFR<br />

IDC0508I DATA ALLOCATION STATUS FOR VOLUME MHL0A0 IS 0<br />

IDC0509I INDEX ALLOCATION STATUS FOR VOLUME MHL0A0 IS 0<br />

IDC01654I ALIASES FROM THE PORTABLE DATA SET WERE NOT DEFINED<br />

TESTFR<br />

IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0<br />

IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 0<br />

ARC0778I DATA SET UCAT.TESTFR WAS RECOVERED FROM A BACKUP MADE AT 17:53:45 ON 2007/03/12 WITHOUT SERIALIZATION<br />

ARC0734I ACTION=RECOVER FRVOL=SBXHS5 TOVOL=MHL0A0 TRACKS= 16 RC= 0, REASON= 0, AGE= ***, DSN=UCAT.TESTFR<br />

ARC0734I ACTION=RECOVER FRVOL=****** TOVOL=MHL0A0 TRACKS= *** RC= 43, REASON= 18, AGE= ***,<br />

DSN=SYS1.VVDS.VMHL0A0<br />

ARC0734I ACTION=RECOVER FRVOL=****** TOVOL=MHL0A0 TRACKS= *** RC= 58, REASON= 36, AGE= ***,<br />

DSN=TESTFR.DCOLLECT.ESDS01<br />

ARC0734I ACTION=RECOVER FRVOL=****** TOVOL=MHL0A0 TRACKS= *** RC= 58, REASON= 36, AGE= ***,<br />

DSN=TESTFR.MHLRES2.MVOL.DATA<br />

ARC0734I ACTION=RCVSCHD FRVOL=****** TOVOL=MHL0A0 TRACKS= *** RC= 0, REASON= 0, AGE= ***,<br />

DSN=TESTFR.CNTL.JCL<br />

ARC0734I ACTION=RCVSCHD FRVOL=****** TOVOL=MHL0A0 TRACKS= *** RC= 0, REASON= 0, AGE= ***,<br />

DSN=TESTFR.DCOLLECT.ESDS0<br />

ARC0778I DATA SET TESTFR.CNTL.JCL WAS RECOVERED FROM A BACKUP MADE AT 17:53:19 ON 2007/03/12<br />

ARC0734I ACTION=RECOVER FRVOL=SBXHS4 TOVOL=MHL0A0 TRACKS= 150 RC= 0, REASON= 0, AGE= ***,<br />

DSN=TESTFR.CNTL.JCL<br />

ARC0778I DATA SET TESTFR.DCOLLECT.ESDS0 WAS RECOVERED FROM A BACKUP MADE AT 17:55:21 ON 2007/03/12<br />

ARC0734I ACTION=RECOVER FRVOL=SBXHS5 TOVOL=MHL0A0 TRACKS= 13350 RC= 0, REASON= 0, AGE= ***,<br />

DSN=TESTFR.DCOLLECT.ESDS0<br />

ARC0773I RECOVERY ENDED ON VOLUME MHL0A0 TIME 18:06:18<br />

Figure 7-41 Backup log messages from fast replication recovery including APPLYINCREMENTAL<br />

Additional messages can be found in the <strong>DFSMS</strong>hsm dump log, as shown in Example 7-30<br />

on page 222.<br />

Recovery of data sets from a fast replication dump copy<br />

This is covered in 7.4, “Data set recovery” on page 224.<br />

7.4 Data set recovery<br />

Starting with z/<strong>OS</strong> <strong>DFSMS</strong>hsm V1.8, you can use the FRROCOV command to recover an<br />

individual data set from either DASD or tape fast replication backup copies. Since<br />

<strong>DFSMS</strong>hsm does not record any information at the data set level in the BCDS during fast<br />

replication backup, the current catalog entry of the data set is looked up by <strong>DFSMS</strong>hsm in<br />

order to see which volumes are involved in the recovery process. <strong>DFSMS</strong>hsm always riles on<br />

the catalog entry, and the FRRECOV command fails either any of the following is true:<br />

► The catalog entry is not available.<br />

► The catalog entry points to different volumes as when the fast replication backup was<br />

created.<br />

Note: To be eligible for recovery by using the FRRECOV command, a data set must be<br />

cataloged and the catalog entry must point to the same volumes on which the data set<br />

resided when the backup copy was created.<br />

224 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The keywords that are available to request a data set recovery from a fast replication backup<br />

are shown in Figure 7-42.<br />

Figure 7-42 FRRECOV command keywords for data set recovery<br />

For dsname you can substitute one or more fully or partially specified data set names. For<br />

partially specified data set names you can use wild cards of the form:<br />

% To represent a single character<br />

* To represent a single qualifier or parts of a qualifier<br />

** To represent anything (even more than one qualifier)<br />

7.4.1 Data set filtering<br />

>>-FRRECOV------------------------------------------------------------------><<br />

| | |-GENERATION(gennum)-| |-B-|<br />

| |--,---| | |-VERSION(vernum)----|<br />

|-DSNAME(-dsname-)----------| |-DATE(date)---------|<br />

|-A-| |-TOKEN(token)-------|<br />

A>>----------------------------------------------REPLACE----------------------><br />

|-FROMDASD-------------------------------|<br />

|-FROMDUMP-------------------------------|<br />

|-(----------------------------------)-|<br />

|-DUMPCLASS(dclass)-|<br />

|-DCLASS(dclass)----|<br />

|-DUMPVOLUME(dvol)--|<br />

|-DVOL(dvol)--------|<br />

>-----------------------------------------------------------------------------><br />

| | |-FROMCOPYPOOL(cpname)-|<br />

|-FASTREPLICATION(-PREFERRED--)--|<br />

|FR-| |-REQUIRED-|<br />

|-NONE-----|<br />

>---------------------------------------------------------------------------><<br />

| |-RC8-| |<br />

|-NOCOPYPOOLBACKUP(--RC4--)--|<br />

|-NOCPB-|<br />

B>>-----------------------------><<br />

|-RSA(keylabel)-|<br />

The standard search order for catalogs applies. You may not specify ** as the high-level<br />

qualifier or as the only qualifier.<br />

You can request, for example, the recovery of two data sets by using the command as shown<br />

in Example 7-32.<br />

Example 7-32 FRRECOV DSNAME command to recover two data sets<br />

HSEND FRRECOV DSNAME(TESTFR.CMD.CLIST TESTFR.CNTL.JCL) REPLACE FROMCP(CP1)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 225


Note that the specification of FROMCP(CP1) is required because the volumes where the data<br />

sets reside are assigned to more than one copy pool (CP0 and CP1). If you omit FROMCP<br />

you end up with message ARC1866I, as shown in Figure 7-43.<br />

ARC1866I FAST REPLICATION RECOVERY HAS FAILED FOR DATA SET TESTFR.CMD.CLIST,<br />

ARC1866I (CONT.) RC=0020<br />

Figure 7-43 ARC1866I RC=0020<br />

Messages issued during the data set recovery process can be found in the:<br />

► JESMSGLG (Example 7-33)<br />

► Backup log (Example 7-34)<br />

► Dump log (Example 7-35)<br />

Example 7-33 JESMSGLG during FRRECOV processing of two data sets<br />

16.06.15 STC21322 ARC1861I THE FOLLOWING 0002 DATA SET(S) WERE 870<br />

870 ARC1861I (CONT.) SUCCESSFULLY PROCESSED DURING FAST REPLICATION DATA<br />

870 ARC1861I (CONT.) SET RECOVERY:<br />

16.06.15 STC21322 ARC1861I (CONT.) TESTFR.CMD.CLIST, COPYPOOL=CP1, DEVTYPE=DASD<br />

16.06.15 STC21322 ARC1861I (CONT.) TESTFR.CNTL.JCL, COPYPOOL=CP1, DEVTYPE=DASD<br />

16.06.15 STC21322 ARC1802I FAST REPLICATION DATA SET RECOVERY HAS 873<br />

873 ARC1802I (CONT.) COMPLETED FOR DATA SET TESTFR.CMD.CLIST, ***, AT<br />

873 ARC1802I (CONT.) 16:06:15 ON 2007/03/19, FUNCTION RC=0000, MAXIMUM<br />

873 ARC1802I (CONT.) DATA SET RC=0000<br />

The catalog search found entries for both data sets, so both of them are selected for further<br />

processing.<br />

Example 7-34 Backup log during FRRECOV processing of two data sets<br />

ARC1801I FAST REPLICATION DATA SET RECOVERY IS STARTING FOR DATA SET TESTFR.CMD.CLIST, ***, AT 16:06:14 ON 2007/03/19<br />

ARC1861I THE FOLLOWING 0002 DATA SET(S) WERE SUCCESSFULLY PROCESSED DURING FAST REPLICATION DATA SET RECOVERY:<br />

ARC1861I (CONT.) TESTFR.CMD.CLIST, COPYPOOL=CP1, DEVTYPE=DASD<br />

ARC1861I (CONT.) TESTFR.CNTL.JCL, COPYPOOL=CP1, DEVTYPE=DASD<br />

ARC1802I FAST REPLICATION DATA SET RECOVERY HAS COMPLETED FOR DATA SET TESTFR.CMD.CLIST, ***, AT 16:06:15 ON 2007/03/19,<br />

FUNCTION RC=0000, MAXIMUM DATA SET RC=0000<br />

The dump log shows the keywords that are generated for execution of the data set copy. It is<br />

a physical data set operation (keyword PHYSINDY) that requests the same management<br />

class, storage class, and volume as was found in the catalog entry of each data set. While<br />

BYPASSACS is requested as well, this does not really change the catalog entry of the data<br />

sets.<br />

In this particular case, preallocated data sets were found to be in place, which fitted exactly<br />

the needs of the data sets that were to be recovered.<br />

Example 7-35 Dump log during FRRECOV processing of two data sets<br />

<strong>DFSMS</strong>HSM DUMP LOG, TIME 18:43:46, DATE 07/03/13<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.078 16:06<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I GDSN02 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.078 16:06<br />

ARC0640I GDSN02 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK DEFAULT TO YES<br />

ARC0640I GDSN01 - COPY DS(INC(TESTFR.CMD.CLIST )) -<br />

ARC0640I GDSN02 - COPY DS(INC(TESTFR.CNTL.JCL )) -<br />

ARC0640I GDSN01 - PHYSINDY(MHL1AC) OUTDYNAM(MHL0A1) -<br />

ARC0640I GDSN02 - PHYSINDY(MHL0AF) OUTDYNAM(MHL0A0) -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.CMD.CLIST ) -<br />

ARC0640I GDSN02 - BYPASSACS(TESTFR.CNTL.JCL ) -<br />

ARC0640I GDSN01 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN02 - FASTREPLICATION(PREFERRED) -<br />

226 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ARC0640I GDSN01 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN02 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN01 - TGTGDS( DEFERRED) -<br />

ARC0640I GDSN02 - TGTGDS( DEFERRED) -<br />

ARC0640I GDSN01 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN02 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN01 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN02 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN02 - MGMTCLAS(HFS )<br />

ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.078 16:06:14 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I GDSN02 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN02 - ADR109I (R/I)-RI01 (01), 2007.078 16:06:14 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN02 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION INTERFACE<br />

ARC0640I GDSN02 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.078 16:06:14 EXECUTION BEGINS<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(01), 2007.078 16:06:14 EXECUTION BEGINS<br />

ARC0640I GDSN01 - ADR442I (001)-PPRNV(01), DATA SET TESTFR.CMD.CLIST PREALLOCATED, ON VOLUME(S): MHL0A1<br />

ARC0640I GDSN02 - ADR442I (001)-PPRNV(01), DATA SET TESTFR.CNTL.JCL PREALLOCATED, ON VOLUME(S): MHL0A0<br />

ARC0640I GDSN01 - ADR806I (001)-T0MI (01), DATA SET TESTFR.CMD.CLIST COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I GDSN02 - ADR806I (001)-T0MI (01), DATA SET TESTFR.CNTL.JCL COPIED USING A FAST REPLICATION FUNCTION<br />

ARC0640I GDSN01 - ADR454I (001)-DDDS (02), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN01 - TESTFR.CMD.CLIST<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.078 16:06:14 EXECUTION ENDS<br />

ARC0640I GDSN02 - ADR454I (001)-DDDS (02), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN02 - TESTFR.CNTL.JCL<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(02), 2007.078 16:06:14 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.078 16:06:14 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.078 16:06:14 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

ARC0640I GDSN02 - ADR013I (001)-CLTSK(01), 2007.078 16:06:14 TASK COMPLETED WITH RETURN CODE 0000<br />

ARC0640I GDSN02 - ADR012I (SCH)-DSSU (01), 2007.078 16:06:14 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0000<br />

Let us look at another example that requests data set filtering by some masking characters<br />

(Example 7-36).<br />

Example 7-36 FRRECOV DSNAME command to recover a group of data sets<br />

HSEND FRRECOV DSNAME(TESTFR.C*.* TESTFR.N*.*) REPLACE FROMCP(CP1)<br />

When we did a catalog search by using the PDF utility DSLIST (3.4) providing the same data<br />

set name masks, we got a display as shown in Figure 7-44.<br />

Menu Options View Utilities Compilers Help<br />

-------------------------------------------------------------------------------<br />

DSLIST - Data Sets Matching TESTFR.C* 2 new append(s)<br />

Command ===> Scroll ===> CSR<br />

Command - Enter "/" to select action Message Volume<br />

-------------------------------------------------------------------------------<br />

TESTFR.CMD.CLIST MHL0A1<br />

TESTFR.CNTL.JCL MHL0A0<br />

TESTFR.NONFRBA.TEST1 SBOX1E<br />

TESTFR.NONFRBA.TEST2 SBOX1D<br />

***************************** End of Data Set list ****************************<br />

Figure 7-44 DSLIST display for data set name masks as used with FRRECOV<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 227


When you compare the results of data set filtering by using Figure 7-44 on page 227,<br />

Figure 7-45, and Example 7-37, you can verify that during processing of the FRRECOV<br />

command the same data sets are selected as when looking up the catalog by using DSLIST<br />

(3.4).<br />

ARC1001I TESTFR.NONFRBA.TEST1 RECOVER FAILED, RC=0093, REAS=0066-0024<br />

ARC1193I FAST REPLICATION RECOVERY FAILED<br />

ARC1001I TESTFR.NONFRBA.TEST2 RECOVER FAILED, RC=0093, REAS=0066-0024<br />

ARC1193I FAST REPLICATION RECOVERY FAILED<br />

ARC1000I TESTFR.CMD.CLIST RECOVER PROCESSING ENDED<br />

ARC1001I TESTFR.C*.*, *** FRRECOV FAILED, RC=0008, REAS=0000<br />

ARC1808E ONE OR MORE FAILURES OCCURRED DURING FAST REPLICATION RECOVERY OF<br />

ARC1808E (CONT.) DATA SET TESTFR.C*.*, ***<br />

ARC1000I TESTFR.CNTL.JCL RECOVER PROCESSING ENDED<br />

***<br />

Figure 7-45 Messages returned to TSO session in case of processing a group of data sets<br />

If some of the matching data set names cannot be recovered because there are no fast<br />

replication backups available, recovery fails for these data sets but command processing<br />

continues (see Figure 7-45 and Example 7-37) and all data sets currently cataloged on a<br />

recoverable copy pool volume will be recovered.<br />

Example 7-37 Messages issued in backup log in case of processing a group of data sets<br />

ARC1801I FAST REPLICATION DATA SET RECOVERY IS STARTING FOR DATA SET TESTFR.C*.*, ***, AT 18:12:53 ON 2007/03/19<br />

ARC1861I THE FOLLOWING 0002 DATA SET(S) WERE SUCCESSFULLY PROCESSED DURING FAST REPLICATION DATA SET RECOVERY:<br />

ARC1861I (CONT.) TESTFR.CMD.CLIST, COPYPOOL=CP1, DEVTYPE=DASD<br />

ARC1861I (CONT.) TESTFR.CNTL.JCL, COPYPOOL=CP1, DEVTYPE=DASD<br />

ARC1862I THE FOLLOWING 0002 DATA SET(S) WERE NOT SELECTED FOR FAST REPLICATION DATA SET RECOVERY PROCESSING:<br />

ARC1862I (CONT.) TESTFR.NONFRBA.TEST1<br />

ARC1862I (CONT.) TESTFR.NONFRBA.TEST2<br />

ARC1802I FAST REPLICATION DATA SET RECOVERY HAS COMPLETED FOR DATA SET TESTFR.C*.*, ***, AT 18:12:53 ON 2007/03/19,<br />

FUNCTION RC=0008, MAXIMUM DATA SET RC=0066<br />

7.4.2 Multi-volume data sets<br />

Multi-volume data sets are supported by FRRECOV DSNAME command processing. But you<br />

should always keep in mind that recovering a multi-volume data set from full volume copies or<br />

dumps may fail. Even if the recovery process ends without any error messages you might end<br />

up in a corrupted data set because the data set’s catalog entry is from than at the time of fast<br />

replication backup.<br />

228 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Suppose that we want to recover data set TESTFR.DCOLLECT ESDS01, which is a<br />

multi-volume VSAM data set. Its catalog entry is shown in Figure 7-46.<br />

CLUSTER ------- TESTFR.DCOLLECT.ESDS01<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

SMSDATA<br />

STORAGECLASS ------HSMFR MANAGEMENTCLASS---MCDB22<br />

DATACLASS --------(NULL) LBACKUP ---0000.000.0000<br />

BWO STATUS------00000000 BWO TIMESTAMP---00000 00:00:00.0<br />

BWO---------------(NULL)<br />

RLSDATA<br />

LOG ----------------(NULL) RECOVERY REQUIRED --(NO) FRLOG -------<br />

----(NULL)<br />

VSAM QUIESCED -------(NO) RLS IN USE ---------(NO)<br />

LOGSTREAMID-----------------------------(NULL)<br />

RECOVERY TIMESTAMP LOCAL-----X'0000000000000000'<br />

RECOVERY TIMESTAMP GMT-------X'0000000000000000'<br />

DATA ------- TESTFR.DCOLLECT.ESDS01.DATA<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

ACCOUNT-INFO-----------------------------------(NULL)<br />

VOLUMES<br />

VOLSER------------MHL0A0 DEVTYPE------X'3010200F'<br />

VOLSER------------MHL0A1 DEVTYPE------X'3010200F'<br />

Figure 7-46 Output of LISTC command for TESTFR.DCOLLECT.ESDS01<br />

Recovery when volume pointers in ICF are unchanged<br />

The fast replication backup version we use for recovery is listed inFigure 7-47.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 13:16:07 ON 07/03<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

006 Y 2007/03/12 16:01:45 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX6'<br />

TOKEN(H)=X'C5E7F6'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

Figure 7-47 LIST CP of the fast replication backup version to be used for recovery<br />

The catalog entry of the data set did not change since the fast replication backup was made.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 229


Execution of the command as shown in Example 7-38 leads to a perfectly recovered data set.<br />

Example 7-38 FRRECOV DSNAME command<br />

FRRECOV DSNAME(TESTFR.DCOLLECT.ESDS01) REPLACE FROMCP(CP1)<br />

The messages in the dump log of <strong>DFSMS</strong>hsm (see Example 7-39) show clearly that two copy<br />

commands are being executed internally by <strong>DFSMS</strong>hsm:<br />

► One for the data set’s components on volume MHL0A0<br />

► One for the data set’s components on volume MHL0A1<br />

Example 7-39 <strong>DFSMS</strong>hsm dump log while processing FRRECOV for TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.081<br />

18:45<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - COPY DS(INC(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - PHYSINDY(MHL0AF) OUTDYNAM(MHL0A0) -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN02 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.081<br />

18:45<br />

ARC0640I GDSN01 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN02 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN01 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN02 - COPY DS(INC(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN02 - PHYSINDY(MHL1AC) OUTDYNAM(MHL0A1) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN02 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN02 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.081 18:45:50 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN02 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN02 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN02 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN02 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN02 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN02 - ADR109I (R/I)-RI01 (01), 2007.081 18:45:50 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION<br />

INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN02 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION<br />

INTERFACE<br />

ARC0640I GDSN02 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.081 18:45:50 EXECUTION BEGINS<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(01), 2007.081 18:45:50 EXECUTION BEGINS<br />

ARC0640I GDSN01 - ADR442I (001)-PPRVS(01), DATA SET TESTFR.DCOLLECT.ESDS01 PREALLOCATED, IN<br />

CATALOG UCAT.TESTFR,<br />

ON VOLUME(S): MHL0A0<br />

ARC0640I GDSN02 - ADR442I (001)-PPRVS(01), DATA SET TESTFR.DCOLLECT.ESDS01 PREALLOCATED, IN<br />

CATALOG UCAT.TESTFR,<br />

230 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ON VOLUME(S): MHL0A1<br />

ARC0640I GDSN02 - ADR806I (001)-T0MI (03), DATA SET TESTFR.DCOLLECT.ESDS01 COPIED USING A FAST<br />

REPLICATION FUNCTION<br />

ARC0640I GDSN02 - ADR454I (001)-DDDS (01), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN02 - CLUSTER NAME TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN02 - COMPONENT NAME TESTFR.DCOLLECT.ESDS01.DATA<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(02), 2007.081 18:45:51 EXECUTION ENDS<br />

ARC0640I GDSN02 - ADR013I (001)-CLTSK(01), 2007.081 18:45:51 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN02 - ADR012I (SCH)-DSSU (01), 2007.081 18:45:51 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

ARC0640I GDSN01 - ADR806I (001)-T0MI (03), DATA SET TESTFR.DCOLLECT.ESDS01 COPIED USING A FAST<br />

REPLICATION FUNCTION<br />

ARC0640I GDSN01 - ADR454I (001)-DDDS (01), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN01 - CLUSTER NAME TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - COMPONENT NAME TESTFR.DCOLLECT.ESDS01.DATA<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.081 18:45:51 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.081 18:45:51 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.081 18:45:51 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

Recovery after volume count has been reduced<br />

Now we have reorganized the data set and it is no longer made up of pieces spread among<br />

several volumes (see the catalog entry in Figure 7-48).<br />

CLUSTER ------- TESTFR.DCOLLECT.ESDS01<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

SMSDATA<br />

STORAGECLASS ------HSMFR MANAGEMENTCLASS---MCDB22<br />

DATACLASS --------(NULL) LBACKUP ---0000.000.0000<br />

BWO STATUS------00000000 BWO TIMESTAMP---00000 00:00:00.0<br />

BWO---------------(NULL)<br />

RLSDATA<br />

LOG ----------------(NULL) RECOVERY REQUIRED --(NO) FRLOG -------<br />

----(NULL)<br />

VSAM QUIESCED -------(NO) RLS IN USE ---------(NO)<br />

LOGSTREAMID-----------------------------(NULL)<br />

RECOVERY TIMESTAMP LOCAL-----X'0000000000000000'<br />

RECOVERY TIMESTAMP GMT-------X'0000000000000000'<br />

DATA ------- TESTFR.DCOLLECT.ESDS01.DATA<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

ACCOUNT-INFO-----------------------------------(NULL)<br />

VOLUMES<br />

VOLSER------------MHL0A0 DEVTYPE------X'3010200F'<br />

VOLSER------------* DEVTYPE------X'3010200F'<br />

Figure 7-48 Output of LISTC command for TESTFR.DCOLLECT.ESDS01<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 231


The backup copy we use for recovery is still the same that we last used (see Figure 7-47 on<br />

page 229). Remember that during creation of this backup the data set was spread among the<br />

two volumes.<br />

The recovery of the data set seems to work fine, as the messages in Example 7-40 lead us to<br />

believe.<br />

Example 7-40 <strong>DFSMS</strong>hsm dump log while processing FRRECOV for TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.081<br />

19:36<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - COPY DS(INC(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - PHYSINDY(MHL0AF) OUTDYNAM(MHL0A0) -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN01 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN01 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN01 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN01 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.081 19:36:17 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION<br />

INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.081 19:36:17 EXECUTION BEGINS<br />

ARC0640I GDSN01 - ADR442I (001)-PPRVS(01), DATA SET TESTFR.DCOLLECT.ESDS01 PREALLOCATED, IN<br />

CATALOG UCAT.TESTFR,<br />

ON VOLUME(S): MHL0A0<br />

ARC0640I GDSN01 - ADR390I (001)-PPRVS(01),<br />

DATA SET TESTFR.DCOLLECT.ESDS01 WILL BE SCRATCHED FROM MHL0A0 BECAUSE OF UNMATCHED SIZE. IT<br />

WILL BE<br />

ARC0640I GDSN01 - REALLOCATED<br />

ARC0640I GDSN01 - ADR431I (001)-DYNA (02), DATA SET TESTFR.DCOLLECT.ESDS01.DATA HAS BEEN<br />

DELETED<br />

ARC0640I GDSN01 - ADR396I (001)-PCVSM(01),<br />

DATA SET CLUSTER TESTFR.DCOLLECT.ESDS01 COMPONENT TESTFR.DCOLLECT.ESDS01.DATA ALLOCATED, ON<br />

VOLUME(S):<br />

ARC0640I GDSN01 - MHL0A0<br />

ARC0640I GDSN01 - ADR806I (001)-T0MI (03), DATA SET TESTFR.DCOLLECT.ESDS01 COPIED USING A FAST<br />

REPLICATION FUNCTION<br />

ARC0640I GDSN01 - ADR454I (001)-DDDS (01), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN01 - CLUSTER NAME TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - COMPONENT NAME TESTFR.DCOLLECT.ESDS01.DATA<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.081 19:36:17 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.081 19:36:17 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.081 19:36:17 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

But when we compare the contents of the data set after the FRRECOV process with the one<br />

before we did the recover, we see that there is some missing data — the piece of data that<br />

was backed up from MHL0A1.<br />

232 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The likelihood for a decrease in volume count is not as high as an increase in volume count (it<br />

depends on the installation’s behavior), but this is an issue that you should keep in mind.<br />

Note: Be very careful when you recover a multi-volume data set from a fast replication<br />

backup and when the volume count of the data set has decreased since the backup was<br />

made.<br />

Recovery after volume count has been increased<br />

We tested the option where the volume count has been increased. The data set is spread<br />

among two volumes at the time of recovery because of a volume overflow that took place<br />

some time since the last fast replication backup.<br />

Now we use a different fast replication backup version (see Figure 7-49).<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 13:16:07 ON 07/03<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

007 Y 2007/03/22 19:39:37 RECOVERABLE NONE<br />

TOKEN(C)=C''<br />

TOKEN(H)=X''<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL1AD MHL0A1 - MHL1AE<br />

Figure 7-49 LIST CP of the fast replication backup version to be used for recovery<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 233


TESTFR.DCOLLECT.ESDS01 was, at time of backup, a single volume data set (see<br />

Figure 7-50).<br />

CLUSTER ------- TESTFR.DCOLLECT.ESDS01<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

SMSDATA<br />

STORAGECLASS ------HSMFR MANAGEMENTCLASS---MCDB22<br />

DATACLASS --------(NULL) LBACKUP ---0000.000.0000<br />

BWO STATUS------00000000 BWO TIMESTAMP---00000 00:00:00.0<br />

BWO---------------(NULL)<br />

RLSDATA<br />

LOG ----------------(NULL) RECOVERY REQUIRED --(NO) FRLOG -------<br />

----(NULL)<br />

VSAM QUIESCED -------(NO) RLS IN USE ---------(NO)<br />

LOGSTREAMID-----------------------------(NULL)<br />

RECOVERY TIMESTAMP LOCAL-----X'0000000000000000'<br />

RECOVERY TIMESTAMP GMT-------X'0000000000000000'<br />

DATA ------- TESTFR.DCOLLECT.ESDS01.DATA<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

ACCOUNT-INFO-----------------------------------(NULL)<br />

VOLUMES<br />

VOLSER------------MHL0A0 DEVTYPE------X'3010200F'<br />

VOLSER------------* DEVTYPE------X'3010200F'<br />

Figure 7-50 Output of LISTC command for TESTFR.DCOLLECT.ESDS01<br />

The data set was successfully recovered by the process and the catalog entry was changed<br />

accordingly to show just a candidate volume instead of the second volume pointer.<br />

As you can see in the dump log of <strong>DFSMS</strong>hsm (see Example 7-41), a physical data set copy<br />

from MHL1AE to MHL0A1 was tried (GDSN02) but did not end successfully because the data<br />

set was not found on volume MHL1AE (remember that at backup time the data set had no<br />

extents on any volume other than MHL0A0).<br />

Example 7-41 <strong>DFSMS</strong>hsm dump log while processing FRRECOV for TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.082<br />

12:41<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - COPY DS(INC(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - PHYSINDY(MHL1AD) OUTDYNAM(MHL0A0) -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN01 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN01 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN01 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN01 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

234 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.082 12:41:45 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION<br />

INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.082 12:41:45 EXECUTION BEGINS<br />

ARC0640I GDSN02 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.082<br />

12:41<br />

ARC0640I GDSN02 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN02 - COPY DS(INC(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN02 - PHYSINDY(MHL1AE) OUTDYNAM(MHL0A1) -<br />

ARC0640I GDSN02 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN02 - FASTREPLICATION(PREFERRED) -<br />

ARC0640I GDSN02 - ALLDATA(*) ALLEXCP REPLACEU CANCELERROR DEBUG(FRMSG(DTL)) -<br />

ARC0640I GDSN02 - FORCECP(0) PROCESS(SYS1) -<br />

ARC0640I GDSN02 - STORCLAS(HSMFR ) -<br />

ARC0640I GDSN02 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN02 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '<br />

ARC0640I GDSN02 - ADR109I (R/I)-RI01 (01), 2007.082 12:41:45 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN02 - ADR050I (001)-PRIME(02), <strong>DFSMS</strong>DSS INVOKED VIA CR<strong>OS</strong>S MEMORY APPLICATION<br />

INTERFACE<br />

ARC0640I GDSN02 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(01), 2007.082 12:41:45 EXECUTION BEGINS<br />

ARC0640I GDSN02 - ADR801I (001)-DDDS (01),<br />

DATA SET FILTERING IS COMPLETE. 0 OF 0 DATA SETS WERE SELECTED: 0 FAILED SERIALIZATION AND 0<br />

FAILED FOR<br />

ARC0640I GDSN02 - OTHER REASONS.<br />

ARC0640I GDSN02 - ADR383W (001)-DDDS (01), DATA SET TESTFR.DCOLLECT.ESDS01 NOT SELECTED<br />

ARC0640I GDSN02 - ADR470W (001)-DDDS (04), NO DATA SETS SELECTED FOR PROCESSING<br />

ARC0640I GDSN02 - ADR006I (001)-STEND(02), 2007.082 12:41:45 EXECUTION ENDS<br />

ARC0640I GDSN02 - ADR013I (001)-CLTSK(01), 2007.082 12:41:45 TASK COMPLETED WITH RETURN CODE<br />

0004<br />

ARC0640I GDSN02 - ADR012I (SCH)-DSSU (01),<br />

2007.082 12:41:45 <strong>DFSMS</strong>DSS PROCESSING COMPLETE. HIGHEST RETURN CODE IS 0004 FROM:<br />

ARC0640I GDSN02 - TASK 001<br />

ARC0640I GDSN01 - ADR442I (001)-PPRVS(01), DATA SET TESTFR.DCOLLECT.ESDS01 PREALLOCATED, IN<br />

CATALOG UCAT.TESTFR,<br />

ON VOLUME(S): MHL0A0<br />

ARC0640I GDSN01 - ADR390I (001)-PPRVS(01),<br />

DATA SET TESTFR.DCOLLECT.ESDS01 WILL BE SCRATCHED FROM MHL0A0 BECAUSE OF UNMATCHED SIZE. IT<br />

WILL BE<br />

ARC0640I GDSN01 - REALLOCATED<br />

ARC0640I GDSN01 - ADR431I (001)-DYNA (02), DATA SET TESTFR.DCOLLECT.ESDS01.DATA HAS BEEN<br />

DELETED<br />

ARC0640I GDSN01 - ADR396I (001)-PCVSM(01),<br />

DATA SET CLUSTER TESTFR.DCOLLECT.ESDS01 COMPONENT TESTFR.DCOLLECT.ESDS01.DATA ALLOCATED, ON<br />

VOLUME(S):<br />

ARC0640I GDSN01 - MHL0A0<br />

ARC0640I GDSN01 - ADR806I (001)-T0MI (03), DATA SET TESTFR.DCOLLECT.ESDS01 COPIED USING A FAST<br />

REPLICATION FUNCTION<br />

ARC0640I GDSN01 - ADR454I (001)-DDDS (01), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

ARC0640I GDSN01 - CLUSTER NAME TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - COMPONENT NAME TESTFR.DCOLLECT.ESDS01.DATA<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 235


ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.082 12:41:46 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.082 12:41:46 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.082 12:41:46 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

During further processing the current data set was deleted, reallocated, and restored from the<br />

copy that was found on MHL1AD, which is the target volume of MHL0A0.<br />

Conclusion<br />

If you recover multi-volume data sets you should check the results of FRRECOV.<br />

But how can you remember the catalog entry of a data set at backup time? Basically, you<br />

need some kind of VTOC copies that you can provide easily as part of the fast replication<br />

dump process. Another option is to create your own meta data by using IDCAMS<br />

DCOLLECT. Go to 7.4.4, “Hints and tips for the recovery of data sets that no longer exist” on<br />

page 239, for more information.<br />

7.4.3 Data set recovery from fast replication dumps<br />

Fast replication recovery at the data set level is initiated by a command, as shown in<br />

Example 7-42.<br />

Example 7-42 FRRECOV DSNAME command to request recovery from fast replication dump<br />

HSEND FRRECOV DSNAME(TESTFR.DCOLLECT.ESDS01) REPLACE FROMCP(CP1) GEN(1) FROMDUMP<br />

236 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The recovery was done successfully based on the catalog entry, as shown in Figure 7-51.<br />

CLUSTER ------- TESTFR.DCOLLECT.ESDS01<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

SMSDATA<br />

STORAGECLASS ------HSMFR MANAGEMENTCLASS---MCDB22<br />

DATACLASS --------(NULL) LBACKUP ---0000.000.0000<br />

BWO STATUS------00000000 BWO TIMESTAMP---00000 00:00:00.0<br />

BWO---------------(NULL)<br />

RLSDATA<br />

LOG ----------------(NULL) RECOVERY REQUIRED --(NO) FRLOG -------<br />

----(NULL)<br />

VSAM QUIESCED -------(NO) RLS IN USE ---------(NO)<br />

LOGSTREAMID-----------------------------(NULL)<br />

RECOVERY TIMESTAMP LOCAL-----X'0000000000000000'<br />

RECOVERY TIMESTAMP GMT-------X'0000000000000000'<br />

DATA ------- TESTFR.DCOLLECT.ESDS01.DATA<br />

IN-CAT --- UCAT.TESTFR<br />

HISTORY<br />

DATASET-OWNER-----(NULL) CREATION--------2007.058<br />

RELEASE----------------2 EXPIRATION------0000.000<br />

ACCOUNT-INFO-----------------------------------(NULL)<br />

VOLUMES<br />

VOLSER------------MHL0A0 DEVTYPE------X'3010200F'<br />

VOLSER------------MHL0A1 DEVTYPE------X'3010200F'<br />

Figure 7-51 Output of LISTC command for TESTFR.DCOLLECT.ESDS01<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 237


The fast replication dump that we requested is listed in Figure 7-52.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 18:02:44 ON 07/03<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

006 Y 2007/03/12 16:01:45 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX6'<br />

TOKEN(H)=X'C5E7F6'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

DUMPCLASS REQUIRED DUMPSTATE VOLSSUC EXPDATE AVAILABLE<br />

DCREDB18 Y COMPLETE 00002 2008/03/02 Y<br />

Figure 7-52 LIST CP of the fast replication backup version to be used for recovery<br />

The excerpt from the <strong>DFSMS</strong>hsm dump log (see Example 7-43) shows that now restore<br />

commands instead of copy commands are being executed. The processing is at the physical<br />

data set level as well as with copy. The entire process is driven by the catalog entry of the<br />

data set being requested for recovery. As you can see in Example 7-43, there are two restore<br />

processes being executed according to the volume pointers in the catalog entry (MHL0A0<br />

and MHL0A1).<br />

Example 7-43 <strong>DFSMS</strong>hsm dump log while processing FRRECOV for TESTFR.DCOLLECT.ESDS01<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.082<br />

17:40<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I GDSN01 - RESTORE DS(INCLUDE(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - INDDNAME(SYS03708) OUTDDNAME(SYS03709) REPLACE CANCELERROR -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN01 - STORCLAS(STANDARD ) FORCECP(0) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'RESTORE '<br />

ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.082 17:40:34 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.082 17:40:34 EXECUTION BEGINS<br />

ARC0640I GDSN01 - ADR780I (001)-TDDS (01),<br />

238 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

HWCOMP ENCRYPT ENCTYPE RSAKEY/KPWD<br />

NO NONE ********* ***************************************<br />

SOURCE DUMPVOLS DEVICE TYPE<br />

MHL0A0 TST007 3590-1<br />

FILE SEQ=01, DSNAME=HSM.DMP.DCREDB18.VMHL0A0.D07071.T450116<br />

MHL0A1 TST007 3590-1<br />

FILE SEQ=02, DSNAME=HSM.DMP.DCREDB18.VMHL0A1.D07071.T450116


THE INPUT DUMP DATA SET BEING PROCESSED IS IN FULL VOLUME FORMAT AND WAS CREATED BY <strong>DFSMS</strong>DSS<br />

VERSION 1<br />

ARC0640I GDSN01 - RELEASE 8 MODIFICATION LEVEL 0<br />

ARC0640I GDSN01 - ADR378I (001)-TDDS (02), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

FROM VOLUME MHL0A0<br />

ARC0640I GDSN01 - TESTFR.DCOLLECT.ESDS01<br />

TESTFR.DCOLLECT.ESDS01.DATA<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.082 17:46:36 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.082 17:46:36 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.082 17:46:36 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

ARC0640I GDSN01 - PAGE 0001 5695-DF175 <strong>DFSMS</strong>DSS V1R08.0 DATA SET SERVICES 2007.082<br />

17:46<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(06), INSTALLATION EXIT ALTERED BYPASS FAC CLASS CHK<br />

DEFAULT TO YES<br />

ARC0640I GDSN01 - ADR035I (SCH)-PRIME(03), INSTALLATION EXIT ALTERED WORKUNIT DEFAULT TO<br />

ARC0640I GDSN01 - RESTORE DS(INCLUDE(TESTFR.DCOLLECT.ESDS01 )) -<br />

ARC0640I GDSN01 - INDDNAME(SYS03708) OUTDDNAME(SYS03712) REPLACE CANCELERROR -<br />

ARC0640I GDSN01 - BYPASSACS(TESTFR.DCOLLECT.ESDS01 ) -<br />

ARC0640I GDSN01 - STORCLAS(STANDARD ) FORCECP(0) -<br />

ARC0640I GDSN01 - MGMTCLAS(MCDB22 )<br />

ARC0640I GDSN01 - ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'RESTORE '<br />

ARC0640I GDSN01 - ADR109I (R/I)-RI01 (01), 2007.082 17:46:36 INITIAL SCAN OF USER CONTROL<br />

STATEMENTS COMPLETED.<br />

ARC0640I GDSN01 - ADR050I (001)-PRIME(01), <strong>DFSMS</strong>DSS INVOKED VIA APPLICATION INTERFACE<br />

ARC0640I GDSN01 - ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(01), 2007.082 17:46:36 EXECUTION BEGINS<br />

ARC0640I GDSN01 - ADR780I (001)-TDDS (01),<br />

THE INPUT DUMP DATA SET BEING PROCESSED IS IN FULL VOLUME FORMAT AND WAS CREATED BY <strong>DFSMS</strong>DSS<br />

VERSION 1<br />

ARC0640I GDSN01 - RELEASE 8 MODIFICATION LEVEL 0<br />

ARC0640I GDSN01 - ADR378I (001)-TDDS (02), THE FOLLOWING DATA SETS WERE SUCCESSFULLY PROCESSED<br />

FROM VOLUME MHL0A1<br />

ARC0640I GDSN01 - TESTFR.DCOLLECT.ESDS01<br />

TESTFR.DCOLLECT.ESDS01.DATA<br />

ARC0640I GDSN01 - ADR006I (001)-STEND(02), 2007.082 17:49:39 EXECUTION ENDS<br />

ARC0640I GDSN01 - ADR013I (001)-CLTSK(01), 2007.082 17:49:39 TASK COMPLETED WITH RETURN CODE<br />

0000<br />

ARC0640I GDSN01 - ADR012I (SCH)-DSSU (01), 2007.082 17:49:39 <strong>DFSMS</strong>DSS PROCESSING COMPLETE.<br />

HIGHEST RETURN CODE IS 0000<br />

7.4.4 Hints and tips for the recovery of data sets that no longer exist<br />

If the data set that you need to recover was deleted and you want to recover it from a fast<br />

replication backup, you need at least a catalog entry for the data set. The most simple and<br />

common way to meet this requirement is to allocate an empty dummy data set on the<br />

volumes.<br />

You do not need to remember the exact DCB or size because if it does not fit, physical copy<br />

deletes and reallocates the data set according to the actual needs. There are two important<br />

things that you must know:<br />

► VSAM (including type, like KSDS, ESDS, and so on) or non-VSAM<br />

► Volumes where the data set resided<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 239


If you recover a data set from a fast replication dump copy you could find the information in a<br />

VTOCCOPY data set that was created under control of <strong>DFSMS</strong>hsm (see Figure 7-53).<br />

If you want to recover from a DASD fast replication copy a VTOCCOPY data set is not<br />

available.<br />

You will find all this information in DCOLLECT output (see Figure 7-55 on page 241) of the<br />

volumes that are being backed up by using fast replication.<br />

BROWSE HSM.DUMPVTOC.T450116.VMHL0A0.D07071 Line 00000000 Col 001 080<br />

Command ===> Scroll ===> CSR<br />

********************************* Top of Data **********************************<br />

SYS1.VTOCIX.MHL0A0 ..Å......... ...h....{..............<br />

TESTFR.DCOLLECT.D997 ..,.....,... ..Ø{....Ø..............<br />

SYS1.VVDS.VMHL0A0 ..Å...........Ø.Ø....Ø..............<br />

TESTFR.DCOLLECT.D999 ..,.....,... ..Ø{....Ø..............<br />

TESTFR.DCOLLECT.ESDS0.DATA ..,.....,.....Ø.{....Ø..............<br />

TESTFR.CNTL.JCL ..,.....,......ØØ....μ..............<br />

TESTFR.DCOLLECT.ESDS01.DATA ..,.....,.....Ø.{....Ø..............<br />

TESTFR.SRCHFOR.LIST ..,.....,... ..Ø&..À.Ø..............<br />

TESTFR.MHLRES2.MVOL.DATA ..,.....,... ..ØØ..À.Ø..............<br />

UCAT.TESTFR ..,.....,.å...{.{....Ø..............<br />

UCAT.TESTFR.CATINDEX ..,...........{.h....Ø..............<br />

******************************** Bottom of Data ********************************<br />

Figure 7-53 Dump VTOCCOPY data set created by <strong>DFSMS</strong>hsm based on dump class setting<br />

When you run a job (Figure 7-54) right before you start a fast replication for a copy pool, you<br />

can preserve the volume pointers as well as the information of the type of VSAM for future<br />

use.<br />

//STEP1 EXEC PGM=IDCAMS<br />

//*<br />

//*<br />

//SYSPRINT DD SYSOUT=*<br />

//DCOUT DD DSN=MHLRES2.DCOLLECT.SG1,DISP=(MOD,CATLG),<br />

// SPACE=(CYL,(1,1),RLSE),RECFM=VB,LRECL=644,<br />

// STORCLAS=HSMFR<br />

//SYSIN DD *<br />

DCOLLECT -<br />

OUTFILE(DCOUT) -<br />

STORAGEGROUP( -<br />

SG1 -<br />

) -<br />

/* END OF DCOLLECT COMMAND<br />

Figure 7-54 Example JCL for execution of a DCOLLECT run<br />

We recommend reusing a data set for output that is allocated on one of the copy pool<br />

volumes. This makes sure that you never become confused about which data set provides<br />

accurate information for a particular fast replication backup version that you intend to use for<br />

recovery.<br />

You must be prepared to not be able to open a copy of this data set from one of the target<br />

volumes. So, if you need to access more than the current content of such a data set, start<br />

240 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


FRRECOV for this particular data set from the desired fast replication backup or dump<br />

generation. This should never be a problem if you really reuse (not reallocate) the data set<br />

when you run the next DCOLLECT since the volume pointers in the catalog entry should not<br />

change.<br />

BROWSE MHLRES2.DCOLLECT.SG1 Line 00000016 Col 005 084<br />

Command ===> Scroll ===> CSR<br />

D ..SC64.(..........TESTFR.DCOLLECT.ESDS01.DATA . ......{.MHL0A0<br />

A ..SC64.(..........TESTFR.DCOLLECT.ESDS01.DATA TESTFR.DCOLLECT.<br />

D ..SC64.(..........UCAT.TESTFR .â¦.....{.MHL0A0<br />

A ..SC64.(..........UCAT.TESTFR UCAT.TESTFR<br />

D ..SC64.(..........SYS1.VTOCIX.MHL0A0 . ±... .Ø.MHL0A0<br />

D ..SC64.(..........TESTFR.MHLRES2.MVOL.DATA . ±... .&.MHL0A0<br />

V ..SC64.(..........MHL0A1X...........¢...¢................h...?3390 Ø.....SG<br />

D ..SC64.(..........SYS1.VVDS.VMHL0A1 . ........MHL0A1<br />

A ..SC64.(..........SYS1.VVDS.VMHL0A1 SYS1.VVDS.VMHL0A<br />

D ..SC64.(..........TESTFR.DCOLLECT.D987 .à.... .&.MHL0A1<br />

D ..SC64.(..........TESTFR.DCOLLECT.D989 .à.... .&.MHL0A1<br />

D ..SC64.(..........TESTFR.CMD.CLIST .è......°.MHL0A1<br />

D ..SC64.(..........TESTFR.MHLRES2.DUMMY . .... .&.MHL0A1<br />

D ..SC64.(..........TESTFR.MHLRES2.MVOL.DATA . .... .&.MHL0A1<br />

D ..SC64.(..........TESTFR.DCOLLECT.ESDS1.DATA . ......{.MHL0A1<br />

A ..SC64.(..........TESTFR.DCOLLECT.ESDS1.DATA TESTFR.DCOLLECT.<br />

D ..SC64.(..........TESTFR.SUPERC.LIST . .... .m.MHL0A1<br />

D ..SC64.(..........TESTFR.DCOLLECT.ESDS01.DATA . ......{.MHL0A1<br />

A ..SC64.(..........TESTFR.DCOLLECT.ESDS01.DATA TESTFR.DCOLLECT.<br />

D ..SC64.(..........SYS1.VTOCIX.MHL0A1 . ±... .Ø.MHL0A1<br />

Figure 7-55 Output of DCOLLECT STORAGEGROUP(SG1)<br />

In order to find information about the data set names that you are interested in it is easiest to<br />

browse the DCOLLECT data set and to use the find command.<br />

When all required information is available you can allocate a dummy data set. You should<br />

consider using a storage class that was defined with the guaranteed space attribute in order<br />

to make sure that the dummy data set is allocated on the same volumes as it was at time of<br />

backup. Do not forget to alter the storage class after allocation of the data set. During<br />

FRRECOV DSNAME processing there is no call for ACS routine services, so the storage<br />

class is not redetermined automatically.<br />

After you have finished the preparation activities you can try the FRRECOV DSNAME<br />

command for the data set. While the physical data set copy is a physical process that works<br />

at the tracks level to copy a data set, you never need to worry about the physical location of a<br />

data set’s extents. <strong>DFSMS</strong>dss is able to use any free extents on a volume for output of the<br />

data set copy process. You might get into trouble if the current free space on the volumes is<br />

not sufficient to restore the data set. If this is the case, recovery fails, so you must retry the<br />

FRRECOV DSNAME command after you have moved some data sets off the volumes.<br />

7.5 Reporting on the <strong>DFSMS</strong>hsm fast replication environment<br />

In this section we discuss reporting in the fast replication environment.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 241


7.5.1 Statistic records<br />

<strong>DFSMS</strong>hsm writes its own statistic records. This is not a statistic record created by a z/<strong>OS</strong><br />

function such as dynamic allocation. The command SETSYS SMF or N<strong>OS</strong>MF tells<br />

<strong>DFSMS</strong>hsm to write or not write SMF records.<br />

The optional parameters SMF(smfid) and N<strong>OS</strong>MF are mutually exclusive. They specify<br />

whether <strong>DFSMS</strong>hsm writes SMF records that contain <strong>DFSMS</strong>hsm statistics.<br />

► SMF(smfid) specifies that <strong>DFSMS</strong>hsm write SMF records in the SYS1.MANX or<br />

SYS1.MANY system data sets.<br />

For smfid, substitute a record identification. Use SMF user codes for the record<br />

identification in the range of 128 to 255.<br />

If you specify smfid, <strong>DFSMS</strong>hsm writes records with SMF identifications of smfid and<br />

smfid+1. Records with an identification of smfid contain daily statistics (DSR) and volume<br />

statistics (VSR). Records with an identification of smfid+1 contain function statistics (FSR)<br />

and ABARS function statistics (WWFSR).<br />

► N<strong>OS</strong>MF specifies that no SMF records are to be written.<br />

7.5.2 REPORT command<br />

Note: When a <strong>DFSMS</strong>hsm function executes, only selected fields within the FSR<br />

record are set. The fields that are set depend on the function that is being performed<br />

and the method that is used to request the function. The fields that are set are required<br />

by the <strong>DFSMS</strong>hsm REPORT command.<br />

The REPORT command has been updated with z/<strong>OS</strong> <strong>DFSMS</strong> V1.5 in support of <strong>DFSMS</strong>hsm<br />

fast replication.<br />

REPORT DAILY command<br />

The REPORT DAILY command has been updated with z/<strong>OS</strong> <strong>DFSMS</strong> 1.5 to report the total<br />

number of volumes for which a fast replication backup or recovery has been requested. The<br />

total number of failures is also reported. The two lines in Example 7-44 have been added to<br />

the REPORT DAILY heading.<br />

There were no updates with z/<strong>OS</strong> <strong>DFSMS</strong> 1.8. Processing of dumps of copy pool volumes is<br />

counted in the existing fields:<br />

► FULL VOLUME DUMPS=<br />

► DUMP COPIES=<br />

► FULL VOLUME RESTORES=<br />

Example 7-44 <strong>Update</strong>s to the REPORT DAILY heading with z/<strong>OS</strong> <strong>DFSMS</strong> V1.5<br />

FAST REPLICATION VOLUME BACKUPS = 00000004 REQUESTED, 00000000 FAILED<br />

FAST REPLICATION VOLUME RECOVERS = 00000001 REQUESTED, 00000000 FAILED<br />

REPORT VOLUMES command<br />

The REPORT VOLUMES command has been updated with z/<strong>OS</strong> <strong>DFSMS</strong> V1.5 to report the<br />

total number times that a fast replication backup was successfully created for the volume and<br />

the number of failed attempts for that volume. Recover statistics are also reported. The two<br />

lines in Example 7-45 on page 243 have been added to the REPORT VOLUMES heading.<br />

242 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


There were no updates with z/<strong>OS</strong> <strong>DFSMS</strong> V1.8. Processing of dumps of copy pool volumes<br />

is reported in the existing fields:<br />

► VOLUME DUMP=<br />

► DUMP COPIES=<br />

► FULL VOLUME RESTORES=<br />

Note that dumps of copy pool volumes are created by processing volumes of copy pool<br />

backup storage groups, but you will never find statistics about volumes of copy pool backup<br />

storage groups in <strong>DFSMS</strong>hsm.<br />

Example 7-45 <strong>Update</strong>s to the REPORT VOLUMES heading with z/<strong>OS</strong> <strong>DFSMS</strong> 1.5<br />

FAST REPLICATION BACKUP = 0000 REQUESTED, 0000 FAILED<br />

FAST REPLICATION RECOVER = 0000 REQUESTED, 0000 FAILED<br />

REPORT statistics<br />

The two REPORT options show the current statistics (DSR and VSR) for the <strong>DFSMS</strong>hsm<br />

address space. The statistics are accumulated in the <strong>DFSMS</strong>hsm work space and are written<br />

to the MCDS and to SMF under the following conditions:<br />

► For DSR<br />

– At the start of a new hour<br />

– When a REPORT command is entered<br />

– When a QUERY STATISTICS command is entered<br />

– When <strong>DFSMS</strong>hsm shuts down<br />

– At the start of a new day (the previous day’s record is written)<br />

Note: <strong>DFSMS</strong>hsm activity (recalls, migrations, backups, recovers, dumps, recycles,<br />

restores, and deletions of migrated data sets) must occur in order for <strong>DFSMS</strong>hsm to<br />

recognize the start of a new hour or day.<br />

► For VSR<br />

– Whenever a daily statistics record is written<br />

– At the end of secondary space management<br />

– After space management has been performed on a volume<br />

► For FSR<br />

– The FSR is both one of the <strong>DFSMS</strong>hsm statistic records and a control block that<br />

contains statistics for a particular function that is performed. It is maintained in the<br />

<strong>DFSMS</strong>hsm workspace until a function such as FRBACKUP has completed.<br />

– Upon completion of the function, the record is written to the <strong>DFSMS</strong>hsm log and<br />

accumulated by category into the daily and volume statistics records in the migration<br />

control data set (MCDS).<br />

– The FSR is also written to the SMF data sets (SYS1.MANx or SYS1.MANy) if SETSYS<br />

SMF is specified.<br />

Tip: If statistics are needed for a week or several days, they may be extracted more<br />

easily from the SMF data, not only out of the address space or MCDS. It is also easier<br />

to use REXX or other programs to analyze them.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 243


7.5.3 DSR records<br />

There are no updates in the DSR records with z/<strong>OS</strong> <strong>DFSMS</strong> V1.8.<br />

7.5.4 <strong>Update</strong>d VSR records<br />

There are no updates in the VSR records with z/<strong>OS</strong> <strong>DFSMS</strong> V1.8.<br />

7.5.5 New fields in FSR records<br />

Fields related to fast replication are shown in bold in Table 7-2.<br />

Table 7-2 Function statistics record extract of the new and updated fields<br />

Offsets Type Length Name Description<br />

42 (2A) FIXED 1 FSRTYPE <strong>DFSMS</strong>hsm function type. The function types<br />

are as follows:<br />

1=Primary to level 1 migration<br />

2=Level 1 to level 2 migration,<br />

or level 1 to level 1 migration<br />

or level 2 to level 2 migration<br />

3=Primary to level 2 migration<br />

4=Recall from level 1 to primary<br />

5=Recall from level 2 to primary<br />

6=Delete a migrated data set<br />

7=Daily backup<br />

8=Spill backup<br />

9=Recovery<br />

10=Recycle backup volume<br />

11=Data set deletion by age<br />

12=Recycle migration volume<br />

13=Full volume dump<br />

14=Volume or data set restore<br />

15=ABACKUP function (see WWFSR control<br />

block)<br />

16=ARECOVER function (see WWFSR<br />

control block)<br />

17=Expire primary or migrated data sets<br />

18=Partrel function<br />

19=Expire or roll off incremental backup<br />

version<br />

20=(H)BDELETE an incremental backup<br />

version<br />

21=Fast replication backup function<br />

22=Fast replication recover function<br />

23=Fast replication delete function<br />

131 (83) BITSTRING 1 FSRMFLGS Flags from the MWE.<br />

1... .... FSRFRTRY When set to 1, the backup copy was made<br />

during a retry, after the first try failed because<br />

the data set was in use.<br />

.1.. .... FSRF_REMO<br />

TE<br />

244 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

When set to 1, this request completed<br />

successfully on a remote system.


Offsets Type Length Name Description<br />

..1. .... FSRFPIGB When set to 1, the request was completed<br />

using a tape already mounted.<br />

...1 .... FSRF_REMO<br />

TE_ H<strong>OS</strong>T_<br />

PROCESSED<br />

When set to 1, MWE processed by remote<br />

host.<br />

.... 1... FSRF_DASD When set to 1, the DASD copy of the version<br />

was deleted.<br />

.... .1.. FSRF_DUMP<br />

CPY<br />

.... ..1. FSRF_DUMP<br />

VER<br />

.... ...1 FSRF_COPY<br />

POOL _<br />

FRDUMP<br />

191 (BF) FIXED 1 FSR_COPYM<br />

ETHOD<br />

223 (DF) BITSTRING 1 FSRFLG4 Flags.<br />

1... .... FSRF_FRRE<br />

COV_<br />

DSNAME<br />

.1.. .... FSRF_FRRE<br />

COV_<br />

FROMDISK<br />

..1. .... FSRF_MULT_<br />

DSNAMES<br />

...1 .... FSRF_MULTI<br />

VOLUME<br />

.... 1... FSRF_ALTER<br />

PRI<br />

.... .1.. FSRF_ALTER<br />

PRI_HI<br />

.... ..xx * Reserved.<br />

When set to 1, the dump class of the copy pool<br />

dump was deleted.<br />

When set to 1, the entire dump version of the<br />

copy pool version was deleted.<br />

A value of 1 indicates a fast replication dump<br />

or restore.<br />

Requested method of fast replication. The<br />

valid methods are as follows:<br />

1=None<br />

2=Preferred<br />

3=Required<br />

When set to 1, fast replication recovery was<br />

requested for a data set through the<br />

FRRECOV DSNAME command.<br />

When set to 1, fast replication recovery will be<br />

performed from disk. This flag is set only when<br />

FSRF_FRRECOV_DSNAME is set to 1.<br />

When set to 1, the fast replication recovery<br />

request specified more than one data set<br />

name.<br />

When set to 1, the fast replication recovery<br />

request was performed on part of a<br />

multi-volume data set. This flag is set only<br />

when FSRF_FRRECOV_DSNAME is set to 1.<br />

When set to 1, the priority of this request was<br />

altered through the ALTERPRI command.<br />

When set to 1, the HIGH keyword was<br />

specified on the ALTERPRI command. When<br />

set to 0, the LOW keyword was specified. This<br />

flag applies only when FSRF_ALTERPRI is<br />

set to 1.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 245


Offsets Type Length Name Description<br />

248 (F8) CHARACTER 40 FSR_CPNAM<br />

E<br />

The FSR SMF record number depends on the setting of SETSYS SMF(smfid). If smfid is<br />

specified as 240, then the FSRs will be 241 SMF records. The FSR SMF record type is<br />

always equal to smfid+1.<br />

For more information about SMF records or <strong>DFSMS</strong>hsm FSR records, refer to the following<br />

publications:<br />

► z/<strong>OS</strong> MVS System Management Facilities (SMF), SA22-7630<br />

► <strong>DFSMS</strong>hsm Diagnosis, GC52-1083<br />

► <strong>DFSMS</strong>hsm Implementation and Customization Guide, SC35-0418<br />

Gathering the data<br />

Prior to producing reports for <strong>DFSMS</strong>hsm fast replication, gather the appropriate data. The<br />

first step is to determine the SMF ID that is related to <strong>DFSMS</strong>hsm Functional Statistics<br />

Records. You can do this several ways:<br />

► Method 1: Use the QUERY SETSYS command. The output in the ARC0150I message<br />

contains the SMFID, as shown in Example 7-46.<br />

Example 7-46 SMFID in QUERY SETSYS output<br />

ARC0150I JOURNAL={NONE | SPEED | RECOVERY}, LOG={YES | NO | HELD}, TRACE={YES | NO},<br />

SMFID={smfid | NONE}, DEBUG={YES | NO}, EMERG={YES | NO}, JES={2 | 3}, SYS1DUMP={YES | NO},<br />

RACFIND={YES | NO}, ERASEONSCRATCH={YES | NO}<br />

► Method 2: Review the system ARCCMDxx member of SYS1.PARMLIB.<br />

Look for SETSYS SMFID(smfid) and use it to determine whether SMF records are being<br />

generated, and if so which one to use:<br />

– DSR and VSR = smfid.<br />

– FSR and WWFSR = smfid + 1.<br />

(WWFSRs are the ABARSs function statistics)<br />

For example, an SMFID=240 means that FSR records are type 241.<br />

– SMFID=NONE means there are no records being collected.<br />

246 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Copy pool name. This flag is set only when<br />

FSRF_FRRECOV_DSNAME is set to 1.<br />

248 (F8) CHARACTER 8(5) FSRDCLAS A 5-element array consisting of 8-byte fields<br />

containing the names of dump classes.<br />

292 (124) FIXED 4 FSR_FR_REA<br />

S<br />

Fast replication return code.


All FSR types are shown in Figure 7-56:<br />

► Function types 1 through 14 and 17 through 23 are FSR records.<br />

► Function types 15 and 16 are ABARS WWFSR records.<br />

For details, see Section 1.2.1 in the manual <strong>DFSMS</strong>hsm Implementation and Customization<br />

Guide, SC35-0418.<br />

<strong>DFSMS</strong>hsm function type (FSRTYPE). The function types are:<br />

1=Primary to level 1 migration<br />

2=Level 1 to level 2 migration,<br />

or level 1 to level 1 migration<br />

or level 2 to level 2 migration<br />

3=Primary to level 2 migration<br />

4=Recall from level 1 to primary<br />

5=Recall from level 2 to primary<br />

6=Delete a migrated data set<br />

7=Daily backup<br />

8=Spill backup<br />

9=Recovery<br />

10=Recycle backup volume<br />

11=Data set deletion by age<br />

12=Recycle migration volume<br />

13=Full volume dump<br />

14=Volume or data set restore<br />

15=ABACKUP function<br />

16=ARECOVER function<br />

17=Expire primary or migrated data sets<br />

18=Partrel function<br />

19=Expire or roll off incremental backup version<br />

20=(H)BDELETE an incremental backup version<br />

21=Fast replication backup function<br />

22=Fast replication recover function<br />

23=Fast replication delete function<br />

Figure 7-56 FSR type records<br />

Preparing for analysis<br />

To begin analyzing the data, first combine SMF data for all of the systems that share the<br />

same <strong>DFSMS</strong>hsm Control Data Sets (MCDS, BCDS, OCDS) into a single file. We eventually<br />

want to convert the SMF data to variable-blocked (VB) format to be processed by a REXX<br />

exec.<br />

The SMF dump program (IFASMFDP) is used to transfer the contents of the SMF data set to<br />

another data set and to reset the status of the dumped data set to empty so that SMF can use<br />

it again for recording data. The SMF dump program dumps the contents of multiple VSAM or<br />

QSAM data sets to sequential data sets on either tape or direct-access devices. The SMF<br />

dump program enables the installation to route different records to separate files and produce<br />

a summary activity report.<br />

The IFASMFDP program typically produces data as RECFM=VBS. In order for the REXX tool<br />

FSRSTAT to process the IFASMFDP output, you must convert the format to RECFM=VB.<br />

You can use IDCAMS REPRO to convert the <strong>DFSMS</strong>hsm SMF data to RECFM=VB,<br />

LRECL=4096. Do not be tempted to use the IFASMFDP program to create RECFM=VB,<br />

LRECL=4096 data directly.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 247


Sample JCL is provided in Example 7-47 and in Example 7-49.<br />

Example 7-47 IFASMFDP JCL example<br />

//STEP1 EXEC PGM=IFASMFDP<br />

//INDD1 DD DSN=SYS1.MANX,DISP=SHR<br />

//OUTDD1 DD DSN=MHLRES2.DATA,UNIT=3390,VOL=SER=WORK01,<br />

// DISP=(NEW,CATLG,KEEP),SPACE=(CYL,(10,1))<br />

//SYSPRINT DD SYSOUT=A<br />

//SYSIN DD *<br />

INDD(INDD1,OPTIONS(DUMP))<br />

OUTDD(OUTDD1,TYPE(241))<br />

DATE(2003120,2003126)<br />

/*<br />

use TYPE(241) - select this to match FSR records<br />

or use TYPE(240:241) - select this to match DSR,VSR and all FSR records<br />

DATE(2003120,2003126) - select a period of 7 or 14 days,<br />

using YYYYddd Julian date format.<br />

2003020 is Year 2003, 120th day<br />

The output data set that is specified in the OUTDD1 DD statement in Example 7-47 contains<br />

the summary activity report. Example 7-48 shows a sample report.<br />

Example 7-48 SMF dump summary activity report<br />

SUMMARY ACTIVITY REPORT<br />

START DATE-TIME 10/22/2003-13:10:01 END DATE-TIME 10/22/2003-13:35:08<br />

RECORD RECORDS PERCENT AVG. RECORD MIN. RECORD MAX. RECORD RECORDS<br />

TYPE READ OF TOTAL LENGTH LENGTH LENGTH WRITTEN<br />

240 7 .15 % 1,036.00 1,036 1,036 7<br />

241 4 .09 % 300.00 300 300 4<br />

TOTAL 4,591 100 % 888.24 18 32,720 13<br />

NUMBER OF RECORDS IN ERROR 0<br />

Example 7-49 IDCAMS REPRO example<br />

//* INPUT FILE IS RECFM=VBS FROM IFASMFDP<br />

//STEP1 EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=A<br />

//INDATA DD DISP=OLD,DSNAME=MHLRES2.DATA<br />

//OUTDATA DD DSNAME=MHLRES2.FSR,UNIT=3390,<br />

// DISP=(NEW,CATLG),VOL=SER=WORK01,<br />

// SPACE=(CYL,(1,1)),RECFM=VB,LRECL=4096<br />

//SYSIN DD *<br />

REPRO -<br />

INFILE(INDATA) -<br />

OUTFILE(OUTDATA)<br />

/*<br />

Sample REXX execs<br />

The FSRSTAT program is a REXX sample program that reads <strong>DFSMS</strong>hsm FSR records and<br />

generates a statistical summary report. The FRSTAT program is shipped with <strong>DFSMS</strong>hsm in<br />

SYS1.SAMPLIB member ARCTOOLS. It has to be modified so that it only selects fast<br />

replication FSRTYPE records.<br />

248 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The installation of <strong>DFSMS</strong>hsm places a member called ARCTOOLS in the SYS1.SAMPLIB<br />

data set. When you supply a valid jobcard and run the ARCTOOLS program, it creates the<br />

following partitioned data sets:<br />

HSM.SAMPLE.TOOL Sample REXX execs and JCL to manage your <strong>DFSMS</strong>hsm<br />

data<br />

HSM.ABARUTIL.JCL JCL used by ABARS utilities<br />

HSM.ABARUTIL.PROCLIB JCL PROCs used by ABARS utilities<br />

HSM.ABARUTIL.DOCS Documentation for ABARS utilities<br />

The HSM.SAMPLE.TOOL data set contains the FSRSTAT PGM along with other tools.<br />

FRSTAT is written in REXX, so the following considerations apply:<br />

► Does not require any special programs or languages (such as SAS or MICS)<br />

► Can be modified easily and customized to meet your needs<br />

► Can be slow, so consider running it in batch using PGM=IKJEFT01<br />

► Requires input data to be converted to RECFM=VB format<br />

Creating reports<br />

You can run the FSRSTAT exec in batch using PGM=IKJEFT01. A sample JCL is shown in<br />

Example 7-50, where:<br />

► The SYSEXEC DD statement references the location of the FSRSTAT REXX program.<br />

► The output file name is the same as the input file name with the added low-level qualifier<br />

of FSRSTAT. For example:<br />

– Input file name: MHLRES2.FSR<br />

– Output file name: MHLRES2.FSR.FSRSTAT<br />

Example 7-50 IKJEFT01 FSRSTAT report JCLl<br />

//STEP1 EXEC PGM=IKJEFT01<br />

//SYSEXEC DD DSN=HSM.SAMPLE.TOOL,DISP=SHR<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

FSRSTAT 'MHLRES2.FSR' FSRID(241)<br />

/*<br />

FSRSTAT report output is shown in Example 7-51.<br />

Example 7-51 FSRSTAT report output<br />

Data Set Analyzed: 'MHLRES2.FSR'<br />

Number of lines read: 13<br />

FSR records by type<br />

021 4<br />

FSR records by host<br />

SC65 4 100.00% 100.00%<br />

FSR records by Return Code<br />

0000 4 100.00% 100.00%<br />

FSR records by Date<br />

0103295F 4<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 249


Customizing reports<br />

You can use DFSORT to produce customized reports. In our example, we first extract the<br />

FSR type 21, 22, and 23 records in separate data sets. In the SYSIN statements:<br />

► X’15’ is the value for FSR record type 21.<br />

► X’16’ is the value for FSR record type 22.<br />

► X’17’ is the value for FSR record type 23.<br />

Example 7-52 shows a DFSORT job.<br />

Example 7-52 DFSORT example jcl<br />

//STEPNN EXEC PGM=SORT<br />

//SYSPRINT DD SYSOUT=*<br />

//PLDTRACE DD DUMMY<br />

//SYSOUT DD SYSOUT=*<br />

//SORTIN DD DISP=SHR,DSN=MHLRES2.FSR<br />

//SORTOF1 DD LIKE=MHLRES2.FSR,<br />

// DISP=(NEW,CATLG),UNIT=SYSDA,<br />

// DSN=MHLRES2.FSR.TYPE21<br />

//SORTOF2 DD LIKE=MHLRES2.FSR,<br />

// DISP=(NEW,CATLG),UNIT=SYSDA,<br />

// DSN=MHLRES2.FSR.TYPE22<br />

//SORTOF3 DD LIKE=MHLRES2.FSR,<br />

// DISP=(NEW,CATLG),UNIT=SYSDA,<br />

// DSN=MHLRES2.FSR.TYPE23<br />

//SYSIN DD *<br />

OPTION COPY,VLSHRT<br />

OUTFIL FILES=1,<br />

INCLUDE=(43,1,BI,EQ,X'15')<br />

OUTFIL FILES=2,<br />

INCLUDE=(43,1,BI,EQ,X'16')<br />

OUTFIL FILES=3,<br />

INCLUDE=(43,1,BI,EQ,X'17')<br />

You can use an ICETOOL job, as shown in Example 7-53, to generate a report about specific<br />

data that you want to analyze. A good field for performance reports might be the FSRCPU<br />

value.<br />

Example 7-53 ICETOOL sample to extract FSR data<br />

//MHLRES2Y JOB (999,POK),'MHLRES2',CLASS=A,MSGCLASS=K,<br />

// NOTIFY=&SYSUID,TIME=1440,MSGLEVEL=(1,1)<br />

/*JOBPARMBL=999,SYSAFF=*<br />

//JOBLIB DD DSN=SYS1.SICELINK,DISP=SHR<br />

//ICETL2 EXEC PGM=ICETOOL,REGION=4096K<br />

//TOOLMSG DD SYSOUT=*<br />

//<strong>DFSMS</strong>G DD SYSOUT=*<br />

//LIST1 DD SYSOUT=*<br />

//DFSPARM DD *<br />

//IN01 DD DSN=MHLRES2.FSR.TYPE21,DISP=SHR<br />

//OUT01 DD DSN=MHLRES2.FSR.TYPE21.CREATE,DISP=SHR<br />

//* DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,<br />

//* SPACE=(CYL,(5,1),RLSE),<br />

//* DCB=(*.IN01)<br />

//TOOLIN DD *<br />

COPY FROM(IN01) USING(CPY1)<br />

DISPLAY FROM(OUT01) LIST(LIST1) BLANK -<br />

TITLE('FSRTYPES ') -<br />

ON(1,4,CH)<br />

250 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


CPY1CNTL DD *<br />

INCLUDE COND=(43,1,BI,EQ,X'15')<br />

OUTFIL FNAMES=OUT01,<br />

OUTREC=(1,4,C'FSRTYPE',43,1,FI,44,1,HEX,<br />

45,44,<br />

89,6,<br />

99,6,<br />

105,4,HEX,<br />

179,2,HEX,<br />

181,4,HEX)<br />

/*<br />

Example 7-54 shows the output that is generated from the job in the previous example.<br />

Example 7-54 Output of an ICETOOL job<br />

BROWSE MHLRES2.FSR.TYPE21.CREATE<br />

Command ===><br />

*********************************************************** Top of Data ******************<br />

FSRTYPE 21 00DSN$DB8B$DB MHL213MHL12500000000300000000001<br />

FSRTYPE 21 00DSN$DB8B$DB MHL214MHL12600000000300000000000<br />

FSRTYPE 21 00DSN$DB8B$LG MHL225MHL03700000000300000000000<br />

FSRTYPE 21 00DSN$DB8B$LG MHL226MHL14700000000300000000000<br />

FSRTYPE 21 00CP1 MHL0ACMHL0A000000000300000000000<br />

FSRTYPE 21 00CP1 MHL0ADMHL0A100000000300000000000<br />

FSRTYPE 21 00CP2 MHL1ACMHL1A000000000300000000000<br />

FSRTYPE 21 00CP2 MHL1ADMHL1A100000000300000000000<br />

FSRTYPE 21 00CP3 MHL2AEMHL1A000000000300000000000<br />

FSRTYPE 21 00CP3 MHL2AFMHL1A100000000300000000000<br />

FSRTYPE 21 00DSN$DB8B$DB MHL013MHL12500000000300000000001<br />

FSRTYPE 21 00DSN$DB8B$DB MHL014MHL12600000000300000000001<br />

FSRTYPE 21 00DSN$DB8B$LG MHL025MHL03700000000300000000000<br />

FSRTYPE 21 00DSN$DB8B$LG MHL026MHL14700000000300000000000<br />

FSRTYPE 21 00CP1 MHL0AEMHL0A000000000300000000001<br />

7.6 Security for <strong>DFSMS</strong>hsm fast replication<br />

This section describes the RACF support for <strong>DFSMS</strong>hsm commands and the RACF Facility<br />

Class profiles that are used to protect the <strong>DFSMS</strong>hsm fast replication function.<br />

This support is available since <strong>DFSMS</strong>hsm V1.5. For systems prior to z/<strong>OS</strong> V1.5, the level of<br />

authorization was defined using the AUTH command in the <strong>DFSMS</strong>hsm PARMLIB member.<br />

<strong>DFSMS</strong>hsm provides two levels of commands to be protected by RACF Facility Class<br />

profiles:<br />

► Storage administrator commands<br />

► End-user commands<br />

User commands can be issued by any TSO user if that user has appropriate RACF authority<br />

to the data sets to be processed.<br />

Storage administrator commands can only be issued by a <strong>DFSMS</strong>hsm authorized user. No<br />

RACF checking is performed to confirm your authority to access the data sets to be<br />

processed. In many installations, the storage administrator is different from the security<br />

administrator. The security administrator would like to control and monitor the activities<br />

against all sensitive data.<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 251


A storage administrator who only needs to issue <strong>DFSMS</strong>hsm configuration type commands,<br />

such as ADDVOL, can also issue other commands, such as RECOVER datasetname<br />

NEWNAME. This user might not be allowed by RACF to access this data set, but he can copy<br />

or rename it to a new data set name to which he has read or alter authority. He can use<br />

<strong>DFSMS</strong>hsm storage administrator commands to access or delete data that is restricted to<br />

him.<br />

As with storage administrator commands, users have access to all user commands and<br />

parameters. There is no granularity at the command level.<br />

The RACF FACILITY class<br />

Table 7-3 shows the base set of FACILITY class profiles for <strong>DFSMS</strong>hsm command protection.<br />

Note: The resource names in the RACF FACILITY class for protection of the <strong>DFSMS</strong>hsm<br />

fast replication commands has changed with <strong>DFSMS</strong>hsm V1.8 (see Table 7-4 on page 252<br />

for the new format).<br />

Table 7-3 Base STGADMIN profiles<br />

Profile Protects<br />

STGADMIN.* All <strong>DFSMS</strong> commands including all <strong>DFSMS</strong>hsm<br />

commands<br />

STGADMIN.ARC.* All <strong>DFSMS</strong>hsm commands<br />

STGADMIN.ARC.cmd Specific storage administrator command<br />

STGADMIN.ARC.cmd.prm Specific storage administrator command with<br />

specific parameter<br />

STGADMIN.ARC.ENDUSER.* All user commands<br />

STGADMIN.ARC.ENDUSER.h_cmd Specific user command<br />

STGADMIN.ARC.ENDUSER.h_cmd.prm Specific user command with specific parameter<br />

Note that the STGADMIN.* profile in this table is a general profile that can be used by other<br />

applications, so deleting it may affect other applications.<br />

Table 7-4 shows the RACF profiles that are required to protect the <strong>DFSMS</strong>hsm fast replication<br />

commands FRBACKUP, FRRECOV, and FRDELETE.<br />

Table 7-4 STGADMIN profiles for fast replication<br />

Profile Protects<br />

STGADMIN.ARC.FB.* Any FRBACKUP command<br />

STGADMIN.ARC.FB.cpname FRBACKUP COPYPOOL only for cpname<br />

STGADMIN.ARC.FR.* Any FRRECOV command<br />

STGADMIN.ARC.FR.cpname FRRECOV COPYPOOL only for cpname<br />

STGADMIN.ARC.FD.* Any FRDELETE command<br />

STGADMIN.ARC.FD.cpname FRDELETE COPYPOOL only for cpname<br />

STGADMIN.ARC.LC.* Any LIST COPYPOOL and<br />

LIST DSNAME(dsname) COPYPOOL command<br />

252 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Profile Protects<br />

STGADMIN.ARC.LC.cpname LIST COPYPOOL(cpname) only for cpname<br />

For a complete listing of <strong>DFSMS</strong>hsm commands that can be protected, refer to the manual<br />

<strong>DFSMS</strong>hsm Implementation and Customization Guide, SC35-0418.<br />

7.7 Audit and error recovery<br />

This section discusses auditing and basic error recovery in the fast replication environment.<br />

7.7.1 FRDELETE considerations<br />

This section contains considerations for using the <strong>DFSMS</strong>hsm Fast Replication FRDELETE<br />

command.<br />

The FRDELETE command was enhanced by new parameters with <strong>DFSMS</strong>hsm 1.8:<br />

DASDONLY Delete only a DASD backup copy (works like<br />

pre-<strong>DFSMS</strong>hsm 1.8).<br />

DUMPONLY(DCLASS(...) Delete only a dump copy (of a particular dump class).<br />

BOTH Delete DASD backup copy and dump tape copy of that<br />

particular version (this is the default).<br />

--- |-BOTH----------------|<br />

>>-FRDELETE-COPYPOOL(cpname)--|-VERSIONS(vernum,...)-|-------------------------|--><br />

|-TOKEN(token)------------||-DUMPONLY(-A-)-|<br />

|-ALL---------------------------||-DASDONLY-------|<br />

A>>--------------------------------------------------------------------><br />

|-DUMPCLASS(dclass1, ...,dclass5)-|<br />

|-DCLASS------|<br />

Figure 7-57 FRDELETE command syntax<br />

When you use an FRDELETE command, as shown in Example 7-55, you receive some<br />

output in the backup log, as shown in Figure 7-58 on page 254.<br />

Example 7-55 FRDELETE DUMPONLY command<br />

HSEND FRDELETE COPYPOOL(CP1) VERSION(1) DUMPONLY<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 253


<strong>DFSMS</strong>HSM DUMP LOG, TIME 15:38:38, DATE 07/03/12<br />

ARC0639I DUMP VTOC COPY SCRATCHED, DATA SET NAME=HSM.DUMPVTOC.T204914.VMHL0A0.D07050<br />

ARC0262I DUMP COPY INVALIDATED FOR VOLUME MHL0A0, CREATION DATE=07/02/19<br />

ARC0262I DUMP GENERATION INVALIDATED FOR VOLUME MHL0A0, CREATION DATE=07/02/19<br />

ARC0639I DUMP VTOC COPY SCRATCHED, DATA SET NAME=HSM.DUMPVTOC.T204914.VMHL0A1.D07050<br />

ARC0261I TAPE VOLUME TST019 NEEDS TO BE REINITIALIZED<br />

ARC0263I DUMP VOLUME TST019 DELETED, VOLUME STATUS=PURGED<br />

ARC0262I DUMP COPY INVALIDATED FOR VOLUME MHL0A1, CREATION DATE=07/02/19<br />

ARC0262I DUMP GENERATION INVALIDATED FOR VOLUME MHL0A1, CREATION DATE=07/02/19<br />

Figure 7-58 Output of FRDELETE COPYPOOL DUMPONLY command<br />

FRDELETE is used to delete unneeded fast replication backup or dump versions. New DASD<br />

backup copy versions replace older backup copy versions through normal processing. Dump<br />

copy versions are deleted based on dump class settings during automatic dump.<br />

Note: Depending on your settings you may end up in a different number of fast replication<br />

DASD backup generations and fast replication tape dump generations. This is because<br />

DASD backup generations are strictly rolled off by generation processing (based on the<br />

number of replicate backup version setting in the copy pool construct), while tape dump<br />

generations are primarily rolled off by retention period (based on dump class setting).<br />

There are some instances, other than normal roll off, that cause unneeded copy versions to<br />

be deleted:<br />

► The number of fast replication backup versions (as being reported by the LIST CP(...)<br />

ALLVOLS(ALLVERS) command) reaches the maximum of 85 versions. If this happens,<br />

during creation of a new generation by using the FRBACKUP command, the gen(84)<br />

dump copy is rolled off (see Figure 7-59).<br />

Generation Version DASD Tape (Dump)<br />

Figure 7-59 Roll-out of dump copies because of reaching the architectural limit of 85 generations<br />

► The number of versions specified is decreased by modifying the SMS copy pool definition.<br />

This causes subsequent FRBACKUP commands to remove unneeded DASD copy<br />

versions.<br />

254 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

+1 586 yes not yet<br />

0 585 yes yes<br />

1 584 yes yes<br />

2 583 yes yes<br />

3 582 no yes<br />

...<br />

83 502 no yes<br />

84 501 no yes


► When a copy pool is renamed and is no longer needed, it must be deleted by the storage<br />

administrator. Use the FRDELETE COPYPOOL command and:<br />

– Specify the ALL keyword when all copies of the version are to be deleted.<br />

– Specify the VERSIONS keyword when an individual or group of individual versions is<br />

to be deleted.<br />

– Specify the TOKEN keyword to delete the version that is associated with the token. If<br />

the token is not unique to an individual version, the delete fails.<br />

– If none of the above are specified, the delete fails.<br />

Before a version is deleted, any outstanding FlashCopy relationships are withdrawn. Never<br />

withdraw the relationship outside of <strong>DFSMS</strong>hsm. This causes the backup version to be<br />

invalidated, but <strong>DFSMS</strong>hsm thinks that it is valid. It also could result in a data integrity<br />

exposure.<br />

7.7.2 Decreasing copy pool backup volumes<br />

When decreasing the number of volumes in a copy pool backup storage group, take the<br />

following into consideration:<br />

► You must take special care when removing a volume from a copy pool backup storage<br />

group. Before doing so, you must ensure that the volume is not the target of a valid<br />

<strong>DFSMS</strong>hsm backup version.<br />

► You can verify this by examining the output from the <strong>DFSMS</strong>hsm command LIST<br />

COPYPOOLBACKUPSTORAGEGROUP.<br />

► If a target volume must be removed from a valid source to target pairing, you should use<br />

the FRDELETE command to delete the <strong>DFSMS</strong>hsm backup version that the volume is a<br />

part of before you remove the volume.<br />

7.7.3 Reuse of invalid backup versions<br />

New DASD copy versions replace invalid DASD copy versions through the next FRBACKUP<br />

processing.<br />

7.7.4 FIXCDS display and repair<br />

Five new record types have been introduced by fast replication within the <strong>DFSMS</strong>hsm BCDS:<br />

F, H, I, J, and K.<br />

New MCH keys<br />

There are five control record types in use in order to describe fast replication backups:<br />

X'23' = FRD Code K (new with <strong>DFSMS</strong>hsm 1.8)<br />

X'25' = FRSV Code J (new with <strong>DFSMS</strong>hsm 1.5)<br />

X'2D' = FRTV Code I (new with <strong>DFSMS</strong>hsm 1.5)<br />

X'2E' = FRB Code F (new with <strong>DFSMS</strong>hsm 1.5)<br />

X'2F' = FRVP Code H (new with <strong>DFSMS</strong>hsm 1.5)<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 255


K is the fast replication dump record (FRD)<br />

The key for a type K FRD record is the name of the copy pool and the version number the<br />

dumps were made for.<br />

Example 7-56 FIXCDS output of a K (FRD) record<br />

HSEND FIXCDS K CP1...........................005<br />

MCH= 01DC2300 C04E338A 3CC35B0E 00000000 00000000<br />

* C$ *<br />

+0000 00010000 00000000 C4C3D9C5 C4C2F1F8 00010000 0108049F 00028000 00000000<br />

* DCREDB18 *<br />

+0020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0040 00000000 D7D3E4E2 C3D6D7E8 00010000 0108049F 00020000 00000000 00000000<br />

* PLUSCOPY *<br />

+0060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+00A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+00C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+00E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0120 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0140 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0160 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

+0180 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

* *<br />

ARC0197I TYPE K, KEY CP1...........................005, FIXCDS DISPLAY<br />

ARC0197I (CONT.) SUCCESSFUL<br />

F is the fast replication backup record (FRB)<br />

The key for a type F FRB record is the name of the copy pool that the record represents.<br />

Example 7-57 shows an example of the key that is used with a type F FRB record.<br />

Example 7-57 FIXCDS output of a F (FRB) record<br />

FIXCDS F DSN$DB8B$DB ODS(MHLRES2.FIXCDS.CB)<br />

MCH= 01782E00 BA2CE223 4A4F5E4C 00000000 00000000 * S<br />

+0000 00000004 00000004 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0020 00000000 00000000 00000004 00000000 D4C8D3D9 C5E2F160 E3C5E2E3 00000000 * MHLRES1 TEST<br />

+0040 00000000 00000000 00000000 00000000 00000000 00000000 14224253 0103288F *<br />

+0060 00010100 00000000 00000000 00000003 00000000 D4C8D3D9 C5E2F160 E3C5E2E3 * MHLRES1 TEST<br />

+0080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11564119 *<br />

+00A0 0103288F 00010100 00000000 00000000 00000002 00000000 00000000 00000000 *<br />

+00C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+00E0 22101134 0103287F 00010100 00000000 00000000 00000005 00000000 00000000 *<br />

+0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0120 00000000 00000000 00000000 00000400 00000000 00000000 *<br />

ARC0197I TYPE F, KEY DSN$DB8B$DB, FIXCDS DISPLAY SUCCESSFUL<br />

256 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Table 7-5 Type H record key fields<br />

Characters<br />

H is the fast replication volume pairs record (FRVP)<br />

Table 7-5 shows the fields that make up a key for a type H FRVP backup record.<br />

1 to 30 The copy pool name suffixed with periods if the copy pool name is less than 30<br />

characters in length.<br />

31 The type of record. P if the record is a prepare record. B if the record is a backup record.<br />

32 and 33 The version number in hexadecimal format.<br />

34 to 41 The storage group name suffixed with periods if the storage group name is less than<br />

eight characters in length.<br />

42 and 43 The extent number.<br />

Example 7-58 shows the key (in hexadecimal) that is used for a type H FRVP backup record.<br />

In this example, we use a key that consists of:<br />

► A copy pool name of COPYPL1 (followed by periods to fill the field)<br />

► A B for a backup record request<br />

► A version number of 1<br />

► A storage group name of SRCSG1 (followed by periods to fill the field)<br />

► An extent number of 0 (zero)<br />

Example 7-58 FIXCDS output of a H (FRVP) record<br />

FIXCDS H X'C3D7F14B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BC20008E2C7F14B4B4B4B4B0000'<br />

ODS('MHLRES2.DISPLAY.H.OUT')<br />

MCH= 00942F00 00000000 00000000 00000000 00000000 *<br />

+0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0020 D4C8D3F0 C1F0D4C8 D3F0C1C5 80000000 00000000 00000000 0000D4C8 D3F0C1F1 *MHL0A0MHL0AE MHL0A1<br />

+0040 D4C8D3F0 C1C6A000 00000000 00000000 00000000 *MHL0AF<br />

ARC0197I TYPE H, KEY CP1...........................B..SG1......., FIXCDS DISPLAY SUCCESSFUL H<br />

Example 7-59 shows a sample IDCAMS PRINT job to print all H records. It can be used for<br />

printing the other records as well.<br />

Example 7-59 Sample IDCAMS PRINT job to print all H records<br />

//PRINT EXEC PGM=IDCAMS<br />

//********************************************************<br />

//* *<br />

//* PRINT new Fast replication records *<br />

//* X'25' = FRSV (Code J) *<br />

//* X'2D' = FRTV (Code I) *<br />

//* X'2E' = FRB (Code F) *<br />

//* X'2F' = FRVP (Code H) *<br />

//********************************************************<br />

//SYSPRINT DD SYSOUT=*<br />

//DD1 DD DSN=HSM.BCDS,<br />

// DISP=SHR<br />

//DD2 DD DSN=MHLRES3.BCDS.PRINT3,DISP=(,CATLG,DELETE),<br />

// SPACE=(TRK,5),DCB=(LRECL=250,RECFM=VB),UNIT=3390<br />

//SYSIN DD *<br />

PRINT -<br />

INFILE(DD1) OUTFILE(DD2) FROMKEY(X'2F') TOKEY(X'2F')<br />

/*<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 257


Output from the IDCAMS job is shown in Example 7-60.<br />

Example 7-60 Output from IDCAMS PRINT job to print all H records<br />

IDCAMS SYSTEM SERVICES TIME: 21:02:52 10/20/03 PAGE 1<br />

LISTING OF DATA SET -HSM.BCDS<br />

KEY OF RECORD - 2FC4E2D55BC4C2F8C25BC4C24B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BC20009C4C2F8C24B4B4B4B0001<br />

000000 2FC4E2D5 5BC4C2F8 C25BC4C2 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4BC2<br />

*.DSN$DB8B$DB...................B<br />

000020 0009C4C2 F8C24B4B 4B4B0001 00942F00 00000000 00000000 00000000 00000000<br />

*..DB8B..........................<br />

000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

*................................<br />

000060 D4C8D3F1 F2F5D4C8 D3F0F1F3 80000000 00000000 00000000 0000D4C8 D3F1F2F6<br />

*MHL125MHL013..............MHL126<br />

000080 D4C8D3F0 F1F4A000 00000000 00000000 00000000<br />

*MHL014..............<br />

KEY OF RECORD - 2FC4E2D55BC4C2F8C25BC4C24B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BC2000AC4C2F8C24B4B4B4B0001<br />

000000 2FC4E2D5 5BC4C2F8 C25BC4C2 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4BC2<br />

*.DSN$DB8B$DB...................B<br />

000020 000AC4C2 F8C24B4B 4B4B0001 00942F00 00000000 00000000 00000000 00000000<br />

*..DB8B..........................<br />

000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................<br />

000060 D4C8D3F1 F2F5D4C8 D3F2F1F3 80000000 00000000 00000000 0000D4C8 D3F1F2F6<br />

*MHL125MHL213..............MHL126<br />

000080 D4C8D3F2 F1F4A000 00000000 00000000 00000000<br />

*MHL214..............<br />

KEY OF RECORD - 2FC4E2D55BC4C2F8C25BD3C74B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BC20009C4C2F8C2D3D6C7F10001<br />

000000 2FC4E2D5 5BC4C2F8 C25BD3C7 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4BC2<br />

*.DSN$DB8B$LG...................B<br />

000020 0009C4C2 F8C2D3D6 C7F10001 007A2F00 00000000 00000000 00000000 00000000<br />

*..DB8BLOG1...:..................<br />

000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *................................<br />

000060 D4C8D3F0 F3F7D4C8 D3F0F2F5 A0000000 00000000 00000000 0000<br />

*MHL037MHL025..............<br />

KEY OF RECORD - 2FC4E2D55BC4C2F8C25BD3C74B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4BC20009C4C2F8C2D3D6C7F20001<br />

000000 2FC4E2D5 5BC4C2F8 C25BD3C7 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4B4B 4B4B4BC2<br />

*.DSN$DB8B$LG...................B<br />

000020 0009C4C2 F8C2D3D6 C7F20001 007A2F00 00000000 00000000 00000000 00000000<br />

*..DB8BLOG2...:..................<br />

000040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000<br />

*................................<br />

000060 D4C8D3F1 F4F7D4C8 D3F0F2F6 A0000000 00000000 00000000 0000<br />

*MHL147MHL026..............<br />

I is the fast replication target volume record (FRTV)<br />

The key for a type I FRTV record is the volume serial number. Example 7-61 shows an<br />

example of the key that is used with a type I FRTV record.<br />

Example 7-61 FIXCDS output of an I (FRTV) record<br />

FIXCDS I MHL214 ODS(MHLRES2.FIXCDS.CB)<br />

MCH= 00662D00 BA2C090A 71FB6688 BA2C090A 71FB6688 *<br />

+0000 D4C8D3F1 F2F60000 00000000 00000000 00000000 00000000 00000000 00000000 *MHL126<br />

+0020 00000000 00000000 *<br />

ARC0197I TYPE I, KEY MHL214, FIXCDS DISPLAY SUCCESSFUL<br />

J is the fast replication source volume record (FRSV)<br />

The key for a type J FRSV record is the volume serial number. An example of the key that is<br />

used with a type J FRSV record is shown in Example 7-62.<br />

Example 7-62 FIXCDS output of a J (FRSV) record<br />

FIXCDS J MHL126 ODS(MHLRES2.FIXCDS.CB)<br />

MCH= 07AC2500 BA2CE221 E11F1B08 B9CC2CCD 05D66242 * S O<br />

+0000 C4E2D55B C4C2F8C2 5BC4C240 40404040 40404040 40404040 40404040 40400B03 *DSN$DB8B$DB<br />

+0020 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0040 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0060 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0080 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

258 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


+00A0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+00C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+00E0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0100 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

...<br />

+0720 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0740 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 *<br />

+0760 00000000 00000000 00000000 *<br />

ARC0197I TYPE J, KEY MHL126, FIXCDS DISPLAY SUCCESSFUL<br />

7.7.5 AUDIT COPYPOOLCONTROLS<br />

AUDIT was enhanced in order to check the fast replication CDS record relationships. You can<br />

use a command, as shown in Example 7-63.<br />

Example 7-63 AUDIT COPYPOOLCONTROLS command<br />

HSEND AUDIT COPYPOOLCONTROLS(CP1) ODS(MHLRES2.AUDITCP.LIST)<br />

If you do not specify the name of a copy pool, <strong>DFSMS</strong>hsm checks the fast replication CDS<br />

record relationships of all copypools.<br />

Note: AUDIT COPYPOOLCONTROLS only provides detection support, so there is no<br />

option available to specify the FIX parameter.<br />

Figure 7-60 shows an example for the output of the AUDIT COPYPOOLCONTROLS. We<br />

deleted two fast replication CDS records in order to demonstrate a simple fix process by using<br />

your own-built FIXCDS commands.<br />

-<strong>DFSMS</strong>HSM AUDIT- ENHANCED AUDIT -- LISTING - AT 18:08:13 ON 07/03/16 FOR<br />

COMMAND ENTERED:<br />

AUDIT COPYPOOLCONTROLS(CP1)<br />

/* ERR 177 I RECORD WAS EXPECTED FOR VOLUME MHL0AF AND WAS NOT FOUND<br />

/* ERR 177 I RECORD WAS EXPECTED FOR VOLUME MHL1AC AND WAS NOT FOUND<br />

- END OF - ENHANCED AUDIT - LISTING -<br />

Figure 7-60 Output of AUDIT COPYPOOLCONTROLS command<br />

You can find a complete description of all AUDIT error types in <strong>DFSMS</strong>dfp Storage<br />

Administration Reference, SC26-7402. In Table 7-6 we listed those error types that are<br />

related with fast replication CDS records.<br />

Table 7-6 AUDIT COPYPOOLCONTROLS error types<br />

Description Troubleshooting Hints<br />

*ERR 170 SPECIFIED COPY POOL cpname<br />

DOES NOT EXIST<br />

*ERR 171 F RECORD INDICATES x DUMP<br />

VERSIONS, ONLY y VERSIONS WERE FOUND<br />

*ERR 172 H RECORD INDICATES x DASD<br />

VERSIONS, ONLY y VERSIONS WERE FOUND<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 259


Description Troubleshooting Hints<br />

*ERR 173 F (FRB) RECORD INDICATES x H<br />

(FRVP) RECORDS FOR COPY POOL cpname,<br />

ONLY y RECORDS WERE FOUND<br />

*ERR 174 F (FRB) RECORD FOR COPY POOL<br />

cpname WAS NOT FOUND, ORPHANED H<br />

(FRVP) RECORDS EXIST<br />

*ERR 175 H (FRVP) RECORD INDICATES IT IS<br />

A ’PREPARE’ RECORD, THE<br />

CORRESPONDING F (FRB) RECORD DOES<br />

NOT<br />

*ERR 176 H (FRVP) RECORD FOR VERSION x<br />

EXISTS, BUT VERSION CANNOT BE FOUND<br />

IN CORRESPONDING F (FRB) RECORD FOR<br />

COPY POOL cpname<br />

ERR 177 I (FRTV) RECORD WAS EXPECTED<br />

FOR VOLUME volser AND WAS NOT FOUND<br />

A F (FRB) record indicates this is a valid version.<br />

The volume represented by this FRTV record<br />

needs to be made available and an FRTV record<br />

should be created to represent it or the fast<br />

replication backup of this copy pool will fail<br />

*ERR 178 I (FRTV) RECORD INDICATED BY H<br />

(FRVP) RECORD CANNOT BE FOUND.<br />

NEEDS TO EXIST FOR COPY POOL cpname<br />

VERSION vsn<br />

*ERR 179 H (FRVP) RECORD HAS WRONG<br />

TARGET VOLUME tvolser, OR I (FRTV)<br />

RECORD HAS WRONG SOURCE VOLUME<br />

svolser<br />

*ERR 180 J (FRSV) RECORD NOT FOUND<br />

FOR VOLUME volser, WHICH BELONGS TO<br />

COPY POOL cpname, VERSION vsn<br />

*ERR 181 F (FRB) RECORD FOR cpname NOT<br />

FOUND, P<strong>OS</strong>SIBLY ORPHANED J (FRSV)<br />

RECORD FOR VOLUME volser<br />

*ERR 182 NO P (MCP) RECORD FOUND FOR<br />

VOLUME volser, IS THIS AN ERROR?<br />

*ERR 183 VOLUME volser FROM THE J (FRSV)<br />

RECORD L0 FIELD COULD NOT BE FOUND IN<br />

A CORRESPONDING H (FRVP) RECORD<br />

*ERR 184 ORPHANED J (FRSV) RECORD<br />

DETECTED<br />

260 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Use the FIXCDS DELETE command to remove<br />

the orphaned entries from the BCDS.<br />

► You need to determine which indicator is<br />

correct. Use the FIXCDS PATCH command<br />

to correct the problem.<br />

► You can use the LIST COPYPOOL<br />

command to help you determine which<br />

indicator is correct.<br />

► Either the ’Prepare’ flag should be on in the F<br />

(FRB) record or the FRVP records are<br />

orphan entries and should be deleted using<br />

the FIXCDS DELETE command.<br />

An FRVP record may be an orphan and should<br />

be deleted using the FIXCDS DELETE<br />

command.<br />

The FIXCDS CREATE command can be used to<br />

recreate the FRTV record.<br />

Determine which one is incorrect and correct the<br />

record using the FIXCDS PATCH command.<br />

► Remove cpname from the FRSV cpname<br />

array.<br />

► If there are no cpnames left in the array,<br />

delete the FRSV record for VOLUME volser.<br />

H (FRVP) record was not found or volser was not<br />

found in the corresponding H (FRVP) records.<br />

Delete the record using the FIXCDS DELETE<br />

command.


Description Troubleshooting Hints<br />

*ERR 185 COPY POOL cpname COULD NOT<br />

BE FOUND IN THE J (FRSV) RECORD COPY<br />

POOL ARRAY FOR VOLUME volser<br />

*ERR 186 ORPHANED K (FRD) RECORD<br />

FOUND, COPY POOL cpname NO LONGER<br />

EXISTS<br />

F (FRB) record could not be found for copy pool<br />

cpname.<br />

*ERR 187 K (FRD) RECORD EXISTS, F (FRB)<br />

RECORD INDICATES NO DUMP COPY<br />

The FRB record indicates that there is no dump<br />

copy for this copy pool version but an FRD record<br />

exists for it.<br />

*ERR 188 K (FRD) RECORD NOT FOUND, F<br />

(FRB) RECORD FOR COPY POOL cpname<br />

INDICATES THAT IT DOES EXIST<br />

The FRB record indicates a dump for this copy<br />

pool exists, but the record representing the dump<br />

cannot be found.<br />

*ERR 189 H (FRVP) RECORD NOT FOUND<br />

COPY POOL cpname<br />

During the AUDIT VOLUMECONTROLS<br />

(RECOVERABLE), an error was detected.<br />

*ERR 190 VOLUME volser COULD NOT BE<br />

FOUND IN ANY ASSOCIATED H (FRVP)<br />

RECORD FOR COPY POOL cpname<br />

*ERR 191 P RECORD FOUND FOR VOLUME<br />

volser, IS NOT INDICATED AS A COPY POOL<br />

VOLUME<br />

*ERR 192 F RECORD FOUND FOR<br />

COPYPOOL cpname, WHICH VOLUME volser<br />

BELONGS TO<br />

*ERR 193 J RECORD NOT FOUND FOR<br />

VOLUME volser<br />

You need to use the FIXCDS PATCH command<br />

to patch the FRSV record with the cpname, or if<br />

the FRSV record contains no other copy pool<br />

names, delete it with the FIXCDS DELETE<br />

command.<br />

Either the FRD record should be deleted using<br />

the FIXCDS DELETE command or the<br />

FRD_EXISTS flag in the FRB_BVI should be<br />

patched on.<br />

You should consider running AUDIT<br />

COPYPOOLCONTROLS (cpname) to learn<br />

more regarding this discrepancy.<br />

You should consider running AUDIT<br />

COPYPOOLCONTROLS (cpname) to learn<br />

more regarding this discrepancy.<br />

Audit the specified copy pool to determine the<br />

recoverability of this volume.<br />

► The MCP or DGN record for volume volser<br />

indicates that an FRSV record should exist<br />

for this volume.<br />

► Expect this error to be issued for each<br />

dumped version of this volume.<br />

► The MCPF_COPYPOOL bit should be<br />

patched off if it is determined that this is no<br />

longer a copypool volume, as is indicated by<br />

the missing FRSV record.<br />

► FIXCDS P volser PATCH(X’9’ BITS(.......0)).<br />

In order to correct the error type that was reported in Figure 7-60 on page 259, we find the<br />

following description in Table 7-6 on page 259:<br />

“ERR 177 I (FRTV) RECORD WAS EXPECTED FOR VOLUME volser AND WAS NOT FOUND<br />

Chapter 7. <strong>DFSMS</strong>hsm fast replication 261


A FRB record indicates that this is a valid version. The volume represented by this FRTV<br />

record needs to be made available and an FRTV record should be created to represent it or<br />

the fast replication backup of this copy pool fails.<br />

The troubleshooting hint says:<br />

The FIXCDS CREATE command can be used to recreate the FRTV record.<br />

The structure of a FRB record (see Example 7-61 on page 258) is rather simple. We just need<br />

to learn which are the source volumes of the volumes mentioned in the messages of error<br />

type 177. This can be done by a command, as shown in Example 7-64.<br />

Example 7-64 LIST COPYPOOL command<br />

HSEND LI CP(CP1)<br />

The output shown in Figure 7-61 gives a quick answer and allows to create the commands as<br />

shown in Example 7-65.<br />

-- <strong>DFSMS</strong>hsm CONTROL DATASET --COPY POOL--LISTING --------- AT 15:32:31 ON 07/03<br />

COPYPOOL=CP1<br />

VERSION VTOCENQ DATE TIME FASTREPLICATIONSTATE DUMPSTATE<br />

006 Y 2007/03/12 16:01:45 RECOVERABLE ALLCOMPLETE<br />

TOKEN(C)=C'EX6'<br />

TOKEN(H)=X'C5E7F6'<br />

TOTAL NUM OF VOLUMES=00002,INCREMENTAL=N<br />

SGNAME SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET SOURCE - TARGET<br />

SG1 MHL0A0 - MHL0AF MHL0A1 - MHL1AC<br />

Figure 7-61 Output of LIST CP(CP1)<br />

Example 7-65 FIXCDS commands to create FRTV records<br />

HSEND FIXCDS I MHL1AC CREATE(0 MHL0A1)<br />

HSEND FIXCDS I MHL0AF CREATE(0 MHL0A0)<br />

DATA BEFORE PATCH<br />

+0000 00000000 00000000<br />

* *<br />

DATA AFTER PATCH<br />

+0000 D4C8D3F0 C1F10000<br />

*MHL0A1 *<br />

Figure 7-62 Messages in response to FIXCDS I MHL1AC CREATE command<br />

262 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 8. <strong>DFSMS</strong>rmm enhancements<br />

The <strong>DFSMS</strong>rmm enhancements in <strong>DFSMS</strong> V1.8 provide improvements in the areas of<br />

enterprise level interface, UTC implementation, tape data set authorization, vital record<br />

specification policy management simplification, and usability items.<br />

The following topics are covered:<br />

► Support true e-mail address for the RMM NOTIFY function<br />

► Setting up <strong>DFSMS</strong>rmm common time support<br />

► <strong>DFSMS</strong>rmm VRS policy management simplification<br />

– Separation of Data Set Name Mask from the Policy<br />

– Release options applied if VRS matched<br />

– Special ABEND and OPEN via DSNAME match<br />

– Find unused VRSs<br />

– Incomplete VRS chains - dummy VRS *broken*<br />

– Toleration and removal of old functions<br />

– Conversion to <strong>DFSMS</strong>rmm from other tape management systems<br />

► <strong>DFSMS</strong>rmm usability items<br />

– <strong>Update</strong>s to RMM TSO SEARCHVOLUME subcommand<br />

– ISPF lists show retention information<br />

– SELECT primary command in RMM dialog search results<br />

– ISPF lists show retention information<br />

– Rexx variable constraint relief<br />

► Enabling ISPF Data Set List (DSLIST) support<br />

► Prepare for future releases<br />

– Set a <strong>DFSMS</strong>rmm control data set ID<br />

– Re-allocate your <strong>DFSMS</strong>rmm control data set<br />

– <strong>Update</strong> LRECL for REPORT, BACKUP, and JRNLBKUP DD<br />

– Migrate from VRSEL(OLD) to VRSEL(NEW)<br />

8<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 263


8.1 Support true e-mail address for the RMM NOTIFY function<br />

The established <strong>DFSMS</strong>rmm notification feature is extended to optionally send mails to<br />

Internet addresses. E-mail notification is provoked in the same way as the known<br />

notifications. There is no difference in the current processing, only the result (e-mail instead<br />

of the established messages) is different.<br />

Prerequisites for e-mail notification:<br />

► SMTP server available in the customer environment and known to <strong>DFSMS</strong>rmm<br />

► Owner attribute‚ e-mail address is set<br />

If you specified an e-mail address, you must have an SMTP server configured and started.<br />

Information about how to set up an SMTP server can be found in the manual z/<strong>OS</strong><br />

Communications Server: IP Configuration Guide, SC31-8775.<br />

By default, <strong>DFSMS</strong>rmm tries to use an SMTP server called SMTP on the current JES node.<br />

To tell <strong>DFSMS</strong>rmm to use any other SMTP server, use the restricted owner SMTP.<br />

Restriction: The owner SMTP is now a reserved owner name value that you can use to<br />

configure the node name and SMTP server address space or machine name.<br />

You use the NODE operand to identify the node that runs the SMTP server, and the USERID<br />

operand to identify the SMTP server.<br />

Figure 8-1 shows the difference between the use of a notification message and a true e-mail<br />

address.<br />

Electronic mail:<br />

Email . :<br />

Userid . : SCHLUM Node . . . . : <strong>IBM</strong>DE<br />

Electronic mail:<br />

Email . : SCHLUM@DE.<strong>IBM</strong>.COM<br />

Userid . : SCHLUM Node . . . . : <strong>IBM</strong>DE<br />

Figure 8-1 Difference between notification message and true e-mail address<br />

The trigger for using e-mail notification is the owner‘s e-mail address. As long as there is no<br />

e-mail address defined to <strong>DFSMS</strong>rmm, <strong>DFSMS</strong>rmm will send the notification to node/user ID.<br />

If an e-mail address is defined, <strong>DFSMS</strong>rmm sends the notification to this address, whether a<br />

node/user ID is defined or not.<br />

264 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

notification<br />

message<br />

email


8.2 Support true e-mail address implementation<br />

8.2.1 Basic setup<br />

To set up e-mail notification, five topics need to be addressed.<br />

Basic setup items that are common for normal notification and e-mail notification are:<br />

► PARMLIB option NOTIFY(YES)<br />

Specifies whether <strong>DFSMS</strong>rmm should automatically notify volume owners when the<br />

volumes they own become eligible for release or when software product volumes are<br />

added.<br />

► Volume RELEASEACTION(NOTIFY)<br />

Must be specified as part of the GETVOLUME, ADDVOLUME, or CHANGEVOLUME<br />

subcommands to get notifications sent, when a volume is released.<br />

► <strong>DFSMS</strong>rmm under JES2 or JES3<br />

You must be running <strong>DFSMS</strong>rmm under the JES2 or JES3 subsystem and not the master<br />

subsystem.<br />

8.2.2 Defining an owner’s e-mail address<br />

The e-mail address of an owner can be defined using the <strong>DFSMS</strong>rmm dialog, as shown in<br />

Figure 8-2, or using the appropriate TSO subcommands, like ADDOWNER or<br />

CHANGEOWNER.<br />

Panel Help<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Add Owner Details - SCHLUM<br />

Command ===><br />

Owner id . . SCHLUM<br />

Surname . . Schlumberger<br />

Forenames Norbert<br />

Department INTERNATIONALE PROJEKTE (6304)<br />

Address:<br />

Line 1 . . <strong>IBM</strong> DEUTSCHLAND INFORMATIONSSYSTEME GMBH<br />

Line 2 . . AM KELTENWALD 1<br />

Line 3 . . 71139 EHNINGEN (GERMANY)<br />

Telephone:<br />

Internal 919-3579 External . . . +49-(0)7056-964522<br />

Electronic mail:<br />

Email . . SCHLUM§DE.<strong>IBM</strong>.COM<br />

Userid . . SCHLUM Node . . . . . <strong>IBM</strong>DE<br />

Press ENTER to ADD owner details, or END command to CANCEL.<br />

Figure 8-2 Specifying a true e-mail address using the add owner dialog panel<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 265


Use Example 8-1 to add a new owner using the RMM TSO ADDOWNER or CHANGE<br />

OWNER subcommand.<br />

Example 8-1 Specifying a true e-mail address using the RMM TSO subcommands<br />

or<br />

8.2.3 SMTP server<br />

266 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RMM ADDOWNER SCHLUM +<br />

ADDR1('<strong>IBM</strong> DEUTSCHLAND INFORMATIONSSYSTEME GMBH') +<br />

ADDR2('AM KELTENWALD 1') +<br />

ADDR3('71139 EHNINGEN (GERMANY)') +<br />

DEPARTMENT('INTERNATIONALE PROJEKTE (6304)') +<br />

EMAIL(’SCHLUM§DE.<strong>IBM</strong>.COM’) +<br />

EXTEL('07034-15-3579') +<br />

FNAME('NORBERT') +<br />

INTEL('919-3579') +<br />

NODE(<strong>IBM</strong>DE) +<br />

SNAME('SCHLUMBERGER') +<br />

USER(SCHLUM)<br />

RMM CHANGEOWNER SCHLUM +<br />

EMAIL(’SCHLUM§DE.<strong>IBM</strong>.COM’)<br />

If you specified an e-mail address, you must have an SMTP server configured and started.<br />

Information about how to set up an SMTP server can be found in the manual z/<strong>OS</strong><br />

Communications Server: IP Configuration Guide.<br />

By default, <strong>DFSMS</strong>rmm tries to use an SMTP server called SMTP on the current JES node.<br />

To tell <strong>DFSMS</strong>rmm to use any other SMTP server, use the restricted owner named SMTP.<br />

The Owner SMTP is now a reserved owner name value that you can use to configure the<br />

node name and SMTP server address space or machine name.<br />

You use the NODE operand to identify the node that runs the SMTP server, and the USERID<br />

operand to identify the SMTP server. The default used by <strong>DFSMS</strong>rmm is:<br />

node Current JES node<br />

name SMTP<br />

Use the restricted owner SMTP to change the default values:<br />

node The node that runs the SMTP server<br />

userid The SMTP server task name<br />

Note: If you add the owner SMPT you must specify both values.<br />

Use the TSO NETSTAT command, as shown in Example 8-2, to get the server task name of<br />

your SMTP.<br />

Example 8-2 Sample NETSTAT command<br />

TSO NETSTAT


Figure 8-3 shows you the result of the NETSTAT command.<br />

EZZ2350I MVS TCP/IP NETSTAT CS V1R7 TCPIP Name: TCPIP 13:32:28<br />

EZZ2585I User Id Conn Local Socket Foreign Socket State<br />

EZZ2586I ------- ---- ------------ -------------- -----<br />

EZZ2587I BPXOINIT 00000044 0.0.0.0..10007 0.0.0.0..0 Listen<br />

EZZ2587I CNMPEGZB 00013534 0.0.0.0..4080 0.0.0.0..0 Listen<br />

EZZ2587I CNMPEGZB 00013536 0.0.0.0..4020 0.0.0.0..0 Listen<br />

EZZ2587I CNMPEGZB 00013535 0.0.0.0..4092 0.0.0.0..0 Listen<br />

EZZ2587I DB2BDIST 000048EF 0.0.0.0..5022 0.0.0.0..0 Listen<br />

EZZ2587I DB2BDIST 000048F2 0.0.0.0..5021 0.0.0.0..0 Listen<br />

EZZ2587I DFSKERN 00000031 0.0.0.0..139 0.0.0.0..0 Listen<br />

EZZ2587I INETD1 00000057 0.0.0.0..923 0.0.0.0..0 Listen<br />

EZZ2587I INETD1 00000054 0.0.0.0..512 0.0.0.0..0 Listen<br />

EZZ2587I INETD1 00000056 0.0.0.0..514 0.0.0.0..0 Listen<br />

EZZ2587I INETD1 00000055 0.0.0.0..513 0.0.0.0..0 Listen<br />

EZZ2587I NPM 00000019 0.0.0.0..1965 0.0.0.0..0 Listen<br />

EZZ2587I OMPROUTE 00000033 127.0.0.1..1026 127.0.0.1..1027 Establ<br />

EZZ2587I TAPEMAN 00000046 9.149.157.65..35043 0.0.0.0..0 Listen<br />

EZZ2587I TCPFTPH1 00000039 0.0.0.0..21 0.0.0.0..0 Listen<br />

EZZ2587I TCPIP 00000016 127.0.0.1..1024 127.0.0.1..1025 Establ<br />

EZZ2587I TCPIP 0000001F 0.0.0.0..423 0.0.0.0..0 Listen<br />

EZZ2587I TCPIP 00000015 127.0.0.1..1025 127.0.0.1..1024 Establ<br />

EZZ2587I TCPIP 000186C1 9.149.157.65..23 9.157.16.221..2005 Establ<br />

EZZ2587I TCPIP 00000012 127.0.0.1..1024 0.0.0.0..0 Listen<br />

EZZ2587I TCPIP 00018178 9.149.157.65..23 9.143.10.29..1695 Establ<br />

EZZ2587I TCPIP 0000001E 0.0.0.0..623 0.0.0.0..0 Listen<br />

EZZ2587I TCPIP 00000020 0.0.0.0..23 0.0.0.0..0 Listen<br />

EZZ2587I TCPIP 0000002E 127.0.0.1..1027 127.0.0.1..1026 Establ<br />

EZZ2587I TCPSMTP 0000003E 0.0.0.0..25 0.0.0.0..0 Listen<br />

EZZ2587I WWW 000186F3 9.149.157.65..80 9.157.16.217..2796 FinWai<br />

EZZ2587I WWW 00017ED9 0.0.0.0..80 0.0.0.0..0 Listen<br />

EZZ2587I DFSKERN 00000030 0.0.0.0..137 *..* UDP<br />

EZZ2587I DFSKERN 00000032 0.0.0.0..138 *..* UDP<br />

EZZ2587I OMPROUTE 000186F5 0.0.0.0..60380 *..* UDP<br />

EZZ2587I TCPSMTP 0000003F 0.0.0.0..1039 *..* UDP<br />

EZZ2587I VTAM 0000000D 9.149.157.65..12003 *..* UDP<br />

EZZ2587I VTAM 0000000B 9.149.157.65..12001 *..* UDP<br />

EZZ2587I VTAM 0000000E 9.149.157.65..12004 *..* UDP<br />

EZZ2587I VTAM 0000000C 9.149.157.65..12002 *..* UDP<br />

Figure 8-3 NETSTAT output<br />

Note: Normally, port TCP 25 is reserved for SMTP. Verify that the name of the member<br />

containing the SMTP cataloged procedure has been added to the PORT statement in<br />

hlq.PROFILE.TCPIP.<br />

To get the node name use the display JES2 Network Environment command, as shown in<br />

Example 8-3.<br />

Example 8-3 Display the JES2 Network Environment<br />

/$D NJEDEF<br />

or<br />

/$D NJEDEF<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 267


Figure 8-4 shows you the result of the JES2 Network Environment display command.<br />

RESPONSE=SC70<br />

$HASP831 NJEDEF<br />

$HASP831 NJEDEF OWNNAME=WTSCPLX2,OWNNODE=1,DELAY=300,<br />

$HASP831 HDRBUF=(LIMIT=100,WARN=80,FREE=100),<br />

$HASP831 JRNUM=1,JTNUM=1,SRNUM=7,STNUM=7,<br />

$HASP831 LINENUM=40,MAILMSG=YES,MAXHOP=0,<br />

$HASP831 NODENUM=999,PATH=1,RESTMAX=0,<br />

$HASP831 RESTNODE=100,RESTTOL=0,TIMETOL=0<br />

Figure 8-4 Display JES2 Network Environment result<br />

8.2.4 E-mail message configuration<br />

<strong>DFSMS</strong>rmm supports two notification tasks:<br />

► Volume release notification - Notify the owner when the owner’s volumes are eligible for<br />

release.<br />

► Product notification - Notify the designated product owner when a program product<br />

volume is added.<br />

For each task EDGMTAB contains two different sets of messages for normal and e-mail<br />

notification. This enables you to design two completely independent notification messages,<br />

one for the known notification way and one for e-mails. Figure 8-5 shows you a sample e-mail<br />

notification if a volume is changed to status pending release.<br />

Figure 8-5 Sample volume release notification e-mail<br />

The default messages (2450-2463) delivered in EDGMTAB create an e-mail as shown above<br />

if a volume is pending release. The established messages (2405–2409) generate plain text,<br />

as shown in Figure 8-6.<br />

Subject: <strong>DFSMS</strong>rmm volume expiration<br />

Volume T10003 assigned to owner D008210 on 2005/355 at 02:50:04<br />

is now pending release.<br />

If you wish the volume to be retained, please take immediate action.<br />

You can use the dialog functions or the RMM CHANGEVOLUME TSO command.<br />

Figure 8-6 Sample volume release notification message<br />

268 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


To prevent that, <strong>DFSMS</strong>rmm changes the volume status to the status SCRATCH and retains<br />

the volume for an additional 90 days using the command shown in Example 8-4.<br />

Example 8-4 Use the RMM TSO CHANGEVOLUME subcommand to change the expiration date<br />

RMM CHANGEVOLUME T10003 RETPD(90)<br />

or<br />

RMM CV T10003 RETPD(90)<br />

....<br />

EDGMSGB 2456,TYPE=I,MOD=YES,MSGID=NO,<br />

('Volume ¢¢¢¢¢¢ ',<br />

'assigned to owner ¢¢¢¢¢¢¢¢ ')<br />

SPACE 2<br />

EDGMSGB 2457,TYPE=I,MOD=YES,MSGID=NO,<br />

'on ¢¢¢¢¢¢¢¢¢¢ at ¢¢:¢¢:¢¢'<br />

SPACE 2<br />

EDGMSGB 2458,TYPE=I,MOD=NO,MSGID=NO,<br />

('is now pending release.',<br />

'If you wish the volume to be retained, please ')<br />

SPACE 2<br />

EDGMSGB 2459,TYPE=I,MOD=NO,MSGID=NO,<br />

('take immediate action ‘,<br />

'.')<br />

SPACE 2<br />

EDGMSGB 2460,TYPE=I,MOD=NO,MSGID=NO,<br />

('You can use the dialog functions ',<br />

'or the RMM CHANGEVOLUME')<br />

SPACE 2<br />

EDGMSGB 2461,TYPE=I,MOD=NO,MSGID=NO,<br />

' TSO command.'<br />

....<br />

Figure 8-7 Messages 2456 - 2461 in EDGMTAB<br />

These messages can contain HTML code to format the text, as shown in Example 8-5.<br />

Example 8-5 Sample HTML code<br />

('take immediate action '.')<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 269


Figure 8-8 shows you a sample e-mail notification if a new software product volume is added.<br />

Figure 8-8 Sample add software product volume notification e-mail<br />

The default messages (2720–2739) delivered in EDGMTAB create an e-mail, as shown<br />

above, if a program product volume is added. The established messages (2700–2713)<br />

generate plain text, as shown in Figure 8-9.<br />

Subject: Volume T10000 has been added for software product 4730<br />

A volume has been added on 2005/355 at 02:51:06 to a <strong>DFSMS</strong>rmm<br />

software product which you own:<br />

Product Number = 4730 Level = V01R01M00<br />

Name = PROD<br />

Description = TEST<br />

Figure 8-9 Sample add software product volume notification message<br />

8.3 Setting up <strong>DFSMS</strong>rmm common time support<br />

Before <strong>DFSMS</strong>rmm common time support (UTC), also known as GMT, is enabled, all dates<br />

and times are stored in the <strong>DFSMS</strong>rmm control data set in local time. When the control data<br />

set is shared, and the sharing systems are set to run in different time zones, the local dates<br />

and times in the control data set may be from any of your systems. When you display<br />

information or extract records, you need to be aware of how the records were created, on<br />

which system, and where they may have been updated in order to interpret the dates and<br />

times shown. The same consideration also applies for records created or updated prior to<br />

enabling common time support because <strong>DFSMS</strong>rmm assumes that they are times local to the<br />

system running the <strong>DFSMS</strong>rmm subsystem and converts the values based on that<br />

assumption.<br />

When you enable common time support, <strong>DFSMS</strong>rmm maintains the records in the control<br />

data set in common time. Most date and time fields are paired together to enable an accurate<br />

conversion to and from common time and between different time zones. In some cases,<br />

<strong>DFSMS</strong>rmm has date fields in control data set records, and there is no associated time field.<br />

270 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Volume Rack Feature Code Description<br />

------ ------ ------------ ------------------------------<br />

T10000 789 2323 TESTVOLUME


For these date fields, <strong>DFSMS</strong>rmm uses an internal algorithm that approximates conversion<br />

between time zones based on the time zone offsets involved.<br />

Warning: Using the SET system command with either the DATE or the TIME keyword, or<br />

both, or replying to message IEA888A to run the system on future or past dates can affect<br />

the way that <strong>DFSMS</strong>rmm calculates local times. In order to get the correct results from<br />

<strong>DFSMS</strong>rmm processing when you need to test with future or past dates, you should alter<br />

the TOD clock and keep the time zone offset as before.<br />

8.3.1 <strong>DFSMS</strong>rmm - using the date and time<br />

Dates and times in <strong>DFSMS</strong>rmm are used mostly for reference, but also to calculate retention<br />

periods. Examples are:<br />

► Journal record prefix<br />

Contains date and time that the journal records were written, compared for forward<br />

recovery.<br />

► Record creation date and time<br />

In any record stored in the <strong>DFSMS</strong>rmm control data set.<br />

► Expiration date<br />

In volume and data set records. Shows the date that the entity is expired, but not the time.<br />

► Tokens<br />

In control data set records. Used for various purposes but usually as a unique value to<br />

associate multi-volumes multi-files, or logical volumes and stacked volumes together.<br />

► Reference dates<br />

In control data set records.<br />

Note: Dates and times are always displayed to the user in the same format that they were<br />

recorded, in local time.<br />

All current uses of date and time in <strong>DFSMS</strong>rmm use the TIME DEC option of the TIME<br />

macro. This retrieves the local date and time. <strong>DFSMS</strong>rmm assumes that all systems that<br />

share a control data set (CDS), and therefore the JOURNAL as well, run on a synchronized<br />

time source.<br />

Although in theory there is supposed to be a common date and time function available in<br />

<strong>DFSMS</strong>rmm and used for all date conversions, in practice it is used only when a date<br />

conversion is required or to get the current date in <strong>DFSMS</strong>rmm internal format. It is not used<br />

where the time is wanted or when the date is wanted not in internal format.<br />

<strong>DFSMS</strong>rmm uses an internal date format that is derived via TIME DEC from the TOD — a<br />

4-byte, 7-character packed decimal number YYYYDDDs. Using this value <strong>DFSMS</strong>rmm has<br />

no known limit to the dates that can be handled. The internal time is a seven-character<br />

packed decimal number also, HHMMSSTs. <strong>DFSMS</strong>rmm does not need to upgrade to using a<br />

128-bit timer value, nor have any problems with the TOD clock rolling over in 2043.<br />

8.3.2 Date and time in a <strong>DFSMS</strong>rmm client server environment<br />

All dates and times used on the client system are local time. All dates and times used on the<br />

server are in local time. When data is retrieved from the <strong>DFSMS</strong>rmm control data set (CDS)<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 271


and displayed by subcommand processing, the dates and times used are exactly as stored in<br />

the <strong>DFSMS</strong>rmm CDS. No conversion from server time zone to client time zone is performed.<br />

Figure 8-10 shows an example of when there is a need to use the <strong>DFSMS</strong>rmm common time<br />

support.<br />

Client<br />

1<br />

Figure 8-10 <strong>DFSMS</strong>rmm client server implementation<br />

8.3.3 Enable common time support<br />

Before you can enable the <strong>DFSMS</strong>rmm common time support you must check that the (time<br />

of Day (TOD) clocks of all systems in the RMMPLEX are set to Universal Time, Coordinated<br />

(UTC).<br />

To enable common time support:<br />

1. Ensure that all systems in the RMMplex have toleration maintenance installed or are at<br />

z/<strong>OS</strong> <strong>V1R8</strong> or later, and all applications dependent on the correct date and time<br />

information from <strong>DFSMS</strong>rmm are updated to support the new time zone support if<br />

required. <strong>DFSMS</strong>rmm subcommand output remains in local time, so most applications do<br />

not need to change unless they are to exploit the availability of the time zone offset.<br />

2. Ensure that the system time of day clock is set to GMT on all systems in the RMMplex. It<br />

is common practice for the system to use local time based either on the TIMEZONE value<br />

in the CLOCKxx member of PARMLIB or from an external time source.<br />

3. Run the EDGUTIL utility with UPDATE with the UTC(YES) operand on the CONTROL<br />

statement of the SYSIN file to enable common time support.<br />

UTC(YES) enables <strong>DFSMS</strong>rmm common time support. Prior to enabling this support all<br />

systems in the RMMplex should have toleration maintenance installed or be z/<strong>OS</strong> V1.8 or<br />

later, and applications dependent on the correct date and time information from <strong>DFSMS</strong>rmm<br />

should be updated to support the new time zone support if required.<br />

272 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

IP-Net<br />

Server<br />

Important: You cannot disable common time support once it is enabled.<br />

Client<br />

2


Figure 8-11 shows you the result of a RMM TSO LISTCONTOL if you do not have<br />

<strong>DFSMS</strong>rmm common time support enabled.<br />

Control record:<br />

Type = MASTER Create date = 2002/064 Create time = 15:46:09<br />

<strong>Update</strong> date = 2007/082 <strong>Update</strong> time = 17:49:39<br />

Journal: Utilization = 17% (75% threshold) STATUS: = ENABLED<br />

CDS: Utilization = 81%<br />

Exit status: Options:<br />

EDGUX100 = ENABLED Stacked Volumes = NONE<br />

EDGUX200 = NONE Extended Bin = DISABLED<br />

Common Time = DISABLED<br />

CDSID ENQ name = ENABLED<br />

Last backup: Last expiration processing:<br />

Date = 2007/079 Time = 13:25:42 Date = 2007/079 Time = 13:25:39<br />

Last journal backup: Last store update:<br />

Date = 2007/079 Time = 13:25:42 Date = 2007/072 Time = 18:30:39<br />

Last report extract: Last VRS processing:<br />

Date = 2007/072 Time = 18:30:39 Date = 2007/079 Time = 13:25:39<br />

Last scratch procedure: Last Catalog synchronize:<br />

Date = Time = Date = Time =<br />

Rack numbers = 6258 Empty racks = 4212<br />

LOCAL store bins = 0 Empty LOCAL bins = 0<br />

DISTANT store bins = 0 Empty DISTANT bins = 0<br />

REMOTE store bins = 0 Empty REMOTE bins = 0<br />

Control functions in progress:<br />

Backup = N Restore = N<br />

Verify = N Expiration = N<br />

Report Extract = N Disaster Store = N<br />

VRS = N Synchronize = N<br />

Client/Server:<br />

host name =<br />

IP address =<br />

Figure 8-11 Common time support disabled<br />

Use Example 8-6 to enable <strong>DFSMS</strong>rmm common time support.<br />

Example 8-6 Enable UTC support<br />

//UTIL EXEC PGM=EDGUTIL,PARM=’UPDATE’<br />

//SYSPRINT DD SYSOUT=*<br />

//MASTER DD DISP=SHR,DSN=RMM.CONTROL.DSET<br />

//SYSIN DD *<br />

CONTROL UTC(YES) CDSID(SC70)<br />

/*<br />

Where:<br />

CDSID Specifies one-to-eight alphanumeric characters that identify the<br />

control data set by name. There is no default. A CDSID is required in<br />

z/<strong>OS</strong> 1.9 or later.<br />

UTC Enables <strong>DFSMS</strong>rmm common time support.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 273


Once you enable common time support <strong>DFSMS</strong>rmm starts to record CDS record dates and<br />

times in common time and converts existing values, as required, from local times to common<br />

time. Figure 8-12 shows you an example of a display data set.<br />

Each user can set his own common time zone values to display the date and time information<br />

correctly. Example 8-8 on page 284 shows you the <strong>DFSMS</strong>rmm dialog user option selection<br />

where the time zone can be specified.<br />

Panel Help<br />

______________________________________________________________________________<br />

EDGP§OP1 <strong>DFSMS</strong>rmm Dialog User Options<br />

Command ===><br />

Date format . . . . . JULIAN ( American, European, Iso or Julian )<br />

Time zone . . . . . . MST -04:00:00 ( zone offsetHH:MM:SS )<br />

Confirm deletes . . . YES ( Yes or No )<br />

Processing option . . F F - Foreground, B - Background<br />

Eject option . . . . C C - Convenience, B - Bulk<br />

Variable reuse . . . Y Y - Yes, N - No<br />

Job statement information:-<br />

Figure 8-12 Set your own common time zone value<br />

All dates and times displayed or entered in the <strong>DFSMS</strong>rmm dialog are values local to this<br />

time zone. To change the time zone you must specify an offset value and a text string to<br />

identify that zone to you. The offset value is the time that your selected time zone is ahead of<br />

or behind universal time (UTC/GMT). Changes you make only affect future dialog actions and<br />

displays.<br />

The report extract data set contains date and time values in the local time of the running<br />

system. The extract header record includes a field that lists the time zone offset, as shown in<br />

Figure 8-13.<br />

Figure 8-13 Report extract data set time zone offset<br />

274 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

===> //RMMJOB JOB ,RMM,NOTIFY=&SYSUID,<br />

===> // MSGCLASS=H,CLASS=A,MSGLEVEL=(1,1),REGION=6M<br />

===> //*<br />

===> //*<br />

Enter END command to save changes, or CANCEL to end without saving.<br />

H 2007/072 183039SC64 JN-04:00:00<br />

Recommendation: We recommend that you have the system TOD clock set to GMT and<br />

enable <strong>DFSMS</strong>rmm to use UTC. You do this by using the EDGUTIL utility with the<br />

UPDATE parameter. Once you do this, any newly recorded dates and time will be stored in<br />

common time and existing records are converted to be in all common time as they are<br />

updated. You will continue to see dates and times presented in local time because<br />

<strong>DFSMS</strong>rmm handles the conversion from common time to your local time.


Set the TIMEZONE in the CLOCKxx PARMLIB member<br />

TIMEZONE d.hh.mm.ss specifies the difference between the local time and the Coordinated<br />

Universal Time (UTC). If ETRMODE YES and ETRZONE YES are specified (and an<br />

operational Sysplex Timer® is available), the system ignores the TIMEZONE parameter.<br />

d Specifies the direction from UTC.<br />

Value Range: E for east of UTC or W for west of UTC.<br />

Default: W.<br />

hh.mm.ss Specifies the number of hours (hh), minutes (mm), and seconds (ss)<br />

that the local time differs from the UTC.<br />

Value Range: The value for hh must be between 00 and 15. The value<br />

for mm and ss must be between 00 and 59. mm.ss values are<br />

optional.<br />

In addition, the combined hh.mm.ss value must be within the range<br />

00:00:00–15:00:00. This means that a value like 15.59.59 is not valid<br />

because it is outside the range, even though the hh portion is between<br />

00 and 15 and the mm and ss portions are between 00 and 59. If the<br />

mm portion or ss portion or both are omitted, a default value of 00 is<br />

applied to the omitted portion, and appears in message IEA598I at IPL<br />

time. For example, if CLOCKxx contains TIMEZONE W.15, then at IPL<br />

time, message IEA598I indicates:<br />

IEA598I TIME ZONE = W.15.00.00<br />

Default: 00.00.00<br />

See Example 8-7 for how you can use the DISPLAY T command to display the local time of<br />

day and date and the UTC of day and date.<br />

Example 8-7 Displaying the local and coordinated universal time and date<br />

D T<br />

The local time of day and date and the coordinated universal time of day and date are to be<br />

displayed (message IEE136I), as shown in Figure 8-14.<br />

RESPONSE=SC70 IEE136I LOCAL: TIME=12.56.19 DATE=2007.068 UTC:<br />

RESPONSE=TIME=17.56.19 DATE=2007.068<br />

Figure 8-14 Result of the displaying the local and coordinated universal time and date<br />

8.3.4 Potential problems using local time<br />

Some potential problems are:<br />

► Systems sharing the CDS but in different time zones create records using their own local<br />

date and time values.<br />

► Journal records might appear to not be in sequence. However, the VSI count and record<br />

numbers show the correct sequence. Tokens vary but will at least always increment.<br />

► Users see a date and time and believe it to be in their local time zone, but it could reflect<br />

that used on another system.<br />

► Data sets or volumes could be released early.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 275


8.4 <strong>DFSMS</strong>rmm VRS policy management simplification<br />

In this new release the VRS processing changed and the RMM TSO subcommand and the<br />

reporting are enhanced as follows:<br />

1. Separation of Data Set Name Mask from the Policy.<br />

2. Release options applied if VRS matched.<br />

3. Special ABEND and OPEN via DSNAME match.<br />

4. Find unused VRSs.<br />

5. Incomplete VRS chains - dummy VRS *broken*.<br />

6. Toleration and removal of old functions.<br />

7. Conversion to <strong>DFSMS</strong>rmm from other tape management systems.<br />

Attention: The <strong>DFSMS</strong>rmm PARMLIB option VRSEL(OLD) will be removed in a future<br />

release. We recommend migrating from VRSEL(OLD) to VRSEL(NEW) before moving to<br />

z/<strong>OS</strong> V1.8. Each time you run VRSEL processing and VRSEL(OLD) is in use, the new<br />

message EDG2317E and a minimum return code of 4 are issued.<br />

8.4.1 Separation of Data Set Name Mask from the Policy<br />

Figure 8-15 shows the structure of a DSNAME VRS and how the concept of separating the<br />

data set name mask from the policy itself is put into effect.<br />

The data set name VRS now allows a COUNT of zero so that this first VRS in a chain has no<br />

retention specification. The NEXTVRS in the chain and subsequent VRSs now specify the<br />

entire policy.<br />

mask<br />

DSNAME<br />

JOBNAME<br />

GDG\NOGDG<br />

ANDVRS \ NEXTVRS<br />

policy<br />

COUNT<br />

STORENUMBER<br />

DAYS \ CYCLES \ ...<br />

DELAY<br />

WHILECATALOG<br />

UNTILEXPIRED<br />

LOCATION<br />

DELETEDATE<br />

DESCRIPTION<br />

OWNER<br />

RELEASE<br />

PRIORITY<br />

Figure 8-15 DSNAME VRS concept<br />

Setting up <strong>DFSMS</strong>rmm retention and movement policies can require large numbers of VRSs<br />

to be created because each data set name mask VRS also contains the initial retention and<br />

movement information.<br />

276 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

DSNAME VRS DSNAME (mask) VRS NAME (policy) VRS<br />

mask<br />

DSNAME<br />

JOBNAME<br />

GDG\NOGDG<br />

policy<br />

COUNT(0)<br />

DELETEDATE<br />

DESCRIPTION<br />

OWNER<br />

RELEASE<br />

PRIORITY<br />

NEXTVRS<br />

NAME<br />

mask<br />

ANDVRS \ NEXTVRS<br />

policy<br />

COUNT<br />

STORENUMBER<br />

DAYS \ CYCLES \ ...<br />

WHILECATALOG<br />

UNTILEXPIRED<br />

LOCATION<br />

DELETEDATE<br />

DESCRIPTION<br />

OWNER


Separating the data set name mask from the policy itself, as shown in Figure 8-16, enables<br />

clear and well-defined service levels to be set up for tape management.<br />

These policy/service-level VRSs can then be easily modified as required without changing<br />

the filters that select them.<br />

Mask<br />

Policy<br />

Mask<br />

Policy<br />

Figure 8-16 Separation of DSNAME mask from the policy<br />

Note: VRSEL(NEW) is required to implement the separating the data set name mask from<br />

the policy processing.<br />

If you run <strong>DFSMS</strong>rmm with VRSEL(OLD), for each VRS where COUNT is set to 0,<br />

<strong>DFSMS</strong>rmm issues the message EDG2225I. The processing continues, and <strong>DFSMS</strong>rmm<br />

sets a minimum return code of 4 and ignores the VRS. No data sets can match to or use the<br />

VRS.<br />

8.4.2 Release options applied if VRS matched<br />

Mask 1<br />

Policy<br />

Mask 2<br />

Policy<br />

Mask 3<br />

Policy<br />

Name 1<br />

Policy<br />

Release options for matching VRSs can be applied regardless of whether the data set<br />

actually is ever VRS retained.<br />

Name 2<br />

Policy<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 277


The combination of COUNT(0) and release option changes ensures that a volume can be<br />

scratched the same day that a data set on it is created. Figure 8-17 shows you how you can<br />

specify COUNT(0) in a DSNAME VRS definition.<br />

mask<br />

DSNAME<br />

JOBNAME<br />

GDG\NOGDG<br />

ANDVRS \ NEXTVRS<br />

policy<br />

COUNT(0)<br />

STORENUMBER<br />

DAYS \ CYCLES \ ...<br />

DELAY<br />

WHILECATALOG<br />

UNTILEXPIRED<br />

LOCATION<br />

DELETEDATE<br />

DESCRIPTION<br />

OWNER<br />

RELEASE<br />

PRIORITY<br />

Figure 8-17 VRS count zero processing<br />

When a data set is no longer retained by a vital record specification, <strong>DFSMS</strong>rmm releases<br />

the volume on which the data set resides only if no data set and the volume is retained by a<br />

vital record specification. If you use the <strong>DFSMS</strong>rmm EDGRMMxx PARMLIB OPTION<br />

command VRSEL(NEW) option and the RMM ADDVRS RELEASE(EXPIRYDATEIGNORE)<br />

operand, <strong>DFSMS</strong>rmm ignores the volume expiration date and uses information in a vital<br />

record specification to control retention. There are two special RELEASE options available,<br />

and you can select one or both of these options together:<br />

► EXPIRYDATEIGNORE<br />

► SCRATCHIMMEDIATE<br />

<strong>DFSMS</strong>rmm does not immediately return a volume to scratch status or to its owner when a<br />

volume reaches its expiration date and is not retained by a vital record specification. You<br />

must run expiration processing two times to return a volume to scratch status or to its owner.<br />

The first run of expiration processing sets the volume status to pending release. The second<br />

run of expiration processing completes the return. Running expiration processing two times<br />

gives you time to make changes to the volume status before the volume is released.<br />

Note: Sometimes <strong>DFSMS</strong>rmm cannot make the return in a single run, for example, there<br />

may be other release actions required.<br />

278 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

COUNT(0)<br />

– ADDVRS subcommand<br />

• New range for COUNT and STORENUMBER is<br />

0 to 99999.<br />

– COUNT(0) can be specified in data set name and<br />

retention name VRSs<br />

– When you specify COUNT(0) it does not matter<br />

what location or retention criteria you specify for<br />

the VRS because these are never considered by<br />

<strong>DFSMS</strong>rmm<br />

– You can now specify that a VRS is NOT to retain<br />

a data set by use of COUNT(0)<br />

for VRSEL(NEW) only


If you do not need to run expiration processing in two runs, specify the <strong>DFSMS</strong>rmm<br />

EDGRMMxx PARMLIB OPTION command VRSEL(NEW) option and the RMM ADDVRS<br />

RELEASE(SCRATCHIMMEDIATE) operand. This enables you to return volumes to scratch<br />

in a single run of expiration processing. For more information about the RELEASE option<br />

refer to the <strong>DFSMS</strong>rmm Implementation and Customization Guide, SC26-7405.<br />

DSNAME VRS<br />

mask<br />

DSNAME<br />

JOBNAME<br />

GDG\NOGDG<br />

ANDVRS \ NEXTVRS<br />

policy<br />

COUNT<br />

STORENUMBER<br />

DAYS \ CYCLES \ ...<br />

DELAY<br />

WHILECATALOG<br />

UNTILEXPIRED<br />

LOCATION<br />

DELETEDATE<br />

DESCRIPTION<br />

OWNER<br />

RELEASE<br />

PRIORITY<br />

Figure 8-18 VRS release option<br />

8.4.3 Special ABEND and OPEN via DSNAME match<br />

The support for ABEND and OPEN is extended to allow selection of the appropriate policy<br />

using the data set name mask. You can use the reserved data set or job names ABEND and<br />

OPEN to specify policies for:<br />

► Data sets closed as a result of an abnormal end (ABEND flag in the data set record ON) in<br />

a task<br />

► Data sets that are left open (OPEN flag in the volume record ON) or are in use during<br />

inventory management.<br />

Figure 8-19 shows you how you can specify the new reserved ABEND and OPEN masks in<br />

the ADD VRS subcommand.<br />

Figure 8-19 Add new ABEND or OPEN VRS<br />

� Release options can now be<br />

applied to all data sets that<br />

match to a VRS, not just to<br />

those retained by a VRS<br />

– With COUNT(0) drop data sets on<br />

creation day (ABEND VRS for<br />

example)<br />

– Multi-File Volumes<br />

• VRS retained data sets override<br />

‘Matched’ data sets<br />

for VRSEL(NEW) only<br />

�———ADDVRS——————DSNAME(data_set_name_mask)—————————JOBNAME(jobname_mask)———�<br />

| | | | | |<br />

|——AS————| |—DSNAME(’ABEND’)————————————| |—JOBNAME(’ABEND’)——————|<br />

| | | |<br />

|—DSNAME(’OPEN’)—————————————| |—JOBNAME(’OPEN’)———————|<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 279


This allows you to use either data set name masks or job name masks to manage open or<br />

abend data sets.<br />

The data set name mask or job name can even be used to match to data sets via<br />

management class or vital record specification management value as long as the data set<br />

name mask specified is not more than a single qualifier.<br />

8.4.4 Find unused VRSs<br />

With this release <strong>DFSMS</strong>rmm helps you manage your VRSs by VRSEL maintaining the last<br />

reference date (DLR) and last reference time (TLR) for each VRS. This new function also<br />

includes the following new functions:<br />

► Counts the number of unused VRSs<br />

► Identifies which VRS policy chains are not being used<br />

You can use this information to identify and delete VRSs that are no longer required.<br />

The VRS last reference date and time are now externalized in the report extract file in the<br />

output of the LISTVRS subcommand, and the last reference date is also shown in the<br />

REPORT file, as shown in Figure 8-20. Also, the REPORT file contains a list of VRS chains<br />

not used in this VRSEL run.<br />

REMOVABLE MEDIA MANAGER VITAL RECORDS RETENTION REPORT PAGE 120<br />

(C) <strong>IBM</strong> CORPORATION 1993,2006 ----- ------- --------- ------ TIME 11:21:02 DATE 03/22/2006<br />

JOB MASK DATA SET OR VOLUME MASK OWNER TYPE RETN C X DELETE DLY COUNT STNUM LOCATION RLSE LASTREF<br />

____________________________________________________________________________________________________________________________________<br />

*.GDG.*.ICRMT.** X002 DSN CYCLES Y N 12/31/1999 0 99999 99999 LOCAL 03/22/2001<br />

JOB NAME DATA SET NAME 2ndVRS 2ndNAMED FSEQ DSEQ VOLUME VSEQ OWNER CURRENT REQUIRED PRTY RETDATE RETNAME<br />

____________________________________________________________________________________________________________________________________<br />

X015IJIC DT04.GDG.DSNDB06.ICRMT.SYSSTR.G0001V00 12 12 L01699 1 X015 LOCAL LOCAL 300 WHILECATLG *<br />

NUMBER OF DATA SETS RETAINED (GROUP STORE) = 1 1<br />

X015IJIC DT04.GDG.DSNDB06.ICRMT.SYSUSER.G0001V00 11 11 L01699 1 X015 LOCAL LOCAL 300 WHILECATLG *<br />

NUMBER OF DATA SETS RETAINED (GROUP STORE) = 1 1<br />

X015IJIC DT04.GDG.DSNDB06.ICRMT.SYSVIEWS.G0001V00 13 13 L01699 1 X015 LOCAL LOCAL 300 WHILECATLG *<br />

NUMBER OF DATA SETS RETAINED (GROUP STORE) = 1 1<br />

REMOVABLE MEDIA MANAGER UNUSED VRS CHAINS REPORT PAGE 121<br />

(C) <strong>IBM</strong> CORPORATION 1993,2006 ------ --- ------ ------ TIME 11:21:02 DATE 03/22/2006<br />

JOB MASK DATA SET OR VOLUME MASK OWNER TYPE RETN C X DELETE DLY COUNT STNUM LOCATION RLSE LASTREF<br />

____________________________________________________________________________________________________________________________________<br />

*.BACKUP.** LIB DSN CYCLES Y N 12/31/1999 0 99999 99999 LOCAL 01/23/1992<br />

*.IMGCPY.IMSDB.** LIB NAME DAYS N Y 12/31/1999 0 99999 99999 HOME 12/12/2004<br />

VITAL.** LIB DSN CYCLES Y N 12/31/1999 0 99999 99999 CURRENT IX 05/27/2003<br />

Figure 8-20 Vital records retention report<br />

The MESSAGE file contains an additional message that shows the number of VRSs that are<br />

not used by this VRSEL run.<br />

The maintenance of the VRS last reference date and time is supported only if you have<br />

specified VRSEL(NEW). In the REPORT file the LASTREF column is listed in any case:<br />

VRSEL(NEW) It will be filled with dates.<br />

VRSEL(OLD) It will be filled with blanks.<br />

280 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

VITAL<br />

VITAL<br />

RECORDS<br />

RECORDS<br />

RETENTION<br />

RETENTION<br />

REPORT<br />

REPORT<br />

-----<br />

-----<br />

-------<br />

-------<br />

---------<br />

---------<br />

------<br />

------<br />

UNUSED<br />

UNUSED<br />

VRS<br />

VRS<br />

CHAINS<br />

CHAINS<br />

REPORT<br />

REPORT<br />

------<br />

------<br />

---<br />

---<br />

------<br />

------<br />

------<br />

------<br />

LASTREF<br />

LASTREF<br />

----------<br />

----------<br />

03/22/2001<br />

03/22/2001<br />

LASTREF<br />

LASTREF<br />

----------<br />

----------<br />

01/23/1992<br />

01/23/1992<br />

12/12/2004<br />

12/12/2004<br />

05/27/2003<br />

05/27/2003


8.4.5 Incomplete VRS chains - dummy VRS *broken*<br />

If VRSEL processing finds an incomplete chain it is reported with EDG2230I, but the<br />

processing continues. In this case <strong>DFSMS</strong>rmm sets a minimum return code of 4 and any data<br />

set that matches this incomplete chain is retained by a special Name VRS *broken*.<br />

Figure 8-21 shows you an example of an incomplete VRS chain.<br />

DSN1<br />

Policy<br />

Figure 8-21 Incomplete VRS chain<br />

NAME1<br />

Policy<br />

NAME2<br />

ANDVRS(NAME1) NEXTVRS(NAME2) NEXTVRS(NAME3)<br />

The two new messages that you can get if the VRSEL processing detects errors are:<br />

EDG2230I NEXTVRS name_vrs DOES NOT EXIST. CHAINING vrs_type VRS IS vrs_mask.<br />

Where:<br />

vrs_name The NAME vital record specification defined by NEXTVRS.<br />

vrs_type DSN - DSNAME vital record specification.<br />

VOL - VOLUME vital record specification.<br />

NAME - NAME vital record specification.<br />

vrs_mask The mask that uniquely identifies the vital record<br />

specification with the chaining error. For DSNAME vital<br />

record specifications the mask includes the data set name<br />

and optionally the job name.<br />

Severity Information.<br />

Explanation During inventory management vital record processing,<br />

<strong>DFSMS</strong>rmm checks all vital record specification chains by<br />

following the chain using the NEXTVRS values. The vital record<br />

specification displayed in the message does not exist in the<br />

<strong>DFSMS</strong>rmm control data set.<br />

Source <strong>DFSMS</strong>rmm.<br />

Detecting Module EDGVREC0.<br />

System Action Processing continues and <strong>DFSMS</strong>rmm sets a minimum return<br />

code of 4. For VRSEL(OLD) <strong>DFSMS</strong>rmm retains additional data<br />

sets or volumes, in the home location, up to the COUNT value<br />

specified in the initial VRS in the chain. For VRSEL(NEW)<br />

additional data sets are retained in the current location,<br />

permanently.<br />

Operators Response None.<br />

Sysprogr Response ´ Add the missing vital record specification or correct the<br />

NEXTVRS value specified on the vital record specification<br />

displayed in the message.<br />

Routing Codes N/A.<br />

Descriptor Codes None.<br />

Policy<br />

Policy<br />

*broken*<br />

count (99999)<br />

days<br />

location(current)<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 281


EDG2317E MIGRATION FROM VRSEL(OLD) TO VRSEL(NEW) IS RECOMMENDED.<br />

Where:<br />

Severity Warning.<br />

Explanation During inventory management vital record processing,<br />

<strong>DFSMS</strong>rmm checks the VRSEL option that you defined in the<br />

EDGRMMxx PARMLIB. The VRSEL(OLD) option will be<br />

removed in a future release of z/<strong>OS</strong>. Migrate using<br />

VRSEL(NEW).<br />

Source <strong>DFSMS</strong>rmm.<br />

Detecting Module EDGMHKP.<br />

System Action Processing continues. A minimum return code of 4 is set.<br />

Operators Response None.<br />

Sysprogr Response´ Plan a migration to VRSEL(NEW). Refer to the migration<br />

planning steps documented in the <strong>DFSMS</strong>rmm Implementation<br />

and Customization Guide, SC26-7405.<br />

Routing Codes 11.<br />

Descriptor Codes None.<br />

8.4.6 Toleration and removal of old functions<br />

<strong>IBM</strong> recommends that you perform a migration to VRSEL(NEW). Refer to the migration<br />

planning steps documented in the <strong>DFSMS</strong>rmm Implementation and Customization Guide.<br />

This prevents use of old VRS operands STARTNUMBER, LOCATION(BOTH), and<br />

STORENUMBER(xx,yy).<br />

The toleration APAR OA13355 includes a ++HOLD(ACTION) and requires that VRSs are<br />

cleaned up before you are able to run EDGHSKP with VRSEL on a z/<strong>OS</strong> <strong>V1R8</strong> system.<br />

The cleanup actions are documented under message EDG2221E. EDG2221E sets return<br />

code 12 instead of 4.<br />

Important: As long as you do not implement COUNT(0) or JOBNAME(ABEND\OPEN)<br />

you can run VRSEL processing on either a toleration system or z/<strong>OS</strong> <strong>V1R8</strong>.<br />

Error messages<br />

A description of the new message you get if the VRSEL processing detects some errors is:<br />

EDG2222E type VRS FOR mask SPECIFIES UNSUPPORTED OPTIONS - SOME RETENTION<br />

OPTIONS IGNORED.<br />

Where:<br />

type type Is the type of vital record specification. It can be one of:<br />

DSN - DSNAME type vital record specification<br />

VOL - VOLUME type vital record specification<br />

mask This is the vital record specification data set name or volume<br />

serial number.<br />

Severity Information.<br />

Explanation During vital record processing, <strong>DFSMS</strong>rmm found a vital record<br />

specification that contains unsupported options. The<br />

unsupported options are STARTNUMBER and<br />

LOCATION(BOTH).<br />

Source <strong>DFSMS</strong>rmm.<br />

Detecting Module EDGVREC0.<br />

System Action Processing ends. A return code of 12 is set.<br />

282 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Operators Response None.<br />

Sysprogr Response You must replace the vital record specification with other vital<br />

record specifications that provide the retention options that you<br />

require. For example, if you use LOCATION(BOTH) you can<br />

replace it with use of the NEXTVRS operand. This example<br />

shows first an unsupported vital record specification and then the<br />

equivalent supported vital record specifications that you might<br />

use. Unsupported:<br />

RMM ADDVRS DSNAME(data_set_name_mask) -<br />

CYCLES COUNT(5) LOCATION(BOTH) -<br />

STORENUMBER(2,1)<br />

Supported:<br />

RMM ADDVRS DSNAME(data_set_name_mask) -<br />

CYCLES COUNT(5) LOCATION(LOCAL) -<br />

STORENUMBER(2) NEXTVRS(DIST1C)<br />

RMM ADDVRS NAME(DIST1C) LOCATION(DISTANT) -<br />

STORENUMBER(1)<br />

If you use STARTNUMBER you can replace it with the use of the<br />

NEXTVRS operand. This example shows first an unsupported<br />

vital record specification and then the equivalent supported vital<br />

record specifications that you might use.<br />

Unsupported:<br />

RMM ADDVRS DSNAME(data_set_name_mask) -<br />

CYCLES COUNT(3) LOCATION(VAULT1) -<br />

STORENUMBER(2) STARTNUMBER(1)<br />

Supported:<br />

RMM ADDVRS DSNAME(data_set_name_mask) -<br />

CYCLES COUNT(3) LOCATION(HOME) -<br />

STORENUMBER(1) NEXTVRS(VLT12C)<br />

RMM ADDVRS NAME(VLT12C) LOCATION(VAULT1) -<br />

STORENUMBER(2)<br />

In addition, <strong>IBM</strong> suggests that you perform a migration to<br />

VRSEL(NEW). See the migration planning steps documented in<br />

the <strong>DFSMS</strong>rmm Implementation and Customization Guide,<br />

SC26-7405.<br />

Routing Codes 11.<br />

Descriptor Codes 7.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 283


8.4.7 Conversion to <strong>DFSMS</strong>rmm from other tape management systems<br />

Before release <strong>V1R8</strong>, <strong>DFSMS</strong>rmm converted only DSN, LABEL, and JOB information to<br />

UXTABLE entries. Now it also supports MGMTCLAS and ABEND keywords, as shown in<br />

Figure 8-22.<br />

{ }{ {keyword }}<br />

{ }{ {preferred date}}[,J=create.jobname ]<br />

{D=dsname[-] }{,LABEL=EXPDT={Julian date }}[,JOB=create.jobname]<br />

{DSN=dsname[-] }{,LABEL=RETPD=nnnn }[,JOBNAME=create.jobname]<br />

MGMTCLAS=smsclass {,LABEL=WRETPD=nnnn }[,SELECT=ALL ]<br />

M=smsclass {,ABEND=RETPD=nnnn }<br />

{,ABEND=WRETPD=nnnn }<br />

{,ABEND=EXPDT={keyword }}<br />

{preferred date}<br />

{Julian date }<br />

Figure 8-22 MGMCLAS and ABEND RDS keywords support<br />

EDGCRFMT and EDGRSRDS conversion programs<br />

If you have a CA-1 retention data set (RDS) entry, then this RDS entry is converted into two<br />

steps to create a UXTABLE entry that can be used in the EDGUX100 user exit:<br />

1. EDGCRFMT creates input for EDGCSRDS.<br />

2. EDGCSRDS builds the UXTABLE entries.<br />

Example 8-8 shows you some CA-1 retention data set (RDS) entries.<br />

Example 8-8 CA-1 retention data set (RDS) entries<br />

M=SMSCLAS1,LABEL=RETPD=2010/011,JOB=TEST<br />

MGMTCLAS=SMSCLAS2,LABEL=RETPD=2020/011<br />

DSN=RXXXX.XXXX,ABEND=RETPD=2010/001,JOB=TESTTEST<br />

DSN=RXXXX.XXXX,LABEL=RETPD=2010/001,JOB=TESTTEST<br />

DSN=R3650.*,LABEL=RETPD=3650,JOB=COMBIN*<br />

284 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


These CA-1 retention data set entries are converted to UXTABLE, as shown in Figure 8-23.<br />

For more information about a CA-1 to <strong>DFSMS</strong>rmm conversion refer to the <strong>IBM</strong> <strong>Redbooks</strong><br />

publication Converting to <strong>DFSMS</strong>rmm from CA-1, SG24-6241. In this book the conversion is<br />

described in detail.<br />

* start of RDS entries<br />

EDGCVRSG DSN=RXXXX.XXXX.G%%%%V%%, X<br />

JOB=ABEND, X<br />

RO=001, X<br />

RETPD=2010<br />

EDGCVRSG DSN=RXXXX.XXXX, X<br />

JOB=ABEND, X<br />

RO=001, X<br />

RETPD=2010<br />

EDGCVRSG DSN=RXXXX.XXXX.G%%%%V%%, X<br />

JOB=TESTTEST, X<br />

RO=001, X<br />

RETPD=2010<br />

EDGCVRSG DSN=RXXXX.XXXX, X<br />

JOB=TESTTEST, X<br />

RO=001, X<br />

RETPD=2010<br />

EDGCVRSG DSN=R3650.*, X<br />

JOB=COMBIN*, X<br />

RO=NO, X<br />

RETPD=3650<br />

EDGCVRSG DSN=SMSCLAS1, X<br />

JOB=TEST, X<br />

RO=011, X<br />

RETPD=2010<br />

EDGCVRSG DSN=SMSCLAS2, X<br />

RO=011, X<br />

RETPD=2020<br />

* default RP value<br />

EDGCVRSG DSN=*, X<br />

RO=NO, X<br />

RETPD=3<br />

Figure 8-23 Sample UXTABLE entries<br />

EDGCSVDS conversion program<br />

EDGCSVDS converts the vaulting policies from the VPDD into K-Records representing the<br />

<strong>DFSMS</strong>rmm storage location movement policies.<br />

Processing is changed to implement data set filter VRSs for all DSN entries found in the<br />

VPDD. Instead of storing data set and job names in memory until the vault statements are<br />

reached, and then looping through them to create K records, we can now create a K record<br />

for the filter as we read the entry from the VPDD and no longer have memory limitations in<br />

EDGCSVDS.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 285


EDGCNVT conversion program<br />

EDGCNVT is updated to allow COUNT(0) in the count filed of the EDGCKREC record. This<br />

program converts the output of the data extraction programs to <strong>DFSMS</strong>rmm format (CDS<br />

records) or ADDVRS commands, as shown in Figure 8-24.<br />

VPD<br />

Separating data set name mask from the policy itself<br />

DSN=A1.TEST<br />

DSN=A2.TEST<br />

V=MINSK,C=1<br />

before<br />

<strong>V1R8</strong><br />

now<br />

Figure 8-24 EDGCNVTRMM TSO ADDVRS commands<br />

8.5 <strong>DFSMS</strong>rmm usability items<br />

With this new release there are some new, easy-to-use ISPF dialog and RMM TSO<br />

subcommand enhancements. These simplify the tasks performed by the storage<br />

administrator and simplify the analysis of data set and volume retention.<br />

8.5.1 <strong>Update</strong>s to RMM TSO SEARCHVOLUME subcommand<br />

There are enhancements to the TSO RMM SEARCHVOLUME subcommand.<br />

CLIST operand<br />

When you specify the TYPE(LOGICAL) operand and CLIST, <strong>DFSMS</strong>rmm returns more<br />

information in the output file if the obtained logical volume resides on a stacked volume. In<br />

such a case, <strong>DFSMS</strong>rmm returns the first six characters of the container name, the logical<br />

volume serial number, and the status value. The status value can be:<br />

SCRATCH If the volume is in scratch status or ready to return to scratch with the<br />

SCRATCHIMMEDIATE release option set<br />

INITIALIZE If the volume is in scratch status and contains no valid data<br />

Blank If status is not available<br />

Operand JOBNAME or NOJOBNAME<br />

Use this operand to search for volumes created by the specified job name. A job name is one<br />

to eight alphanumeric characters or $, #, or @, and must start SEARCHVOLUME<br />

286 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RMM ADDVRS DSN('A1.TEST ') NOGDG<br />

CYCLES COUNT( 1) DELAY( 0)<br />

OWNER(K ) DELETE(1999/365)<br />

LOCATION(MINSK ) STORENUM( 1) PRIORITY( 0)<br />

RMM ADDVRS DSN('A2.TEST ') NOGDG<br />

CYCLES COUNT( 1) DELAY( 0)<br />

OWNER(K ) DELETE(1999/365)<br />

LOCATION(MINSK ) STORENUM( 1) PRIORITY( 0)<br />

RMM ADDVRS DSN('A1.TEST ') NOGDG<br />

CYCLES COUNT( 0) DELAY( 0)<br />

OWNER(K ) DELETE(1999/365)<br />

LOCATION(CURRENT ) STORENUM( 0) PRIORITY( 0)<br />

NEXTVRS(VRS00001)<br />

RMM ADDVRS NAME(VRS00001) CYCLES COUNT( 1)<br />

OWNER(K ) DELETE(1999/365)<br />

LOCATION(MINSK ) STORENUM( 1)<br />

NEXTVRS(VRS00002)<br />

RMM ADDVRS DSN('A2.TEST ') NOGDG<br />

CYCLES COUNT( 0) DELAY( 0)<br />

OWNER(K ) DELETE(1999/365)<br />

LOCATION(CURRENT ) STORENUM( 0) PRIORITY( 0)<br />

NEXTVRS(VRS00001)


Subcommand with an alphabetic character, $, #, or @. You can also use a generic job name.<br />

Use % in your generic job name mask to match any one character and * to match any<br />

character string in the job name. If you do not specify JOBNAME, jobname is not used as a<br />

selection. If you specify JOBNAME(*), <strong>DFSMS</strong>rmm returns all volumes that match the search<br />

values specified and that have a job name. Volumes that do not have a job name are not<br />

listed.<br />

JOBNAME is mutually exclusive with NOJOBNAME.<br />

Operand LOCATION<br />

LOCATION(SHELF | LOCAL | DISTANT | REMOTE | library_name | LOCDEF_location_name |<br />

generic_location_name)<br />

Specify to list volumes residing in a specific location. Specify one of the following:<br />

► SHELF<br />

Volumes stored in shelf locations in a non-system-managed library.<br />

► LOCAL, DISTANT, or REMOTE<br />

<strong>DFSMS</strong>rmm built-in storage locations. Use the LOCATION operand together with<br />

INTRANSIT to limit the list to only those volumes residing in or moving from the specific<br />

location. Use the LOCATION operand together with HOME to limit the list to only those<br />

volumes residing in a specific location that has the same home location.<br />

► library_name<br />

Volumes stored in shelf locations in a specific system-managed library. A library name is<br />

one-to-eight alphanumeric characters starting with a non-numeric character. You cannot<br />

specify a distributed library name.<br />

► LOCDEF_location_name<br />

Volumes moving to a storage location that was defined using the LOCDEF command. You<br />

can enter any value, as no checking is done against the current list of locations defined to<br />

<strong>DFSMS</strong>rmm.<br />

► generic_location_name<br />

You can use a generic location name. You can use % in your generic mask to match any<br />

one character and * to match any character string.<br />

Operand RELEASEACTION<br />

RELEASEACTION(ALL, ERASE, INIT, NOTIFY, REPLACE, RETURN, SCRATCH)<br />

Release actions are those that will be set as pending actions when a volume is released. Use<br />

this operand to search for volumes that have the specified release action set. Volumes are<br />

returned if any of the values you specify are set in the volume. Also see the ACTION operand<br />

for how to search for volumes with pending actions.<br />

Specify a value of ALL, or one or more of the following, separated by commas:<br />

ALL To list all volumes with any pending action<br />

ERASE To list only volumes that require erasing<br />

INIT To list only volumes that require initialization<br />

RETURN To list only volumes that should be returned to their owner<br />

REPLACE To list only volumes that must be replaced by new volumes and<br />

returned to the scratch pool<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 287


NOTIFY To list only volumes for which owners must be notified<br />

SCRATCH To list all volumes to be returned to scratch status<br />

8.5.2 ISPF lists show retention information<br />

The ISPF dialog has been updated to shown more information about the search data set<br />

result list and search volume result list panels.<br />

Volume search result list<br />

In the volume search result list (Figure 8-25) there are now two useful enhancements<br />

available:<br />

► The Set Retained column shows whether the volume is retained because the<br />

RETAINBY(SET) option is in use and other volumes in the set are either VRS retained or<br />

retained by volume expiration date.<br />

► The Status column has been corrected to display volume availability instead of volume<br />

status if volume availability is not blank.<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Volumes (Page 1 of 2) Row 1 to 11 of 11<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume Assigned Expiration S Dest- Tr- Data<br />

S serial Owner date date R Status Location ination ans sets<br />

-- ------ -------- ---------- ---------- - ------- -------- -------- --- -----<br />

TST008 STC 2007/058 2007/058 VRS LIB1 N 1<br />

TST009 HAIMO 2004/296 1999/365 Y MASTER LIB1 N 1<br />

TST010 STC 2007/060 1999/365 Y MASTER LIB1 N 1<br />

TST011 STC 2007/059 2007/061 VRS LIB1 N 1<br />

TST014 2007/060 ENTRY SHELF LIB1 Y 0<br />

TST020 2007/072 SCRATCH LIB1 N 2<br />

TST021 STC 2007/058 2007/060 VRS LIB1 N 1<br />

TST023 STC 2007/059 1999/365 LOAN LIB1 N 1<br />

TST026 PAOLOR3 2003/302 2003/365 RELEASE LIB1 N 1<br />

TST029 MHLRES2 2007/059 2007/071 OPEN LIB1 N 2<br />

TS4284 SIEGEL 2007/073 2007/073 MASTER SHELF N 99<br />

******************************* Bottom of data ********************************<br />

Figure 8-25 <strong>DFSMS</strong>rmm search volume result panel 1 of 2<br />

Where:<br />

► The Set Retained (SR) column shows whether the volume is:<br />

Y Yes for set retained<br />

(blank) Not set retained<br />

► The Volume Status can be one of:<br />

Availability<br />

LOAN The volume is on loan.<br />

RELEASE The volume is pending release.<br />

OPEN A file on the volume is opened for output.<br />

288 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


VRS The volume is being retained by a vital record specification.<br />

Status MASTER, SCRATCH, USER, INIT, or ENTRY<br />

MASTER The volume contains valid user data and cannot be overwritten<br />

unless the data set names match.<br />

USER The volume is assigned to a user and is in use. It contains any<br />

type of data and can be overwritten, rewritten, and used<br />

repeatedly until the volume's expiration date.<br />

INIT The volume is awaiting initialization before becoming available<br />

for use as a scratch volume.<br />

ENTRY The volume has been predefined to <strong>DFSMS</strong>rmm prior to entry<br />

into an ATLDS, for use as a scratch volume.<br />

SCRATCH The volume is free and available for use. It contains no data or<br />

the data on the volume has expired or is not valid.<br />

In the right section of the volume search result panel there are no changes, as shown in<br />

Figure 8-26<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Volumes (Page 2 of 2) Row 1 to 11 of 11<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the LEFT command to view other data columns<br />

Volume Rack Media Home Media Recorded Compac- Attri-<br />

S serial number name location type Label format tion butes<br />

-- ------ ------ -------- -------- -------- ----- -------- -------- --------<br />

TST008 TST008 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST009 TST009 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST010 TST010 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST011 TST011 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST014 TST014 MEDIA3 SHELF HPCT SL 128TRACK * NONE<br />

TST020 TST021 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST021 TST021 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST023 TST023 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST026 TST026 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST029 TST028 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

TST284 TST029 MEDIA3 LIB1 HPCT SL 128TRACK YES NONE<br />

******************************* Bottom of data ********************************<br />

Figure 8-26 <strong>DFSMS</strong>rmm search volume result panel 2 of 2<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 289


Data set search result list<br />

In the right section of the data set search result list shown in Figure 8-27 you now can directly<br />

see whether a data set is vital record selected. You must press the right button to show the<br />

right panel information of the of the data set search result. The VRS Retained column<br />

displays whether data sets are retained by <strong>DFSMS</strong>rmm VRS retention. It shows whether the<br />

data set is:<br />

Y Yes if data set VRS retained<br />

(blank) If data set is not VRS retained<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

EDGPD020 <strong>DFSMS</strong>rmm Data Sets (Page 1 of 2) Row 1 to 16 of 16<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume File<br />

S Data set name serial Owner seq<br />

-- -------------------------------------------- ------ -------- -----<br />

HSM.BACKTAPE.DATASET TST010 STC 1<br />

HSM.BACKTAPE.DATASET TST027 STC 1<br />

HSM.COPY.HMIGTAPE.DATASET TST002 STC 1<br />

HSM.COPY.HMIGTAPE.DATASET TST004 STC 1<br />

HSM.COPY.HMIGTAPE.DATASET TST016 STC 1<br />

HSM.DMP.CRYPCOPY.VMHL0A0.D07072.T141318 TST019 STC 1<br />

HSM.DMP.CRYPCOPY.VMHL0A1.D07072.T141318 TST019 STC 2<br />

HSM.DMP.MHLRES.VMHL0A0.D07059.T425215 TST015 STC 1<br />

HSM.DMP.MHLRES.VMHL0A1.D07059.T425215 TST023 STC 1<br />

HSM.DMP.MHLRES.VMLD00B.D06110.T385618 TST013 STC 1<br />

HSM.DMP.PLUSCOPY.VMHL0A0.D07058.T060317 TST024 STC 1<br />

HSM.DMP.PLUSCOPY.VMHL0A1.D07058.T060317 TST024 STC 2<br />

HSM.HMIGTAPE.DATASET TST001 STC 1<br />

HSM.HMIGTAPE.DATASET TST012 STC 1<br />

Figure 8-27 <strong>DFSMS</strong>rmm data set display 1 of 2<br />

290 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Press the right button to show the right panel of the search data set result, as shown in<br />

Figure 8-28, and to see whether a data set is VRS retained.<br />

Panel Help Scroll<br />

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss<br />

EDGPD030 <strong>DFSMS</strong>rmm Data Sets (Page 2 of 2) Row 1 to 24 of 24<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the LEFT command to view other data columns<br />

Create Expiration V<br />

S Data set name date date R<br />

-- -------------------------------------------- ---------- ---------- -<br />

HSM.BACKTAPE.DATASET 2007/060 1999/365 Y<br />

HSM.BACKTAPE.DATASET 2007/053 1999/365 Y<br />

HSM.COPY.HMIGTAPE.DATASET 2007/054 1999/365<br />

HSM.COPY.HMIGTAPE.DATASET 2007/060 1999/365<br />

HSM.COPY.HMIGTAPE.DATASET 2007/060 1999/365<br />

HSM.DMP.CRYPCOPY.VMHL0A0.D07072.T141318 2007/072 1999/365<br />

HSM.DMP.CRYPCOPY.VMHL0A1.D07072.T141318 2007/072 1999/365<br />

HSM.DMP.MHLRES.VMHL0A0.D07059.T425215 2007/059 1999/365<br />

HSM.DMP.MHLRES.VMHL0A1.D07059.T425215 2007/059 1999/365<br />

HSM.DMP.MHLRES.VMLD00B.D06110.T385618 2006/110 1999/365<br />

HSM.DMP.PLUSCOPY.VMHL0A0.D07058.T060317 2007/059 1999/365<br />

HSM.DMP.PLUSCOPY.VMHL0A1.D07058.T060317 2007/059 1999/365<br />

HSM.HMIGTAPE.DATASET 2007/054 1999/365<br />

HSM.HMIGTAPE.DATASET 2006/087 1999/365<br />

Figure 8-28 <strong>DFSMS</strong>rmm data set display 2 of 2<br />

8.5.3 SELECT primary command in RMM dialog search results<br />

Within the <strong>DFSMS</strong>rmm ISPF dialog, a new SELECT primary command, as well as changes<br />

to the search results lists for data sets, volumes, and vital record specifications, were added.<br />

The SELECT command is supported on all results lists. You can use this primary command<br />

to apply the same line command to all selected entries in a search results list table. For<br />

example, all volumes in the volume result list are ejected when you issue the command<br />

shown in Example 8-9 in a volume search results list.<br />

Example 8-9 Using an asterisk to select all<br />

Command ===> SELECT * E<br />

You can also specify SEL or S, instead of SELECT. When you do not specify a line<br />

command, S is the default.<br />

You can specify a generic value, as shown in Example 8-10, for the first parameter, or a<br />

specific value. For example, issue the command shown in Example 8-10 to view volume data<br />

for all volumes starting with AB0, or issue a specific volser as shown in Example 8-11 on<br />

page 292to release the volume MW0001, if found in the list.<br />

Example 8-10 Using a generic volume mask<br />

Command ===> SELECT AB0* V<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 291


Example 8-11 Specifying a full volume serial number<br />

Command ===> SELECT MW0001 R<br />

The first parameter is applied on the first key of the table. If you want another column of the<br />

table to be taken as the select criteria, issue a SORT command before the select command.<br />

For example, first SORT by owner, then issue the command shown in Figure 8-12 on<br />

page 274 to eject all volumes of owner SCHLUM.<br />

Example 8-12 Select all information assigned to owner SCHLUM<br />

Command ===> SELECT SCHLUM E<br />

For example, we use the Search for data sets dialog to search for data sets starting with<br />

high-level qualifier MHLRES, as shown in Figure 8-29.<br />

Panel Help<br />

Command ===><br />

Figure 8-29 <strong>DFSMS</strong>rmm search data set dialog<br />

We get a lot of data set information and use the SORT command to sort the data set list by<br />

OWNER in descending order to show all data sets have an owner first. Figure 8-30 on<br />

page 293 shows you the result and the command that we use, where:<br />

SORT This is the command.<br />

D This is the direction in which it can be A for ascending or D for<br />

descending:<br />

ASCENDING ( A )<br />

DESCENDING ( D )<br />

O This is the identifier in a shortened form of one of the data column<br />

names in the data sets list. It can be one of the following:<br />

CREATE ( C ) - Create date<br />

OWNER ( O ) - Owner<br />

292 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

<strong>DFSMS</strong>rmm Data Set Search<br />

Enter fully qualified or partial data set name and job name:<br />

Data set name . . . . 'mhlres*.**'<br />

Job name . . . . . . . Specific or generic name<br />

Enter optional parameters to qualify search<br />

Owner . . . . . . . . * Owner of volumes (Default is your userid)<br />

Volume serial . . . . OR Volume serial<br />

List entire set . . . YES, For all data sets in the<br />

multi-volume set, otherwise NO<br />

Status . . . . . . . . PRIVATE, SCRATCH, or blank for all<br />

Retained by VRS . . . YES, NO, or blank for all<br />

Create date . . . . . Created since YYYY/DDD<br />

Physical file seq . . Relative position on the volume<br />

Limit . . . . . . . . * Limit search to first nnnn data sets<br />

Clist . . . . . . . . YES to create a data set, or NO, or blank<br />

Program name . . . . . Specific or generic name<br />

Enter HELP or PF1 for the list of available line commands


DATASET ( D ) - Data set name<br />

VOLUME ( VO ) - Volume serial<br />

FILESEQ ( F ) - Physical file sequence number<br />

EXPIRY ( E ) - Expiration date<br />

VR ( VR ) - VRS retained<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Data Sets (Page 1 of 2) Row 2,079 to 2,110 of 2,110<br />

Command ===> SORT D O Scroll ===> CSR<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume File<br />

S Data set name serial Owner seq<br />

-- -------------------------------------------- ------ -------- -----<br />

MHLRES1.TEST.DATA DV2083 1<br />

MHLRES1.TEST.DATA DV2084 1<br />

MHLRES1.TEST.DATA DV2085 1<br />

MHLRES1.TEST.DATA DV2086 1<br />

MHLRES1.TEST.DATA DV2087 1<br />

MHLRES1.TEST.DATA DV2088 1<br />

MHLRES1.TEST.DATA DV2089 1<br />

MHLRES1.TEST.DATA DV2090 1<br />

MHLRES1.TEST.DATA DV2091 1<br />

MHLRES1.TEST.DATA DV2092 1<br />

MHLRES1.TEST.DATA DV2093 1<br />

MHLRES1.TEST.DATA DV2094 1<br />

MHLRES1.TEST.DATA DV2095 1<br />

MHLRES1.TEST.DATA DV2096 1<br />

MHLRES1.TEST.DATA DV2097 1<br />

MHLRES1.TEST.DATA DV2098 1<br />

MHLRES1.TEST.DATA DV2099 1<br />

MHLRES4.ABARS.OUTPUT.C.C01V0001 TST022 STC 4<br />

MHLRES4.ABARS.OUTPUT.D.C01V0001 TST022 STC 1<br />

MHLRES4.ABARS.OUTPUT.I.C01V0001 TST022 STC 3<br />

MHLRES4.ABARS.OUTPUT.O.C01V0001 TST022 STC 2<br />

MHLRES5.TEST.FILE1.D130 MARY01 1<br />

MHLRES5.TEST.FILE1.D130 MARY02 1<br />

MHLRES5.TEST.FILE1.D130 MARY03 1<br />

MHLRES5.TEST.FILE1.D130 MARY04 1<br />

MHLRES5.TEST.FILE2.D130 MARY01 2<br />

MHLRES5.TEST.FILE2.D130 MARY02 2<br />

MHLRES5.TEST.FILE2.D130 MARY03 2<br />

MHLRES5.TEST.FILE2.D130 MARY04 2<br />

MHLRES5.TEST.TAPE TST007 1<br />

MHLRES5.TEST.TAPE TST029 MHLRES2 2<br />

MHLRES6.TEST.TAPE TST029 MHLRES2 1<br />

Figure 8-30 <strong>DFSMS</strong>rmm search data set result<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 293


Figure 8-31 shows you the results after the panel displays the information in descending<br />

order sorted by OWNER and the use of the SELECT command to select all data sets owned<br />

by user STC to changing anything.<br />

Panel Help Scroll<br />

<strong>DFSMS</strong>rmm Data Sets (Page 1 of 2) 4 rows updated<br />

Command ===> SELECT STC C Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume File<br />

S Data set name serial Owner seq<br />

-- -------------------------------------------- ------ -------- -----<br />

C MHLRES4.ABARS.OUTPUT.C.C01V0001 TST022 STC 4<br />

C MHLRES4.ABARS.OUTPUT.D.C01V0001 TST022 STC 1<br />

C MHLRES4.ABARS.OUTPUT.I.C01V0001 TST022 STC 3<br />

C MHLRES4.ABARS.OUTPUT.O.C01V0001 TST022 STC 2<br />

MHLRES6.TEST.TAPE TST029 MHLRES2 1<br />

MHLRES5.TEST.TAPE TST029 MHLRES2 2<br />

MHLRES1.TEST.DATA DV1897 1<br />

MHLRES1.TEST.DATA DV1896 1<br />

MHLRES1.TEST.DATA DV1901 1<br />

MHLRES1.TEST.DATA DV1900 1<br />

MHLRES1.TEST.DATA DV1899 1<br />

MHLRES1.TEST.DATA DV1898 1<br />

MHLRES1.TEST.DATA DV1906 1<br />

MHLRES1.TEST.DATA DV1905 1<br />

MHLRES1.TEST.DATA DV1904 1<br />

MHLRES1.TEST.DATA DV1903 1<br />

MHLRES1.TEST.DATA DV1902 1<br />

MHLRES1.TEST.DATA DV1910 1<br />

MHLRES1.TEST.DATA DV1909 1<br />

MHLRES1.TEST.DATA DV1908 1<br />

MHLRES1.TEST.DATA DV1907 1<br />

MHLRES1.TEST.DATA DV2002 1<br />

MHLRES1.TEST.DATA DV2001 1<br />

MHLRES1.TEST.DATA DV1999 1<br />

MHLRES1.TEST.DATA DV1998 1<br />

MHLRES1.TEST.DATA DV1997 1<br />

MHLRES1.TEST.DATA DV1996 1<br />

MHLRES1.TEST.DATA DV1995 1<br />

MHLRES1.TEST.DATA DV1994 1<br />

MHLRES1.TEST.DATA DV1993 1<br />

MHLRES1.TEST.DATA DV1992 1<br />

MHLRES1.TEST.DATA DV1991 1<br />

Figure 8-31 Result after using the SELECT command<br />

Where:<br />

SELECT <strong>DFSMS</strong>rmm-supported primary command<br />

STC Specific owner should be used to set the line command<br />

C Line command to change the data set information<br />

294 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


8.5.4 RMM TSO CHANGEVRS subcommand<br />

There is an RMM TSO CHANGEVRS subcommand available, like all other RMM CHANGE<br />

commands, to update previously created VRS definitions defined to <strong>DFSMS</strong>rmm. The syntax<br />

is similar to other change RMM TSO subcommands.<br />

Note: To use the RMM TSO CHANGEVRS subcommand, you need CONTROL access to<br />

the STGADMIN.EDG.VRS resource profile to change vital record specifications.<br />

Syntax<br />

Figure 8-32 shows you the syntax of the RMM TSO CHANGEVRS subcommand.<br />

�———CHANGEVRS——————————DSNAME(—data_set_name_mask—)————————————————————————�<br />

| | | |<br />

|—————CS——————| |——NAME(————search_limit—)——————|<br />

————————————————————————————————————————————————————————————————————————————�<br />

| |<br />

|———JOBNAME(—jobname_mask—)——COUNT(—days/cycles—)——|<br />

——————————————————————————————————————————————————————————————————————————��<br />

| | | |<br />

|———NEXTVRS(—next_VRS_name—)——| |——TZ(—{+|-}HH[:MM[:SS]]—)——|<br />

Figure 8-32 CHANGEVRS syntax diagram<br />

Operands<br />

The operands are:<br />

► DSNAME(data_set_name_mask)<br />

Identifies the type of vital record specification and specifies the mask of a data set name,<br />

management class, or management value of an existing vital record specification. The<br />

mask can have a fully qualified or a generic name. It can also be one of the reserved<br />

words ABEND or OPEN. The data set name mask is 1 to 44 characters, enclosed in<br />

quotation marks if any special characters are included. If the data set name mask is not<br />

enclosed in quotation marks, PROFILE PREFIX is applied. This operand is required and<br />

must immediately follow the CHANGEVRS subcommand. DSNAME is mutually exclusive<br />

with the NAME and VOLUME operands.<br />

Note: <strong>DFSMS</strong>rmm no longer folds data set names to uppercase letters when you<br />

specify quoted data set names. When you specify data set names or data set name<br />

masks, be sure to specify the correct case for each character. If you create VRS data<br />

set name masks with lowercase or mixed case letters, these will not match to data sets<br />

with all uppercase characters.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 295


► NAME(VRS_name)<br />

Identifies the vital record specification type and specifies a name for the vital record<br />

specification. A vital record specification name is eight alphanumeric characters chosen<br />

by your installation.<br />

► JOBNAME(jobname_mask)<br />

Identifies the job name for the vital record specification. A job name is one-to-eight<br />

alphanumeric characters, $, #, or @. You can specify a specific job name or a job name<br />

mask. It can also be one of the reserved words ABEND or OPEN.<br />

This operand is optional. You must specify the operand, though, if the vital record<br />

specification that you want to change has the JOBNAME operand specified.<br />

If you have data sets with job names that include symbols other than alphanumeric<br />

characters, $, #, or @, use a job name mask to cover them.<br />

► COUNT(days/cycles)<br />

Specifies a retention amount, based on the retention type of the existing vital record<br />

specification. Specify COUNT(number_of_days) to request that <strong>DFSMS</strong>rmm retains all<br />

cycles or copies of a data set. Specify COUNT(number_of_cycles) to request that<br />

<strong>DFSMS</strong>rmm retains the number of data set cycles that you specify.<br />

The value range for data set name vital record specification and retention name vital<br />

record specification is 0 to 99999. A value of 99999 indicates that <strong>DFSMS</strong>rmm retains all<br />

cycles of a data set.<br />

If count() is not specified, the count value in the existing vital record specification record is<br />

not changed.<br />

<strong>DFSMS</strong>rmm validates the COUNT value as follows:<br />

– If EXTRADAYS is specified, COUNT must equal STORENUMBER:<br />

(STORENUMBER) = (COUNT).<br />

– Regardless of whether NEXTVRS and ANDVRS are used, COUNT can be<br />

(STORENUMBER)


8.5.5 RMM TSO SEARCHOWNER subcommand<br />

Like other RMM TSO SEARCH subcommands, the SEARCHOWNER command is used to<br />

create a list of resources defined to <strong>DFSMS</strong>rmm.<br />

Syntax is similar to other RMM TSO subcommands, but no dialog support is added yet.<br />

Note: To use the RMM TSO SEARCHOWNER subcommand, you need READ access to<br />

the STGADMIN.EDG.MASTER resource profile.<br />

Use the SEARCHOWNER subcommand to create a list of owners defined to <strong>DFSMS</strong>rmm.<br />

You can restrict how many owners <strong>DFSMS</strong>rmm displays by specifying the LIMIT or END<br />

operand. <strong>DFSMS</strong>rmm searches until it reaches your limit or endpoint, or until it lists all owners<br />

that match your search criteria. If you do not specify a search limit, <strong>DFSMS</strong>rmm lists a<br />

maximum of ten.<br />

The information <strong>DFSMS</strong>rmm returns for each owner in the list is:<br />

► Owner’s ID<br />

► Owner’s last name<br />

► Owner’s first names<br />

► Owner’s internal telephone number<br />

► Number of volumes owned<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 297


Syntax<br />

Figure 8-33 shows you the syntax of the RMM TSO SEARCHOWNER subcommand.<br />

�———SEARCHOWNER————————————————————————————————————————————————————————————�<br />

| | | |<br />

|—————SO——————| | |——————10——————| |<br />

|——LIMIT(————search_limit———)—|<br />

| |——————*———————| |<br />

| |<br />

|——END(end_owner)—————————————|<br />

————————————————————————————————————————————————————————————————————————————�<br />

| |<br />

| |———LIST———| |<br />

|———CLIST(—————————————————————,—————————————————————)————|——————————|——|<br />

|——prefix_string——| |——sufffix_string——| |——NOLIST——|<br />

————————————————————————————————————————————————————————————————————————————�<br />

| |<br />

| |——START———| |<br />

|———CONTINUE(————————————————————————)————————————|——————————|—————|<br />

|——OWNER(ownerid)——| |———ADD————|<br />

|——*———————————————————————|<br />

——————OWNER(——————————————————————————————)———————————————————————————————��<br />

| |<br />

| |——START———| |<br />

|————|——————————|—————|<br />

|———ADD————|<br />

Figure 8-33 SEARCHOWNER syntax diagram<br />

Operands<br />

The operands are:<br />

► ADD<br />

Specify this operand to request that new records written to the CLIST data set are added<br />

after any existing records in the data set. When the CLIST data set is empty or<br />

<strong>DFSMS</strong>rmm creates the CLIST data set during command execution, specifying ADD is<br />

the same as specifying START.<br />

ADD is mutually exclusive with START.<br />

You can easily build a set of commands from CLIST processing using multiple SEARCH<br />

subcommands of the same or different resource types. For variable length records, the<br />

minimum record length can cause the LRECL to be increased. For fixed length records, if<br />

the minimum length cannot be accommodated, the subcommand fails.<br />

298 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


► CLIST(prefix_string,suffix_string)<br />

Specifies a CLIST to create a data set of executable commands. You can edit the data set<br />

to remove any owners that you do not want in the list. Then you can run the CLIST at your<br />

convenience.<br />

<strong>DFSMS</strong>rmm returns the owner serial number for each record if you do not specify<br />

(prefix_string and suffix_string). When the owner serial number contains special<br />

characters the value is returned within quotation marks.<br />

You can add RMM TSO subcommands and operands to the records in the CLIST data set<br />

by specifying (prefix_string and suffix_string). These text strings cannot exceed 255<br />

characters. Separate the prefix_string and suffix_string using a blank or a comma<br />

between the text strings. Insert blanks in the prefix and suffix values to prevent<br />

<strong>DFSMS</strong>rmm from concatenating the strings with the data that <strong>DFSMS</strong>rmm returns. To<br />

enter a null prefix_string, add a pair of separator characters such as ’’ to the text string (for<br />

example, CLIST(’’,’ suffix_string’)).<br />

► CONTINUE(OWNER(ownerid))<br />

Specify the CONTINUE operand without any value to notify <strong>DFSMS</strong>rmm SEARCH<br />

subcommand processing that you want to break down the search results based on the<br />

LIMIT value and request that <strong>DFSMS</strong>rmm return the search continue information for use<br />

with the next command. For TSO, the continue information is returned either as a REXX<br />

variable or as a line mode message. When the subcommand is issued from the<br />

<strong>DFSMS</strong>rmm API, the continuation information may be either a line mode message or an<br />

SFI or XML attribute.<br />

CONTINUE is an optional operand. Use the LIMIT operand to control the maximum<br />

number of entries to be returned each time that you start or continue the search.<br />

To continue a previous search subcommand, the CONTINUE operand value includes the<br />

following value to identify the current search position: OWNER(ownerid). ownerid is one to<br />

eight characters enclosed in single quotation marks if it contains any special characters, or<br />

blank.<br />

The information required to continue a search subcommand is returned by each search<br />

subcommand that specifies the CONTINUE operand and must be passed back to<br />

<strong>DFSMS</strong>rmm unchanged in order to continue the previous search. You should specify the<br />

exact same subcommand unchanged. To do this, just change the CONTINUE operand<br />

value on each additional command required.<br />

► END(end_owner)<br />

Specify END as an alternative to the LIMIT operand to enable you to specify both the<br />

starting and ending point of the owner search. END is mutually exclusive with LIMIT.<br />

► LIMIT(search_limit | *)<br />

Specifies the number of entries that <strong>DFSMS</strong>rmm lists. The maximum allowable decimal<br />

value is 9999. Specify an asterisk to request a list of all entries matching your search<br />

criteria. LIMIT is mutually exclusive with END. The default value is 10.<br />

► LIST<br />

Specifies that <strong>DFSMS</strong>rmm produce a list when the CLIST operand is used. LIST is<br />

mutually exclusive with the NOLIST operand. LIST is the default.<br />

► NOLIST<br />

Specifies that <strong>DFSMS</strong>rmm not produce a list when the CLIST operand is used.<br />

<strong>DFSMS</strong>rmm produces only the CLIST output file. NOLIST is mutually exclusive with the<br />

LIST operand. LIST is the default.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 299


► OWNER(full_or_generic_owner | *)<br />

Specifies an owner ID. <strong>DFSMS</strong>rmm only lists volumes belonging to the owner ID that you<br />

specify. Specify a specific owner ID to list volumes belonging to that owner. Specify an<br />

asterisk to list all volumes that match the other search criteria regardless of their owner.<br />

An owner ID is one-to-eight alphanumeric characters or to six alphanumeric characters, $,<br />

#, or @. The first character must not be a number. The default is your TSO user ID.<br />

► START<br />

Specify this operand to request that records written to the CLIST data set start from the<br />

beginning of the data set. START is mutually exclusive with ADD. START is the default<br />

value.<br />

Examples<br />

Use the RMM TSO SEARCHOWNER subcommand, as shown in Example 8-13, to create a<br />

list of all owners defined to <strong>DFSMS</strong>rmm.<br />

Example 8-13 List all owners defined to <strong>DFSMS</strong>rmm<br />

TSO RMM SO OWNER(*) LIMIT(*)<br />

or<br />

TSO RMM SEARCHOWNER OWNER(*) LIMIT(*)<br />

<strong>DFSMS</strong>rmm displays a list, such as the one shown in Figure 8-34.<br />

Owner Last Name First Names Internal Volumes<br />

-------- -------------------- -------------------- -------- ----------<br />

HAIMO Haimowitz Bob 349-5456 1<br />

HSM STC <strong>DFSMS</strong>hsm 0<br />

MARY Lovlace Mary 475-3231 0<br />

MHLRES1 Fletcher Anthony 0<br />

MHLRES2 Weisshaar Gerhard 1<br />

MHLRES2D 0<br />

MHLRES2E 0<br />

MHLRES3 Perkin Daniel 0<br />

MHLRES4 Coelho Andre 1<br />

MHLRES5 Schlumberger Norbert 119-3579 1286<br />

PAOLOR2 0<br />

PAOLOR3 1<br />

STC 24<br />

VAINI 0<br />

14 ENTRIES LISTED<br />

Figure 8-34 <strong>DFSMS</strong>rmm search owner result<br />

8.5.6 Rexx variable constraint relief<br />

A new operand, VARSTORAGE, was added to the PROFILE command to specify whether<br />

variables in the CLIST or authorized REXX variable pools can use storage above the 16 MB<br />

line.<br />

There are no changes to RMM for this support.<br />

If you have a large environment and you have a need to list a big number of volumes,<br />

normally you get a return code 4 reason code 10 Insufficient storage for search<br />

processing. More records might exist is avoided.<br />

300 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


If your TSO LOGON session parameter size is 30,000, then approximately 2,400 volumes are<br />

retrieved with the setting VARSTORAGE(LOW). If you change your settings to<br />

VARSTORAGE(HIGH) you can retrieve approximately 20,000 volumes.<br />

VARSTORAGE specifies the storage location to be used for CLIST variables or REXX<br />

OUTTRAP variables containing output from authorized commands. A CLIST or REXX exec<br />

uses the VARSTORAGE setting of the PROFILE command when the it starts. This setting<br />

then remains unchanged for the life of the CLIST or REXX exec, even if the CLIST or REXX<br />

exec issues a new PROFILE command with a different VARSTORAGE setting. The new<br />

setting only applies when a new CLIST or REXX exec begins.<br />

VARSTORAGE (HIGH) Indicates that CLIST variables and REXX OUTTRAP variables<br />

containing output from authorized commands invoked by REXX<br />

can be kept in storage above the 16 M line.<br />

VARSTORAGE (LOW) Indicates that CLIST variables and REXX OUTTRAP variables<br />

containing output from authorized commands invoked by REXX<br />

can only be kept in storage below the 16 M line. If you specify<br />

VARSTORAGE with no operands, VARSTORAGE(LOW) is the<br />

default. This is the default value when your user profile is created.<br />

To show your current setting use the TSO PROFILE command, as shown in Figure 8-35,<br />

without any additional operands.<br />

TSO PROF<br />

Figure 8-35 Display your current profile settings<br />

Figure 8-36 shows that your current profile settings include the new VARSTORAGE<br />

information. If you have not set the VARSTORAGE, you can see that the default setting LOW<br />

is set.<br />

CHAR(0) LINE(0) PROMPT INTERCOM NOPAUSE NOMSGID MODE WTPMSG<br />

NORECOER PREFIX(MHLRES5) PLANGUAGE(ENU) SLANGUAGE(ENU) VARSTORAGE(LOW)<br />

DEFAULT LINE/CHARACTER DELETE CHARACTERS IN EFFECT FOR THIS TERMINAL<br />

Figure 8-36 Your current profile settings<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 301


If you have requested to search for all volumes in your <strong>DFSMS</strong>rmm database, normally you<br />

see the message more volumes exists on the panel, as shown in Figure 8-37, and the<br />

search ended before all volumes were listed.<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Volumes (Page 1 of 2) More volumes may exist<br />

Command ===> Scroll ===> CSR<br />

There is not enough storage available to list all the volumes<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume Assigned Expiration Dest- Tra- Data<br />

S serial Owner date date Status Location ination nsit sets<br />

-- ------ -------- ---------- ---------- ------- -------- -------- ---- -----<br />

AFS201 VGRMMLIB 2004/303 1999/365 USER SHELF N 0<br />

AFS202 VGRMMLIB 2004/303 1999/365 USER SHELF N 0<br />

BTS001 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS005 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS006 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS007 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS008 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS010 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS011 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS012 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

Figure 8-37 Display your incomplete search result<br />

To update this value use the TSO PROFILE command, as shown in Figure 8-38.<br />

TSO PROFILE VARSTORAGE(HIGH)<br />

Figure 8-38 <strong>Update</strong> your TSO profile settings<br />

Figure 8-39 shows you your new profile settings include the new VARSTORAGE information.<br />

CHAR(0) LINE(0) PROMPT INTERCOM NOPAUSE NOMSGID MODE WTPMSG<br />

NORECOER PREFIX(MHLRES5) PLANGUAGE(ENU) SLANGUAGE(ENU) VARSTORAGE(HIGH)<br />

DEFAULT LINE/CHARACTER DELETE CHARACTERS IN EFFECT FOR THIS TERMINAL<br />

Figure 8-39 Your new profile settings<br />

302 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


After the update of your profile settings you should no longer get the more volumes exists<br />

message, except you have a really large environment. Figure 8-40 shows you the search<br />

results with 19.713 entries in the list.<br />

Figure 8-40 Display your search result with up to 20.000 entries<br />

8.6 Enabling ISPF Data Set List (DSLIST) support<br />

To enable direct entry into the <strong>DFSMS</strong>rmm ISPF dialog from the ISPF Data Set List Utility,<br />

use the ISPF Configuration Utility to update the ISPF Configuration Table. To enable this<br />

function, select the Enable RM/Tape Commands option. For details of how to use the ISPF<br />

Configuration Utility, refer to z/<strong>OS</strong> ISPF Planning and Customizing, GC34-4814. Figure 8-41<br />

on page 304 shows that the data set list support is enabled, and also shows the default<br />

values for the RM/Tape Command EDGRPD34 and Command APPLID EDG. You do not<br />

need to change these values.<br />

8.6.1 Implementation steps<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Volumes (Page 1 of 2) Row 1 to 33 of 19,713<br />

Command ===> Scroll ===> CSR<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume Assigned Expiration Dest- Tra- Data<br />

S serial Owner date date Status Location ination nsit sets<br />

-- ------ -------- ---------- ---------- ------- -------- -------- ---- -----<br />

AFS201 VGRMMLIB 2004/303 1999/365 USER SHELF N 0<br />

AFS202 VGRMMLIB 2004/303 1999/365 USER SHELF N 0<br />

BTS001 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS005 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS006 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS007 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS008 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS010 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS011 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

BTS012 VGRMMLIB 2005/005 1999/365 USER SHELF N 0<br />

The ISPF Data Set List support can be implemented for a single user or it can be a<br />

installation-wide setting. To implement ISPF Data Set List support for a single user:<br />

1. Create a new PDS with VB 255 to store the ISPF default settings.<br />

2. Under ISPF, call 'TSO ISPCCONF' in any command line.<br />

3. Select option 1, Create/Modify Settings and Regenerate Keyword File, in the ISPF<br />

Configuration Utility primary panel, and added the name to the keyword file dsname field<br />

that you have allocated before, and added a member name.<br />

You should get the message Keyword file loaded.<br />

4. Select option 3, PDF Exits and Other PDF Settings” in the ISPF Configuration Utility<br />

primary panel.<br />

5. Scroll to the correct place and add a slash (/) to Enable RM/Tape Commands.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 303


6. Exit the dialog by pressing the PF3 key tow times. You should get the message Keyword<br />

file saved.<br />

7. Select option 4, Build Configuration Table Load Module.<br />

8. Specify any library in your ISPLLIB concationation as the Output Configuration Table<br />

Load Module Data Set.<br />

9. Enter to load the module built.<br />

10. Exit ISPF. Ensure that the specified load library is ISPLLIB concatenated.<br />

11. Start ISPF and it works (just for a single user, not for all users).<br />

To implementing the ISPF Data Set List support for all users, follow the steps as described<br />

before, but the configuration table load module should be stored in the SISPLPA library. To<br />

load the module to the LPA you must IPL your system. For detailed information refer to 8.6.4,<br />

“Move the ISPCFIGU module to the SISPLPA library (optional)” on page 313.<br />

8.6.2 Use the ISPF Configuration Utility<br />

Use the ISPF Configuration table to change site-wide defaults and to indicate that installation<br />

exit routines are provided for some of the ISPF functions. The ISPF functions that allow<br />

installation-written exit routines are data set allocation, print utility, data set compression, data<br />

set list utility, member list filter, and data set name change. ISPF checks the configuration<br />

table to determine, first, whether exit routines are provided, and second, whether those<br />

routines are programs or CLISTs. If you specify both a CLIST and a program, ISPF uses the<br />

program.<br />

Enter the command TSO ISPCCONF to start the ISPF Configuration Utility, as shown in<br />

Figure 8-41. You can chose the command in the ISPF command shell or in any available<br />

command line.<br />

Menu Utilities Compilers Options Status Help<br />

______________________________________________________________________________<br />

z/<strong>OS</strong> Primary Option Menu<br />

Option ===> TSO ISPCCONF<br />

0 Settings Terminal and user parameters User ID . : SCHLUM<br />

1 View Display source data or listings Time. . . : 18:40<br />

2 Edit Create or change source data Terminal. : 3278<br />

3 Utilities Perform utility functions Screen. . : 1<br />

4 Foreground Interactive language processing Language. : ENGLISH<br />

5 Batch Submit job for language processing Appl ID . : PDF<br />

6 Command Enter TSO or Workstation commands TSO logon : IKJACCT<br />

7 Dialog Test Perform dialog testing TSO prefix: MHLRES5<br />

9 <strong>IBM</strong> Products <strong>IBM</strong> program development products System ID : SC70<br />

10 SCLM SW Configuration Library Manager MVS acct. : ACCNT#<br />

11 Workplace ISPF Object/Action Workplace Release . : ISPF 5.9<br />

12 z/<strong>OS</strong> System z/<strong>OS</strong> system programmer applications<br />

13 z/<strong>OS</strong> User z/<strong>OS</strong> user applications<br />

Figure 8-41 Start the ISPF conversion utility<br />

304 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Enter X to Terminate using log/list defaults


Refer to Figure 8-42 to see how you can select the Create/Modify Settings and Regenerate<br />

Keyword File after the ISPF conversion utility is up and running.<br />

ISPF Configuration Utility Enter option<br />

______________________________________________________________________________<br />

Option ===> 1<br />

1 Create/Modify Settings and Regenerate Keyword File<br />

2 Edit Keyword File Configuration Table<br />

3 Verify Keyword Table Contents<br />

4 Build Configuration Table Load Module<br />

5 Convert Assembler Configuration Table to Keyword File<br />

6 Build SMP/E USERMOD<br />

Keyword File Data Set<br />

Data Set . . . 'RMM.ADDONS.CEXECVB'<br />

Member . . . . SETTING<br />

Configuration Table Assembler Source Data Set<br />

Data Set . . .<br />

Member . . . .<br />

Output File Content for Keyword File<br />

2 1. Include only non-default values<br />

2. Include defaults as comments<br />

3. Include all values<br />

Current Configuration Table<br />

Keyword File : not available<br />

Identifier . : ISPCFIGU Level . . . : 480R8001<br />

Compile Date : 2003/04/04 Compile Time :<br />

Figure 8-42 Create/Modify Settings and Regenerate Keyword File selection<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 305


After the keyword file is loaded select the PDF Exits and Other PDF Settings menu, as<br />

shown in Figure 8-43.<br />

Create/Modify ISPF Configuration Keyword file loaded<br />

______________________________________________________________________________<br />

Option ===> 3<br />

General ISPF Settings System Profile (ISPSPROF) Settings<br />

1 Editor Settings 6 Log and List Defaults<br />

2 Edit/View/Browse VSAM Settings 7 Terminal and User Defaults<br />

3 PDF Exits and Other PDF Settings 8 Workstation Defaults<br />

4 ISPF Site-wide Defaults 9 Workstation Download Defaults<br />

5 ISPDFLTS, CUA Colors, and Other<br />

DM Settings<br />

Output Keyword File<br />

Data Set . . . 'RMM.ADDONS.CEXECVB'<br />

Member . . . . SETTING<br />

Figure 8-43 PDF Exits and Other PDF Settings selection<br />

306 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Instructions:<br />

Enter option to change configuration settings,<br />

END or EXIT command to generate keyword file, or<br />

CANCEL command to exit without keyword file generation


The Modify PDF Configuration Settings panel is displayed in a srollable panel and you have<br />

scroll down until you can see DSLIST Removable Media Settings, as shown in Figure 8-44.<br />

Modify PDF Configuration Settings<br />

______________________________________________________________________________<br />

Command ===><br />

More: -<br />

2. Use IEBCOPY for PDSEs only<br />

When to use COPY or COPYMOD<br />

2 1. Use COPY if the target block size is equal to or greater than the<br />

source block size, COPYMOD otherwise<br />

2. Use COPY if the target block size is equal to the source block size,<br />

COPYMOD otherwise<br />

3. Always use COPYMOD<br />

DSLIST Removable Media Settings<br />

Enter "/" to select option<br />

/ Enable RM/Tape Commands<br />

RM/Tape Command . . %EDGRPD34<br />

Command APPLID . . . EDG<br />

Other PDF Settings<br />

Default PDF Unit . . . . . . . . . . . . SYSALLDA<br />

Volume for Migrated Data Sets . . . . . MIGRAT<br />

Delete Command for Migrated Data Sets HDELETE<br />

Allowed Allocation Units . . . . . . . . ANY<br />

Maximum IEBCOPY Return Code . . . . . . 0<br />

Pathname Substitution Character . . . . Ü<br />

Enter "/" to select option<br />

Allocate Before Uncatalog<br />

/ Verify Expiration Dates<br />

/ Use SuperC Program Interface<br />

Monitor Edit Macro Commands via the Activity Monitoring Exit<br />

/ Allow SUBMIT from Browse<br />

/ Allow SUBMIT from View<br />

/ Warn when rename target could be a GDG<br />

/ Default Edit/Browse/View member list from Option 3.4<br />

/ Enable View<br />

Use Panel ISRTSOA in Option 6<br />

Print using ICF<br />

Disallow wildcards in the high level qualifier for Data Set List<br />

Disable all ENQ displays<br />

/ Fail on LMF lock requests<br />

Figure 8-44 Modify PDF Configuration Settings<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 307


After you have finished your updates you have to verify your new keyword table using<br />

selection 3, in then you have to build a new configuration table using selection 4, as you can<br />

see in Figure 8-45.<br />

ISPF Configuration Utility<br />

________________________________________________________________________<br />

Option ===> 4<br />

1 Create/Modify Settings and Regenerate Keyword File<br />

2 Edit Keyword File Configuration Table<br />

3 Verify Keyword Table Contents<br />

4 Build Configuration Table Load Module<br />

5 Convert Assembler Configuration Table to Keyword File<br />

6 Build SMP/E USERMOD<br />

Keyword File Data Set<br />

Data Set . . . 'RMM.ADDONS.CEXECVB'<br />

Member . . . . SETTING<br />

Configuration Table Assembler Source Data Set<br />

Data Set . . .<br />

Member . . . .<br />

Output File Content for Keyword File<br />

2 1. Include only non-default values<br />

2. Include defaults as comments<br />

3. Include all values<br />

Current Configuration Table<br />

Keyword File : not available<br />

Identifier . : ISPCFIGU Level . . . : 480R8001<br />

Compile Date : 2003/04/04 Compile Time :<br />

Figure 8-45 Build Configuration Table Load Module<br />

308 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


A small pop-up window is dispayed to specifiy the input keyword file data set and member<br />

and the output configuration table load module data set.<br />

EsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssN<br />

e Build Configuration Table Load Module e<br />

e Command ===> e<br />

e e<br />

e Input Keyword File Data set e<br />

e Data Set . . . 'RMM.ADDONS.CEXECVB' e<br />

e Member . . . . SETTING e<br />

e e<br />

e Output Configuration Table Load Module Data Set e<br />

e Data Set . . . 'SCHLUM.ISPF.LLIB' e<br />

e e<br />

e Optional fields (leave blank for ISPF to use defaults) e<br />

e Object data set . . . e<br />

e Configuration member (Defaults to ISPCFIGU) e<br />

e VSAM member . . . . . (Defaults to ISPCFIGV) e<br />

DsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssM<br />

Figure 8-46 Build Configuration Table Load Module pop-up window<br />

Is your target load library is a concatenated library of your LINKLIST you have to refresh the<br />

the LINKLIST, as shown in Example 8-14.<br />

Example 8-14 Using the LLA refresh command<br />

F LLA,REFRESH<br />

Figure 8-47 shows you the successful refresh of your linklist.<br />

CSV210I LIBRARY LOOKASIDE REFRESHED<br />

Figure 8-47 Successful refresh of linklist<br />

After you have created the new configuration table load module ensure that the specified load<br />

library is concatenated to your ISPLLIB, exit ISPF, and start ISPF again.<br />

Important: If the <strong>DFSMS</strong>rmm REXX exec library, normally called SYS1.SEDGEXE1, is<br />

not concatenated in your logon procedure, you must move the two members EDGRMLIB<br />

and EDGRPD34 to a concatenated REXX Exec library and update member EDGRPD34 to<br />

specify that the RMM ISPF environment is allocated:<br />

UseIspfLibdef = true /*


8.6.3 Using the ISPF Data Set List Utility support<br />

After you have enabled the ISPF Data Set List (DSLIST) support and restarted your ISPF<br />

session, you can use this support. The line commands supported by <strong>DFSMS</strong>rmm are I, S, M,<br />

and D:<br />

I Displays a search results list showing all data sets in the multivolume set for the<br />

selected data set.<br />

S Displays the individual data set details. <strong>DFSMS</strong>rmm determines the first file on the<br />

selected volume that matches the selected data set. If other data sets of the same<br />

name exist on the volume, the wrong details may be displayed. In that case, use the M<br />

line command and then the <strong>DFSMS</strong>rmm I line command from that results list.<br />

M Displays a search results list showing all data sets defined to <strong>DFSMS</strong>rmm that match<br />

the selected data set name.<br />

D Releases the volume. If the volume is part of a multivolume set, there is the option to<br />

release all volumes in the set.<br />

Figure 8-48 shows you the use of the display of individual data set details (S).<br />

Menu Options View Utilities Compilers Help<br />

______________________________________________________________________________<br />

DSLIST - Data Sets Matching SCHLUM.LI* Row 1 of 5<br />

Command ===> Scroll ===> PAGE<br />

Command - Enter "/" to select action Message Volume<br />

-------------------------------------------------------------------------------<br />

SCHLUM.LIBDUMP SBOX03<br />

SCHLUM.LIBDUMP.BIN.XMIT SBOXFG<br />

SCHLUM.LINEITEM.PUNCH SBOX81<br />

I SCHLUM.LINEITEM.UNLOAD Info - I TST026<br />

SCHLUM.LISTDEF.INPUT SBOX09<br />

***************************** End of Data Set list ****************************<br />

Figure 8-48 Use of the display of individual data set details<br />

310 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The result is shown in Figure 8-49.<br />

Panel Help<br />

____________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Data Set Details<br />

Command ===><br />

Data set name . . : 'SCHLUM.LINEITEM.UNLOAD'<br />

Volume serial . . : TST026 Physical file sequence number . . : 1<br />

Owner . . . . . . : SCHLUM Data set sequence number . . . . : 1<br />

More:<br />

Job name . . . . : SCHLUMR3U<br />

Step name . . . . : STEP010 Record format . . . . : VB<br />

Program name . . : DSNUTILB Block size . . . . . : 32760<br />

DD name . . . . . : SYSREC Logical record length : 151<br />

Create date . . . : 2003/300 YYYY/DDD Block count . . . . . : 36140<br />

Create time . . . : 14:51:16 Total block count . . : 36140<br />

Expiration date . : 2003/300 YYYY/DDD Percent of volume . . : 2<br />

Original . . . . : YYYY/DDD Device number . . . . : 0B92<br />

System id . . . . : SC63<br />

Last job name . . : PAOLOR3T Last DD name . . . . : TAPEVOL<br />

Last step name . : STEP010 Last device number . : 0B92<br />

Last program name : IDCAMS<br />

Date last read . : 2003/302 VRS management value :<br />

Date last written : 2003/300 Management class . . : MCDB22<br />

Data class . . . . . :<br />

Retention date . : Storage class . . . . : SCLIB1<br />

VRS retained . . : NO Storage group . . . . : SGLIB1<br />

Security name . . :<br />

Classification . :<br />

Primary VRS details:<br />

VRS name . . . :<br />

Job name . . . : VRS type . . . . . :<br />

Subchain name : Subchain start date :<br />

Secondary VRS details:<br />

Value or class :<br />

Job name . . . :<br />

Subchain name : Subchain start date :<br />

Catalog status . : YES<br />

Figure 8-49 Result of display of individual data set details<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 311


Figure 8-50 shows all data sets defined to <strong>DFSMS</strong>rmm that match the selected data set<br />

name using function M.<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Data Sets (Page 1 of 2) Row 1 to 1 of 1<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume File<br />

S Data set name serial Owner seq<br />

-- -------------------------------------------- ------ -------- -----<br />

SCHLUM.LINEITEM.UNLOAD TST026 SCHLUM PAOLOR3<br />

******************************* Bottom of data ********************************<br />

Figure 8-50 Result if you are selecting function M<br />

Use selection D to releases the volume, as shown in the data set. If you select this function<br />

<strong>DFSMS</strong>rmm shows the confirm volume release panel, as shown in Figure 8-51.<br />

Panel Help<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Confirm Volume Release<br />

Command ===><br />

Volume . . . . . . : TST026 Location . . . . . . . . : LIB1<br />

VOL1 volser . . : In container . . . . . . :<br />

Volume type . . . : PHYSICAL Rack number . . . . . . : TST026<br />

Media name . . . . : MEDIA3 Expiration date . . . . : 2003/365<br />

Original expiration date :<br />

Status . . . . . . : USER<br />

Description . . . :<br />

Data set name . . : 'SCHLUM.LINEITEM.UNLOAD'<br />

Release actions:<br />

Media type . . . . : HPCT Return to SCRATCH pool : NO<br />

Label . . . . . . : SL Replace volume . . . . : NO<br />

Density . . . . . : IDRC Return to owner . . . : YES<br />

Recording format . : 128TRACK Initialize volume . . : NO<br />

Compaction . . . . : YES Erase volume . . . . . : NO<br />

Attributes . . . . : NONE Notify owner . . . . . : NO<br />

Availability . : PENDING RELEASE Expiry date ignore . . : NO<br />

Scratch immediate . . : NO<br />

Press ENTER to NOFORCE volume, or END command to CANCEL.<br />

Figure 8-51 Result if you are selecting function release the volume<br />

312 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 8-52 displays a search result if you have selected function I that includes all volumes<br />

residing on the same tape or all data sets residing on the multi-volume set.<br />

Panel Help Scroll<br />

______________________________________________________________________________<br />

<strong>DFSMS</strong>rmm Data Sets (Page 1 of 2) Row 1 to 10 of 10<br />

Command ===> Scroll ===> PAGE<br />

Enter HELP or PF1 for the list of available line commands<br />

Use the RIGHT command to view other data columns<br />

Volume File<br />

S Data set name serial Owner seq<br />

-- -------------------------------------------- ------ -------- -----<br />

SCHLUM.LINEITEM.UNLOAD TST026 MHLRES5 1<br />

SCHLUM.TESTSTAC.TESTMF02 TST026 MHLRES5 2<br />

SCHLUM.TESTSTAC.TESTMF03 TST026 MHLRES5 3<br />

SCHLUM.TESTSTAC.TESTMF04 TST026 MHLRES5 4<br />

SCHLUM.TESTSTAC.TESTMF05 TST026 MHLRES5 5<br />

SCHLUM.TESTSTAC.TESTMF06 TST026 MHLRES5 6<br />

SCHLUM.TESTSTAC.TESTMF07 TST026 MHLRES5 7<br />

SCHLUM.TESTSTAC.TESTMF08 TST026 MHLRES5 8<br />

SCHLUM.TESTSTAC.TESTMF09 TST026 MHLRES5 9<br />

SCHLUM.TESTSTAC.TESTMF10 TST026 MHLRES5 10<br />

******************************* Bottom of data ********************************<br />

Figure 8-52 SEARCH volume result<br />

8.6.4 Move the ISPCFIGU module to the SISPLPA library (optional)<br />

After you have installed and verified ISPF, you can enhance its performance by adding the<br />

LPA-eligible load modules (in the SISPLPA library) to the LPA list in an LPALSTxx member of<br />

PARMLIB. Add those load modules not eligible for LPA (in the SISPLOAD library) to the link<br />

list in an LNKLSTxx member of PARMLIB. You can then remove these data sets from the<br />

STEPLIB in your TSO LOGON procedure. After adding SISPLPA to LPALST and SISPLOAD<br />

to LNKLST, specify CLPA as an initial program load (IPL) parameter to force the SISPLPA<br />

modules into the link pack area and to have SISPLOAD added as a system link library.<br />

Finally, after you tested all, you can move the ISPCFIGU member to your ISP. Re-IPL your<br />

system to refresh your linklist, as shown in Example 8-15, and then you must re-log in on to<br />

your system before you can use this new service.<br />

Example 8-15 Using the LLA refresh command<br />

F LLA,REFRESH<br />

Figure 8-53 shows you the successful refresh of your linklist.<br />

CSV210I LIBRARY LOOKASIDE REFRESHED<br />

Figure 8-53 Result of the LLA REFRESH<br />

8.7 Prepare for future releases<br />

In the following sections are suggestions for preparing for future <strong>DFSMS</strong>rmm releases.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 313


8.7.1 Set a <strong>DFSMS</strong>rmm control data set ID<br />

Specify one to eight alphanumeric characters that identify the control data set by name,<br />

because a CDSID is required in future <strong>DFSMS</strong>rmm releases. To update your <strong>DFSMS</strong>rmm<br />

control data set control record use the job as shown in Example 8-16.<br />

Example 8-16 Specifying a CDSID<br />

//UTIL EXEC PGM=EDGUTIL,PARM=’UPDATE’<br />

//SYSPRINT DD SYSOUT=*<br />

//MASTER DD DISP=SHR,DSN=RMM.CONTROL.DSET<br />

//SYSIN DD * D DDDDD<br />

CONTROL CDSID(PROD)<br />

/*<br />

After you have specified a CDSID in the <strong>DFSMS</strong>rmm control data set control record you must<br />

update your EDGRMMnn member in your corresponding PARMLIB data set, as shown in<br />

Example 8-17.<br />

Example 8-17 Sample EDGRMMnn PARMLIB member<br />

OPTION OPMODE(R) /* Record-Only Mode */ -<br />

ACCOUNTING(J) /* Accounting from JOB */ -<br />

BACKUPPROC(EDGBKUP) /* Name of BACKUP-proc */ -<br />

BLP(RMM) /* <strong>DFSMS</strong>rmm controls BLP */ -<br />

CATRETPD(0012) /* catalog retention */ -<br />

CATSYSID(*) /* all catalogs shared */ -<br />

CDSID(PROD) /* control data set id */ -<br />

COMMANDAUTH(OWNER) /* type of authorization */ -<br />

DATEFORM(J) /* Date format */ -<br />

DISPDDNAME(LOANDD) /* DISP ctrl DD card */ -<br />

DISPMSGID(EDG4054I) /* DISP message number */ -<br />

DSNAME(RMM.PROD.CDS) /* CDS data set name */ -<br />

IPLDATE(N) /* IPL date checking */ -<br />

JRNLNAME(RMM.PROD.JRNL) /* JRNL data set name */ -<br />

JOURNALFULL(75) /* Percentage JRNL full */ -<br />

LINECOUNT(054) /* Lines per page */ -<br />

MASTEROVERWRITE(LAST) /* Overwriting of a vol */ -<br />

MAXHOLD(100) /* Number of I/O oper. */ -<br />

MAXRETPD(NOLIMIT) /* Maximum retention */ -<br />

MEDIANAME(3480) /* spec. how to move vols */ -<br />

MOVEBY(VOLUME) /* spec. how to move vols */ -<br />

MSG(M) /* case for message txt */ -<br />

NOTIFY(Y) /* Notify volume owners */ -<br />

PDA(OFF) /* PDA is disabled */ -<br />

PDABLKCT(255) /* number of blocks */ -<br />

PDABLKSZ(31) /* blocksize in K */ -<br />

PDALOG(OFF) /* PDA output disabled */ -<br />

PREACS(NO) /* Disable EDGUX100 ACS pr. */ -<br />

RETAINBY(VOLUME) /* spec. how to retain vols */ -<br />

RETPD(0005) /* Default retention */ -<br />

REUSEBIN(STARTMOVE) /* reuse BIN as soon as pos.*/ -<br />

SCRATCHPROC(EDGXPROC) /* ATL/MTL procedure */ -<br />

SMFAUD(248) /* SMF audit records */ -<br />

SMFSEC(249) /* SMF security records */ -<br />

SMSACS(YES) /* enable MV ACS processing */ -<br />

314 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SMSTAPE(UPDATE(EXITS,SCRATCH,COMMAND),PURGE(YES)) ATL*/ -<br />

SYSID(EGZB) /* Name of the system */ -<br />

TPRACF(N) /* RACF tape support */ -<br />

TVEXTPURGE(EXPIRE) /* set an expiration date */ -<br />

UNCATALOG(N) /* Catalog support */ -<br />

VRSCHANGE(INFO) /* No additional action */ -<br />

VRSEL(NEW) /* New VRS processing */ -<br />

VRSJOBNAME(2) /* DATASETNAME/JOBNAME */ -<br />

VRSMIN(0000000100,WARN) /* Warn if < 100 VRSs */<br />

If the CDSID was not previously set you get message EDG0237E MISSING IDENTIFIER<br />

FOR THE CONTROL DATA SET. See the description below.<br />

EDG0237E MISSING IDENTIFIER FOR THE CONTROL DATA SET.<br />

Where:<br />

► Severity<br />

Information.<br />

► Explanation<br />

During initialization <strong>DFSMS</strong>rmm checks to ensure that you have a CDSID specified in the<br />

EDGRMMxx PARMLIB member. A CDSID is mandatory.<br />

► Source<br />

<strong>DFSMS</strong>rmm.<br />

► Detecting Module<br />

EDGPARM.<br />

► System Action<br />

<strong>DFSMS</strong>rmm initialization stops. This message is followed by message EDG0107A.<br />

► Operators Response<br />

Notify the system programmer. Reply to message EDG0107A as directed when the<br />

system programmer has corrected the error.<br />

► Application Programmer Response<br />

You must add a CDSID to the OPTION statement in EDGRMMxx before attempting to<br />

start <strong>DFSMS</strong>rmm on a release at z/<strong>OS</strong> R9 or later. Correct the error in the startup<br />

parameters.<br />

► Routing Codes<br />

3.<br />

► Descriptor Codes<br />

3.<br />

8.7.2 Re-allocate your <strong>DFSMS</strong>rmm control data set<br />

Re-allocate your existing <strong>DFSMS</strong>rmm control data set and use a control interval size (CISZ)<br />

of 26624 bytes and BUFFERSPACE of 829440 bytes for the data component of the control<br />

data set to help improve inventory management run times through reduced I/O to the control<br />

data set. Any suitable control interval size (CISZ) between 10240 and 26624 that meets your<br />

needs can be used.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 315


The JCL to allocate the <strong>DFSMS</strong>rmm control data set in Example 8-18 has been modified to<br />

use the recommended values to allocate the VSAM KSDS correctly.<br />

Example 8-18 Sample JCL to allocate the <strong>DFSMS</strong>rmm CDS<br />

//LCLCDSAL JOB ,140.SCHLUMBERGER,NOTIFY=SCHLUM,<br />

// MSGCLASS=H,CLASS=A,MSGLEVEL=(1,1)<br />

//* ****************************************************************** *<br />

//* STEP 1 Delete old <strong>DFSMS</strong>rmm control data set *<br />

//* 2 Allocate a new <strong>DFSMS</strong>rmm control data set *<br />

//* ****************************************************************** *<br />

//STEP01 EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE RMM.PROD.CDS CL<br />

SET MAXCC = 0<br />

/*<br />

//STEP02 EXEC PGM=IDCAMS ALLOCATION MASTER FILE<br />

//SYSPRINT DD SYSOUT=*<br />

//MASTER DD DISP=SHR,UNIT=3390,VOL=SER=DFRMM4<br />

//SYSIN DD *<br />

DEFINE CLUSTER(NAME(RMM.CONTROL.DSET) -<br />

FILE(MASTER) -<br />

FREESPACE(15 0) -<br />

KEYS(56 0) -<br />

REUSE -<br />

RECSZ(512 9216) -<br />

SHR(3 3) -<br />

KILOBYTES(4500 1500) -<br />

STORAGECLASS(gspace) -<br />

VOLUMES(DFRMM4)) -<br />

DATA(NAME(RMM.CONTROL.DSET.DATA) -<br />

BUFFERSPACE(829440) -<br />

CISZ(26624)) -<br />

INDEX(NAME(RMM.CONTROL.DSET.INDEX) -<br />

CISZ(2048))<br />

/*<br />

After you have changed tour VSAM KSDS attributes for the <strong>DFSMS</strong>rmm control data set you<br />

should change the region size parameters in your housekeeping JCL and in the DFRMM<br />

procedure as well.<br />

Important: Usa a REGION=0M to use the maximum available region size on your system<br />

or specify a minimum of REGION=40MB to speed up your daily housekeeping.<br />

REGION<br />

As you determine the REGION size for the <strong>DFSMS</strong>rmm started procedure, the amount of<br />

virtual storage that <strong>DFSMS</strong>rmm uses depends on the resources that you have defined.<br />

<strong>DFSMS</strong>rmm virtual storage usage can be affected by any REGION size controls or<br />

restrictions that your systems might have in place such as in IEFUSI. The sample DFRMM<br />

procedure specifies REGION=40M, which normally provides all the private region below 16<br />

MB and 40 MB above 16 MB. To enable <strong>DFSMS</strong>rmm to use all available virtual storage,<br />

specify REGION=0M. If you want to set a specific region size, consider the following tips<br />

along with the current region size of your DFRMM started procedure, to determine whether<br />

you need to make any changes to the REGION size.<br />

316 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The VSAM local shared resources (LSR) buffer pool that is built by the <strong>DFSMS</strong>rmm<br />

subsystem for the control data set is obtained above 16 MB. <strong>DFSMS</strong>rmm builds an LSR<br />

buffer pool for the DFRMM started procedure, and also for the EDGUTIL utility batch address<br />

space, which has a predetermined size. The LSR buffer pool is 800*data CISZ + 200*index<br />

CISZ. Assuming 10 240 for the control data set data CISZ and 2 048 for the control data set<br />

index CISZ, the value is 800*10 240+200*2 048=8.4 MB. If you use larger CI sizes, more<br />

buffer space is required. For example, if you use a 26K data CISZ, a 21.2 MB buffer size is<br />

required.<br />

Recommendation: If the buffer space is larger than 8.6 MB, add the difference to the<br />

40 MB region size that is used by <strong>DFSMS</strong>rmm and use this value as the REGION size for<br />

the DFRMM started procedure.<br />

Here is an example of how you can resolve a S878 abend. As the buffer space increased, an<br />

increase of the REGION size resolved the S878 abend. Since the DATA CISZ was increased<br />

from 10240 to 26624, the buffer space increased from 8.6 MB to 21.2 MB. That is why<br />

HSKPing worked with a REGION size of 40 MB before the CISZ change. The difference of<br />

21.2 and 8.6 requires a REGION size of 52.6 MB, and you have to specify a REGION size of<br />

60 MB.<br />

8.7.3 <strong>Update</strong> LRECL for REPORT, BACKUP, and JRNLBKUP DD<br />

<strong>Update</strong> all your JCL to use the new recommended LRECL for the Report, BACKUP, and<br />

JRNLBKUP DD statements.<br />

Backing up the control data set<br />

Use the sample JCL in Example 8-19 to get no error until you are backing up the <strong>DFSMS</strong>rmm<br />

control data set. The LRECL of the BACKUP file has be expanded to be increased to 9216<br />

and 9248 bytes.<br />

Example 8-19 Sample JCL to allocate the backup files<br />

//EDGHSKP EXEC PGM=EDGHSKP,PARM=’BACKUP(DSS)’<br />

//MESSAGE DD DISP=SHR,DSN=RMM.MESSAGE<br />

//SYSPRINT DD SYSOUT=*<br />

//BACKUP DD DISP=(,CATLG),UNIT=TAPE,DSN=BACKUP.CDS(+1),<br />

// LABEL=(,SL)<br />

// AVGREC=U,LRECL=9216,BLKSIZE=0,RECFM=U<br />

//JRNLBKUP DD DISP=(,CATLG),UNIT=TAPE,DSN=BACKUP.JRNL(+1),<br />

// DCB=(RECFM=VB,BLKSIZE=0,LRECL=9248),<br />

// LABEL=(2,SL),<br />

// VOL=REF=*.BACKUP<br />

//DSSOPT DD *<br />

CONCURRENT OPTIMIZE(1) VALIDATE<br />

/*<br />

Note: Use this blocksize if you are using DSS or AMS to back up the <strong>DFSMS</strong>rmm control<br />

data set and journal.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 317


Running inventory management<br />

Example 8-20 shows you the expanded logical record length to 255 bytes for the inventory<br />

management data set REPORT DD to minimize the risk of having some of the information in<br />

a next line.<br />

Example 8-20 Sample JCL to allocate the REPORT file<br />

//* *************************************************************<br />

//STEP04 EXEC PGM=IEFBR14<br />

//DD1 DD DSN=RMM.HSKP.VRSEL(+1),<br />

// SPACE=(TRK,(300,30)),<br />

// DISP=(,CATLG,DELETE),LRECL=255<br />

Figure 8-54 shows you an example of how the inventory management report file looks if you<br />

have specified a data set with a LRECL with 137 or fewer bytes.<br />

REMOVABLE MEDIA MANAGER VITAL RECORDS RETENTION REPOR<br />

(C) <strong>IBM</strong> CORPORATION 1993,1998 ----- ------- --------- -----<br />

JOB MASK DATA SET OR VOLUME MASK OWNER TYPE RETN C X<br />

________________________________________________________________________________<br />

BSYSMF.WEEK.** STCOPC DSN CYCLES Y N<br />

JOB NAME DATA SET NAME 2ndVRS 2ndNAME FSEQ DSEQ VOLUME VSE<br />

________________________________________________________________________________<br />

SMFWEEK2 BSYSMF.WEEK.G0552V00 1 1 Q17058<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0551V00 1 1 Q17191<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0550V00 1 1 Q17084<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0549V00 1 1 Q17357<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0548V00 1 1 Q17287<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0547V00 1 1 Q17356<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0546V00 1 1 Q17321<br />

CONT:-<br />

SMFWEEK2 BSYSMF.WEEK.G0545V00 1 1 Q17068<br />

CONT:-<br />

Figure 8-54 REPORT file with a small LRECL<br />

318 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 8-55 you can see the differences if you are using a larger logical record length to<br />

allocate the REPORT file. In this case there are no lines starting with CONT:- included in the<br />

report.<br />

REMOVABLE MEDIA MANAGER VITAL RECORDS RETENTION REPOR<br />

(C) <strong>IBM</strong> CORPORATION 1993,1998 ----- ------- --------- -----<br />

JOB MASK DATA SET OR VOLUME MASK OWNER TYPE RETN C X<br />

________________________________________________________________________________<br />

BSYSMF.WEEK.** STCOPC DSN CYCLES Y N<br />

JOB NAME DATA SET NAME FSEQ DSEQ VOLUME VSEQ<br />

________________________________________________________________________________<br />

SMFWEEK2 BSYSMF.WEEK.G0552V00 1 1 Q17058 1<br />

SMFWEEK2 BSYSMF.WEEK.G0551V00 1 1 Q17191 1<br />

SMFWEEK2 BSYSMF.WEEK.G0550V00 1 1 Q17084 1<br />

SMFWEEK2 BSYSMF.WEEK.G0549V00 1 1 Q17357 1<br />

SMFWEEK2 BSYSMF.WEEK.G0548V00 1 1 Q17287 1<br />

SMFWEEK2 BSYSMF.WEEK.G0547V00 1 1 Q17356 1<br />

SMFWEEK2 BSYSMF.WEEK.G0546V00 1 1 Q17321 1<br />

SMFWEEK2 BSYSMF.WEEK.G0545V00 1 1 Q17068 1<br />

Figure 8-55 REPORT file with a enlarged LRECL<br />

8.7.4 Migrate from VRSEL(OLD) to VRSEL(NEW)<br />

Because the VRSEL(OLD) option is being removed in a future release, and there is a new<br />

warning message when you run VRSEL processing on z/<strong>OS</strong> <strong>V1R8</strong>, we recommend that you<br />

migrate from VRSEL(OLD) to VRSEL(NEW) before moving to z/<strong>OS</strong> <strong>V1R8</strong>. If you do not<br />

perform this migration you get a warning message (EDG2221E) each time VRSEL is run and<br />

EDGHSKP processing ends with job step return code 4.<br />

Any data sets that match to an incomplete chain are retained by a special broken vital record<br />

specification. The special broken vital record specification uses the name *broken* and is<br />

listed in the REPORT and ACTIVITY files and in the data set matching vital record<br />

specification information. With VRSEL(NEW), the broken vital record specification uses a<br />

permanent retention date. With VRSEL(OLD), the broken vital record specification ensures<br />

that the data set is retained to the maximum of the COUNT value in the first vital record<br />

specification.<br />

We recommend using VRSEL(NEW) to:<br />

► Have more flexibility in defining retention and movement policies.<br />

► Override a volume expiration date when a volume is dropped from vital record<br />

specification retention and the data set retained on it has the release option<br />

EXPIRYDATEIGNORE.<br />

► Return a volume to scratch status in a single inventory management run.<br />

Before starting to use VRSEL(NEW), understand that your existing policies might be applied<br />

differently under VRSEL(NEW). You can perform these steps to avoid problems that might<br />

occur when the <strong>DFSMS</strong>rmm performs VRSEL(NEW) processing.<br />

1. Before using VRSEL(NEW), back up your <strong>DFSMS</strong>rmm control data set using EDGBKUP<br />

or EDGHSKP.<br />

2. Perform cleanup on the name vital record specifications by making sure that any retention<br />

information in them is correct. <strong>DFSMS</strong>rmm provides the EDGRVCLN REXX exec<br />

described in “EDGRVCLN REXX Procedure to Clean Up Name Vital Record<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 319


Specifications” on page 92 to report and clean up problems with name vital record<br />

specifications.<br />

3. Run <strong>DFSMS</strong>rmm inventory management vital record processing so that the <strong>DFSMS</strong>rmm<br />

control data set reflects the cleanup that you have done.<br />

4. <strong>Update</strong> the <strong>DFSMS</strong>rmm PARMLIB OPTION VRSEL(NEW) operand.<br />

5. Make sure that all systems sharing <strong>DFSMS</strong>rmm control data sets have the same<br />

PARMLIB options.<br />

6. Run the inventory management VERIFY function against the control data set without<br />

introducing any of the new vital record specification functions. When you run VERIFY,<br />

changes are not actually made to the <strong>DFSMS</strong>rmm control data set so that you can look at<br />

the results before any changes are made.<br />

7. Inspect the inventory management VERIFY ACTIVITY file by looking at changes in<br />

matching vital record specification information, vital record status, and retention date.<br />

<strong>DFSMS</strong>rmm provides a sample job EDGJACTP that you can use with DFSORT to format<br />

and print fields in the ACTIVITY file. If you cannot clean up to your satisfaction, you can<br />

revert to VRSEL(OLD) at this time.<br />

8. Correct vital record specifications as needed to make sure that the policies that you want<br />

are in place.<br />

9. Continue running the VERIFY function and inspect the results until you get the results that<br />

you expect using the new functions<br />

10.Begin defining vital record specifications that include the new release options or the use of<br />

ANDVRS. We suggest starting slowly until you gain more experience with using the new<br />

vital record specification functions. We recommend using the RMM ISPF dialog to add the<br />

new vital record specifications or to make changes to existing vital record specifications.<br />

11.Repeat the process from step 7, step 9, and step 10 until you are satisfied that the results<br />

are what you expect.<br />

12. Run inventory management production run processing.<br />

13. Check the vital records retention report to make sure that data sets and volumes are<br />

retained as you intended.<br />

EDGRVCLN REXX exec<br />

Before you can use VRSEL(NEW), you need to clean up the retention information in your<br />

existing vital record specifications. Use the EDGRVCLN REXX procedure to report and<br />

update existing vital record specifications that were created before VRSEL(NEW) was<br />

introduced. The procedure is intended for use only during the implementation of name vital<br />

record specification retention information and for cleanup of vital record specifications even if<br />

name vital record specification retention information is not being implemented. EDGRVCLN<br />

provides options that you can use to identify retention information that needs to be corrected<br />

and options that you can use to correct the information.<br />

The REXX exec has following functions:<br />

LIST(DSNCHAIN) List all vital record specification chains.<br />

LIST(CURRENT) List all vital record specifications that specify LOCATION(CURRENT).<br />

LIST(CYCLES) List all vital record specifications that specify a retention type of<br />

CYCLES.<br />

LIST(ERROR) List all name vital record specifications that contain incorrect or<br />

incomplete retention information.<br />

320 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LIST(FILTER) List all data set VRSs that are candidates for exploitation of the use of<br />

COUNT(0).<br />

FIX(CYCLEBYDAYS) Change all CYCLES vital record specifications to use the<br />

CYCLEBYDAYS retention type.<br />

FIX(ERROR) Correct all name vital record specifications that contain incorrect or<br />

incomplete retention information as found by LIST(ERROR).<br />

FIX(FILTER) Implement the changes recommend by LIST(FILTER).<br />

EDGRVCLN LIST file<br />

When you use one of the LIST parameters, the procedure produces the <strong>DFSMS</strong>rmm<br />

ADDVRS subcommands that can be issued to define corrected vital record specifications.<br />

When you use the LIST(CURRENT), LIST(ERROR), or LIST(CYCLES) parameters, the LIST<br />

file includes an RMM DELETEVRS subcommand for each vital record specification in<br />

addition to the ADDVRS subcommand. When you use the LIST(FILTER) parameter, the LIST<br />

file includes an RMMCHANGEVRS and one or more ADDVRS subcommands for each vital<br />

record specification that is a candidate for exploitation of the use of COUNT(0). If you do not<br />

want to use the FIX parameters to correct all the identified vital record specifications, you can<br />

use the LIST file as input to your own processing. You can edit the file to remove or modify<br />

the commands to meet your specific requirements.<br />

EDGRVCLN parameter LIST(DSNCHAIN)<br />

Use this parameter to list all vital record specification chains.<br />

The procedure searches for all data set vital record specifications. The procedure then<br />

searches for all name vital record specifications in the chain.<br />

Use JCL as shown in Example 8-21 to list all vital record specification chains.<br />

Example 8-21 Sample JCL to use EDGRVCLN with parameter LIST(DSNCHAIN)<br />

//EDGRVCLN JOB ,140.SCHLUMBERGER,MSGCLASS=H,REGION=6M,<br />

// MSGLEVEL=(1,1),NOTIFY=SCHLUM<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE RMM.EDGRVCLN.LIST.CHAINP NONVSAM PURGE<br />

DELETE RMM.EDGRVCLN.LIST.CHAIN NONVSAM PURGE<br />

SET MAXCC=0<br />

/*<br />

//TMPCHAIN EXEC PGM=IKJEFT01,DYNAMNBR=30<br />

//SYSPROC DD DISP=SHR,DSN=RMM.ADDONS.CEXEC<br />

//SYSTSPRT DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CHAINP,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//LIST DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CHAIN,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//SYSTSIN DD *<br />

%EDGRVCLN LIST(DSNCHAIN)<br />

/*<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 321


Figure 8-56 shows you the messages EDGRVCLN writes to the SYSTSPRT DD.<br />

READY<br />

%EDGRVCLN LIST(DSNCHAIN)<br />

SEARCHVRS DSNAME 'SCHLUM.TAPE.**' CHAIN failed with Return Code 4, Reason Code<br />

Error in the CDS<br />

READY<br />

END<br />

Figure 8-56 Sample SYSTSPRINT messages using EDGRVCLN with parameter LIST(DSNCHAIN)<br />

The commands generated using parameter LIST(DSNCHAIN) are shown in Figure 8-57.<br />

...<br />

Figure 8-57 Commands created using EDGRVCLN with parameter LIST(DSNCHAIN)<br />

EDGRVCLN Parameter LIST(CURRENT)<br />

Use this parameter to list all vital record specifications that specify LOCATION(CURRENT).<br />

The procedure searches for all vital record specifications and lists each one that includes the<br />

LOCATION(CURRENT).<br />

Use JCL as shown in Example 8-22 to list all vital record specifications that specify<br />

LOCATION(CURRENT).<br />

Example 8-22 Sample JCL to use EDGRVCLN with parameter LIST(CURRENT)<br />

//EDGRVCLN JOB ,140.SCHLUMBERGER,MSGCLASS=H,REGION=6M,<br />

// MSGLEVEL=(1,1),NOTIFY=SCHLUM<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE RMM.EDGRVCLN.LIST.CURRENTP NONVSAM PURGE<br />

DELETE RMM.EDGRVCLN.LIST.CURRENT NONVSAM PURGE<br />

SET MAXCC=0<br />

/*<br />

//TMPCHAIN EXEC PGM=IKJEFT01,DYNAMNBR=30<br />

//SYSPROC DD DISP=SHR,DSN=RMM.ADDONS.CEXEC<br />

//SYSTSPRT DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CURRENTP,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

322 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RMM ADDVRS DSNAME('A.B.C') COUNT(99999) DELETEDATE(1999/365)+<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(99999) +<br />

LOCATION(HOME) CYCLES<br />

RMM ADDVRS DSNAME('SCHLUM.RMMDEMO.**') COUNT(1) +<br />

DELETEDATE(1999/365) +<br />

DESCRIPTION('MVSSSC SYSTEM BACKUP (PROD)') +<br />

PRIORITY(0) NEXTVRS(EXTRACAT) OWNER(SCHLUM) STORENUMBER(1) +<br />

LOCATION(HOME) DAYS +<br />

RMM ADDVRS NAME(EXTRACAT) DELETEDATE(1999/365) +<br />

DESCRIPTION('TEST') OWNER(SCHLUM) STORENUMBER(99999) +<br />

LOCATION(CURRENT)<br />

RMM ADDVRS DSNAME('SCHLUM.RMMTEST.MOVE.**') COUNT(99999) +<br />

DELETEDATE(1999/365) +<br />

DESCRIPTION('RETAIN AND MOVE DATA SETS') +<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(1) WHILECATALOG +<br />

LOCATION(REMOTE) CYCLES


LIST DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CURRENT,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//SYSTSIN DD *<br />

%EDGRVCLN LIST(CURRENT)<br />

/*<br />

Figure 8-58 shows you the messages EDGRVCLN writes to the SYSTSPRT DD.<br />

READY<br />

%EDGRVCLN LIST(CURRENT)<br />

4 VRSs with the LOCATION(CURRENT) LISTed.<br />

READY<br />

END<br />

Figure 8-58 Sample SYSTSPRINT messages using EDGRVCLN with parameter LIST(CURRENT)<br />

The commands generated using parameter LIST(CURRENT) are shown in Figure 8-59.<br />

RMM DELETEVRS DSNAME('DATA.SET.BACKUP')<br />

RMM ADDVRS DSNAME('DATA.SET.BACKUP') +<br />

COUNT(99999) DELETEDATE(1999/365) DESCRIPTION('TEST') +<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(99999) WHILECATALOG +<br />

LOCATION(CURRENT) CYCLES<br />

RMM DELETEVRS DSNAME('D99003')<br />

RMM ADDVRS DSNAME('D99003') COUNT(3) +<br />

DELETEDATE(1999/365) DESCRIPTION('TEST') +<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(3) +<br />

LOCATION(CURRENT) LASTREFERENCEDAYS<br />

RMM DELETEVRS NAME(CATALOG)<br />

RMM ADDVRS NAME(CATALOG) DELETEDATE(1999/365) +<br />

DESCRIPTION('TEST') OWNER(SCHLUM) STORENUMBER(99999) +<br />

LOCATION(CURRENT)<br />

RMM DELETEVRS NAME(EXTRACAT)<br />

RMM ADDVRS NAME(EXTRACAT) DELETEDATE(1999/365) +<br />

DESCRIPTION('TEST') OWNER(SCHLUM) STORENUMBER(99999) +<br />

LOCATION(CURRENT)<br />

Figure 8-59 Commands created using EDGRVCLN with parameter LIST(CURRENT)<br />

EDGRVCLN parameter LIST(CYCLES)<br />

Use this parameter to list all vital record specifications that specify a retention type of<br />

CYCLES. This includes those vital record specifications that include WHILECATALOG,<br />

where CYCLES is used as the default retention type.<br />

The procedure searches for all data set vital record specifications and lists each one that<br />

includes the CYCLE retention type.<br />

Use JCL as shown in Example 8-23 to list all vital record specification that specify a retention<br />

type of CYCLES.<br />

Example 8-23 Sample JCL to use EDGRVCLN with parameter LIST(CYCLES)<br />

//EDGRVCLN JOB ,140.SCHLUMBERGER,MSGCLASS=H,REGION=6M,<br />

// MSGLEVEL=(1,1),NOTIFY=SCHLUM<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 323


SYSIN DD *<br />

DELETE RMM.EDGRVCLN.LIST.CYCLESP NONVSAM PURGE<br />

DELETE RMM.EDGRVCLN.LIST.CYCLES NONVSAM PURGE<br />

SET MAXCC=0<br />

/*<br />

//TMPCHAIN EXEC PGM=IKJEFT01,DYNAMNBR=30<br />

//SYSPROC DD DISP=SHR,DSN=RMM.ADDONS.CEXEC<br />

//SYSTSPRT DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CYCLESP,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//LIST DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.CYCLES,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//SYSTSIN DD *<br />

%EDGRVCLN LIST(CYCLES)<br />

/*<br />

Figure 8-60 shows you the messages EDGRVCLN writes to the SYSTSPRT DD.<br />

READY<br />

%EDGRVCLN LIST(CYCLES)<br />

24 DSNAME VRSs with CYCLES retention type LISTed.<br />

READY<br />

END<br />

Figure 8-60 Sample SYSTSPRINT messages using EDGRVCLN with parameter LIST(CYCLES)<br />

324 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


The commands generated using parameter LIST(CYCLES) are shown in Figure 8-61.<br />

....<br />

....<br />

RMM DELETEVRS DSNAME('A.B.C')<br />

RMM ADDVRS DSNAME('A.B.C') COUNT(99999) +<br />

DELETEDATE(1999/365) PRIORITY(0) OWNER(SCHLUM) +<br />

STORENUMBER(99999) +<br />

LOCATION(HOME) BYDAYSCYCLE<br />

RMM DELETEVRS DSNAME('SCHLUM.EDG*.**')<br />

RMM ADDVRS DSNAME('SCHLUM.EDG*.**') COUNT(6) +<br />

DELETEDATE(1999/365) DESCRIPTION('TEST') +<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(6) +<br />

WHILECATALOG RELEASE(EXPIRYDATEIGNORE SCRATCHIMMEDIATE) +<br />

LOCATION(HOME) BYDAYSCYCLE<br />

RMM DELETEVRS DSNAME('SCHLUM.MULTIPLE.DATASET.**')<br />

RMM ADDVRS DSNAME('SCHLUM.MULTIPLE.DATASET.**') +<br />

COUNT(1) DELETEDATE(1999/365) DESCRIPTION('TEST')+<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(1) +<br />

LOCATION(HOME) BYDAYSCYCLE<br />

RMM DELETEVRS DSNAME('SCHLUM.RMMTEST.MOVE.**')<br />

RMM ADDVRS DSNAME('SCHLUM.RMMTEST.MOVE.**') COUNT(99999) +<br />

DELETEDATE(1999/365) +<br />

DESCRIPTION('RETAIN AND MOVE DATA SETS') +<br />

PRIORITY(0) OWNER(SCHLUM) STORENUMBER(1) WHILECATALOG +<br />

LOCATION(REMOTE) BYDAYSCYCLE<br />

RMM DELETEVRS DSNAME('SCHLUM.TAPE.**')<br />

RMM ADDVRS DSNAME('SCHLUM.TAPE.**') COUNT(1) +<br />

DELETEDATE(1999/365) DESCRIPTION('TEST NEXT VRS') +<br />

PRIORITY(0) NEXTVRS(EXTRA) OWNER(SCHLUM) STORENUMBER(1) +<br />

LOCATION(HOME) BYDAYSCYCLE<br />

RMM DELETEVRS DSNAME('SCHLUM.TEST1')<br />

RMM ADDVRS DSNAME('SCHLUM.TEST1') COUNT(1) +<br />

DELETEDATE(1999/365) PRIORITY(0) OWNER(SCHLUM) +<br />

STORENUMBER(1) +<br />

LOCATION(HOME) BYDAYSCYCLE<br />

Figure 8-61 Commands created using EDGRVCLN with parameter LIST(CYCLES)<br />

EDGRVCLN parameter LIST(ERROR)<br />

Use this parameter to list all name vital record specifications that contain incorrect or<br />

incomplete retention information. The procedure assumes that any name vital record<br />

specification containing a retention type or count value is in error. This is the default value.<br />

The procedure searches for all name vital record specifications and lists each one that<br />

includes any retention type or count value.<br />

Use JCL as shown in Example 8-24 to list all vital record specifications that contain incorrect<br />

or incomplete retention information.<br />

Example 8-24 Sample JCL to use EDGRVCLN with parameter LIST(ERROR)<br />

//EDGRVCLN JOB ,140.SCHLUMBERGER,MSGCLASS=H,REGION=6M,<br />

// MSGLEVEL=(1,1),NOTIFY=SCHLUM<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE RMM.EDGRVCLN.LIST.ERRORP NONVSAM PURGE<br />

DELETE RMM.EDGRVCLN.LIST.ERROR NONVSAM PURGE<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 325


SET MAXCC=0<br />

/*<br />

//TMPCHAIN EXEC PGM=IKJEFT01,DYNAMNBR=30<br />

//SYSPROC DD DISP=SHR,DSN=RMM.ADDONS.CEXEC<br />

//SYSTSPRT DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.ERRORP,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//LIST DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.ERROR,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//SYSTSIN DD *<br />

%EDGRVCLN LIST(ERROR)<br />

/*<br />

Figure 8-62 shows you the messages that EDGRVCLN writes to the SYSTSPRT DD.<br />

READY<br />

%EDGRVCLN LIST(ERROR)<br />

VRS NAME(CATALOG) is a valid location-only VRS<br />

VRS NAME(D99000) is a valid location-only VRS<br />

VRS NAME(EXTRACAT) is a valid location-only VRS<br />

VRS NAME(TESTAND) had retention values and has been recreated as a<br />

location-only VRS<br />

VRS NAME(TESTNEXT) is a valid location-only VRS<br />

VRS NAME(TESTX) is a valid location-only VRS<br />

1 NAME VRSs in error are LISTed.<br />

5 NAME VRSs were valid location-only VRSs.<br />

READY<br />

END<br />

Figure 8-62 Sample SYSTSPRINT messages using EDGRVCLN with parameter LIST(ERROR)<br />

The commands that are generated using parameter LIST(ERROR) are shown in Figure 8-63.<br />

Figure 8-63 Commands created using EDGRVCLN with parameter LIST(ERROR)<br />

EDGRVCLN parameter LIST(FILTER)<br />

Use this parameter to list all data set VRSs that are candidates for exploitation of the use of<br />

COUNT(0).<br />

The procedure searches for all data set name VRSs that do not specify COUNT(0) and<br />

accumulates those that have common delay, retention, and movement requirements, and<br />

NEXT/ANDVRS specified in the first VRS in the chain.<br />

326 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RMM DELETEVRS NAME(TESTAND)<br />

RMM ADDVRS NAME(TESTAND) DELETEDATE(1999/365) +<br />

DESCRIPTION('TEST LCLVRS1 AND LCLVRS2 FUNCT') +<br />

ANDVRS(TESTX) OWNER(SCHLUM) STORENUMBER(99999) +<br />

LOCATION(SHELF)


Use JCL as shown in Example 8-25 to list all data set VRSs that are candidates for<br />

exploitation of the use of COUNT(0).<br />

Example 8-25 Sample JCL to use EDGRVCLN with parameter LIST(DSNCHAIN)<br />

//EDGRVCLN JOB ,140.SCHLUMBERGER,MSGCLASS=H,REGION=6M,<br />

// MSGLEVEL=(1,1),NOTIFY=SCHLUM<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE RMM.EDGRVCLN.LIST.FILTERP NONVSAM PURGE<br />

DELETE RMM.EDGRVCLN.LIST.FILTER NONVSAM PURGE<br />

SET MAXCC=0<br />

/*<br />

//TMPCHAIN EXEC PGM=IKJEFT01,DYNAMNBR=30<br />

//SYSPROC DD DISP=SHR,DSN=RMM.ADDONS.CEXEC<br />

//SYSTSPRT DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.FILTERP,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//LIST DD DISP=(,CATLG),DSN=RMM.EDGRVCLN.LIST.FILTER,<br />

// SPACE=(TRK,(15,5),RLSE),UNIT=SYSDA,<br />

// DCB=(LRECL=255,RECFM=VB,BLKSIZE=0)<br />

//SYSTSIN DD *<br />

%EDGRVCLN LIST(FILTER)<br />

/*<br />

Figure 8-64 shows you the messages that EDGRVCLN writes to the SYSTSPRT DD.<br />

READY<br />

%EDGRVCLN LIST(FILTER)<br />

Dsname VRSs with retention type CYCLE/BYDAYSCYCLE with the combination of<br />

DELAY() and STORENUMBER() can not be converted.<br />

The following have the same retention criteria and could be converted if<br />

you manually change the VRSs not to have DELAY and STORENUMBER in one VRS:<br />

JOBNAME DSNAME<br />

TESTYY TESTYY<br />

TEST* TESTZZ<br />

RMM commands prepared for the exploitation of the use of COUNT(0) are LISTed.<br />

READY<br />

END<br />

Figure 8-64 Sample SYSTSPRINT messages using EDGRVCLN with parameter LIST(FILTER)<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 327


The commands that are generated using parameter LIST(FILTER) are shown in Figure 8-65.<br />

Figure 8-65 Commands created using EDGRVCLN with parameter LIST(FILTER)<br />

FIX(CYCLEBYDAYS)<br />

Use this parameter to change all CYCLES vital record specifications to use the<br />

CYCLEBYDAYS retention type.<br />

FIX(ERROR)<br />

Use this parameter to correct all name vital record specifications that contain incorrect or<br />

incomplete retention information as found by LIST(ERROR). The corrections are made by<br />

328 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RMM CHANGEVRS DSNAME('TEST.LCLVRSC.FUNCTION') +<br />

COUNT(0) +<br />

NEXTVRS(A0000000)<br />

RMM CHANGEVRS DSNAME('TEST.LCLVRSC.FUNCTION.**') +<br />

COUNT(0) +<br />

NEXTVRS(A0000000)<br />

RMM ADDVRS NAME(A0000000) +<br />

COUNT(99999) LASTREFERENCEDAYS +<br />

LOCATION(DISTANT) STORENUMBER(12345) +<br />

WHILECATALOG UNTILEXPIRED<br />

RMM CHANGEVRS DSNAME('ABEND') +<br />

JOBNAME(SCHLUM) +<br />

COUNT(0) +<br />

NEXTVRS(A0000004)<br />

RMM CHANGEVRS DSNAME('ABEND') +<br />

JOBNAME(SCHLUX) +<br />

COUNT(0) +<br />

NEXTVRS(A0000004)<br />

RMM CHANGEVRS DSNAME('OPEN') +<br />

JOBNAME(SCHLUM) +<br />

COUNT(0) +<br />

NEXTVRS(A0000004)<br />

RMM ADDVRS NAME(A0000004) +<br />

COUNT(1) DAYS +<br />

LOCATION(HOME)<br />

RMM CHANGEVRS DSNAME('SIEGEL.TEST.VRSEL.CATYN') +<br />

COUNT(0) +<br />

NEXTVRS(A0000005)<br />

RMM CHANGEVRS DSNAME('SIEGEL.TEST1') +<br />

COUNT(0) +<br />

NEXTVRS(A0000005)<br />

RMM ADDVRS NAME(A0000005) +<br />

COUNT(3) DAYS +<br />

LOCATION(HOME)


deleting and re-adding the vital record specifications that contain errors. Only use this option<br />

when you are ready to correct the errors listed by the LIST(ERROR) option.<br />

FIX(FILTER)<br />

Use this parameter to implement the changes recommend by LIST(FILTER).<br />

The procedure creates one or more retention NAME VRSs for each of the common groups of<br />

retentions found, and then uses the CHANGEVRS subcommand to set COUNT(0) and the<br />

NEXTVRS to chain to the new NAME VRS(es) created. If DELAY was in use, a retention<br />

name VRS is created for the DELAY using DAYS since creation and a NEXTVRS to the<br />

retention name VRS(es) for the retention and location pulled from the DSNAME VRS.<br />

Chapter 8. <strong>DFSMS</strong>rmm enhancements 329


330 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Chapter 9. Tape security<br />

<strong>DFSMS</strong> V1.8 provides new options for securing tape data sets using System Authorization<br />

Facility (SAF). These are designed to allow you to define profiles to protect data sets on tape<br />

using the DATASET class without the need to activate the TAPEDSN option or the TAPEVOL<br />

class. <strong>DFSMS</strong> also provides options that you can use to specify that all data sets on a tape<br />

volume should have common authorization and that users are authorized to overwrite<br />

existing files on a tape volume.<br />

In this chapter we describe the options available in <strong>DFSMS</strong> V1.8 for tape data set security<br />

and how to implement it.<br />

This chapter contains the following sections:<br />

► Tape data set authorization<br />

► Implementation<br />

► Removing TAPEVOL and TAPEDSN processing<br />

► Error messages<br />

► Testing various security settings<br />

9<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 331


9.1 Tape data set authorization<br />

<strong>DFSMS</strong> V1.8 provides new options for securing tape data sets using the system authorization<br />

facility (SAF) to allow you to protect data sets on tape using the RACF DATASET class<br />

without the need to activate the TAPEDSN option or the TAPEVOL class. This new tape data<br />

set authorization checking allows you to specify that all data sets on a tape volume should<br />

have common authorization. You can specify whether users are authorized to overwrite<br />

existing files on a tape volume. In addition, you can specify that a user must have access to<br />

the first file on a tape volume to add additional files on that tape volume.<br />

9.1.1 Recommendations for tape security<br />

For optimum tape security use the combined capabilities of <strong>DFSMS</strong>rmm, <strong>DFSMS</strong>dfp, and<br />

RACF. We recommend that you specify the following parameters:<br />

► In DEVSUPxx PARMLIB member:<br />

– TAPEAUTHDSN=YES<br />

– TAPEAUTHF1=YES<br />

– TAPEAUTHRC4=FAIL<br />

– TAPEAUTHRC8=FAIL<br />

► In EDGRMMxx PARMLIB member:<br />

OPTION TPRACF(N)<br />

► In RACF:<br />

SETROPTS NOTAPEDSN NOCLASSACT(TAPEVOL)<br />

The combination of <strong>DFSMS</strong>rmm, <strong>DFSMS</strong>dfp, and RACF ensures:<br />

► Full 44 character data set name validation.<br />

► Validation that the correct volume is mounted.<br />

► Control the overwriting of existing tape data sets.<br />

► Management of tape data set retention.<br />

► Control over the creation and destruction of tape volume labels.<br />

► No limitations caused by RACF TAPEVOL profile sizes and TVTOC limitations.<br />

► All tape data sets on a volume have a common authorization.<br />

► Use of generic DATASET profiles, enabling common authorization with DASD data sets.<br />

► Authorization for all tape data sets regardless of the tape label type.<br />

► Authorization for the use of bypass label processing (BLP).<br />

► Exploitation of RACF erase on scratch support.<br />

► Use of <strong>DFSMS</strong>rmm FACILITY class profiles for data sets unprotected by RACF<br />

Your authorization to use a volume outside of <strong>DFSMS</strong>rmm control through ignore<br />

processing also enables authorization to the data sets on that volume.<br />

To aid in the migration to this environment, <strong>DFSMS</strong>rmm provides the TPRACF(CLEANUP)<br />

option, and DEVSUPxx provides TAPEAUTHRC8(WARN) and TAPEAUTHRC4(ALLOW).<br />

The function in <strong>DFSMS</strong>dfp does not replace all the functional capabilities that the RACF<br />

TAPEDSN option, TAPEVOL class, and TVTOC provide. However, together with the<br />

functions that <strong>DFSMS</strong>rmm provides, you do have equivalent capability. The enhanced<br />

332 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


<strong>DFSMS</strong>dfp function addresses the authorization requirements for tape data sets and relies on<br />

your use of a tape management system such as <strong>DFSMS</strong>rmm to perform the following<br />

operations:<br />

► Verify full 44 character data set names.<br />

► Control the overwriting of existing tape files.<br />

► Handle tape data set retention.<br />

► Control the creation and destruction of tape labels.<br />

Important: With the <strong>DFSMS</strong> V1.8 tape security implementation, as opposed to a<br />

TAPEVOL and TAPEDSN implementation, you can do the following:<br />

► Write more than 500 data sets to one tape or one tape volume set.<br />

► A tape volume set can expand more than 42 tape volumes.<br />

► Write duplicate data set names to one tape or one tape volume set.<br />

9.1.2 Overview of the TAPEVOL and TAPEDSN processing<br />

The enhancement in authority checking that is available with z/<strong>OS</strong> <strong>DFSMS</strong> V1.8 takes into<br />

account that today most customers are using a tape management system. A tape<br />

management system like <strong>DFSMS</strong>rmm verifies during reuse of data sets and tape volumes the<br />

data set names that were put in place at creation time. This ensures that the same data set<br />

resources are always being checked in RACF whenever a particular data set is opened.<br />

How protection of tape data sets works pre-<strong>DFSMS</strong> V1.8r<br />

Processing in detail differs depending on:<br />

► The setting of SETROPTS TAPEDSN/NOTAPEDSN<br />

► The RACF TAPEVOL class being active or not<br />

► The label type of the tape volume<br />

► The requirement of bypass label processing (BLP)<br />

SETROPTS NOTAPEDSN NOCLASSACT(TAPEVOL)<br />

Tape data sets are not protected if neither RACF option TAPEDSN is being set nor the RACF<br />

TAPEVOL class is active. This is true regardless of label type or BLP requirement.<br />

SETROPTS TAPEDSN and SETROPTS CLASSACT(TAPEVOL)<br />

If the RACF TAPEVOL class is active as well as the RACF option TAPEDSN set, tape data<br />

are protected at the data set level.<br />

In case of label type SL or AL, during the open of an existing data set a REQUEST=AUTH is<br />

performed in the DATASET class with DSNTYPE=T:<br />

1. If there is a matching TAPEVOL class profile, the caller’s authority according to the type of<br />

open is being checked (READ for input and UPDATE for output).<br />

– If the caller’s authority at the volume level is sufficient, no further checks are<br />

performed.<br />

– If the TAPEVOL profile contains a TVTOC, the data set name is verified at the full<br />

length of 44 bytes.<br />

If the verification was successful, RACF looks for a matching data set profile and<br />

determines whether the caller’s authority is sufficient.<br />

If verification was not successful the request ends with return code 8 (denied).<br />

– If the TAPEVOL profile contains no TVTOC see step 2.<br />

Chapter 9. Tape security 333


2. If there is no matching TAPEVOL profile, RACF looks for a matching DATASET class<br />

profile and determines whether the caller is authorized sufficiently (READ for input and<br />

UPDATE for output).<br />

Note: Without a TVTOC there is no verification of the full 44 byte length of the data set<br />

name.<br />

With a label type of SL or AL, during open of a new data set a REQUEST=AUTH as well as a<br />

REQUEST=DEFINE is performed in the DATASET class with DSNTYPE=T:<br />

► If the caller wants to append another data set.<br />

– If there is a matching TAPEVOL class profile the caller must have at least UPDATE<br />

authority, otherwise the request ends with return code 8 (denied).<br />

– RACF is looking for a matching data set profile and determines that the caller is at least<br />

authorized for UPDATE access.<br />

► If the caller wants to overwrite an existing data set.<br />

– If the new data set name is different from the existing data set, then one of the<br />

following is true:<br />

The security retention period of that particular existing data set (stored in the<br />

protecting DATASET profile) and of all of the following existing data sets must have<br />

expired.<br />

The caller must have at least UPDATE authority to the volume.<br />

RACF is looking for the matching profile of the new data set name and determines<br />

that the caller is at least authorized for UPDATE access.<br />

– If the new data set name is not different, then the caller must have UPDATE authority<br />

either for the matching DATASET profile or for the matching TAPEVOL profile.<br />

► If the TAPEVOL profile contains a TVTOC, then for the new data set an entry in the<br />

TVTOC is maintained.<br />

Note: When a TAPEVOL class profile contains a TVTOC some restrictions apply:<br />

► The maximum number of entries for data sets that a TVTOC can contain is 500.<br />

► The maximum number of volumes that any data set on the tape with an entry in the<br />

TVTOC can span is 42.<br />

► From a tape volume set you cannot delete a tape volume if a TVTOC entry indicates<br />

that there is a protected data set on the volume.<br />

In case of nonlabeled tapes (NL):<br />

► During open for input the caller must have READ authority to the volume or, if there is a<br />

TVTOC for the volume, to the matching data set profile.<br />

► During open for output the caller must have at least UPDATE authority to both the volume<br />

and the data set.<br />

In case of nonstandard label tapes (NSL) data management does not do authorization<br />

checking.<br />

In case of a request for BLP during open of a data set the caller must be authorized for the<br />

ICHBLP resource in the FACILITY class.<br />

334 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SETROPTS TAPEDSN and SETROPTS NOCLASSACT(TAPEVOL)<br />

If only the RACF option TAPEDSN is being set while the TAPEVOL class is not active, tape<br />

data is protected at the data set level.<br />

In case of label type SL, AL, or NL during open of a data set for reading, the caller needs at<br />

least READ authority for the matching DATASET class profile.<br />

In case of label type SL, AL, or NL during open of a data set for writing, the caller needs at<br />

least the following for the matching DATASET class profile:<br />

► UPDATE authority to open an existing data set<br />

► ALTER authority to create a new data set<br />

In the case of nonstandard label tapes (NSL) data management does not do authorization<br />

checking.<br />

In case of a request for BLP during open of a data set the caller must be authorized for the<br />

ICHBLP resource in the FACILITY class.<br />

SETROPTS NOTAPEDSN and SETROPTS CLASSACT(TAPEVOL)<br />

If the RACF option TAPEDSN is not being set while the TAPEVOL class is active, tape data<br />

are protected at the tape volume level.<br />

In the case of label type SL, AL, or NL during open of a data set for reading, the caller needs<br />

at least READ authority for the matching TAPEVOL class profile.<br />

In the case of label type SL, AL, or NL during open of a data set for writing, the caller needs at<br />

least UPDATE authority for the matching TAPEVOL class profile.<br />

In the case of nonstandard label tapes (NSL) data management does not do authorization<br />

checking.<br />

In the case of a request for bypass-label processing during open of a data set the caller must<br />

be authorized for the ICHBLP resource in the FACILITY class.<br />

Summary<br />

In order to achieve the highest level of security you should choose an environment that<br />

provides discrete TAPEVOL class profiles with TVTOCs as well as the SETROPTS<br />

TAPEDSN setting. This environment provides the following advantages:<br />

► Full 44 character data set name validation<br />

► Use of generic DATASET class profiles, enabling common authorization with DASD data<br />

sets<br />

► Volume level control in order to guarantee exclusive volume use for applications<br />

9.1.3 How the <strong>DFSMS</strong> V1.8 tape data set authority checking works<br />

The alternate authority checking is enabled by modifying the contents of member DEVSUPxx<br />

in the PARMLIB concatination. Four new keywords are available:<br />

► TAPEAUTHDSN<br />

YES Enables tape authorization checks in the DATASET class but<br />

without DSTYPE=T.<br />

The system uses the data set name specified in the allocation or<br />

JCL to check your authorization to read or write the specified file.<br />

Chapter 9. Tape security 335


In addition, the system determines the RACF erase-on-scratch<br />

setting from the RACF profile and passes it to your tape<br />

management system.<br />

When you request bypass label processing (BLP) and the mounted<br />

volume uses standard labels, OPEN issues the authorization check<br />

that the user is authorized to use BLP. This processing uses the<br />

existing ICHBLP resource in the RACF FACILITY class. When you<br />

specify TAPEAUTHDSN = YES only, it replaces the check that<br />

RACF makes as part of tape volume authorization checking.<br />

NO Indicates OPEN processing to issue RACROUTEs as it did before<br />

based on the options set in RACF such as SETROPTS TAPEDSN<br />

and SETROPTS CLASSACT(TAPEVOL). This is the default<br />

setting.<br />

► TAPEAUTHF1<br />

YES Enables additional tape authorization checks in the DATASET<br />

class for existing files on the same tape volume when any other file<br />

on the tape volume is opened.<br />

This function depends on the tape management system returning<br />

the 44-character data set name and data set sequence number to<br />

OPEN/EOV through the IFGTEP during the volume mount exit<br />

volume security function. If no data set name is returned by the<br />

tape management system, processing is as though this keyword<br />

had not been specified.<br />

Although intended to enable an additional authorization check for<br />

the first data set when any other data set on the tape volume is<br />

opened, the implementation allows your tape management system<br />

to request one or more additional authorization checks when any<br />

data set on a tape volume is opened. Each additional data set<br />

name and data set sequence number returned results in an<br />

additional RACROUTE. Do not use this function unless you have a<br />

tape management system and it can return a data set name and<br />

data set sequence number. A data set sequence number is the<br />

label number normally specified in the JCL LABEL keyword and<br />

stored in the catalog.<br />

When TAPEAUTHDSN=YES is in use, any additional RACROUTE<br />

matches that issued for TAPEAUTHDSN except for the data set<br />

name and data set sequence number. Otherwise, TAPEAUTHF1<br />

uses a RACROUTE that matches that used for SETROPTS<br />

TAPEDSN. When neither TAPEAUTHDSN nor SETROPTS<br />

TAPEDSN is in use, TAPEAUTHF1 support is not provided.<br />

NO Disables additional tape authorization checks in the DATASET<br />

class for existing files on the same tape volume when any other file<br />

on the tape volume is opened. This is the default setting.<br />

► TAPEAUTHRC4<br />

ALLOW This applies to authorization checks in the DATASET class, and<br />

applies only to the results of TAPEAUTHDSN = YES and<br />

TAPEAUTHF1 = YES processing.<br />

336 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

This allows accessing of data sets that are not protected by a<br />

security profile. RC4 refers to the return code value of 4 returned<br />

from SAF as a result of the RACROUTE issued by


OPEN/CL<strong>OS</strong>E/EOV. A return code of 4 in general means that the<br />

resource is not protected.<br />

FAIL Denies accessing of data sets that are not protected by a security<br />

profile. Use this setting in a PROTECTALL(FAIL) environment.<br />

This is the default setting.<br />

► TAPEAUTHRC8<br />

WARN Enables warning mode for all tape authorization checks in the<br />

DATASET class as a result of TAPEAUTHDSN = YES and<br />

TAPEAUTHF1 = YES processing. Allows accessing of data sets<br />

that typically cannot be accessed. RACF issues an ICH408I<br />

message to indicate why access is not allowed. However,<br />

OPEN/EOV allows access.<br />

FAIL Denies accessing of data sets according to the result of the check<br />

in DATASET class. This is the default setting.<br />

In Table 9-1 you can see the different PROTECTALL settings in RACF and the equivalent<br />

settings of the new TAPEAUTHRC4 and TAPEAUTHRC8 options for securing tape data sets<br />

using the System Authorization Facility (SAF).<br />

Table 9-1 Compare RACF and DEFSUP protection<br />

RACF settings DEVSUP settings Action<br />

PROTECTALL(NONE) N/A None<br />

PROTECTALL(WARN) TAPEAUTHRC4(ALLOW)<br />

TAPEAUTHRC8(WARN)<br />

PROTECTALL(FAIL) TAPEAUTHRC4(FAIL)<br />

TAPEAUTHRC8(FAIL)<br />

Figure 9-1shows the RACF checking sequence when you have set the new tape security<br />

options TAPEAUTHDSN and TAPEAUTHF1 and activated it. If you have not specified to<br />

bypass <strong>DFSMS</strong>rmm processing by using the JCL parameter EXPDT=98000 or<br />

ACCODE=XCANORES, then RACF checking is made. The data sets must be RACF<br />

protected and the user must have access to the data set profile protecting the data sets.<br />

bypass<br />

<strong>DFSMS</strong>rmm?<br />

(EXPDT=98000)<br />

yes<br />

bypass<br />

<strong>DFSMS</strong>rmm/RACF<br />

processing<br />

Figure 9-1 New tape security flowchart<br />

no<br />

RACF protected?<br />

DSN profile<br />

available<br />

no<br />

ICH408I<br />

Resource not<br />

protected<br />

Enables warning mode<br />

Denies accessing of data sets:<br />

► That are not protected<br />

► According to the result of the<br />

check<br />

yes<br />

correct RACF<br />

access to DSN<br />

profile?<br />

yes<br />

no<br />

ABEND 913<br />

user not<br />

authorized<br />

OK<br />

to process<br />

requested<br />

data set<br />

Chapter 9. Tape security 337


If you have specified to bypass <strong>DFSMS</strong>rmm processing by using the JCL parameter,<br />

EXPDT=98000 or ACCODE=XCANORES <strong>DFSMS</strong>rmm makes additional security checks, as<br />

shown in Figure 9-2. Instead of having different RACF resources to check the bypass<br />

processing for volumes defined or not defined in the <strong>DFSMS</strong>rmm control data set, you can<br />

specify the resource STGADMIN.EDG.IGNORE.TAPE.* in class FACILITY.<br />

Figure 9-2 Bypass <strong>DFSMS</strong>rmm processing flowchart<br />

Note: You can specify a profile in RACF class FACILITY for each single volume by using<br />

the full volume serial number at the end of the resource name like:<br />

STGADMIN.EDG.IGNORE.TAPE.RMM.V12345<br />

9.2 Implementation<br />

No<br />

ICH408I Resource not protected<br />

you cannot process data set<br />

or for a range of volumes using the asterisk as part of the volume serial number like the<br />

following for all three different kinds of resources:<br />

STGADMIN.EDG.IGNORE.TAPE.NORMM.ABC*<br />

In this section we describe how you can implement the new tape data set authorization. This<br />

section describes the new implementation of tape data set autorization using the new<br />

DEVSUP settings to protect data sets on tape using the DATASET class.<br />

338 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Yes<br />

FACILITY-Profile<br />

STGADMIN.EDG.IGNORE.TAPE.RMM.*<br />

UACC(NONE)<br />

Correct<br />

access to FACILITY<br />

resource<br />

Yes<br />

bypass<br />

<strong>DFSMS</strong>rmm/RACF<br />

processing<br />

<strong>DFSMS</strong>rmm?<br />

managed<br />

volume?<br />

OK<br />

to process<br />

requested<br />

data set<br />

Yes<br />

No<br />

FACILITY-Profile<br />

STGADMIN.EDG.IGNORE.TAPE.NORMM.*<br />

UACC(NONE)<br />

Correct<br />

access to FACILITY<br />

resource<br />

No<br />

ICH408I Resource not protected<br />

you cannot process data set


Note: Before you start this new tape data set authorization implementation you should<br />

search your <strong>DFSMS</strong>rmm control data set and check that for all data sets residing on tape,<br />

at a minimum, the high-level qualifier is defined to RACF.<br />

You should protect the use of the set MVS DEVSUP command so that only a small number of<br />

people have access to this resource and are able to modify your tape data set authorization<br />

settings. Example 9-1 shows you how you can protect the use of the MVS DEVSUP<br />

command.<br />

Example 9-1 Protect MVS SET DEVSUP command<br />

//MHLRES5C JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

//*<br />

//* *******************************************************************<br />

//* * TESTING Tape Data Set Authorization *<br />

//* *******************************************************************<br />

//DELETE EXEC PGM=IKJEFT01<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

RDEF OPERCMDS MVS.SET.DEVSUP UACC(NONE)<br />

PE MVS.SET.DEVSUP CL(OPERCMDS) ID(MHLRES5 MHLRES2) ACC(NONE)<br />

SETR REFRESH RACLIST(OPERCMDS)<br />

/*<br />

Note: Refresh the RACF OPERCMDS because the OPERCMDS are in the RACLIST<br />

class.<br />

Use the MVS SET DEVSUP command in Example 9-2 to test your RACF protection of the<br />

MVS SET DEVSUP command.<br />

Example 9-2 Unauthorized use of set DEVSUP<br />

/T DEVSUP=18<br />

This MVS SET COMMAND is not working because the user MHLRES5 is not permitted to<br />

use this command. Figure 9-3 shows you the RACF error messages you receive.<br />

RESPONSE=SC64<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MVS.SET.DEVSUP CL(OPERCMDS)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

Figure 9-3 RACF error messages<br />

9.2.1 Check all high-level qualifiers on tape<br />

You should check that each high-level qualifier on volumes in <strong>DFSMS</strong>rmm status MASTER or<br />

USER are defined to RACF as a user or group. You can create different reports to check the<br />

high-level qualifiers currently used:<br />

► Only on volumes in status SCRATCH<br />

► Only on volumes that have a status other than SCRATCH<br />

► Using all volumes in any volume status<br />

Chapter 9. Tape security 339


9.2.2 <strong>Update</strong> DEVSUPnn PARMLIB member<br />

<strong>Update</strong> the DEVSUPxx member in your PARMLIB to specify your installation default for<br />

device support options. DEVSUPxx is processed during the NIP phase of IPL. After IPL, you<br />

can use system command SET DEVSUP=XX to activate the DEVSUP changes.<br />

To enable the new tape data set protection add the following parameters to the DEVSUPxx<br />

PARMLIB member:<br />

TAPEAUTHDSN To enable tape authorization checks in the DATASET class<br />

TAPEAUTHF1 Enables additional tape authorization checks in the DATASET class<br />

for existing files on the same tape volume when any other file on the<br />

tape volume is opened.<br />

TAPEAUTHRC4 Use this keyword to control PROTECTALL processing for tape data<br />

sets. This applies to the results of RACROUTE processing when both<br />

TAPEAUTHDSN=YES and TAPEAUTHF1=YES are specified.<br />

TAPEAUTHRC8 Use this keyword as an aid to the implementation of TAPEAUTHDSN<br />

and TAPEAUTHF1.<br />

Provides a managed and controlled implementation of tape<br />

authorization checks in the DATASET class, and applies only to the<br />

results of TAPEAUTHDSN=YES and TAPEAUTHF1=YES processing.<br />

Note: While TAPEAUTHRC4=FAIL and TAPEAUTHRC8=FAIL are specified to implement<br />

the <strong>DFSMS</strong> V1.8 tape data set security enhancement, the TAPEAUTHRC4=ALLOW and<br />

TAPEAUTHRC8=WARN options are provided to ease the migration to the new tape<br />

security implementation. We recommend that you initially specify APEAUTHRC4=ALLOW<br />

and TAPEAUTHRC8=WARN.<br />

Figure 9-4 shows a sample DEVSUPxx PARMLIB member including the default for<br />

compaction for new data sets written to 3480, 3490, or 3590 tape subsystems. The category<br />

used for this system for MEDIA1, MEDIA2, MEDIA3, and MEDIA5 tapes is the status scratch.<br />

The PRIVATE category for tapes is the private status, and the ERROR category is for all<br />

volumes in which OAM detects any error. This member also includes the final settings for the<br />

new tape data set authorization implementation after you have successfully tested this new<br />

function.<br />

COMPACT = YES, /* INSTALLATION DEFAULT FOR IDRC */<br />

MEDIA1 = 0021,<br />

MEDIA2 = 0022,<br />

MEDIA3 = 0023,<br />

MEDIA5 = 0025,<br />

ERROR = 002E,<br />

PRIVATE = 002F,<br />

TAPEAUTHDSN = YES,<br />

TAPEAUTHF1 = YES,<br />

TAPEAUTHRC4 = FAIL,<br />

TAPEAUTHRC8 = FAIL<br />

Figure 9-4 Sample DEVSUPxx PARMLIB member<br />

340 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Where:<br />

► COMPACT<br />

Specifies the default for compaction for new data sets written to 3480, 3490, or 3590 tape<br />

subsystems.<br />

► MEDIAx<br />

Used to specify category codes for library partitioning.<br />

► ERROR<br />

Used to specify category codes for library partitioning.<br />

► PRIVATE<br />

Used to specify category codes for library partitioning.<br />

► TAPEAUTHDSN=YES<br />

Enables tape authorization checks in the DATASET class but without DSTYPE=T.<br />

DSTYPE=T indicates to RACF that the check is for the data set on a tape volume and that<br />

special RACF tape data set and a tape volume processing is to be performed. Without<br />

DSTYPE=T RACF authorization checking considers only profiles in the DATASET class.<br />

The system uses the data set name specified in the allocation or JCL to check your<br />

authorization to read or write the specified file.<br />

In addition, the system determines the RACF erase-on-scratch setting from the RACF<br />

profile and passes it to your tape management system.<br />

Use this option only when you have a tape management system, such as <strong>DFSMS</strong>rmm,<br />

installed and actively checking that the 44-character data set name specified by the user<br />

matches the data set name on tape. Without a tape management system, tape data set<br />

open processing can only validate the last 17 characters of the data set name against the<br />

tape volume labels.<br />

When you request bypass label processing (BLP) and the mounted volume uses standard<br />

labels, OPEN issues the authorization check that the user is authorized to use BLP. This<br />

processing uses the existing ICHBLP resource in the RACF FACILITY class. When you<br />

specify TAPEAUTHDSN=YES only, it replaces the check that RACF makes as part of<br />

tape volume authorization checking.<br />

► TAPEAUTHF1=YES<br />

Enables additional tape authorization checks in the DATASET class for existing files on<br />

the same tape volume when any other file on the tape volume is opened.<br />

This function depends on the tape management system returning the 44-character data<br />

set name and data set sequence number to OPEN/EOV through the IFGTEP during the<br />

volume mount exit volume security function. If no data set name is returned by the tape<br />

management system, processing is as though this keyword had not been specified.<br />

Although intended to enable an additional authorization check for the first data set when<br />

any other data set on the tape volume is opened, the implementation allows your tape<br />

management system to request one or more additional authorization checks when any<br />

data set on a tape volume is opened. Each additional data set name and data set<br />

sequence number returned results in an additional RACROUTE. Do not use this function<br />

unless you have a tape management system and it can return a data set name and data<br />

set sequence number. A data set sequence number is the label number normally specified<br />

in the JCL LABEL keyword and stored in the catalog.<br />

When TAPEAUTHDSN=YES is in use, any additional RACROUTE matches that issued<br />

for TAPEAUTHDSN except for the data set name and data set sequence number.<br />

Otherwise, TAPEAUTHF1 uses a RACROUTE that matches that used for SETROPTS<br />

Chapter 9. Tape security 341


TAPEDSN. When neither TAPEAUTHDSN nor SETROPTS TAPEDSN is in use,<br />

TAPEAUTHF1 support is not provided.<br />

► TAPEAUTHRC4<br />

Denies accessing of data sets that are not protected by a security profile.<br />

► TAPEAUTHRC8<br />

Denies accessing of data sets that typically cannot be accessed.<br />

Use the MVS SET DEVSUP command to implement the new tape data set security settings.<br />

Figure 9-5 shows the successful result of the command.<br />

T DEVSUP=18<br />

IEE252I MEMBER DEVSUP18 FOUND IN SYS1.PARMLIB<br />

IEE536I DEVSUP VALUE 18 NOW IN EFFECT<br />

IEA253I DEVSUP 3480X RECORDING MODE DEFAULT IS COMPACTION.<br />

IEA253I DEVSUP ISO/ANSI TAPE LABEL VERSION DEFAULT IS V3<br />

IEA253I DEVSUP TAPE OUTPUT DEFAULT BLOCK SIZE LIMIT IS 32760<br />

IEA253I DEVSUP COPYSDB DEFAULT IS INPUT<br />

IEA253I DEVSUP TAPEAUTHDSN: YES<br />

IEA253I DEVSUP TAPEAUTHF1: YES<br />

IEA253I DEVSUP TAPEAUTHRC4: FAIL<br />

IEA253I DEVSUP TAPEAUTHRC8: FAIL<br />

Figure 9-5 Result of the set DEVSUP command<br />

Restriction: Only the new tape security parameters are updated using the SET DEVSUP<br />

command. All existing parameters are not updated and cannot be changed without an IPL.<br />

9.3 Removing TAPEVOL and TAPEDSN processing<br />

In this section we provide instructions for changing from using RACF TAPEVOL and<br />

TAPEDSN to the new tape data set authorization checking.<br />

9.3.1 Check and modify your RACF settings<br />

First check your RACF settings using the RACF SETR LIST command in a TSO session, as<br />

shown in Example 9-3.<br />

Example 9-3 RACF SETR LIST command used in TSO<br />

Command ===> SETR LIST<br />

Example 9-4 shows you the same command used in a batch job.<br />

Example 9-4 RACF SETR LIST command used in a batch job<br />

//SCHLUM JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

//*<br />

//* *******************************************************************<br />

//* * TESTING Tape Data Set Authorization *<br />

//* *******************************************************************<br />

//SETRLIST EXEC PGM=IKJEFT01<br />

//SYSPRINT DD SYSOUT=*<br />

342 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR LIST<br />

/*<br />

The following figures show the output with the current RACF settings. Figure 9-6 shows you<br />

the RACF ATTRIBUTES, STATISTICS, and ACTIVE CLASSES.<br />

ATTRIBUTES = INITSTATS WHEN(PROGRAM -- BASIC)<br />

STATISTICS = DATASET DASDVOL GDASDVOL GTERMINL O2OMPE TAPEVOL TERMINAL<br />

ACTIVE CLASSES = DATASET USER GROUP ACCTNUM ACICSPCT APPCLU APPCPORT APPCSERV<br />

APPCTP APPL BCICSPCT CBIND CCICSCMD CDT CONSOLE CPSMOBJ<br />

CPSMXMP CSFKEYS CSFSERV DASDVOL DCICSDCT DIGTCERT DIGTRING<br />

DSNR ECICSDCT EJBROLE FACILITY FCICSFCT FIELD FSSEC GCICSTRN<br />

GCPSMOBJ GCSFKEYS GDASDVOL GEJBROLE GMQADMIN GSDSF GXFACILI<br />

HCICSFCT <strong>IBM</strong>OPC ILMADMIN JCICSJCT JESJOBS JESSPOOL KCICSJCT<br />

KEYSMSTR LOGSTRM MCICSPPT MQADMIN NCICSPPT NETCMDS NETSPAN<br />

NODES NODMBR OPERCMDS O2OMPE PCICSPSB PMBR PRINTSRV PROGRAM<br />

PTKTDATA PTKTVAL QCICSPSB RACFVARS RACGLIST RRSFDATA<br />

RVARSMBR SCICSTST SDSF SERVAUTH SERVER STARTED STORCLAS<br />

SURROGAT SYSMVIEW TAPEVOL TCICSTRN TMEADMIN TSOAUTH TSOPROC<br />

UCICSTST UNIXPRIV VCICSCMD VTAMAPPL WRITER XFACILIT<br />

Figure 9-6 RACF ATTRIBUTES, STATISTICS, and ACTIVE CLASSES<br />

In Figure 9-7 you can see the active RACF GENERIC PROFILE CLASSES.<br />

GENERIC PROFILE CLASSES = DATASET ACCTNUM ACICSPCT AIMS ALCSAUTH APPCLU<br />

APPCPORT APPCSERV APPCSI APPCTP APPL CACHECLS<br />

CBIND CCICSCMD CIMS CONSOLE CPSMOBJ CPSMXMP<br />

CSFKEYS CSFSERV DASDVOL DBNFORM DCEUUIDS DCICSDCT<br />

DEVICES DIGTCERT DIGTCRIT DIGTNMAP DIGTRING<br />

DIRACC DIRAUTH DIRECTRY DIRSRCH DLFCLASS DSNADM<br />

DSNR EJBROLE FACILITY FCICSFCT FIELD FILE FIMS<br />

FSOBJ FSSEC GMBR <strong>IBM</strong>OPC ILMADMIN INFOMAN IPCOBJ<br />

JAVA JCICSJCT JESINPUT JESJOBS JESSPOOL KEYSMSTR<br />

LDAPBIND LFSCLASS LOGSTRM MCICSPPT MDSNBP MDSNCL<br />

MDSNDB MDSNJR MDSNPK MDSNPN MDSNSC MDSNSG MDSNSM<br />

MDSNSP MDSNTB MDSNTS MDSNUF MDSNUT MGMTCLAS<br />

MQADMIN MQCHAN MQCMDS MQCONN MQNLIST MQPROC<br />

MQQUEUE NDSLINK NETCMDS NETSPAN NODES NODMBR<br />

NOTELINK NVASAPDT OIMS OPERCMDS O2OMPE PCICSPSB<br />

PERFGRP PIMS PMBR PRINTSRV PROCACT PROCESS<br />

PROPCNTL PSFMPL PTKTDATA PTKTVAL RACFVARS RACGLIST<br />

RMTOPS RODMMGR ROLE RRSFDATA RVARSMBR SCDMBR<br />

SCICSTST SDSF SECLMBR SERVAUTH SERVER SFSCMD<br />

SIMS SMESSAGE SOMDOBJS STARTED STORCLAS SUBSYSNM<br />

SURROGAT SYSMVIEW TAPEVOL TCICSTRN TEMPDSN<br />

TERMINAL TIMS TMEADMIN TSOAUTH TSOPROC UNIXMAP<br />

UNIXPRIV VMBATCH VMBR VMCMD VMMAC VMMDISK VMNODE<br />

VMP<strong>OS</strong>IX VMRDR VMSEGMT VTAMAPPL VXMBR WRITER<br />

XFACILIT<br />

Figure 9-7 RACF GENERIC PROFILE CLASSES<br />

Chapter 9. Tape security 343


Figure 9-8 shows you the current active RACF GENERIC COMMAND CLASSES.<br />

GENERIC COMMAND CLASSES = DATASET ACCTNUM ACICSPCT AIMS ALCSAUTH APPCLU<br />

APPCPORT APPCSERV APPCSI APPCTP APPL CACHECLS<br />

CBIND CCICSCMD CIMS CONSOLE CPSMOBJ CPSMXMP<br />

CSFKEYS CSFSERV DASDVOL DBNFORM DCEUUIDS DCICSDCT<br />

DEVICES DIGTCERT DIGTCRIT DIGTNMAP DIGTRING<br />

DIRACC DIRAUTH DIRECTRY DIRSRCH DLFCLASS DSNADM<br />

DSNR EJBROLE FACILITY FCICSFCT FIELD FILE FIMS<br />

FSOBJ FSSEC GMBR <strong>IBM</strong>OPC ILMADMIN INFOMAN IPCOBJ<br />

JAVA JCICSJCT JESINPUT JESJOBS JESSPOOL KEYSMSTR<br />

LDAPBIND LFSCLASS LOGSTRM MCICSPPT MDSNBP MDSNCL<br />

MDSNDB MDSNJR MDSNPK MDSNPN MDSNSC MDSNSG MDSNSM<br />

MDSNSP MDSNTB MDSNTS MDSNUF MDSNUT MGMTCLAS<br />

MQADMIN MQCHAN MQCMDS MQCONN MQNLIST MQPROC<br />

MQQUEUE NDSLINK NETCMDS NETSPAN NODES NODMBR<br />

NOTELINK NVASAPDT OIMS OPERCMDS O2OMPE PCICSPSB<br />

PERFGRP PIMS PMBR PRINTSRV PROCACT PROCESS<br />

PROPCNTL PSFMPL PTKTDATA PTKTVAL RACFVARS RACGLIST<br />

RMTOPS RODMMGR ROLE RRSFDATA RVARSMBR SCDMBR<br />

SCICSTST SDSF SECLMBR SERVAUTH SERVER SFSCMD<br />

SIMS SMESSAGE SOMDOBJS STARTED STORCLAS SUBSYSNM<br />

SURROGAT SYSMVIEW TAPEVOL TCICSTRN TEMPDSN<br />

TERMINAL TIMS TMEADMIN TSOAUTH TSOPROC UNIXMAP<br />

UNIXPRIV VMBATCH VMBR VMCMD VMMAC VMMDISK VMNODE<br />

VMP<strong>OS</strong>IX VMRDR VMSEGMT VTAMAPPL VXMBR WRITER<br />

XFACILIT<br />

Figure 9-8 RACF GENERIC COMMAND CLASSES<br />

Figure 9-8 shows you the RACF GENLIST, GLOBAL CHECKING and the settings of the<br />

RACLIST classes.<br />

GENLIST CLASSES = NONE<br />

GLOBAL CHECKING CLASSES = O2OMPE<br />

SETR RACLIST CLASSES = ACCTNUM APPCPORT APPCSERV APPCTP APPL CBIND CDT<br />

CSFKEYS CSFSERV DIGTCERT DIGTRING FACILITY FIELD<br />

ILMADMIN JESSPOOL NETCMDS NODES OPERCMDS O2OMPE<br />

PRINTSRV PTKTDATA PTKTVAL RACFVARS RRSFDATA SDSF<br />

SERVAUTH SERVER STARTED SURROGAT SYSMVIEW TSOAUTH<br />

TSOPROC UNIXPRIV VTAMAPPL WRITER XFACILIT<br />

Figure 9-9 RACF RACLIST CLASSES<br />

344 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In Figure 9-10 you can see that the tape data set protection is active (TAPEDSN) and that the<br />

high-level qualifier PASSWORD will be added to each single-level qualifier data set that is<br />

used on this system.<br />

GLOBAL=YES RACLIST ONLY = NONE<br />

AUTOMATIC DATASET PROTECTION IS NOT IN EFFECT<br />

ENHANCED GENERIC NAMING IS IN EFFECT<br />

REAL DATA SET NAMES OPTION IS INACTIVE<br />

JES-BATCHALLRACF OPTION IS INACTIVE<br />

JES-XBMALLRACF OPTION IS INACTIVE<br />

JES-EARLYVERIFY OPTION IS ACTIVE<br />

PROTECT-ALL OPTION IS NOT IN EFFECT<br />

TAPE DATA SET PROTECTION IS ACTIVE<br />

SECURITY RETENTION PERIOD IN EFFECT IS 9999 DAYS.<br />

ERASE-ON-SCRATCH IS INACTIVE<br />

SINGLE LEVEL NAME PREFIX IS PASSWORD<br />

LIST OF GROUPS ACCESS CHECKING IS ACTIVE.<br />

INACTIVE USERIDS ARE NOT BEING AUTOMATICALLY REVOKED.<br />

NO DATA SET MODELLING BEING DONE.<br />

PASSWORD PROCESSING OPTIONS:<br />

PASSWORD CHANGE INTERVAL IS 180 DAYS.<br />

PASSWORD MINIMUM CHANGE INTERVAL IS 0 DAYS.<br />

MIXED CASE PASSWORD SUPPORT IS NOT IN EFFECT<br />

NO PASSWORD HISTORY BEING MAINTAINED.<br />

USERIDS NOT BEING AUTOMATICALLY REVOKED.<br />

NO PASSWORD EXPIRATION WARNING MESSAGES WILL BE ISSUED.<br />

NO INSTALLATION PASSWORD SYNTAX RULES ARE PRESENT.<br />

DEFAULT RVARY PASSWORD IS IN EFFECT FOR THE SWITCH FUNCTION.<br />

DEFAULT RVARY PASSWORD IS IN EFFECT FOR THE STATUS FUNCTION.<br />

SECLABEL CONTROL IS NOT IN EFFECT<br />

GENERIC OWNER ONLY IS IN EFFECT<br />

COMPATIBILITY MODE IS NOT IN EFFECT<br />

MULTI-LEVEL QUIET IS NOT IN EFFECT<br />

MULTI-LEVEL STABLE IS NOT IN EFFECT<br />

NO WRITE-DOWN IS NOT IN EFFECT<br />

MULTI-LEVEL ACTIVE IS NOT IN EFFECT<br />

CATALOGUED DATA SETS ONLY, IS NOT IN EFFECT<br />

USER-ID FOR JES NJEUSERID IS : ????????<br />

USER-ID FOR JES UNDEFINEDUSER IS : ++++++++<br />

PARTNER LU-VERIFICATION SESSIONKEY INTERVAL DEFAULT IS "NEVER EXPIRES".<br />

ADDCREATOR IS NOT IN EFFECT<br />

KERBLVL = 1<br />

MULTI-LEVEL FILE SYSTEM IS NOT IN EFFECT<br />

MULTI-LEVEL INTERPROCESS COMMUNICATIONS IS NOT IN EFFECT<br />

MULTI-LEVEL NAME HIDING IS IN EFFECT<br />

SECURITY LABEL BY SYSTEM IS NOT IN EFFECT<br />

PRIMARY LANGUAGE DEFAULT : ENU<br />

SECONDARY LANGUAGE DEFAULT : ENU<br />

Figure 9-10 Other RACF-related information<br />

Chapter 9. Tape security 345


In our example above you can see that the RACF TAPEVOL class is active and TAPE DATA<br />

SET PROTECTION is set so we deactivate both functions using the RACF commands, as<br />

shown in Example 9-5.<br />

Example 9-5 Deactivate the RACF TAPEVOL class and TAPE DATA SET PROTECTION<br />

//MHLRES5C JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

//*<br />

//* *******************************************************************<br />

//* * TESTING Tape Data Set Authorization *<br />

//* *******************************************************************<br />

//DELETE EXEC PGM=IKJEFT01<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETROPTS NOCLASSACT(TAPEVOL)<br />

SETROPTS NOTAPEDSN<br />

SETR REFRESH GENERIC(TAPEVOL)<br />

/*<br />

9.3.2 Check and modify your <strong>DFSMS</strong>hsm settings<br />

Check your <strong>DFSMS</strong>hsm settings and switch off the TAPESECURITY if this option is set.<br />

Figure 9-11 shows you a sample ARCCMDxx PARMLIB member where you can see that the<br />

SETSYS TAPESECURITY(RACF) option is used.<br />

...<br />

/*****************************************************************/<br />

/* <strong>DFSMS</strong>HSM RACF SPECIFICATIONS */<br />

/*****************************************************************/<br />

/* */<br />

SETSYS /* DO NOT PUT RACF-INDICATION */ -<br />

NORACFIND /* ON BACKUP AND MIGRATION */<br />

/* COPIES OF DATA SETS. */<br />

SETSYS /* USE RACF TO PROVIDE TAPE SECURITY */ -<br />

TAPESECURITY(RACF EXPIRATIONINCLUDE) /* USE 99365 EXPDT */<br />

SETSYS /* DO NOT ALLOW ERASE-ON-SCRATCH */ -<br />

NOERASEONSCRATCH /* ON ANY <strong>DFSMS</strong>HSM BACKUP */<br />

/* VERSIONS AND MIGRATION COPIES */<br />

SETSYS /* BACKUP DISCRETE RACF PROFILES */ -<br />

PROFILEBACKUP<br />

/* */<br />

...<br />

Figure 9-11 Sample <strong>DFSMS</strong>hsm PARMLIB member<br />

The use of the TAPESECURITY(RACF) means that <strong>DFSMS</strong>hsm protects each backup,<br />

migration, and dump tape with RACF. <strong>DFSMS</strong>hsm also protects alternate backup and<br />

migration tapes generated as a result of TAPECOPY processing. The RACF subparameter<br />

does not support backup or migration of password-protected data sets.<br />

346 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Note: The RACF option of the SETSYS TAPESECURITY command directs <strong>DFSMS</strong>hsm<br />

to automatically add RACF protection to scratch tapes.<br />

If the TAPESECURITY is set to RACF, change your ARCCMDxx PARMLIB member, as<br />

shown in Figure 9-12, to remove the RACF setting. Restart your <strong>DFSMS</strong>hsm so that the new<br />

setting is used.<br />

...<br />

/*****************************************************************/<br />

/* <strong>DFSMS</strong>HSM RACF SPECIFICATIONS */<br />

/*****************************************************************/<br />

/* */<br />

SETSYS /* DO NOT PUT RACF-INDICATION */ -<br />

NORACFIND /* ON BACKUP AND MIGRATION */<br />

/* COPIES OF DATA SETS. */<br />

SETSYS /* USE 99365 TO WIRTE AN EXPDT */ -<br />

TAPESECURITY(EXPIRATIONINCLUDE) /* TO EACH TAPE */<br />

SETSYS /* DO NOT ALLOW ERASE-ON-SCRATCH */ -<br />

NOERASEONSCRATCH /* ON ANY <strong>DFSMS</strong>HSM BACKUP */<br />

/* VERSIONS AND MIGRATION COPIES */<br />

SETSYS /* BACKUP DISCRETE RACF PROFILES */ -<br />

PROFILEBACKUP<br />

/* */<br />

...<br />

Figure 9-12 Sample <strong>DFSMS</strong>hsm PARMLIB member with RACF setting<br />

Note: You must re-start you <strong>DFSMS</strong>hsm, because there is no SETSYS command<br />

available to switch off the RACF setting.<br />

9.3.3 Clean up your TAPEVOL profiles using <strong>DFSMS</strong>rmm settings<br />

Modify your <strong>DFSMS</strong>rmm settings in EDGRMMxx if you have specified that <strong>DFSMS</strong>rmm<br />

maintains the security profiles that protect tape volumes specified in the TPRACF OPTION<br />

operand.<br />

TPRACF<br />

Check the type of RACF tape support that you have selected. If you have specified<br />

TPRACF(AUTOMATIC) or TPRACF(PREDEFINED) you should now change this setting to<br />

one of the following:<br />

TPRACF(CLEANUP) <strong>DFSMS</strong>rmm ensures that TAPEVOL profiles and discrete tape<br />

DATASET profiles are deleted during recycling of scratch volumes<br />

and existing TAPEVOL profiles are deleted when volumes are<br />

deleted from the <strong>DFSMS</strong>rmm CDS. When you use this option,<br />

<strong>DFSMS</strong>rmm never creates any RACF profiles for you. This<br />

processing is only provided for VLPOOLs with RACF(Y).<br />

TPRACF(CLEANUP) is intended to be used when you are changing<br />

how tape data sets are protected. For example, if you no longer wish<br />

Chapter 9. Tape security 347


to use TAPEVOL profiles and are enabling the use of DATASET<br />

profiles, TPRACF(CLEANUP) can be used for this occasion. When<br />

you specify TPRACF(CLEANUP), <strong>DFSMS</strong>rmm deletes RACF tape<br />

profiles for any volumes in your installation based on the following<br />

VLPOOL values:<br />

VLPOOL RACF(N), <strong>DFSMS</strong>rmm does no processing of tape<br />

profiles for volumes in the pool at any time.<br />

VLPOOL RACF(Y), RACF tape profiles are deleted when<br />

RMM CHANGEVOLUME or DELETEVOLUME subcommands<br />

are issued. <strong>DFSMS</strong>rmm deletes TAPEVOL and discrete tape<br />

data set profiles during recycling of scratch tapes if the profiles<br />

exist.<br />

TPRACF(NONE) <strong>DFSMS</strong>rmm do not manipulate an TAPEVOL profile in any<br />

circumstances.<br />

Example 9-6 shows out the update to your EDGRMMxx PARMLIB member OPTION<br />

command if you would like <strong>DFSMS</strong>rmm to clean up your security TAPEVOL profiles.<br />

Example 9-6 <strong>Update</strong> the OPTION command<br />

OPTION OPMODE(R) /* Record-Only Mode */ -<br />

ACCOUNTING(J) /* Accounting from JOB */ -<br />

BACKUPPROC(EDGBKUP) /* Name of BACKUP-proc */ -<br />

BLP(RMM) /* <strong>DFSMS</strong>rmm controls BLP */ -<br />

CATRETPD(0012) /* catalog retention */ -<br />

CATSYSID(*) /* all catalogs shared */ -<br />

CDSID(PROD) /* control data set id */ -<br />

COMMANDAUTH(OWNER) /* type of authorization */ -<br />

DATEFORM(J) /* Date format */ -<br />

DISPDDNAME(LOANDD) /* DISP ctrl DD card */ -<br />

DISPMSGID(EDG4054I) /* DISP message number */ -<br />

DSNAME(RMM.PROD.CDS) /* CDS data set name */ -<br />

IPLDATE(N) /* IPL date checking */ -<br />

JRNLNAME(RMM.PROD.JRNL) /* JRNL data set name */ -<br />

JOURNALFULL(75) /* Percentage JRNL full */ -<br />

LINECOUNT(054) /* Lines per page */ -<br />

MASTEROVERWRITE(LAST) /* Overwriting of a vol */ -<br />

MAXHOLD(100) /* Number of I/O oper. */ -<br />

MAXRETPD(NOLIMIT) /* Maximum retention */ -<br />

MEDIANAME(3480) /* spec. how to move vols */ -<br />

MOVEBY(VOLUME) /* spec. how to move vols */ -<br />

MSG(M) /* case for message txt */ -<br />

NOTIFY(Y) /* Notify volume owners */ -<br />

PDA(OFF) /* PDA is disabled */ -<br />

PDABLKCT(255) /* number of blocks */ -<br />

PDABLKSZ(31) /* blocksize in K */ -<br />

PDALOG(OFF) /* PDA output disabled */ -<br />

PREACS(NO) /* Disable EDGUX100 ACS pr. */ -<br />

RETAINBY(VOLUME) /* spec. how to retain vols */ -<br />

RETPD(0005) /* Default retention */ -<br />

REUSEBIN(STARTMOVE) /* reuse BIN as soon as pos.*/ -<br />

SCRATCHPROC(EDGXPROC) /* ATL/MTL procedure */ -<br />

SMFAUD(248) /* SMF audit records */ -<br />

SMFSEC(249) /* SMF security records */ -<br />

SMSACS(YES) /* enable MV ACS processing */ -<br />

348 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SMSTAPE(UPDATE(EXITS,SCRATCH,COMMAND),PURGE(YES)) ATL*/ -<br />

SYSID(EGZB) /* Name of the system */ -<br />

TPRACF(CLEANUP) /* RACF tape support */ -<br />

TVEXTPURGE(EXPIRE) /* set an expiration date */ -<br />

UNCATALOG(N) /* Catalog support */ -<br />

VRSCHANGE(INFO) /* No additional action */ -<br />

VRSEL(NEW) /* New VRS processing */ -<br />

VRSJOBNAME(2) /* DATASETNAME/JOBNAME */ -<br />

VRSMIN(0000000100,WARN) /* Warn if < 100 VRSs */<br />

Example 9-7 shows you the correct setting of the of the VLPOOL command in the<br />

EDGRMMnn PARMLIB member.<br />

Example 9-7 <strong>Update</strong> the VLPOOL command<br />

VLPOOL PREFIX(TST*) -<br />

TYPE(S) -<br />

DESCRIPTION('LOGISCHE VTS VOLUMES ') -<br />

MEDIANAME(3490) -<br />

RACF(Y) -<br />

EXPDTCHECK(N) /* NOT TO CHECK OR VALIDATE */<br />

VLPOOL PREFIX(E*) -<br />

TYPE(S) -<br />

DESCRIPTION('Enhanced 3590 cartridges ') -<br />

MEDIANAME(3490) -<br />

RACF(Y) -<br />

EXPDTCHECK(N) /* NOT TO CHECK OR VALIDATE */<br />

VLPOOL PREFIX(M*) -<br />

TYPE(S) -<br />

DESCRIPTION('MEDIA5 cartridges ') -<br />

MEDIANAME(3490) -<br />

RACF(Y) -<br />

EXPDTCHECK(N) /* NOT TO CHECK OR VALIDATE */<br />

Where RACF(Y) specifies that you want <strong>DFSMS</strong>rmm to delete RACF tape profiles for the<br />

volumes in the pool.<br />

9.3.4 Clean up your TAPEVOL profiles using commands<br />

If you would like to clean up your security server directly you can use the TSO RMM<br />

SEACHVOLUME subcommand with the CLIST operand to create RACF delete TAPEVOL<br />

commands. After you have checked the commands you can execute them and delete all your<br />

existing TAPEVOL profiles directly. Example 9-8 shows you sample JCL to create the<br />

RDELETE statements.<br />

Example 9-8 Create RACF RDELETE commands<br />

//LCLRDEL JOB ,RMM,NOTIFY=&SYSUID,<br />

// MSGCLASS=H,CLASS=0,MSGLEVEL=(1,1),REGION=0M<br />

//CLEANUP DD PGM=IDCAMS<br />

//SYSPRINT DD DUMMY<br />

//SYSIN DD *<br />

DELETE RMM.DELETE.RACF.TAPEVOL.TST NONVSAM PURGE<br />

/*<br />

//LCLSVSM EXEC PGM=IKJEFT01,DYNAMNBR=99<br />

//SYSTSPRT DD SYSOUT=*<br />

//RMMCLIST DD DISP=(,CATLG),DSN=RMM.DELETE.RACF.TAPEVOL.TST,<br />

// SPACE=(TRK,(45,45),RLSE),LRECL=80,RECFM=FB,<br />

Chapter 9. Tape security 349


UNIT=SYSDA<br />

//SYSTSIN DD *<br />

RMM SV VOLUME(TST*) LIMIT(*) OWNER(*) -<br />

CLIST('RDELETE TAPEVOL ','')<br />

/*<br />

//<br />

Where:<br />

► RMMCLIST DD<br />

The RMM TSO SEARCH subcommands with the CLIST operand is writing to this data set<br />

to store the commands.<br />

► CLIST(prefix_string,suffix_string)<br />

Specifies a CLIST to create a data set of executable commands or to prepare an import<br />

list. You can edit the data set to remove any volumes that you do not want in the list. Then<br />

you can run the CLIST at your convenience.<br />

<strong>DFSMS</strong>rmm returns the volume serial number for each record if you do not specify<br />

(prefix_string and suffix_string). When the volume serial number contains special<br />

characters the value is returned within quotation marks.<br />

You can add RMM TSO subcommands and operands to the records in the CLIST data set<br />

by specifying (prefix_string and suffix_string). These text strings cannot exceed 255<br />

characters. Separate the prefix_string and suffix_string using a blank or a comma<br />

between the text strings. Insert blanks in the prefix and suffix values to prevent<br />

<strong>DFSMS</strong>rmm from concatenating the strings with the data that <strong>DFSMS</strong>rmm returns. To<br />

enter a null prefix_string, add a pair of separator characters such as ’’ to the text string (for<br />

example, CLIST(’’,’ suffix_string’)).<br />

Figure 9-13 shows you how the RACF commands are created using the job above.<br />

RDELETE TAPEVOL TST000<br />

RDELETE TAPEVOL TST001<br />

RDELETE TAPEVOL TST002<br />

RDELETE TAPEVOL TST003<br />

RDELETE TAPEVOL TST004<br />

RDELETE TAPEVOL TST005<br />

RDELETE TAPEVOL TST006<br />

RDELETE TAPEVOL TST007<br />

RDELETE TAPEVOL TST008<br />

RDELETE TAPEVOL TST009<br />

RDELETE TAPEVOL TST010<br />

RDELETE TAPEVOL TST011<br />

RDELETE TAPEVOL TST012<br />

RDELETE TAPEVOL TST013<br />

RDELETE TAPEVOL TST014<br />

RDELETE TAPEVOL TST015<br />

RDELETE TAPEVOL TST016<br />

RDELETE TAPEVOL TST017<br />

RDELETE TAPEVOL TST018<br />

RDELETE TAPEVOL TST019<br />

RDELETE TAPEVOL TST020<br />

RDELETE TAPEVOL TST021<br />

RDELETE TAPEVOL TST022<br />

Figure 9-13 Sample RACF RDELETE commands<br />

350 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


After you have checked the commands you can execute them using the JCL shown in<br />

Example 9-9.<br />

Example 9-9 Execute RACF RDELETE commands<br />

9.4 Error messages<br />

//LCLRDEL JOB ,RMM,NOTIFY=&SYSUID,<br />

// MSGCLASS=H,CLASS=0,MSGLEVEL=(1,1),REGION=0M<br />

//EXECUTE EXEC PGM=IKJEFT01,DYNAMNBR=99<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

EX 'RMM.DELETE.RACF.TAPEVOL.TST'<br />

/*<br />

//<br />

Until the TAPEVOL profiles are deleted you may see some security violations and you should<br />

check your system log from time to time for messages.<br />

Figure 9-14 shows message IEC150I, which is generated if you do not have the correct<br />

access to create a given data set.<br />

JOB22272 IEC150I 913-60,IFG0196T,GENER99,STEP01,SYSUT2,0B91,TST026,DTAUS<br />

JOB22272 IEA995I SYMPTOM DUMP OUTPUT 928<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=20.17.17 SEQ=02226 CPU=0000 ASID=002A<br />

PSW AT TIME OF ERROR 075C1000 80C49CBE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C49CB8 - 41003B7A 0A0D41F0 38BE56F0<br />

GR 0: 00000000_00C49F84 1: 00000000_A4913000<br />

2: 00000000_000097F4 3: 00000000_00C4940A<br />

4: 00000000_007DD1F8 5: 00000000_007DD58C<br />

6: 00000000_007DD534 7: 00000000_007DD58C<br />

8: 00000000_007DD554 9: 00000000_007C71A8<br />

A: 00000000_007DBCE0 B: 00000000_00C4CB04<br />

C: 00000000_80C4CBE4 D: 00000000_007DD4B8<br />

E: 00000000_80C49542 F: 00000010_00000060<br />

END OF SYMPTOM DUMP<br />

JOB22272 IEF450I GENER99 STEP01 - ABEND=S913 U0000 REASON=00000060 929<br />

Figure 9-14 IEC150I message<br />

You get the message:<br />

IEC150I 913-rc,mod,jjj,sss, ddname[-#],dev,ser,dsname(member)<br />

Where:<br />

rc Associates this message with system completion code 913 and with<br />

the return code.<br />

jjj The job name.<br />

sss The step name.<br />

ddname[-#] DDname (followed by a concatenation number if it is part of a<br />

concatenation and not the first DD statement in the concatenation).<br />

Chapter 9. Tape security 351


dev The device number.<br />

ser The volume serial number.<br />

mod The name of the module in which the error occurred.<br />

dsname(member) The data set name. Member name if specified. The explanation for the<br />

hex return code is as follows: For RACF errors, see message<br />

IDC3009I for the return code.<br />

Severity Information.<br />

Explanation The error occurred during 1) the processing of an OPEN macro<br />

instruction or during end-of-volume for a password-protected data set<br />

after the operator attempted to enter a password in response to<br />

message IEC301A, or 2) the processing of an OPEN macro instruction<br />

involving a checkpoint data set. A VSAM data set is being opened with<br />

a DCB instead of an ACB.<br />

The explanation for the hex return code is as follows: For RACF errors, see message<br />

IDC3009I for the return code.<br />

Return code Explanation<br />

60 One of the following occurred:<br />

The user is not authorized to define a data set with the<br />

specified name. The specified data set name and file sequence<br />

indicator do not match the corresponding names in the Tape<br />

Volume Table of Contents (TVTOC).<br />

The user is not authorized to access this data set.<br />

Attention: In this case the volumes gets the volume error status of SECURITY CONFLICT<br />

in the VOLCAT and is protected for future use until you have reset this situation, if the<br />

volume is SMS managed:<br />

LINE VOLUME USE VOLUME CHECKPT LIBRARY STORAGE<br />

OPERATOR SERIAL ATTR ERROR STATUS VOLUME NAME GRP NAME<br />

---(1)---- -(2)-- --(3)-- -------(4)-------- --(5)-- --(6)--- --(7)---<br />

TST020 SCRATCH SECURITY CONFLICT NO LIB1 *SCRTCH*<br />

---------- ------ ----------- BOTTOM OF DATA ----------- ------ ----<br />

352 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Figure 9-15 shows you an ICH408I message you get now for tapes. You currently get this<br />

message for data sets residing on DASD volumes if you do not have the correct access to the<br />

specified security resource in RACF facility class.<br />

JOB22265 IEF233A M 0B91,PRIVAT,SL,GENER99,STEP01,MHLRES1.TESTSTAC.TESTYF01<br />

JOB22265 ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI) 781<br />

MHLRES1.TESTSTAC.TESTYF01 CL(DATASET ) VOL(TST020)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

JOB22265 IEC518I SOFTWARE ERRSTAT: RACFPROT 0B91,TST020,SL,GENER99,STEP01<br />

JOB22265 IEC502E RK 0B91,TST020,SL,GENER99,STEP01<br />

JOB22265 IEC150I 913-38,IFG0194F,GENER99,STEP01,SYSUT2,0B91,,MHLRES1.TESTSTAC.T<br />

JOB22265 IEA995I SYMPTOM DUMP OUTPUT 785<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=19.54.16 SEQ=02221 CPU=0000 ASID=002A<br />

PSW AT TIME OF ERROR 075C1000 80C49CBE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C49CB8 - 41003B7A 0A0D41F0 38BE56F0<br />

GR 0: 00000000_00C49F84 1: 00000000_A4913000<br />

2: 00000000_000097F4 3: 00000000_00C4940A<br />

4: 00000000_007C51F8 5: 00000000_007C558C<br />

6: 00000000_007C5534 7: 00000000_007C558C<br />

8: 00000000_007C5554 9: 00000000_007C3040<br />

A: 00000000_007DBCE0 B: 00000000_00C4CB04<br />

C: 00000000_80C4CBE4 D: 00000000_007C54B8<br />

E: 00000000_80C49542 F: 00000010_00000038<br />

END OF SYMPTOM DUMP<br />

JOB22265 IEF450I GENER99 STEP01 - ABEND=S913 U0000 REASON=00000038 786<br />

TIME=19.54.16<br />

JOB22265 - --TIMINGS (MINS.)--<br />

JOB22265 -JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV<br />

JOB22265 -GENER99 STEP01 *S913 51 .00 .00 .56 362<br />

. . . . . . . . . . . . . . . . . . . . . . . . . .<br />

Figure 9-15 Normal ICH408I security violation<br />

Note: If the volume is an SMS managed volume the status of the volume is not changed in<br />

the VOLCAT and the volume can be continually accessed.<br />

9.5 Testing various security settings<br />

The following jobs give you an overview of how the different tape security settings work and<br />

the error messages that you get if your job abends. Table 9-2 shows you the different settings<br />

that we tested.<br />

Table 9-2 Different RACF, DEVSUP, and <strong>DFSMS</strong>rmm settings<br />

Test<br />

case/<br />

success<br />

RACF settings TAPEAUTH settings in the DEVSUPnn <strong>DFSMS</strong>rmm 2<br />

TAPEVOL TAPEDSN THM00n 4 MHLRES1.** MHLRES7.** DSN F1 RC4 RC8 TPRACF RACF<br />

All test cases between 1 and 19 are without the use of the new TAPEAUTH settings in the DEVSUPnn member.<br />

Create two new data sets on a tape volume, but at this time there are no DEVSUP settings.<br />

Chapter 9. Tape security 353


Test<br />

case/<br />

success<br />

1 � ACTIVE ACTIVE N/A 1 ALTER ALTER N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

Read the previously created data sets with different RACF settings and different access to the DATASET and TAPEVOL profile.<br />

2 � ACTIVE ACTIVE ALTER ALTER ALTER N/A 1<br />

3 � ACTIVE ACTIVE ALTER NONE ALTER N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

4 � ACTIVE ACTIVE NONE ALTER ALTER N/A 1<br />

5 � ACTIVE ACTIVE NONE NONE ALTER N/A 1<br />

354 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A ¹ N/A 1<br />

6 � N/A 1 ACTIVE N/A 1 ALTER ALTER N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

7 � N/A 1<br />

8 � N/A 1<br />

ACTIVE N/A 1<br />

N/A 1<br />

N/A 1<br />

NONE ALTER N/A 1<br />

ALTER ALTER N/A 1<br />

9 � N/A 1 N/A 1 N/A 1 ALTER NONE N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

Create an additional file to the previously created two tape data sets with different RACF settings.<br />

10 � ACTIVE ACTIVE ALTER ALTER ALTER N/A 1<br />

11 � ACTIVE ACTIVE ALTER ALTER NONE N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

12 � ACTIVE N/A 1<br />

13 � ACTIVE N/A 1<br />

ALTER ALTER ALTER N/A 1<br />

ALTER ALTER NONE N/A 1<br />

14 � N/A 1 ACTIVE ALTER ALTER ALTER N/A 1 N/A 1 N/A 1 N/A 1 A 3 Y<br />

15 � N/A 1<br />

ACTIVE ALTER ALTER NONE N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

Read the previously created data sets, but at this time the <strong>DFSMS</strong>rmm RACF support is switched off.<br />

16 � ACTIVE ACTIVE ALTER ALTER ALTER N/A 1 N/A 1 N/A 1 N/A 1 N N<br />

17 � ACTIVE ACTIVE ALTER ALTER NONE N/A 1<br />

18 � N/A 1<br />

ACTIVE N/A 1<br />

ALTER ALTER N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

A 3<br />

Y<br />

Y<br />

Y<br />

Y<br />

Y<br />

Y<br />

Y<br />

Y<br />

Y<br />

N N<br />

N N<br />

19 � N/A 1 ACTIVE N/A 1 NONE ALTER N/A 1 N/A 1 N/A 1 N/A 1 N N<br />

All test cases below are now tested with the new TAPEAUTH settings in the DEVSUPnn member, the RACF CLASS TAPEVOL is not<br />

active, and option TAPEDSN is inactive.<br />

Create two new data sets on a tape volume, but at this time RACF TAPEVOL and TAPEDSN are inactive and the <strong>DFSMS</strong>rmm RACF<br />

support is switched off.<br />

20 � N/A 1<br />

N/A 1<br />

N/A 1<br />

ALTER ALTER YES YES FAIL Fail N N<br />

Read the previously created data sets with different RACF access to MHLRES1.** and MHLRES7.**.<br />

21 � N/A 1 N/A 1 N/A 1 ALTER ALTER YES YES FAIL FAIL N N<br />

22 � N/A 1<br />

23 � N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

NONE ALTER YES YES FAIL FAIL N N<br />

ALTER NONE YES YES FAIL FAIL N N<br />

24 � N/A 1 N/A 1 N/A 1 NONE NONE YES YES FAIL FAIL N N<br />

Create an additional file, MHLRES7.RACF.TEST2.FILEn, with different RACF access to MHLRES1.** and MHLRES5.**.<br />

25 � N/A 1<br />

N/A 1<br />

N/A 1<br />

ALTER ALTER YES YES FAIL FAIL N N<br />

26 � N/A 1 N/A 1 N/A 1 NONE ALTER YES YES FAIL FAIL N N<br />

27 � N/A 1<br />

28 � N/A 1<br />

N/A 1<br />

N/A 1<br />

RACF settings TAPEAUTH settings in the DEVSUPnn <strong>DFSMS</strong>rmm 2<br />

TAPEVOL TAPEDSN THM00n 4 MHLRES1.** MHLRES7.** DSN F1 RC4 RC8 TPRACF RACF<br />

N/A 1<br />

N/A 1<br />

ALTER NONE YES YES FAIL FAIL N N<br />

NONE NONE YES YES FAIL FAIL N N<br />

Read the previously created data sets with different RACF access to MHLRES1.** and MHLRES7.**.


Test<br />

case/<br />

success<br />

9.5.1 Test case 1<br />

29 � N/A 1 N/A 1 N/A 1 ALTER ALTER YES NO FAIL FAIL N N<br />

30 � N/A 1<br />

31 � N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

N/A 1<br />

In test case 1:<br />

Function Create two new tape sets on a volume in status scratch. Program<br />

IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors and <strong>DFSMS</strong>rmm has created a new<br />

RACF TAPEVOL profile for volume THM001, and the user MHLRES5<br />

has ALTER access to it.<br />

Example 9-10 shows you the JCL and the settings that we used to create the two data sets.<br />

Example 9-10 Sample JCL used for test case 1<br />

NONE ALTER YES NO FAIL FAIL N N<br />

ALTER NONE YES NO FAIL FAIL N N<br />

32 � N/A 1 N/A 1 N/A 1 NONE NONE YES NO FAIL FAIL N N<br />

Create an additional file, MHLRES1.RACF.TEST2.FILEn, with different RACF access to MHLRES1.** and MHLRES5.*.<br />

33 � N/A 1<br />

N/A 1<br />

N/A 1<br />

ALTER ALTER YES NO FAIL FAIL N N<br />

34 � N/A 1 N/A 1 N/A 1 NONE ALTER YES NO FAIL FAIL N N<br />

35 � N/A 1<br />

36 � N/A 1<br />

N/A 1<br />

N/A 1<br />

RACF settings TAPEAUTH settings in the DEVSUPnn <strong>DFSMS</strong>rmm 2<br />

TAPEVOL TAPEDSN THM00n 4 MHLRES1.** MHLRES7.** DSN F1 RC4 RC8 TPRACF RACF<br />

N/A 1<br />

N/A 1<br />

ALTER NONE YES NO FAIL FAIL N N<br />

NONE NONE YES NO FAIL FAIL N N<br />

1 N/A means that this function is not activated at this time or that no TAPEVOL profile exists.<br />

2 The <strong>DFSMS</strong>rmm settings are stored in the current active <strong>DFSMS</strong>rmm EDGRMMnn PARMLIB member.<br />

In this table we show only the tape security related to <strong>DFSMS</strong>rmm operands that we modified for our test cases.<br />

TPRACF is an operand of the OPTION command and RACF is an option of the VLPOOL command.<br />

3 “A” is the abbreviation of the TPRACF(AUTOMATIC) processing.<br />

4 THM001 is the TAPEVOL profile protecting the volume that we used to create the two data sets for test cases 1 to 19.<br />

//RACFTS01 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//* ****************************************************************<br />

//* * /F DFRMM,M=R2 *<br />

//* ****************************************************************<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

Chapter 9. Tape security 355


* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES1.RACF.TEST1.FILE1 NONVSAM N<strong>OS</strong>CRATCH<br />

DELETE MHLRES7.RACF.TEST1.FILE2 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD DISP=(,CATLG),DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,99),<br />

// UNIT=ATL3<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP1 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(02,SL),DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=(,RETAIN,,REF=*.STEP01.SYSUT2)<br />

//SYSIN DD DUMMY<br />

Example 9-11 shows you the most important results of the RACF commands.<br />

Example 9-11 RACF command results of test case 1<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

356 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES5.**') ALL<br />

INFORMATION FOR DATASET MHLRES5.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES5 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

Chapter 9. Tape security 357


9.5.2 Test case 2<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 2:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because the user has ALTER<br />

access to the TAPEVOL profile and to the two profiles in class<br />

DATASET.<br />

Example 9-12 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-12 Sample JCL used for test 2<br />

//RACFTS02 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACC(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

358 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF03)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-13 shows you the most important results of the RACF commands.<br />

Example 9-13 RACF commands result of test case 2<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

MHLRES5 ALTER 000000<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

Chapter 9. Tape security 359


9.5.3 Test case 3<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 3:<br />

Function Read the two previously created tape sets, but in this case the user<br />

has no access to the first data set. Program IEBGENER is used to<br />

read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because the user has ALTER<br />

access to the TAPEVOL profile and to the second data set. This is<br />

only possible because after RACF has checked the access to the data<br />

set profile it checks the access to the TAPEVOL profile. If one of two<br />

checks ended with a return code zero, the access is allowed.<br />

Example 9-14 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-14 Sample JCL used for test 3<br />

//RACFTS03 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

360 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACC(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF04)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Chapter 9. Tape security 361


Example 9-15 shows the most important results of the RACF commands.<br />

Example 9-15 RACF commands result of case 3<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

MHLRES5 ALTER 000000<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

362 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.4 Test case 4<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 4:<br />

Function Read the two previously created tape sets, but in this case the user<br />

has no access to the TAPEVOL profile. Program IEBGENER is used<br />

to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because the user has ALTER<br />

access to the data set profiles and there is no check for the access to<br />

the TAPEVOL profile.<br />

Example 9-16 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-16 Sample JCL used for test 4<br />

//RACFTS04 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(NONE)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(NONE)<br />

Chapter 9. Tape security 363


SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF05)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-17 shows you the most important results of the RACF commands.<br />

Example 9-17 RACF commands of test case 4<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE NONE NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

MHLRES5 NONE 000000<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

364 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.5 Test case 5<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 5:<br />

Function Read the two previously created tape sets, but in this case the user<br />

has no access to the TAPEVOL profile and no access to the first file.<br />

Program IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result In this case we get a security violation for the first data set because we<br />

have no access to the data set profile nor to the TAPEVOL profile. The<br />

second data set can be read without any errors.<br />

Example 9-16 on page 363 shows you the JCL and the settings that we used to read the two<br />

data sets.<br />

Example 9-18 Sample JCL used for test 5<br />

//RACFTS05 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

Chapter 9. Tape security 365


*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(NONE)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(NONE)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF06)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

366 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Example 9-19 shows the most important results of the RACF commands.<br />

Example 9-19 RACF commands of test case 5<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE NONE NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

MHLRES5 NONE 000000<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

Chapter 9. Tape security 367


9.5.6 Test case 6<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-20 you can see that we get a security violation for file<br />

one.<br />

Example 9-20 Test case 5 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

THM001 CL(TAPEVOL )<br />

INSUFFICIENT ACCESS AUTHORITY<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST1.FILE1 CL(DATASET ) VOL(THM001)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-60,IFG0194F,RACFTS05,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST1.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=18.11.17 SEQ=00982 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000060<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS05 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000060<br />

....<br />

For test case 6:<br />

Function Read the two previously created tape sets, but in this case the RACF<br />

CLASS TAPEVOL is inactive. Program IEBGENER is used to read the<br />

files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because the user has ALTER<br />

access to both data set profiles. The RACF TAPEVOL profile is not<br />

checked.<br />

368 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Example 9-21 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-21 Sample JCL used for test 6<br />

//RACFTS06 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 NO ACCESS<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) DELETE<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

Chapter 9. Tape security 369


SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF07)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-22 shows the most important results of the RACF commands.<br />

Example 9-22 RACF commands of test case 6<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR TAPEDSN<br />

WARNING: TAPEDSN OPTION ACTIVE, TAPEVOL CLASS IS NOT ACTIVE<br />

READY<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

370 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.7 Test case 7<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 7:<br />

Function Read the two previously created tape sets, but in this case the RACF<br />

CLASS TAPEVOL is inactive and the user has no access to the first<br />

data set. Program IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result In this case we get a security violation for the first data set because we<br />

have no access to the data set profile and the TAPEVOL profile is not<br />

checked because RACF CLASS TAPEVOL is inactive. The second<br />

data set can be read without any errors.<br />

Example 9-23 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-23 Sample JCL used for test 7<br />

//RACFTS07 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 NO ACCESS<br />

//* TAPEVOL INACTIVE<br />

Chapter 9. Tape security 371


* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF08)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-24 shows the most important results of the RACF commands.<br />

Example 9-24 RACF commands of test case 7<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR TAPEDSN<br />

WARNING: TAPEDSN OPTION ACTIVE, TAPEVOL CLASS IS NOT ACTIVE<br />

READY<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

372 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


---- ------ ------ -----<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

Chapter 9. Tape security 373


9.5.8 Test case 8<br />

In the output of the job in Example 9-25 you can see the security violation that we get for the<br />

first file, but in this case only for the data set profile.<br />

Example 9-25 Test case 7 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST1.FILE1 CL(DATASET ) VOL(THM001)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-60,IFG0194F,RACFTS07,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST1.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=18.13.50 SEQ=00983 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000060<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS07 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000060<br />

....<br />

For test case 8:<br />

Function Read the two previously created tape sets, but in this case both RACF<br />

CLASSES TAPEVOL and TAPEDSN are inactive. Program<br />

IEBGENER is used to read the files. In this case you have all needed<br />

RACF access, and the job ended without any errors, as expected.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because there are no security<br />

checks.<br />

Example 9-26 shows you the JCL and the settings that we used to read the two data sets.<br />

Example 9-26 Sample JCL used for test 8<br />

//RACFTS08 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

374 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN INACTIVE<br />

//* THM001 NO ACCESS<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF09)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-27 shows the most important results of the RACF commands.<br />

Example 9-27 RACF commands of test case 8<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR NOTAPEDSN<br />

RL TAPEVOL THM001 ALL<br />

Chapter 9. Tape security 375


CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

376 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.9 Test case 9<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-27 on page 375 you can see that there was no security<br />

violation.<br />

For test case 9:<br />

Function Read the two previously created tape sets. Both RACF CLASSES<br />

TAPEVOL and TAPEDSN are inactive and the user has no access to<br />

the data set profile that protects the second file. Program IEBGENER<br />

is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE1<br />

Result The job ended without any errors because there are no security<br />

checks.<br />

Example 9-28 shows the JCL and the settings that we used to read the two data sets.<br />

Example 9-28 Sample JCL used for test 9<br />

//RACFTS09 JOB (999,POK),MSGLEVEL=1,<br />

// NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(A)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 NO ACCESS<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN INACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ THE PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

RL TAPEVOL THM001 ALL<br />

Chapter 9. Tape security 377


PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF10)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-29 shows the most important results of the RACF commands.<br />

Example 9-29 RACF commands of test case 9<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR NOTAPEDSN<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000001<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

378 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.10 Test case 10<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 10:<br />

Function Create an additional third new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE3<br />

Result The job ended without any errors because we have ALTER access to<br />

the RACF TAPEVOL profile for volume THM001 and the user<br />

MHLRES5 has ALTER access to the data set profile.<br />

Example 9-30 shows you the JCL and the settings that we used to create the third data set.<br />

Example 9-30 Sample JCL used for test 10<br />

//RACFTS10 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

Chapter 9. Tape security 379


*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST1.FILE3<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE3 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(03,SL),DSN=MHLRES7.RACF.TEST1.FILE3,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF11)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

380 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Example 9-31 shows the most important results of the RACF commands.<br />

Example 9-31 RACF commands of test case 10<br />

RL TAPEVOL THM001<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

Chapter 9. Tape security 381


9.5.11 Test case 11<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 11:<br />

Function Create an additional fourth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE4<br />

Result In this case we get a security violation for the new fourth data set we<br />

would like to create because we have no access to the fourth data set<br />

profile.<br />

Example 9-32 shows you the JCL and the settings that we used to create the third data set.<br />

Example 9-32 Sample JCL used for test 11<br />

//RACFTS11 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SETS<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

382 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST1.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF12)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-33 shows the most important results of the RACF commands.<br />

Example 9-33 RACF commands of test case 11<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

Chapter 9. Tape security 383


SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-34 you can see that there was no security violation.<br />

Example 9-34 Test case 11 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST1.FILE4 CL(DATASET ) VOL(THM001)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-60,IFG0194F,RACFTS11,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST1.FILE4<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=08.00.54 SEQ=01017 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000060<br />

384 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.12 Test case 12<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS11 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000060<br />

....<br />

For test case 12:<br />

Function Repeat the creation of the additional fourth new tape sets on the<br />

previous used tape volume. Program IEBGENER is used to copy a<br />

member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE4<br />

Result The job ended without any errors because we have access to the<br />

RACF TAPEVOL profile for volume THM00, although the user<br />

MHLRES5 has ALTER access to the data set profile. This access is<br />

not checked because RACF class TAPEDSN is inactive.<br />

Example 9-35 shows you the JCL and the settings that we have to create the third data set.<br />

Example 9-35 Sample JCL used for test 12<br />

//RACFTS12 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN INACTIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE THM001CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

Chapter 9. Tape security 385


SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST1.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF13)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-36 shows the most important results of the RACF commands.<br />

Example 9-36 RACF commands of test case 12<br />

RL TAPEVOL THM001ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

386 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.13 Test case 13<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 13:<br />

Function Create an additional fifth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE4<br />

Result The job ended without any errors because the RACF option<br />

NOTAPEDSN class is being set and the user MHLRES5 has ALTER<br />

access to the TAPEVOL.<br />

Example 9-37 shows the JCL and the settings that we have to create the third data set.<br />

Example 9-37 Sample JCL used for test 13<br />

//RACFTS13 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

Chapter 9. Tape security 387


* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN INACTIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SETS<br />

//* MHLRES7.RACF.TEST1.FILE5<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE THM001CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE5 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(05,SL),DSN=MHLRES7.RACF.TEST1.FILE5,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF14)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-38 shows you the most important results of the RACF commands.<br />

Example 9-38 RACF commands of test case 13<br />

RL TAPEVOL THM001ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

388 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECU Example 9-39 on page 390 RITY LEVEL<br />

Chapter 9. Tape security 389


9.5.14 Test case 14<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 14:<br />

Function Create an additional sixth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE6<br />

Result The job ended without any errors because the user MHLRES5 has<br />

ALTER access to the data set profile and RACF class TAPEVOL is<br />

inactive.<br />

Example 9-39 shows you the JCL we used.<br />

Example 9-39 Sample JCL used for test 14<br />

//RACFTS14 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN ACTIVE<br />

//* THM001 ACC(ALTER)<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SETS<br />

//* MHLRES7.RACF.TEST1.FILE6<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

390 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE6 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(06,SL),DSN=MHLRES7.RACF.TEST1.FILE6,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF15)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-40 shows the most important results of the RACF commands.<br />

Example 9-40 RACF commands<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR TAPEDSN<br />

WARNING: TAPEDSN OPTION ACTIVE, TAPEVOL CLASS IS NOT ACTIVE<br />

RL TAPEVOL THM001ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

Chapter 9. Tape security 391


----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.15 Test case 15<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 15:<br />

Function Create an additional seventh new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

Data set names MHLRES7.RACF.TEST1.FILE7<br />

Result In this case we get a security violation for the new seventh data set<br />

that we would like to create because we have no access to the data<br />

set profile and the RACF CLASS TAPEVOL is inactive.<br />

Example 9-41 shows the JCL and the settings that we used to create the third data set.<br />

Example 9-41 Sample JCL used for test 15<br />

//RACFTS15 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(Y)<br />

//* RACF(Y)<br />

//*<br />

//*<br />

//* DEVSUP<br />

392 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SETS<br />

//* MHLRES7.RACF.TEST1.FILE7<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST1.FILE6 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(07,SL),DSN=MHLRES7.RACF.TEST1.FILE7,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM001<br />

//SYSIN DD DUMMY<br />

Example 9-42 shows you the most important results of the RACF commands.<br />

Example 9-42 RACF commands of test case 14<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR TAPEDSN<br />

WARNING: TAPEDSN OPTION ACTIVE, TAPEVOL CLASS IS NOT ACTIVE<br />

READY<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

READY<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RACLIST REFRESH of class TAPEVOL ignored. The class is not active yet.<br />

Chapter 9. Tape security 393


SETROPTS command complete.<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

394 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.16 Test case 16<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-43 you can see that there was no security violation.<br />

Example 9-43 Test case 15 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST1.FILE7 CL(DATASET ) VOL(THM001)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-60,IFG0194F,RACFTS15,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST1.FILE7<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=08.49.02 SEQ=01037 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000060<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS15 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000060<br />

....<br />

For test case 16:<br />

Function Read the six previously created tape sets, but in this case both RACF<br />

CLASSES TAPEVOL and TAPEDSN are inactive. Program<br />

IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE2<br />

MHLRES7.RACF.TEST1.FILE3<br />

MHLRES7.RACF.TEST1.FILE4<br />

MHLRES7.RACF.TEST1.FILE5<br />

MHLRES7.RACF.TEST1.FILE6<br />

Result The job ended without any errors because no security checks are<br />

being performed.<br />

Chapter 9. Tape security 395


Example 9-28 on page 377 shows the JCL and the settings that we used to read the two data<br />

sets.<br />

Example 9-44 Sample JCL used for test case 16<br />

//RACFTS16 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//* ****************************************************************<br />

//* * /F DFRMM,M=02 *<br />

//* ****************************************************************<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ ALL PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//* MHLRES7.RACF.TEST1.FILE3<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//* MHLRES7.RACF.TEST1.FILE5<br />

//* MHLRES7.RACF.TEST1.FILE6<br />

//* MHLRES7.RACF.TEST1.FILE7<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

396 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP03 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE3,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(3,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP04 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE4,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(4,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP05 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE5,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(5,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP06 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE6,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(6,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP07 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE7,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(7,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF17)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-45 shows the most important results of the RACF commands.<br />

Example 9-45 RACF commands of test case 16<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

Chapter 9. Tape security 397


----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

398 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.17 Test case 17<br />

For test case 17:<br />

Function Read the six previously created tape sets, but in this case RACF<br />

CLASS TAPEVOL is active and option TAPEDSN is being set.<br />

Program IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE2<br />

MHLRES7.RACF.TEST1.FILE3<br />

MHLRES7.RACF.TEST1.FILE4<br />

MHLRES7.RACF.TEST1.FILE5<br />

MHLRES7.RACF.TEST1.FILE6<br />

Result The job ended without any errors, though the user has no access to<br />

the data set profile MHLRES1.**. In this situation RACF checks that<br />

the user has UPDATE access to the TAPEVOL profile.<br />

Example 9-46 shows the JCL and the settings that we used to read the two data sets.<br />

Example 9-46 Sample JCL used for test 17<br />

//RACFTS17 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL ACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ ALL PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//* MHLRES7.RACF.TEST1.FILE3<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//* MHLRES7.RACF.TEST1.FILE5<br />

//* MHLRES7.RACF.TEST1.FILE6<br />

//* MHLRES7.RACF.TEST1.FILE7<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR CLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

Chapter 9. Tape security 399


SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP03 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE3,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(3,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP04 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE4,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(4,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP05 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE5,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(5,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP06 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE6,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(6,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP07 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE7,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(7,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

400 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF18)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-47 shows the most important results of the RACF commands.<br />

Example 9-47 RACF commands of test case 17<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

Chapter 9. Tape security 401


9.5.18 Test case 18<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 18:<br />

Function Read the six previously created tape sets, but in this case RACF<br />

CLASS TAPEVOL is inactive and option TAPEDSN is being set.<br />

Program IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE2<br />

MHLRES7.RACF.TEST1.FILE3<br />

MHLRES7.RACF.TEST1.FILE4<br />

MHLRES7.RACF.TEST1.FILE5<br />

MHLRES7.RACF.TEST1.FILE6<br />

Result The job ended without any errors because the user has access to the<br />

data set profile and the RACF TAPEVOL class is inactive.<br />

Example 9-48 shows the JCL and the settings that we used to read the two data sets.<br />

Example 9-48 Sample JCL used for test 18<br />

//RACFTS18 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

//* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ ALL PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

402 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* MHLRES7.RACF.TEST1.FILE2<br />

//* MHLRES7.RACF.TEST1.FILE3<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//* MHLRES7.RACF.TEST1.FILE5<br />

//* MHLRES7.RACF.TEST1.FILE6<br />

//* MHLRES7.RACF.TEST1.FILE7<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP03 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE3,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(3,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP04 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE4,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(4,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP05 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE5,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(5,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP06 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

Chapter 9. Tape security 403


SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE6,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(6,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP07 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE7,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(7,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF19)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-49 shows you the most important results of the RACF commands.<br />

Example 9-49 RACF commands of test case 18<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

404 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.19 Test case 19<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 19:<br />

Function Read the six previously created tape sets, but in this case RACF<br />

CLASS TAPEVOL is inactive and option TAPEDSN is being set.<br />

Program IEBGENER is used to read the files.<br />

Data set names MHLRES1.RACF.TEST1.FILE1<br />

MHLRES7.RACF.TEST1.FILE2<br />

MHLRES7.RACF.TEST1.FILE3<br />

MHLRES7.RACF.TEST1.FILE4<br />

MHLRES7.RACF.TEST1.FILE5<br />

MHLRES7.RACF.TEST1.FILE6<br />

Result We get a security violation because we have no access to the data set<br />

profile MHLRES1.** and the RACFCLASS TAPEVOL is inactive.<br />

Example 9-50 shows the JCL and the settings that we used to read the two data sets.<br />

Example 9-50 Sample JCL used for test 19<br />

//RACFTS19 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=N/A<br />

//* TAPEAUTHF1=N/A<br />

//* TAPEAUTHRC4=N/A<br />

Chapter 9. Tape security 405


* TAPEAUTHRC8=N/A<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* THM001 ACC(ALTER)<br />

//* TAPEVOL INACTIVE<br />

//* TAPEDSN ACTIVE<br />

//*<br />

//* FUNCTION<br />

//* READ ALL PREVIOUSLY CREATED DATA SETS<br />

//* MHLRES1.RACF.TEST1.FILE1<br />

//* MHLRES7.RACF.TEST1.FILE2<br />

//* MHLRES7.RACF.TEST1.FILE3<br />

//* MHLRES7.RACF.TEST1.FILE4<br />

//* MHLRES7.RACF.TEST1.FILE5<br />

//* MHLRES7.RACF.TEST1.FILE6<br />

//* MHLRES7.RACF.TEST1.FILE7<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR TAPEDSN<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RL TAPEVOL THM001 ALL<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR REFRESH GENERIC(DATASET)<br />

SETROPTS LIST<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST1.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP03 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE3,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(3,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP04 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE4,<br />

406 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


VOL=(,RETAIN,,,SER=(THM001)),LABEL=(4,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP05 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE5,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(5,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP06 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE6,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(6,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP07 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST1.FILE7,<br />

// VOL=(,RETAIN,,,SER=(THM001)),LABEL=(7,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

Example 9-51 shows you the most important results of the RACF commands.<br />

Example 9-51 RACF commands<br />

SETR NOCLASSACT(TAPEVOL)<br />

READY<br />

SETR TAPEDSN<br />

WARNING: TAPEDSN OPTION ACTIVE, TAPEVOL CLASS IS NOT ACTIVE<br />

READY<br />

PE THM001 CLASS(TAPEVOL) ID(MHLRES5) ACCESS(ALTER)<br />

READY<br />

SETR REFRESH RACLIST(TAPEVOL)<br />

RACLIST REFRESH of class TAPEVOL ignored. The class is not active yet.<br />

SETROPTS command complete.<br />

RL TAPEVOL THM001 ALL<br />

CLASS NAME<br />

----- ----<br />

TAPEVOL THM001<br />

LEVEL OWNER UNIVERSAL ACCESS YOUR ACCESS WARNING<br />

----- -------- ---------------- ----------- -------<br />

00 MHLRES5 NONE ALTER NO<br />

USER ACCESS ACCESS COUNT<br />

---- ------ ------ -----<br />

STC ALTER 000005<br />

MHLRES5 ALTER 000000<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

Chapter 9. Tape security 407


AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-52 you can see that there was no security violation.<br />

Example 9-52 Test case 19 job output<br />

ICH70001I MHLRES5 LAST ACCESS AT 18:37:04 ON SUNDAY, AUGUST 5, 2007<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST1.FILE1 CL(DATASET ) VOL(THM001)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-60,IFG0194F,RACFTS19,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST1.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000060<br />

TIME=18.39.36 SEQ=00996 CPU=0000 ASID=0039<br />

408 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.20 Test case 20<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000060<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS19 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000060<br />

....<br />

This test case and all following test cases are under the condition that we specified different<br />

settings of the new TAPEAUTH settings in the DEFSUPnn member and both RACF<br />

CLASSES TAPEVOL and TAPEDSN are inactive.<br />

Function Create two new tape sets on a tape volume in status scratch. Program<br />

IEBGENER is used to write the files. TAPEAUTHDSN and<br />

TAPEAUTHF1 are set, and the option for TAPEAUTHRC4 and<br />

TAPEAUTHRC8 is set to FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result The job ended without any errors because the user has access to the<br />

data set profiles.<br />

Example 9-53 shows the JCL and the settings that we used to create the two data sets.<br />

Example 9-53 Sample JCL used for test 20<br />

//RACFTS20 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES5.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

Chapter 9. Tape security 409


9.5.21 Test case 21<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES5.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES5.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES1.RACF.TEST2.FILE1 NONVSAM N<strong>OS</strong>CRATCH<br />

DELETE MHLRES7.RACF.TEST2.FILE2 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD DISP=(,CATLG),DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,99),<br />

// UNIT=ATL3<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP1 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(02,SL),DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=(,RETAIN,,REF=*.STEP01.SYSUT2)<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

For test case 21:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN and TAPEAUTHF1 are set<br />

and the option for TAPEAUTHRC4 and TAPEAUTHRC8 is set to<br />

FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

410 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Result The job ended without any errors because the user has access to the<br />

data set profiles.<br />

Example 9-54 shows you the JCL that we used for test case 21.<br />

Example 9-54 Sample JCL used for test 21<br />

//RACFTS21 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

Chapter 9. Tape security 411


SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF22)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-55 shows you the most important results of the RACF commands.<br />

Example 9-55 Test case 21 job output<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

412 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


NO SECURITY LEVEL<br />

CATEGORIES<br />

9.5.22 Test case 22<br />

For test case 22:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN and TAPEAUTHF1 are set<br />

and the option for TAPEAUTHRC4 and TAPEAUTHRC8 is set to<br />

FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result We got two security violations because the user has no access to the<br />

data set profile MHLRES1.**, which protects the first file on the<br />

volume. So we could not access any data set on the volume.<br />

Example 9-56 shows the JCL that we used for test case 22.<br />

Example 9-56 Sample JCL used for test 22<br />

//RACFTS22 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

Chapter 9. Tape security 413


LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF23)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-57 shows you the most important results of the RACF commands.<br />

Example 9-57 List of the RACF profile in class TAPEVOL<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

414 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-28 on page 377 you can see the security violation for the<br />

first file we got.<br />

Example 9-58 Test case 9 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS22,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST2.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.34.36 SEQ=00892 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS22 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS22,STEP02,SYSUT1,0B23,,MHLRES7.RACF.TEST2.FILE2<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.35.22 SEQ=00893 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

Chapter 9. Tape security 415


9.5.23 Test case 23<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS22 STEP02 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

For test case 23:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN and TAPEAUTHF1 are set,<br />

and the option for TAPEAUTHRC4 and TAPEAUTHRC8 is set to<br />

FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result Although we have access to the first file on the volume, we got a<br />

security violation because the user has no access to the data set<br />

profile MHLRES7.** to read the second file.<br />

Example 9-59 shows the JCL that we used for test case 22.<br />

Example 9-59 Sample JCL used for test 23<br />

//RACFTS23 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

416 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF24)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-60 shows the most important results of the RACF commands.<br />

Example 9-60 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

Chapter 9. Tape security 417


------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-61 you can see the security violation we got for the<br />

second file.<br />

Example 9-61 Test case 9 job output<br />

...<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE2 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS23,STEP02,SYSUT1,0B23,,MHLRES7.RACF.TEST2.FILE2<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.36.09 SEQ=00894 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS23 STEP02 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

418 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.24 Test case 24<br />

For test case 24:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN and TAPEAUTHF1 are set,<br />

and the option for TAPEAUTHRC4 and TAPEAUTHRC8 is set to<br />

FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result We got two security violations because the user has no access to the<br />

data set profiles MHLRES1.** and MHLRES7.**.<br />

Example 9-62 shows the JCL that we used for test case 22.<br />

Example 9-62 Sample JCL used for test 24<br />

//RACFTS24 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

Chapter 9. Tape security 419


SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF25)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-63 shows the most important results of the RACF commands.<br />

Example 9-63 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

420 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-64 you can see that we got two security violations, one<br />

for file 1 and one for file 2.<br />

Example 9-64 Test case 24 job output<br />

...<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS24,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST2.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=10.40.55 SEQ=01052 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS24 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE2 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS24,STEP02,SYSUT1,0B23,,MHLRES7.RACF.TEST2.FILE2<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=10.41.42 SEQ=01053 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

Chapter 9. Tape security 421


9.5.25 Test case 25<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

....<br />

For test case 25:<br />

Function Create an additional third new tape set on the previously used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN and TAPEAUTHF1 are set, and the option for<br />

TAPEAUTHRC4 and TAPEAUTHRC8 is set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE3<br />

Result The job ended without any errors because we have access to both<br />

data set profiles protecting the first file on the volume and the new file<br />

we are creating.<br />

Example 9-65 shows you the JCL and the settings that we used to create the third data set.<br />

Example 9-65 Sample JCL used for test 25<br />

//RACFTS25 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE3<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES5.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

422 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE3 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(03,SL),DSN=MHLRES7.RACF.TEST2.FILE3,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF26)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-66 shows the most important results of the RACF commands.<br />

Example 9-66 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

Chapter 9. Tape security 423


00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.26 Test case 26<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 26:<br />

Function Create an additional fourth new tape set on the previously used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN and TAPEAUTHF1 are set, and the option for<br />

TAPEAUTHRC4 and TAPEAUTHRC8 is set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE4<br />

Result We got a security violation and the file is not created because we have<br />

no access to the RACF data set profile MHLRES1.** that protects the<br />

first file on the volume.<br />

Example 9-67 shows the JCL that we used for test case 26.<br />

Example 9-67 Sample JCL used for test 9<br />

//RACFTS26 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

424 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST2.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF27)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-68 shows the most important results of the RACF commands.<br />

Example 9-68 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

Chapter 9. Tape security 425


YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job shown in Example 9-69 you can see that we received a security<br />

violation to the data set profile MHLRES1.** that protects the first file on the volume.<br />

Example 9-69 Test case 26 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS26,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST2.FILE4<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.39.27 SEQ=00897 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

426 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.27 Test case 27<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS26 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

For test case 27:<br />

Function Recreate an additional fourth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN and TAPEAUTHF1 are set, and the option for<br />

TAPEAUTHRC4 and TAPEAUTHRC8 is set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE4<br />

Result We got a security violation and the file is not created because we have<br />

no access to the RACF data set profile MHLRES7.** that protects the<br />

data set we would like to create.<br />

Example 9-70 shows the JCL that we used for test case 26.<br />

Example 9-70 Sample JCL used for test 9<br />

//RACFTS27 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

Chapter 9. Tape security 427


SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST2.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF28)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-71 shows you the most important results of the RACF commands.<br />

Example 9-71 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

428 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-72 you can see that there was no security violation<br />

reading the first file, but we were not able to read the second file because we have no access<br />

to the profile that protects this file.<br />

Example 9-72 Test case 27 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE4 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS27,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST2.FILE4<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.40.27 SEQ=00898 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS27 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

Chapter 9. Tape security 429


9.5.28 Test case 28<br />

For test case 28:<br />

Function Recreate an additional fourth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN and TAPEAUTHF1 are set, and the option for<br />

TAPEAUTHRC4 and TAPEAUTHRC8 is set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE4<br />

Result We got a security violation because we have no access to the RACF<br />

data set profile MHLRES1.** that protects the first file on the volume<br />

nor to the profile MHLRES7.** that protects the data set we would like<br />

to create.<br />

Example 9-73 shows the JCL that we used for test case 28.<br />

Example 9-73 Sample JCL used for test 28<br />

//RACFTS28 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

430 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST2.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF29)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-74 shows the most important results of the RACF commands.<br />

Example 9-74 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

Chapter 9. Tape security 431


9.5.29 Test case 29<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-75 you can see that the new data set was not created.<br />

Example 9-75 Test case 28 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE4 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS28,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST2.FILE4<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.41.27 SEQ=00899 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS28 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

For test case 29:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN is set to YES but<br />

TAPEAUTHF1 is set to NO. The options for TAPEAUTHRC4 and<br />

TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

432 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Result The job ended without any errors because the user has access to both<br />

data set profiles protecting this files.<br />

Example 9-76 shows the JCL that we used for test case 29.<br />

Example 9-76 Sample JCL used for test 29<br />

//RACFTS29 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.*** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* Read the two DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

Chapter 9. Tape security 433


SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF30)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-77 shows the most important results of the RACF commands.<br />

Example 9-77 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

434 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.30 Test case 30<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 30:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN is set to YES but<br />

TAPEAUTHF1 is set to NO. The options for TAPEAUTHRC4 and<br />

TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result We got a security violation because the user has no access to the data<br />

set profile MHLRES1.**. The second file can be read without any<br />

errors.<br />

Example 9-78 shows the JCL that we used for test case 30.<br />

Example 9-78 Sample JCL used for test 30<br />

//RACFTS30 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

Chapter 9. Tape security 435


SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF31)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-79 shows the most important results of the RACF commands.<br />

Example 9-79 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

436 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-80 you can see that there was a security violation for the<br />

first file.<br />

Example 9-80 Test case 30 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS30,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST2.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.47.20 SEQ=00901 CPU=0000 ASID=0039<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS30 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

Chapter 9. Tape security 437


9.5.31 Test case 31<br />

For test case 31:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN is set to YES but<br />

TAPEAUTHF1 is set to NO. The options for TAPEAUTHRC4 and<br />

TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result We got a security violation because the user has no access to the data<br />

set profile MHLRES7.**. The first file can be read without any errors.<br />

Example 9-81 shows the JCL that we used for test case 31.<br />

Example 9-81 Sample JCL used for test 31<br />

//RACFTS31 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

438 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF32)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-82 shows the most important results of the RACF commands.<br />

Example 9-82 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

Chapter 9. Tape security 439


9.5.32 Test case 32<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-83 you can see that we got a security violation for data<br />

set MHLRES7.RACF.TEST2.FILE2.<br />

Example 9-83 Test case 31 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE2 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS31,STEP02,SYSUT1,0B23,,MHLRES7.RACF.TEST2.FILE2<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=16.49.21 SEQ=00902 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS31 STEP02 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

Test case 32:<br />

Function Read the two previously created tape sets. Program IEBGENER is<br />

used to read the files. TAPEAUTHDSN is set to YES but<br />

TAPEAUTHF1 is set to NO. The options for TAPEAUTHRC4 and<br />

TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES1.RACF.TEST2.FILE1<br />

MHLRES7.RACF.TEST2.FILE2<br />

Result We got a security violation because the user has no access to both<br />

data set profiles MHLRES1.** and MHLRES7.**. No file can be read.<br />

440 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Example 9-84 shows the JCL that we used for test case 32.<br />

Example 9-84 Sample JCL used for test 32<br />

//RACFTS32 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE TWO NEW DATA SETS<br />

//* MHLRES1.RACF.TEST2.FILE1<br />

//* MHLRES7.RACF.TEST2.FILE2<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES1.RACF.TEST2.FILE1,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(1,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//STEP02 EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES7.RACF.TEST2.FILE2,<br />

// VOL=(,RETAIN,,,SER=(THM002)),LABEL=(2,SL)<br />

//SYSUT2 DD DUMMY<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

Chapter 9. Tape security 441


Example 9-85 shows you the most important results of the RACF commands.<br />

Example 9-85 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

442 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


In the output of the job in Example 9-86 you can see that we got a security violation for both<br />

data set profiles protecting this files.<br />

Example 9-86 Test case 32 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES1.RACF.TEST2.FILE1 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES1.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS32,STEP01,SYSUT1,0B23,,MHLRES1.RACF.TEST2.FILE1<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=11.52.12 SEQ=01054 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS32 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE2 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS32,STEP02,SYSUT1,0B23,,MHLRES7.RACF.TEST2.FILE2<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=11.53.03 SEQ=01055 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C380 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B4410 5: 00000000/00000000_007B47A4<br />

6: 00000000/00000000_007B474C 7: 00000000/00000000_007B47A4<br />

8: 00000000/00000000_007B476C 9: 00000000/00000000_007B56B8<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B46D0<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS32 STEP02 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

Chapter 9. Tape security 443


9.5.33 Test case 33<br />

For test case 33:<br />

Function Create an additional fourth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN is set to YES but TAPEAUTHF1 is set to NO. The<br />

options for TAPEAUTHRC4 and TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE5<br />

Result The job ended without any errors because we have access to both<br />

data set profiles protecting the first file on the volume and the new file<br />

that we are creating.<br />

Example 9-87 shows the JCL that we used for test case 33.<br />

Example 9-87 Sample JCL used for test 33<br />

//RACFTS33 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE4<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES5.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

444 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE4 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(04,SL),DSN=MHLRES7.RACF.TEST2.FILE4,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF34)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-88 shows you the most important results of the RACF commands.<br />

Example 9-88 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

Chapter 9. Tape security 445


9.5.34 Test case 34<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 34:<br />

Function Create an additional fifth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN is set to YES but TAPEAUTHF1 is set to NO. The<br />

options for TAPEAUTHRC4 and TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE5<br />

Result The job ended without any errors, though we have no access to the<br />

first file on the volume. This is not checked because the option<br />

TAPEAUTHF1 is not set to yes.<br />

Example 9-89 shows the JCL that we used for test case 34.<br />

Example 9-89 Sample JCL used for test 34<br />

//RACFTS34 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(ALTER)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE5<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

446 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(ALTER) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE5 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(05,SL),DSN=MHLRES7.RACF.TEST2.FILE5,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF35)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-90 shows you the most important results of the RACF commands.<br />

Example 9-90 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

Chapter 9. Tape security 447


LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

9.5.35 Test case 35<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

For test case 35:<br />

Function Create an additional sixth new tape sets on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN is set to YES but TAPEAUTHF1 is set to NO. The<br />

options for TAPEAUTHRC4 and TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE5<br />

Result We got a security violation and the file is not created because we have<br />

no access to the RACF data set profile MHLRES7.** that protects the<br />

data set that we would like to create.<br />

Example 9-91 shows the JCL that we used for test case 35.<br />

Example 9-91 Sample JCL used for test 35<br />

//RACFTS35 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

448 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* MHLRES1.** ACC(ALTER)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE6<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

//SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(ALTER) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE6 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(06,SL),DSN=MHLRES7.RACF.TEST2.FILE6,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

//SUBMIT EXEC PGM=IEBGENER,COND=EVEN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(RACF36)<br />

//SYSUT2 DD SYSOUT=(A,INTRDR)<br />

//SYSIN DD DUMMY<br />

Example 9-92 shows you the most important results of the RACF commands.<br />

Example 9-92 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

Chapter 9. Tape security 449


NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

ALTER SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-93 you can see that we got a security violation to data<br />

set profile MHLRES7.**.<br />

Example 9-93 Test case 35 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE6 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS35,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST2.FILE6<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=17.20.50 SEQ=00905 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

450 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


9.5.36 Test case 36<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

IEF472I RACFTS35 STEP01 - COMPLETION CODE - SYSTEM=913 USER=0000 REASON=00000038<br />

....<br />

For test case 36:<br />

Function Recreate the additional sixth new tape set on the previous used tape<br />

volume. Program IEBGENER is used to copy a member of a library.<br />

TAPEAUTHDSN is set to YES but TAPEAUTHF1 is set to NO. The<br />

options for TAPEAUTHRC4 and TAPEAUTHRC8 are set to FAIL.<br />

Data set names MHLRES7.RACF.TEST2.FILE5<br />

Result We got a security violation, and the file is not created because we<br />

have no access to the RACF data set profile MHLRES7.** that<br />

protects the data set that we would like to create. The first file<br />

protection is not checked because the TAPEAUTHF1 checking is not<br />

set.<br />

Example 9-94 shows the JCL that we used for test case 36.<br />

Example 9-94 Sample JCL used for test 36<br />

//RACFTS36 JOB (999,POK),MSGLEVEL=1,NOTIFY=&SYSUID<br />

/*JOBPARM SYSAFF=SC70<br />

//*<br />

//* RMM OPTIONS:<br />

//* TPRACF(N)<br />

//* RACF(N)<br />

//*<br />

//*<br />

//* DEVSUP<br />

//* TAPEAUTHDSN=YES<br />

//* TAPEAUTHF1=YES<br />

//* TAPEAUTHRC4=FAIL<br />

//* TAPEAUTHRC8=FAIL<br />

//*<br />

//* RACF<br />

//* MHLRES1.** ACC(NONE)<br />

//* MHLRES7.** ACC(NONE)<br />

//* TAPEVOL INCATIVE<br />

//* TAPEDSN INCATIVE<br />

//*<br />

//* FUNCTION<br />

//* CREATE AN ADDITIONAL NEW DATA SET<br />

//* MHLRES7.RACF.TEST2.FILE6<br />

//*<br />

//RACFCMDS EXEC PGM=IKJEFT01<br />

Chapter 9. Tape security 451


SYSTSPRT DD SYSOUT=*<br />

//SYSTSIN DD *<br />

SETR NOCLASSACT(TAPEVOL)<br />

SETR NOTAPEDSN<br />

PE 'MHLRES1.**' ACC(NONE) ID(MHLRES5)<br />

PE 'MHLRES7.**' ACC(NONE) ID(MHLRES5)<br />

SETR REFRESH GENERIC(DATASET)<br />

LD DATASET('MHLRES1.**') ALL<br />

LD DATASET('MHLRES7.**') ALL<br />

SETR LIST<br />

/*<br />

//CLEANUP EXEC PGM=IDCAMS<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSIN DD *<br />

DELETE MHLRES7.RACF.TEST2.FILE6 NONVSAM N<strong>OS</strong>CRATCH<br />

SET MAXCC=0<br />

/*<br />

//*-------------------------------------------------------------*<br />

//STEP01 EXEC PGM=IEBGENER<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DISP=SHR,DSN=MHLRES5.RACF.CNTL(TEXT)<br />

//SYSUT2 DD LABEL=(06,SL),DSN=MHLRES7.RACF.TEST2.FILE6,<br />

// DISP=(,CATLG,DELETE),UNIT=ATL3,RETPD=02,<br />

// VOLUME=SER=THM002<br />

//SYSIN DD DUMMY<br />

//*-------------------------------------------------------------*<br />

Example 9-95 shows the most important results of the RACF commands.<br />

Example 9-95 Results of the RACF commands<br />

LD DATASET('MHLRES1.**') ALL<br />

INFORMATION FOR DATASET MHLRES1.** (G)<br />

LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES1 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

LD DATASET('MHLRES7.**') ALL<br />

INFORMATION FOR DATASET MHLRES7.** (G)<br />

452 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LEVEL OWNER UNIVERSAL ACCESS WARNING ERASE<br />

----- -------- ---------------- ------- -----<br />

00 MHLRES7 NONE NO NO<br />

AUDITING<br />

--------<br />

FAILURES(READ)<br />

NOTIFY<br />

--------<br />

NO USER TO BE NOTIFIED<br />

YOUR ACCESS CREATION GROUP DATASET TYPE<br />

----------- -------------- ------------<br />

NONE SYS1 NON-VSAM<br />

NO INSTALLATION DATA<br />

SECURITY LEVEL<br />

------------------------------------------<br />

NO SECURITY LEVEL<br />

In the output of the job in Example 9-96 you can see that we got a security violation for the<br />

data set profile MHLRES7.** only.<br />

Example 9-96 Test case 36 job output<br />

....<br />

IEF237I DMY ALLOCATED TO SYSIN<br />

ICH408I USER(MHLRES5 ) GROUP(SYS1 ) NAME(MARY LOVELACE - RESI)<br />

MHLRES7.RACF.TEST2.FILE6 CL(DATASET ) VOL(THM002)<br />

INSUFFICIENT ACCESS AUTHORITY<br />

FROM MHLRES7.** (G)<br />

ACCESS INTENT(UPDATE ) ACCESS ALLOWED(NONE )<br />

IEC150I 913-38,IFG0194F,RACFTS36,STEP01,SYSUT2,0B23,,MHLRES7.RACF.TEST2.FILE6<br />

IEA995I SYMPTOM DUMP OUTPUT<br />

SYSTEM COMPLETION CODE=913 REASON CODE=00000038<br />

TIME=17.21.52 SEQ=00906 CPU=0000 ASID=002C<br />

PSW AT TIME OF ERROR 075C1000 80C50EDE ILC 2 INTC 0D<br />

NO ACTIVE MODULE FOUND<br />

NAME=UNKNOWN<br />

DATA AT PSW 00C50ED8 - 41003B7A 0A0D41F0 38BE56F0<br />

AR/GR 0: A3280FB6/00000000_00C511A4 1: 00000000/00000000_A4913000<br />

2: 00000000/00000000_0000C3E4 3: 00000000/00000000_00C5062A<br />

4: 00000000/00000000_007B51F8 5: 00000000/00000000_007B558C<br />

6: 00000000/00000000_007B5534 7: 00000000/00000000_007B558C<br />

8: 00000000/00000000_007B5554 9: 00000000/00000000_007B3328<br />

A: 00000000/00000000_007CE390 B: 00000000/00000000_00C53B2C<br />

C: 00000000/00000000_80C53C0C D: 00000000/00000000_007B54B8<br />

E: 00000000/00000000_80C50762 F: 00000002/00000010_00000038<br />

END OF SYMPTOM DUMP<br />

....<br />

Chapter 9. Tape security 453


454 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Appendix A. APAR text<br />

A<br />

This appendix contains the text of APARs that must be reviewed to successfully implement<br />

<strong>DFSMS</strong> V1.8.<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 455


APARs referenced in the book<br />

OA17704<br />

SMF record type 42 subtype 6 for above 2 GB have incorrect content<br />

****************************************************************<br />

* USERS AFFECTED: All VSAM RLS users who use RMF to view *<br />

* statistics. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: In RMF <strong>V1R8</strong> VSAM LRU Overview SYSPLEX *<br />

* panel: *<br />

* (1)The following fields contain *<br />

* incorrect values: *<br />

* Buffer Size Goal Below 2GB *<br />

* Buffer Size Goal Above 2GB *<br />

* Buffer Size High Below 2GB *<br />

* Fixed Storage Below 2GB *<br />

* Fixed Storage Above 2GB *<br />

* Real Storage % Below 2GB *<br />

* Real Storage % Above 2GB *<br />

* Fixed Pages Low Below 2GB *<br />

* Fixed Pages High Below 2GB *<br />

* Fixed Pages Avg Below 2GB *<br />

* Fixed Pages Low Above 2GB *<br />

* Fixed Pages High Above 2GB *<br />

* Fixed Pages Avg Above 2GB *<br />

* Buffer Counts by Pool Low/High/Avg *<br />

* 2K to 32K Above 2GB *<br />

* *<br />

* (2)After restarting RMF address space *<br />

* or adding data masks via *<br />

* F RMF,F III,VSAMRLS(ADD(DSName)), *<br />

* customers stopped seeing any RMF data. *<br />

* *<br />

* (3)When RlsAboveThebarMaxPoolSize is 0, *<br />

* customers stop seeing changes to the *<br />

* following fields: *<br />

* Buffer Size Goal Above 2GB *<br />

* Fixed Storage Above 2GB *<br />

* Real Storage % Above 2GB *<br />

* Fixed Pages Low Above 2GB *<br />

* Fixed Pages High Above 2GB *<br />

* Fixed Pages Avg Above 2GB *<br />

* Buffer Counts by Pool Low/High/Avg *<br />

* 2K to 32K Above 2GB *<br />

* *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

The SMF fields for these RMF fields were not correct, causing<br />

RMF to report incorrect values.<br />

456 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OA11708<br />

Support for the SMS,SMSVSAM,TERMINATESERVER command.<br />

Note: The fix for OA13332 must be installed before OA11708, and the fix for OA14666<br />

must be installed after OA11708.<br />

****************************************************************<br />

* USERS AFFECTED: All HDZ11G0 users and above issuing the *<br />

* V SMS,SMSVSAM,TERMINATESERVER command *<br />

* while sharing systems are issuing lock *<br />

* requests for lock structure IGWLOCK00. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: When the V SMS,SMSVSAM,TERMINATESERVER *<br />

* command is issued, sharing systems may *<br />

* see delays for lock requests issued *<br />

* against the RLS lock structure *<br />

* IGWLOCK00. The delays occur during *<br />

* the XCF lock table cleaup phase. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

When the V SMS,SMSVSAM,TERMINATESERVER command is issued, the<br />

SMSVSAM address space terminates without releasing active<br />

system locks in IGWLOCK00. When a lock structure connector<br />

disconnects and active locks exist, XCF will perform a lock<br />

table scan by the active connectors to cleanup the failing<br />

connectors locks. During the lock table scan, the lock<br />

structure is quiesced to all sharing systems, resulting in<br />

delays and lengthed transaction times (increased FCVRWAIT<br />

times for CICS users).<br />

Problem<br />

Conclusion:<br />

The V SMS,SMSVSAM,TERMINATESERVER command has been modifed to<br />

release all system related locks prior to explicitly issuing<br />

an IXLDISC for IGWLOCK00. If the installation has also closed<br />

all RLS data sets and terminated all registered RLS client<br />

address spaces, then the XCF lock table scan will be skipped.<br />

If however, any active locks exist when the TERMINATESERVER<br />

command is issued, new message MSGIGW413I will be issued:<br />

IGW413I SMSVSAM DISCONNECTED FROM LOCK STRUCTURE IGWLOCK00<br />

A NON-ZERO RETURN/REASON CODE WAS RETURNED FROM<br />

IXLDISC:<br />

RETURN CODE (in hex): returncode<br />

REASON CODE (in hex): reasoncode<br />

Explanation: A V SMS,SMSVSAM,TEMRINATESERVER<br />

command was issued to terminate the SMSVSAM address<br />

space. SMSVSAM issued an IXLDISC to disconnect<br />

from lock structure IGWLOCK00. A non-zero return/<br />

Appendix A. APAR text 457


OA13332<br />

458 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

reason code was returned from IXLDISC.<br />

Source: <strong>DFSMS</strong>dfp<br />

Detecting Module:<br />

IDAVSTAI<br />

System Action: SMSVSAM termination continues.<br />

Refer to the z/<strong>OS</strong> MVS Sysplex Services Refrence<br />

manual for a description of the return/reason<br />

code returned by IXLDISC.<br />

Operator Response: RC=4 RSN=xxxx0401<br />

(IXLRSNCODEOWNINGRESOURCES), is expected if any<br />

data sets are opened for RLS access or there are<br />

active RLS client spaces registered with SMSVSAM.<br />

If all data sets are closed and all RLS client<br />

spaces are ended, and RSN=xxxx0401 is<br />

received, collect LOGREC data and report the<br />

problem to <strong>IBM</strong>. For any other non-zero return/<br />

reason code, report the problem to <strong>IBM</strong>.<br />

****************************************************************<br />

* USERS AFFECTED: All HDZ11G0 users and above installing *<br />

* RLS APAR OA11708. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: Add sysplex lock contention support *<br />

* for APAR OA11708. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

RLS APAR OA11708 provides new support to the V SMS,SMSVSAM,<br />

TERMINATESERVER command. The new support will modify the<br />

TERMINATESERVER command to release all "system" type locks<br />

in IGWLOCK00. If a rebuild of IGWLOCK00 is started at the<br />

same time as a TERMINATESERVER command is issued, the current<br />

RLS lock contention exits will deny the lock release requests<br />

before the rebuild path serializes with the TERMINATESERVER<br />

path. The "system" lock contention exit must be modified<br />

to allow the lock releases to continue until the rebuild<br />

quiesce phase is entered and properly serialzes with the<br />

TERMINATESERVER.<br />

Problem<br />

Conclusion:<br />

RLS special lock contention exit has been modified to allow<br />

contention processing to continue until the RLS rebuild quiesce<br />

phase completes. This APAR must be installed on all systems<br />

in the plex before OA11708 is installed on any one system.


OA14666<br />

OA16191<br />

****************************************************************<br />

* USERS AFFECTED: All HDZ11G0 users and above with OA11708 *<br />

* installed and attempting to issue MVS *<br />

* command V SMS,SMSVSAM,TERMINATESERVER for *<br />

* multiple images at the same time while *<br />

* contention for record locks exist. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: The V SMS,SMSVSAM,TERMINATESERVER *<br />

* command did not complete on system1 *<br />

* and system1 did not reply to the *<br />

* disconnect event for IGWLOCK00 *<br />

* from system2. MSGIXL041E is displayed. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

APAR OA11708 added logic to the TERMINATESERVER path to<br />

serialize all lock activity prior to releasing system related<br />

locks and explicitly disconnecting from IGWLOCK00. If two or<br />

more systems issue the V SMS,SMSVSAM,TERMINATESERVER command<br />

on systems with OA11708 installed and record lock contention<br />

exists, then one SMSVSAM may hang in the terminateserver path<br />

after obtaining record lock latches and waiting on contention<br />

to complete for lock releases of system related locks. The<br />

contention is not completing because XCF has not completed<br />

lock table cleanup activities. XCF has not completed lock<br />

table cleanup because the hung SMSVSAM has not replied to<br />

the disconnect event for IGWLOCK00 from the other terminating<br />

server(s). Therefore the terminateserver path is deadlocked.<br />

To recover from the hung SMSVSAM in the TERMINATESERVER path,<br />

issue the FORCE SMSVSAM,ARM command.<br />

Problem<br />

Conclusion:<br />

The RLS locking code has been modified to not obtain record lock<br />

latches in the disconnect cleanup path when this SMSVSAM is<br />

also terminating. The terminateserver path already holds the<br />

necessary record lock serialization.<br />

USERS AFFECTED:<br />

All users of <strong>DFSMS</strong>hsm V1R3, V1R5, V1R6, V1R7 and <strong>V1R8</strong> who use the <strong>DFSMS</strong>hsm<br />

TAPECOPY and BACKVOL CDS commands. This also affects installations that backup<br />

their control data sets during AUTOBACKUP processing.<br />

PROBLEM DESCRIPTION:<br />

Installations that perform TAPECOPY or CDS backup processing can encounter an<br />

ABEND878 during these processes.<br />

RECOMMENDATION:<br />

Potential ABEND878 abends can occur during TAPECOPY and CDS backup processing if<br />

below the line storage is exhausted in the <strong>DFSMS</strong>hsm address space.<br />

Appendix A. APAR text 459


OA16192<br />

Problem Conclusion:<br />

Temporary Fix:<br />

Comments:<br />

<strong>DFSMS</strong>hsm is enhancing TAPECOPY to allow both the tape input and tape output<br />

buffers to optionally be above the 16MB line. <strong>DFSMS</strong>hsm is also enhancing CDS<br />

BACKUP to allow the output buffers to be above the 16MB line. To request the<br />

TAPECOPY and CDS backup buffers be above the line issue the following <strong>DFSMS</strong>hsm<br />

PATCH command:<br />

PATCH .MCVT.+196 BITS(...1....).<br />

To request that <strong>DFSMS</strong>hsm return to using buffers below the 16MB line for TAPECOPY<br />

and CDS Backup, issue the following <strong>DFSMS</strong>hsm PATCH command:<br />

PATCH .MCVT.+196 BITS(...0....).<br />

Modules/Macros:<br />

ARCCATBS ARCCPCTS ARCCVT<br />

SRLS:<br />

NONE<br />

REDUCE VIRTUAL STORAGE CONTRAINT RESULTING IN ABEND878 BELOW THE LINE BY MOVING<br />

<strong>DFSMS</strong>DSS TO OWN ADDRESS SPACE FOR M<strong>OS</strong>T FUNCTIONS.<br />

Error Description:<br />

New Function<br />

Local Fix:<br />

Responder Page<br />

Problem Summary:<br />

Problem Conclusion:<br />

Temporary Fix:<br />

Apply AA16192<br />

Comments:<br />

This support allows installations to request that <strong>DFSMS</strong>hsm invoke <strong>DFSMS</strong>dss via its<br />

cross-memory application interface.<br />

To request that <strong>DFSMS</strong>hsm invoke <strong>DFSMS</strong>dss via its cross-memory application<br />

interface installations must issue the following <strong>DFSMS</strong>hsm patch command:<br />

PATCH .MCVT.+433 X'FF'<br />

Turning the patch ON (X'FF') to request <strong>DFSMS</strong>dss cross-memory processing, the<br />

patch can only be issued from the <strong>DFSMS</strong>hsm startup command member (ARCCCMDnn).<br />

Attempts to patch this field to a value of X'FF' outside of <strong>DFSMS</strong>hsm startup<br />

initialization will fail with message MSGARC0235I.<br />

Installations which later decide they do not wish to invoke <strong>DFSMS</strong>dss via its<br />

cross-memory application interface, must issue the <strong>DFSMS</strong>hsm patch command to patch<br />

the MCVT+433 to any value other than X'FF'.<br />

For example, PATCH .MCVT.+433 X'00'.<br />

Patching this field to any value other than X'FF' may be done at any time.<br />

Issuing the patch outside of <strong>DFSMS</strong>hsm startup initialization is acceptable if the<br />

value being patched is something other than X'FF'. Otherwise, the command will<br />

fail with message MSGARC0235I.<br />

This enhancement introduces 1 new <strong>DFSMS</strong>hsm message MSGARC1017I and changes 1<br />

existing message, ARC0235I.<br />

The following changes should be made to the MVS System Messages Vol 2 -<br />

SA22-7632-10<br />

ARC1017I- LOAD OF ADRXMAIA FAILED. THE CR<strong>OS</strong>S-MEMORY INVOCATION<br />

OF <strong>DFSMS</strong>DSS DISABLED FOR MIGRATION, BACKUP, RECOVER,<br />

DUMP, RESTORE AND CDS BACKUP<br />

460 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Explanation: The load of ADRXMAIA failed. Cross-memory invocation of <strong>DFSMS</strong>dss in<br />

disabled for migration, backup, recover, dump, restore and CDS backup<br />

Source: <strong>DFSMS</strong>hsm<br />

System Action: <strong>DFSMS</strong>hsm processing continues. <strong>DFSMS</strong>dss will not be invoked using<br />

its cross-memory application interface.<br />

Application Programmer Response: Determine why the load failed.<br />

The most likely cause is that ADRXMAIA cannot be found in the load library<br />

concatentation.<br />

Programmer Response: None<br />

Operator Response: None<br />

The changed message:<br />

ARC0235I CANNOT PATCH PROTECTED DATA<br />

Explanation: One of the following has occurred:<br />

An attempt was made to patch data that is located in protected fields.<br />

An attempt was made to patch a field in the <strong>DFSMS</strong>hsm MCVT record to request that<br />

<strong>DFSMS</strong>hsm invoke <strong>DFSMS</strong>dss in cross-memory mode for migration, backup, recovery,<br />

dump, restore and CDS backup processing. Requests to patch a value of X'FF' in<br />

this field are only permitted during <strong>DFSMS</strong>hsm startup initialization processing.<br />

Requests to patch this field to any other value, preventing further <strong>DFSMS</strong>dss<br />

cross-memory invocations, is permitted outside of <strong>DFSMS</strong>hsm startup initialization.<br />

System Action: The command ends with no data modified. <strong>DFSMS</strong>hsm processing<br />

continues.<br />

Application Programmer Response: If the installations intent is to request<br />

<strong>DFSMS</strong>hsm to invoke <strong>DFSMS</strong>dss in cross-memory mode for migration, backup, recovery,<br />

dump, restore and CDS backup processing, the patch command will complete<br />

successfully if placed in the <strong>DFSMS</strong>hsm startup member of the<br />

SYS1.PARMLIB(ARCCMDxx).<br />

The following chapter should be added to the <strong>DFSMS</strong>hsm Implementation and<br />

Customization Guide<br />

<strong>DFSMS</strong>dss Address Space IDs used by <strong>DFSMS</strong>hsm<br />

When <strong>DFSMS</strong>hsm invokes <strong>DFSMS</strong>dss via the <strong>DFSMS</strong>dss cross-memory application<br />

interface, <strong>DFSMS</strong>hsm will request that <strong>DFSMS</strong>dss use a unique address space<br />

identifier for each unique <strong>DFSMS</strong>hsm function and host id. The address space<br />

identifier for each function will be in the format of "DFHnXXXX", where 'n' will<br />

represent the unique <strong>DFSMS</strong>hsm host id and 'XXXX' will represent the <strong>DFSMS</strong>hsm<br />

function. The following functional abbreviations will be used for 'XXXX'<br />

Dump - "DUMP"<br />

Restore = "REST"<br />

Migration = "MIGR"<br />

Backup = "BACK"<br />

Recover = "RCVR"<br />

CDS Backup = "CDSB"<br />

For instance, migration for HSM hostid=1 would result in a generated address<br />

space identifier of DFH1MIGR.<br />

Fast Replication Backup and Restore will also generate unique <strong>DFSMS</strong>dss address<br />

space identifiers but the format of those names will be in the format of<br />

"DSSFRftt" where "f'= a functin identifier of "B" for backup or "R" for recover.<br />

The "tt"=task number, which will be a character value between 1 and 64.<br />

Modules/Macros:<br />

SRLS:<br />

Return Codes:<br />

Circumvention:<br />

Message To Submitter:<br />

Appendix A. APAR text 461


OA18319<br />

OA18465<br />

This is a problem with DFDSS dropping SMS RLS attributes from data sets under<br />

certain circumstances if the volumes that the data set is on is specified.<br />

Description:<br />

A VSAM KSDS with data and index components on different volumes<br />

may lose its RLSDATA during DSS COPY. The problem reported came<br />

about because input volumes were specified on a LOGINDYNAM<br />

parameter with COPY statemets similar to the following:<br />

COPY DATASET(INCLUDE(DATASET.KSDS)) -<br />

LOGINDYNAM( -<br />

(VOLUM1) -<br />

(VOLUM2) -<br />

) -<br />

DELETE CATALOG -<br />

SPHERE<br />

When the data component resides on VOLUM2 and the index<br />

component on VOLUM1, the the RLS data is not propogated on<br />

COPY. If the order of the volumes in the LOGINDYNAM is<br />

swapped then the target data set will retain all of its RLS<br />

information.<br />

Local Fix:<br />

Do not specify input volumes.<br />

PTF List:<br />

Release 180 : UA29904 available 06/10/13 (F610)<br />

Parent APAR:<br />

Child APAR List:<br />

Page<br />

Error Description:<br />

Provide relief for <strong>DFSMS</strong>hsm v1r8 recycle data loss APAR OA18372.<br />

462 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

Submitter<br />

Local Fix:<br />

Hold RECYCLE and mark any partial ML2 and backup tapes full using the DELVOL<br />

volser MIGRATION(MARKFULL) or DELVOL volser BACKUP(MARKFULL) command, as<br />

appropriate.<br />

A TOOL can be downloaded to determine if tapes have been impacted with the error<br />

reported in this APAR. See the README member contained in the tool for details.<br />

FTP server: testcase.boulder.ibm.com<br />

directory : /mvs/fromibm<br />

filename : OA18372.ANALYSIS.TOOL.TR


2) Log on to FTP server (user: ANONYMOUS, password: email)<br />

Then issue the following sequence of commands:<br />

cd mvs/fromibm<br />

bin<br />

get OA18372.ANALYSIS.TOOL.TR 'local.ds.name' (replace<br />

quit<br />

3) Unterse the local file using job below:<br />

//STEP1 EXEC PGM=TRSMAIN,PARM=UNPACK<br />

//SYSPRINT DD SYSOUT=*<br />

//INFILE DD DISP=SHR,<br />

// DSNAME=%indsname<br />

//OUTFILE DD SPACE=(TRK,(10,10,20),RLSE),<br />

// VOL=(,,,1),DISP=(NEW,CATLG),UNIT=SYSDA,<br />

// DSNAME=%outdsname<br />

Responder Page<br />

Problem Summary:<br />

USERS AFFECTED:<br />

All <strong>V1R8</strong> <strong>DFSMS</strong>hsm users of RECYCLE.<br />

PROBLEM DESCRIPTION:<br />

Relief for OA18372.<br />

RECOMMENDATION:<br />

Relief for OA18372.<br />

Problem Conclusion:<br />

<strong>DFSMS</strong>hsm RECYCLE processing will call error-processing module ARCERP to abnormally<br />

terminate under the conditions that would otherwise result in the loss of data<br />

described in APAR OA18372.<br />

Although the recycle function may terminate abnormally under certain error<br />

conditions, <strong>DFSMS</strong>hsm <strong>V1R8</strong> customers can resume normal recycle processing without<br />

fear of data loss.<br />

OA18372 will provide a complete resolution to the problem that will eliminate the<br />

deliberate abends added by OA18465. Should any of the following symptoms occur<br />

after OA18465 is installed, the customer is requested to notify <strong>IBM</strong> Software<br />

Support so that the error conditions leading to the abend can be analyzed.<br />

The following symptoms will be observed when the abend occurs:<br />

For recycle of a Migration Tape:<br />

ARC0200I TRAP IN MODULE ARCRCYPQ, CODE=0007, ABEND ONCE ADDED<br />

ARC0900I <strong>DFSMS</strong>HSM ERROR CODE 0007 IN MODULE ARCRCYPQ TYPE ABEND<br />

ARC0003I ARCRCYVS TASK ABENDED, CODE 800003EF IN MODULE ARCERP<br />

AT OFFSET 04B0, STORAGE LOCATION=xxxxxxxx<br />

ARC0834I RECYCLE TASK xxxx ENDING. RC=0023, REAS=000<br />

The resulting dump will have the following title:<br />

ARCRCYVS TASK ABENDED CODE=800003EF IN MODULE ARCERP AT<br />

AT OFFSET=04B0, STORAGE LOCATION=xxxxxxxx<br />

For recycle of a Backup Tape:<br />

ARC0200I TRAP IN MODULE ARCRCYPQ, CODE=0005, ABEND ONCE ADDED<br />

ARC0900I <strong>DFSMS</strong>HSM ERROR CODE 0005 IN MODULE ARCRCYPQ TYPE ABEND<br />

ARC0003I ARCRCYVS TASK ABENDED, CODE 800003ED IN MODULE ARCERP<br />

AT OFFSET 04B0, STORAGE LOCATION=xxxxxxxx<br />

ARC0834I RECYCLE TASK xxxx ENDING. RC=0023, REAS=000<br />

The resulting dump will have the following title:<br />

ARCRCYVS TASK ABENDED CODE=800003ED IN MODULE ARCERP AT<br />

AT OFFSET=04B0, STORAGE LOCATION=xxxxxxxx<br />

New return codes 5 and 7 will be added to Table 1 in the <strong>DFSMS</strong>hsm Diagnosis manual<br />

(GC521083) for ARCRCYPQ.<br />

Additional keywords: MSGARC0200I MSGARC0208I MSGARC0900I RC5 RC7<br />

Appendix A. APAR text 463


OA19493<br />

OA20170<br />

MSGARC0003I MSGARC0834I RC23 RC0 REAS0 RSN0<br />

ABENDU3EF ABENDU3ED ABEND3EF ABEND3ED<br />

ABENDU1005 ABENDU1007 ABEND1005 ABEND1007<br />

Temporary Fix:<br />

*********<br />

HIPER<br />

*********<br />

Comments:<br />

Modules/Macros:<br />

ARCRCYPQ ARCTEOV<br />

SRLS:<br />

GC52108301<br />

Return Codes:<br />

Circumvention:<br />

Message To Submitter:<br />

There is a problem under circumstances with use of the <strong>DFSMS</strong>hsm migration fast<br />

reconnect. Certain options, which happen to be used by a well known data<br />

manipulation product can result in a recalled data set that is updated not being<br />

recognised as needing a new migration, and being reconnected to the prior version<br />

of the data.<br />

Description:<br />

DS1IND08 is not updated when a DSORG=PS data set is recalled,<br />

opened INOUT, updated (by appending records to the end), and<br />

successfully closed. DS1RECAL and DS1DSCHA are ON.<br />

****************************************************************<br />

* USERS AFFECTED: All using DFHSM Fast Subsequent Migrate *<br />

* function available in z/<strong>OS</strong>1.7. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: HSM Fast Subsequent Migrate function *<br />

* fails to detect data set was modified *<br />

* on recall. This could potentially *<br />

* cause a loss of data. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

OPEN processing for BSAM INOUT did not set output indicator<br />

DS1IND08 in the F1DSCB. After an OPEN for INOUT followed<br />

by a CL<strong>OS</strong>E TYPE=T, the data set is written to. The result<br />

is the HSM FSM function incorrectly reconnects to the<br />

original migrated copy.<br />

There is a problem with the CBRSMF macro which does not describe the offset to the<br />

ST38FLGs field correctly due to some missing fields in the definition.<br />

Description:<br />

Field ST38RCLD at +x'74' is missing and some comments are<br />

incomplete in the mapping macro for OAM type 85 subtype 38<br />

in SYS1.MACLIB(CBRSMF). Subtype 38 is for <strong>OS</strong>MC SINGLE OBJECT<br />

RECALL UTILITY.<br />

464 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OA20242<br />

OA09928<br />

Local Fix:<br />

none<br />

Message ADR146I does not get issued when using INDDNAME/INDYNAM for a logical<br />

COPY.<br />

Error.<br />

Description:<br />

In <strong>DFSMS</strong>dss release 1.8 the INDDNAME and INDYNAM keywords are<br />

obsolete for data set COPY and DUMP functions. ADR146I should be<br />

issued when these kewords are specified. This message IS<br />

issued for data set DUMP with INDDNAME, but is NOT issued for<br />

data set DUMP with INDYNAM or data set COPY with either INDDNAME<br />

or INDYNAM.<br />

This is the message text for a data set DUMP with INDDNAME:<br />

ADR146I (R/I)-RI03 (13), OBSOLETE KEYWORD 'INDDNAME ' SPECIFIED.<br />

'PHYSINDDNAME ' WILL BE USED.<br />

Error Description:<br />

New function to enhance migration duplex performance with D/T3592-J tape drives.<br />

Local Fix:<br />

Problem Summary:<br />

USERS AFFECTED:<br />

Users of <strong>DFSMS</strong>hsm's migration function when duplexing to 3592-J tape drives. The<br />

affected z/<strong>OS</strong> levels are V1R3-V1R6.<br />

PROBLEM DESCRIPTION:<br />

Performance suffers when <strong>DFSMS</strong>hsm migration duplexes to the 3592-J tape drive.<br />

RECOMMENDATION:<br />

Migration elapsed times rise dramatically when SYNCDEVs are done on two 3592-J<br />

tape drives simultaneously. The effect is most noticeable when migrating small<br />

data sets.<br />

Problem Conclusion:<br />

Temporary Fix:<br />

HIPER<br />

Comments:<br />

Duplex migration to D/T3592 -J tape drives is significantly enhanced when SYNCDEVs<br />

are not done for the alternate tape.<br />

Customers can now suppress syncs on the alternate tape during duplex migration.<br />

Syncs for the migration alternate tape can be turned off via:<br />

PATCH .MCVT.+196 BITS(..1.....)<br />

and back on via:<br />

PATCH .MCVT.+196 BITS(..0.....)<br />

The default is to do syncs on the alternate tapes.<br />

This patch is not recommended for earlier technology tape drives such as the 3490<br />

and 3590.<br />

Appendix A. APAR text 465


OW45264<br />

OW43224<br />

Prior APAR OW45264 describes a similar patch for turning off alternate tape syncs<br />

for Recycle. This can also dramatically improve performance with the 3592 -J tape<br />

drive.<br />

Search keywords D/T3592 3592J 3592J1A 3592-J1A .<br />

Error Description:<br />

AE fix continuation OW43224 UW71243 UW71244 UW71245 Recycle takes too long for<br />

D/T3590 drives.<br />

Local Fix:<br />

Problem Summary:<br />

USERS AFFECTED:<br />

All DFHSM Recycle users of Duplex tape.<br />

PROBLEM DESCRIPTION:<br />

Recycle takes too long for D/T3590 drives.<br />

RECOMMENDATION:<br />

Recycle processing for Duplex tapes performs a SYNCDEV for<br />

Problem Conclusion:<br />

<strong>DFSMS</strong>hsm issues a SYNCDEV after each successful data set is processed for both the<br />

primary and alternate output tapes. This increases the elapsed time Recycle will<br />

take to process in a duplex tape environment.<br />

Bypassing the SYNCDEV for the duplex alternate tape during Recycle is now<br />

supported. This reduces the time Recycle takes by bypassing the SYNCDEV of the<br />

duplex alternate tape after each data set. To bypass the alternate tapes SYNCDEV<br />

operation, enter the following PATCH command for your release:<br />

For releases HDZ11D0 AND HDZ11E0:<br />

PATCH .YGCB.+88 BITS(......1.)<br />

For releases HDZ11F0, HDZ11G0, HDZ11H0, HDZ11J0 & HDZ11K0:<br />

PATCH .YGCB.+C8 BITS(......1.)<br />

To preserve the PATCH when HSM is restarted, place the PATCH command in the HSM<br />

startup parmlib member ARCCMDxx.<br />

To remove the patch and allow the SYNCDEV to be again occur on the alternate<br />

volume, enter the following PATCH command for your release and remove the<br />

previous PATCH from ARCCMDxx:<br />

For releases HDZ11D0 AND HDZ11E0:<br />

PATCH .YGCB.+88 BITS(......0.)<br />

For releases HDZ11F0, HDZ11G0, HDZ11H0, HDZ11J0 & HDZ11K0:<br />

PATCH .YGCB.+C8 BITS(......0.)<br />

If you had the following PATCH installed from APAR OW43224:<br />

PATCH .MCVT.+295 BITS(....1...)<br />

it should be removed at this time.<br />

Error Description:<br />

Recycle takes too long for D/T3590 drives.<br />

Local Fix:<br />

Problem Summary:<br />

USERS AFFECTED:<br />

All DFHSM Recycle users of Duplex tape.<br />

466 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OA17734<br />

PROBLEM DESCRIPTION:<br />

Recycle takes too long for D/T3590 drives.<br />

RECOMMENDATION:<br />

Recycle processing for Duplex tapes performs a SYNCDEV for both the primary and<br />

alternate tape after each dataset.<br />

Problem Conclusion:<br />

<strong>DFSMS</strong>hsm issues a SYNCDEV after each successful dataset is processed for both the<br />

primary and alternate output tapes.<br />

This increases the elapsed time Recycle will take to process in a duplex tape<br />

environment. Bypassing the SYNCDEV for the duplex alternate tape during Recycle is<br />

now supported. This reduces the time Recycle takes by bypassing the SYNCDEV of the<br />

duplex alternate tape after each dataset. To bypass the alternate tapes SYNCDEV<br />

operation, a new HSM PATCH may be issued.<br />

See APAR OW45264 for the latest PATCH information.<br />

Problem Summary:<br />

USERS AFFECTED:<br />

Users of VSAM RLS.<br />

PROBLEM DESCRIPTION:<br />

This Health Check is the interface to VSAM RLS Diagnostic Contention console<br />

command:<br />

D SMS,SMSVSAM,DIAG(CONTENTION)<br />

RECOMMENDATION:<br />

This APAR implements VSAM RLS HealthCheck <strong>IBM</strong>VSAMRLS - VSAMRLS_DIAG_CONTENTION.<br />

Problem Conclusion:<br />

Publication<br />

"z/<strong>OS</strong> <strong>V1R8</strong>.0 MVS System Messages, Vol 9 (IGF-IWM)"<br />

(SA22-7639-12) Chapter 6.0 has been supplemented<br />

with msgs IGWR101I IGWR102E IGWR103I IGWR105I.<br />

Publication<br />

"<strong>IBM</strong> Health Checker for z/<strong>OS</strong> User's Guide"<br />

(SA22-7994-03) has been suplemented to include a section "VSAM Record Level<br />

Sharing (VSAMRLS) checks (<strong>IBM</strong>VSAMRLS) VSAMRLS_DIAG_CONTENTION"<br />

Register this check by issuing the following console command:<br />

setprog exit,add,exitname=hzsaddcheck,modname=igwrdadd<br />

This registration must be repeated after every IPL for this check to be loaded and<br />

available to the HealthChecker.<br />

Temporary Fix:<br />

Comments:<br />

The Health Check is developed to address the centralization of VSAM RLS diagnostic<br />

services. Mainly the Diag Contention console command:<br />

D SMS,SMSVSAM,DIAG(CONTENTION)<br />

**** AE06/11/20 FIX IN ERROR. SEE APAR OA19054 FOR DESCRIPTION<br />

Modules/Macros:<br />

HDZ1180J IDAVSCSR IDAVSSPC IDAVSSSR IGWRDADD IGWRDDSP IGWRDM01<br />

IGWRDPCS IGWRDRDS IGWSCMD IGWSROUT IGWSRTE2<br />

SRLS:<br />

SA22799403 SA22763912<br />

Appendix A. APAR text 467


OA16372<br />

APAR Identifier ...... OA16372 Last Changed ........ 07/05/17<br />

I/O ERROR ON READ. MM ERROR CODES=X'00140408' DB2 REASON CODE=<br />

X'00C200A4'. REPRO RETURNS RPLFDBWD = X'21080018'<br />

Symptom ...... MS 21080018 Status ........... CL<strong>OS</strong>ED PER<br />

Severity ................... 2 Date Closed ......... 07/05/17<br />

Component .......... 5695DF106 Duplicate of ........<br />

Reported Release ......... 1K0 Fixed Release ............ 999<br />

Component Name <strong>DFSMS</strong> VSAM MEDA Special Notice ATTENTION<br />

Current Target Date ..07/05/31 Flags<br />

SCP ...................<br />

Platform ............ PERVASIVE<br />

Status Detail: APARCL<strong>OS</strong>URE - APAR is being closed.<br />

PE PTF List:<br />

PTF List:<br />

Release 1K0 : PTF not available yet<br />

Release 180 : PTF not available yet<br />

Parent APAR:<br />

Child APAR list: OA17415<br />

ERROR DESCRIPTION:<br />

Volume serials out of order. This results in I/O errors on<br />

read.<br />

MM ERROR CODES=X'00140408'<br />

DB2 REASON CODE=X'00C200A4'.<br />

REPRO returns<br />

IDC3351I ** VSAM I/O RETURN CODE IS 24 - RPLFDBWD = X'21080018'<br />

LOCAL FIX:<br />

DELETE N<strong>OS</strong>CRATCH and DEFINE RECATALOG with the volumes<br />

specified in the correct order. The LISTCAT for the data set<br />

is needed before doing the DELETE so the correct order for the<br />

volumes can be determined.<br />

PROBLEM SUMMARY:<br />

****************************************************************<br />

* USERS AFFECTED: All HDZ11K0 users and above of VSAM reading *<br />

* or writing to a multi-volume *<br />

* VSAM data set where the volumes have been *<br />

* recataloged in a different order *<br />

* than originally extended to. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: VSAM GET/PUT requests fail with *<br />

* RC=8RPLFDBK X'21080018' (media manager *<br />

468 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OA17415<br />

* error x'00140408') when accessinga VSAM *<br />

* data set and the data set has *<br />

* more than 3 volumes which have *<br />

* been recataloged out of original *<br />

* extend order. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

VSAM Open is modified to detect Volumes out of order<br />

condition. IEC161I 071(SFI)-026 informational msesage<br />

will be issued. User should put volumes back in the<br />

original order before proceeding.<br />

PROBLEM CONCLUSION:<br />

For out of sequence volumes, the following 2 errors will<br />

no longer be given:<br />

Media Manager ERROR CODES=X'00140408'<br />

Record Management RPLFDBWD = X'21080018'<br />

However, the user should take measures to correct the out<br />

of sequence volumes as indicated by message IEC161I 'action<br />

required'.<br />

TEMPORARY FIX:<br />

COMMENTS:<br />

MODULES/MACR<strong>OS</strong>: IDAAMB IDA0192Z<br />

SRLS: SA22763712<br />

RTN CODES:<br />

CIRCUMVENTION:<br />

MESSAGE TO SUBMITTER:<br />

APAR Identifier ...... OA17415 Last Changed ........ 06/11/01<br />

I/O ERROR ON READ. MM ERROR CODES=X'00140408' DB2 REASON CODE=<br />

X'00C200A4'. *COMPANION FIX FOR OA16372*<br />

Symptom ...... MS 21080018 Status ........... CL<strong>OS</strong>ED PER<br />

Severity ................... 2 Date Closed ......... 06/09/19<br />

Appendix A. APAR text 469


Component .......... 5695DF122 Duplicate of ........<br />

Reported Release ......... 1K0 Fixed Release ............ 999<br />

Component Name VSAM REC LEV SH Special Notice HIPER<br />

Current Target Date ..06/09/18 Flags<br />

SCP ................... FUNCTIONL<strong>OS</strong>S<br />

Platform ............<br />

Status Detail: SHIPMENT - Packaged solution is available for<br />

shipment.<br />

PE PTF List:<br />

PTF List:<br />

Release 1K0 : UA29376 available 06/10/31 (F610 )<br />

Release 180 : UA29377 available 06/10/31 (F610 )<br />

Parent APAR: OA16372<br />

Child APAR list:<br />

ERROR DESCRIPTION:<br />

Volume serials out of order. This results in I/O errors on<br />

read.<br />

MM ERROR CODES=X'00140408'<br />

DB2 REASON CODE=X'00C200A4'.<br />

REPRO returns<br />

IDC3351I ** VSAM I/O RETURN CODE IS 24 - RPLFDBWD = X'21080018'<br />

LOCAL FIX:<br />

DELETE N<strong>OS</strong>CRATCH and DEFINE RECATALOG with the volumes<br />

specified in the correct order. The LISTCAT for the data set<br />

is needed before doing the DELETE so the correct order for the<br />

volumes can be determined.<br />

PROBLEM SUMMARY:<br />

****************************************************************<br />

* USERS AFFECTED: All HDZ11K0 users and above of VSAM RLS *<br />

* reading or writing to a multi-volume *<br />

* VSAM data set where the volumes have been *<br />

* recataloged in a different order than *<br />

* originally extended to. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: VSAM GET/PUT requests fail with RC=8 *<br />

* RPLFDBK X'21080018' (media manager *<br />

* error x'00140408') when accessing *<br />

* a VSAM data set for RLS and the *<br />

* data set has more than three volumes *<br />

* which have been recatalog out of *<br />

* the original extend order. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

470 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OA20293<br />

New code provided in HDZ11K0 and above for greater than 255<br />

extent relief modified the VSAM RLS I/O path to not search all<br />

internal extent control blocks for the referenced CI. If the<br />

secondary volumes are recatalog in a different order than<br />

the order they were originally extended on, and the I/O<br />

request is for a CI on a volume now "out of sequence", the<br />

request will fail with the RC=8 RSN21080018.<br />

PROBLEM CONCLUSION:<br />

The VSAM RLS OPEN path was modified to allow the I/O path<br />

to search all extent control blocks for the requested CI.<br />

TEMPORARY FIX:<br />

*********<br />

* HIPER *<br />

*********<br />

++APAR AVAILABLE ON REQUEST.<br />

COMMENTS:<br />

MODULES/MACR<strong>OS</strong>: IDAVRSE0 IDAV192Z<br />

SRLS: NONE<br />

RTN CODES:<br />

CIRCUMVENTION:<br />

OA20293 Last Changed ........ 07/06/13<br />

AFTER OA17011 IGD17364I IS ISSUED WHEN MANAGEMENT CLASS<br />

RETENTION LIMIT IS ZERO AND TAPE DATA SETS ARE DELETED<br />

Symptom ...... MS IGD17364I Status ........... CL<strong>OS</strong>ED PER<br />

Severity ................... 2 Date Closed ......... 07/05/24<br />

Component .......... 5695DF101 Duplicate of ........<br />

Reported Release ......... 180 Fixed Release ............ 999<br />

Component Name STORAGE MGMT SU Special Notice PE HIPER<br />

Current Target Date ..07/06/08 Flags<br />

SCP ...................<br />

Platform ............ DATAL<strong>OS</strong>S<br />

Status Detail: SHIPMENT - Packaged solution is available for<br />

shipment.<br />

PE PTF List: UA28408 UA28410 UA28407 UA28409 UA28411 UA90305<br />

Appendix A. APAR text 471


UA90352 UA90351 UA90307 UA90306<br />

PTF List:<br />

Release 1J0 : UA34457 available 07/06/13 (1000 )<br />

Release 1K0 : UA34458 available 07/06/13 (1000 )<br />

Release 180 : UA34459 available 07/06/13 (1000 )<br />

Release 190 : UA34460 available 07/06/13 (1000 )<br />

Tentative Affected Releases and Current Relief Available:<br />

Release 180 : Relief is available in the form of: LOCALFIX<br />

Parent APAR:<br />

Child APAR list:<br />

ERROR DESCRIPTION:<br />

After applying OA17011 the follow message may appear in the<br />

joblog:<br />

IGD17364I DATA SET my.tape.data.set.name<br />

NOT AUTHORIZED TO EXPIRATION DATE SPECIFIED<br />

EXPIRATION DATE RESET TO MAXIMUM ALLOWED 0.0<br />

This occurs when customers specify a Retention Limit of zero<br />

in the data set's Management Class.<br />

The problem with this PTF is that tape data sets are<br />

also getting deleted. The documentation states "Management<br />

class is not used for tape data sets." in the <strong>DFSMS</strong>dfp Storage<br />

Administration Reference.<br />

Request to development: Customer's have also expressed that<br />

IGD17364I should be issued in the SYSLOG. Please see marketing<br />

request MR0205072635<br />

=====<br />

Additional Symptoms:<br />

Tape volumes are prematurely released during RMM Housekeeping<br />

because the special expiration date explicitly specified<br />

in the JCL by the user is overridden when the management<br />

class assigned to the tape data set specifies Retention<br />

Limit = 0. Management class attributes should not apply<br />

to tape data sets.<br />

For newly-created tape data sets, at open time the RMM<br />

EDGUX100 installation exit checks the JCL expiration<br />

date to see if a special date (e.g., 99000, 99365, 98010,<br />

etc.) is specified. If so, an appropriate VRS Management<br />

Value will be assigned to the data set, that will match<br />

during housekeeping with an RMM vital record specification<br />

( VRS ) that defines the retention policy to be applied<br />

to the data set.<br />

When OA17011 is applied, if Retention Limit is set to zero,<br />

the tape data set's special expiration date in the JCL<br />

is overridden causing the 'Original Expiration Date' field<br />

and the 'VRS Management Value' field in the RMM CDS data<br />

472 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


set record to be blank, and thus, the tape data set/volume<br />

is retained improperly. Specify Retention Limit = NOLIMIT<br />

to circumvent the problem.<br />

OEM tape management system users (e.g., CA-1) may also be<br />

affected.<br />

Additional Keywords:<br />

<strong>DFSMS</strong>rmm DFRMM RMM 5695DF186 RMMCJH EXPDT OEXPDT UXTABLE<br />

EDGCVRSX VRSMV MV DATAL<strong>OS</strong>S SCRATCH SCRATCHED CA1 TMS<br />

LOCAL FIX:<br />

Specify NOLIMIT for Retention Limit in the Management Class.<br />

PROBLEM SUMMARY:<br />

****************************************************************<br />

* USERS AFFECTED: USERS AT Z/<strong>OS</strong> <strong>DFSMS</strong>DFP RELEASE 1G0 AND *<br />

* HIGHER. *<br />

****************************************************************<br />

* PROBLEM DESCRIPTION: OA17011 supports MGMTCLAS maximum *<br />

* retention period limit for library tape *<br />

* datasets which caused problems where *<br />

* the assigned MGMTCLAS has maximum *<br />

* retention limit set to 0. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

Customers who have been assigning MGMTCLAS with maximum<br />

retention limit set to 0 find library tape volumes being<br />

returned to scratch status unexpectedly.<br />

PROBLEM CONCLUSION:<br />

With this APAR , the code is now changed back to ignore the<br />

MGMTCLAS retention limit processing. For those customers who<br />

have made MGMTCLAS adjustment by specifying a meaningful<br />

retention limit will not be honored after the installation of<br />

this APAR. Therefore, MSG IGD17364I will no longer be issued.<br />

TEMPORARY FIX:<br />

COMMENTS:<br />

MODULES/MACR<strong>OS</strong>: IGDVTSTP<br />

SRLS: NONE<br />

RTN CODES:<br />

Appendix A. APAR text 473


OA17011<br />

CIRCUMVENTION:<br />

MESSAGE TO SUBMITTER:<br />

APAR Identifier ...... OA17011 Last Changed ........ 07/05/24<br />

RETENTION PERIOD LIMIT IN MANAGEMENT CLASS EXPIRATION DATE EXPDT<br />

RETPD<br />

Symptom ...... IN INCORROUT Status ........... CL<strong>OS</strong>ED PER<br />

Severity ................... 4 Date Closed ......... 06/06/23<br />

Component .......... 5695DF101 Duplicate of ........<br />

Reported Release ......... 1J0 Fixed Release ............ 999<br />

Component Name STORAGE MGMT SU Special Notice ATTENTION<br />

Current Target Date ..06/08/20 Flags<br />

SCP ................... NEW FUNCTION<br />

Platform ............<br />

Status Detail: SHIPMENT - Packaged solution is available for<br />

shipment.<br />

PE PTF List:<br />

PTF List:<br />

Release 1G0 : UA28407 available 06/09/16 (F609 )<br />

Release 1H0 : UA28408 available 06/09/16 (F609 )<br />

Release 1J0 : UA28409 available 06/09/16 (F609 )<br />

Release 1K0 : UA28410 available 06/09/16 (F609 )<br />

Release 180 : UA28411 available 06/09/16 (F609 )<br />

Parent APAR:<br />

Child APAR list:<br />

ERROR DESCRIPTION:<br />

This PMR was created as a result of field test for PMR<br />

74060,499,000. During field testing it was discovered<br />

that the Retention limit in the management class did not<br />

limit the expiration date specified in the Data Class or<br />

the JCL.<br />

LOCAL FIX:<br />

specify the expiration date which is not above your desired<br />

retention limit.<br />

PROBLEM SUMMARY:<br />

****************************************************************<br />

* USERS AFFECTED: Users at <strong>DFSMS</strong>dfp 1.G.0 and higher releases. *<br />

****************************************************************<br />

474 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* PROBLEM DESCRIPTION: Management class retention limit not *<br />

* enforced. *<br />

****************************************************************<br />

* RECOMMENDATION: *<br />

****************************************************************<br />

When JCL specified RETPD exceeds the maximum retention specified<br />

in management class, the management class value should override<br />

the JCL value.<br />

PROBLEM CONCLUSION:<br />

IGDVTSTP is changed to check the correct field for management<br />

class.<br />

TEMPORARY FIX:<br />

COMMENTS:<br />

**** PE07/03/08 FIX IN ERROR. SEE APAR OA20293 FOR DESCRIPTION<br />

MODULES/MACR<strong>OS</strong>: IGDVTSTP<br />

SRLS: NONE<br />

RTN CODES:<br />

CIRCUMVENTION:<br />

MESSAGE TO SUBMITTER:<br />

Appendix A. APAR text 475


476 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Appendix B. Code samples<br />

This appendix contains sample code that may be useful when implementing <strong>DFSMS</strong> V1.8.<br />

Each sample program is documented separately so that it can be used individually as<br />

required.<br />

In Table B-1 we list the programs provided.<br />

Table B-1 SMF extract sample programs<br />

Program Function<br />

SMF42T1 (see “SMF record type 42 sub type 1<br />

data” on page 478)<br />

SMF85TA (see “SMF record type 85 subtype 1-7<br />

data display program” on page 513)<br />

SMF85TO (see “SMF record type 85 subtype 38<br />

data display program” on page 484)<br />

SMF85TI (see “SMF record type 85 subtype 39<br />

data display program” on page 490)<br />

SMF85TJ (see “SMF record type 85 subtype 40<br />

data display program” on page 496)<br />

SMF85TH (see “SMF record type 85 subtype<br />

32-35 data display program” on page 502)<br />

SMF42TG (see “SMF record type 42 subtype 16<br />

data display program” on page 522)<br />

SMF42TI (see “SMF Record type 42 subtype 18<br />

data display program” on page 534)<br />

SMF42TJ (see “SMF record type 42 subtype 19<br />

data display program” on page 547)<br />

PDSE SMF TYPE42 records subtype 1<br />

B<br />

OAM SMF TYPE85 records subtypes 1-7<br />

OAM SMF TYPE85 records subtype 38<br />

OAM SMF TYPE85 records subtype 39<br />

OAM SMF TYPE85 records subtype 40<br />

OAM SMF TYPE85 records subtypes 32-35<br />

VSAM RLS SMF TYPE42 records subtype 16<br />

VSAM RLS SMF TYPE42 records subtype 18<br />

VSAM RLS SMF TYPE42 records subtype 19<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 477


SMF record type 42 sub type 1 data<br />

SMF record type 42 subtype 1 captures the PDSE buffer management function statistics.<br />

We provide sample source code to print out the contents of the records as captured by SMF.<br />

Sample JCL to run this program is provided at 3.9.1, “BMF data capture preparation” on<br />

page 66. The program is provided in assembler source form so that it can be assembled<br />

using the current system macros, but otherwise should not require any user modification for<br />

immediate use.<br />

Figure B-1 shows an example of the JCL required to assemble and store the formatting<br />

program in a load module data set. The assembler source is expected to be in data set<br />

PDSERES.SMF42T1.JCL(SMF42T1A), and the result is in data set<br />

PDSERES.SMF42T1J.PDS.<br />

//MHLRES1L JOB (1234567,COMMENT),MHLRES1,TIME=10,NOTIFY=MHLRES1<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=PDSERES.SMF42T1.JCL(SMF42T1A)<br />

/*<br />

//LKED.SYSLMOD DD DSN=PDSERES.SMF42T1J.PDS,DISP=SHR<br />

//LKED.SYSIN DD *<br />

NAME SMF42T1(R)<br />

Figure B-1 Example of JCL to assemble and link SMF type 42 formatting program<br />

The source code contained in Example B-1 should be cut and pasted into a data set, then<br />

assembled. The source lines are provided to check that all lines are cut and pasted, but we do<br />

not recommend attempting to capture the line numbers. The line numbers run continuously<br />

from start to end.<br />

Details on the PDSE buffer management function (BMF) and use of the SMF42T1 program<br />

can be found in Partitioned Data Set Extended Usage Guide, SG24-6106, and a summary at<br />

3.9.3, “SMF statistics interpretation” on page 69.<br />

Example: B-1 Source of program to print out contents of SMF TYPE 42 subtype 1 records<br />

MACRO 00010011<br />

&NAME SEGSTART 00020011<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA 00030011<br />

R0 EQU 0 00040011<br />

478 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


R1 EQU 1 00050011<br />

R2 EQU 2 00060011<br />

R3 EQU 3 00070011<br />

R4 EQU 4 00080011<br />

R5 EQU 5 00090011<br />

R6 EQU 6 00100011<br />

R7 EQU 7 00110011<br />

R8 EQU 8 00120011<br />

R9 EQU 9 00130011<br />

R10 EQU 10 00140011<br />

R11 EQU 11 00150011<br />

RB EQU 12 00160011<br />

R13 EQU 13 00170011<br />

R14 EQU 14 00180011<br />

R15 EQU 15 00190011<br />

BALR 12,0 SET UP ADDRESSABILITY 00200011<br />

USING *,12 USE REG 12 AS BASE REG 00210011<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE 00220011<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3 00230011<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS 00240011<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13 00250011<br />

MEND 00260011<br />

MACRO 00270011<br />

&NAME2 SEGEND 00280011<br />

&NAME2 L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE 00290011<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA 00300011<br />

XR R15,R15 00310011<br />

BR 14 RETURN TO CALLING RTN VIA REG 14 00320011<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA 00330011<br />

MEND 00340011<br />

SMFR42T1 SEGSTART 00350011<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF 00360011<br />

* THE SMF TYPE 42 SUBTYPE 1 RECORDS, WHICH ARE THE SMS BMF 00370011<br />

* RECORDS 00380011<br />

* THE IFASMFDP PROGRAM MUST HAVE BEEN USED 00390011<br />

* TO SELECT RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR 00400011<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS. 00410011<br />

* 00420011<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED. 00430011<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 42 RECORD 00440011<br />

* R3 START OF WHOLE RECORD 00450011<br />

* R4 START OF SMF42S1 SECTION 00460011<br />

* R5 START OF SMF4201A BMF TOTALS SECTION 00470011<br />

* R6 START OF SMF4201B BMF BUFFER MANAGEMENT STATISTICS SECTION 00480011<br />

* OTHER REGISTER USES 00490011<br />

* R12 OVERALL BASE REGISTER 00500011<br />

* R7 RECORD TYPE/SUBTYPE CHECKING/WORKING 00510011<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING 00520011<br />

* R9 USED FOR OFFSET LENGTH ON TRIPLETS 00530011<br />

* R10 USED FOR BCT 00540011<br />

* R11 USED FOR TIME CONVERSION 00550011<br />

* R14 USED FOR TIME CONVERSION 00560011<br />

* R15 USED FOR TIME CONVERSION 00570011<br />

* 00580011<br />

OPEN SMFIN QSAM GET LOCATE PROCESSING IS USED 00590011<br />

OPEN (PRINTDCB,(OUTPUT)) QSAM PUT MOVE PROCESSING IS USED 00600011<br />

PUT PRINTDCB,PRINTHDR 00610011<br />

READ GET SMFIN 00620011<br />

LR R3,R1 COPY PARAMETER POINTER 00630011<br />

USING SMF42,R3 -> SMF RECORD 00640011<br />

Appendix B. Code samples 479


* CHECK IF TYPE 02 00650011<br />

CLI SMF42RTY,X'02' (SAME DISPLAEMENT SMF ADMIN RECORD 02) 00660011<br />

BE IGNORE 00670011<br />

CLI SMF42RTY,X'2A' * CHECK IF TYPE 42 00680011<br />

BNE IGNORE 00690011<br />

CHKSTYP1 DS 0H 00700011<br />

CLI SMF42STY+1,X'01' * CHECK IF SUBTYPE 1 00710011<br />

BNE IGNORE 00720011<br />

* IS TYPE 42 SUBTYPE 1, SO EXTRACT DATA 00730011<br />

* FIRST EXTRACT THE RECORD TIME AND DATE AND CONVERT TO HUMAN 00740011<br />

* THEN ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS. 00750011<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION 00760011<br />

* ADD R8 TO R3 00770011<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS, HOWEVER MANY THERE ARE 00780011<br />

MVC TIMEF,SMF42TME SAVE THE SMF TIME IN 100THS OF SECS 00790011<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00800011<br />

L R15,TIMEF COMPLETE EVEN/ODD PAIR CONTENTS 00810011<br />

LA R11,100 START BY DIVIDING BY 100 TO GET SECS 00820011<br />

DR R14,R11 DIVIDE 00830011<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 00840011<br />

* REMAINDER NOW IN R14 WHICH WE IGNORE 00850011<br />

* QUOTIENT IN R15 - IE SECONDS WHICH WE CONVERT TO MINS + SECS 00860011<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00870011<br />

LA R11,60 DIVIDE BY 60 TO GET MINS 00880011<br />

DR R14,R11 DIVIDE TO GET MINUTES & SECONDS AS REM. 00890011<br />

* REMAINDER NOW IN R14 WHICH IS SECONDS WHICH WE MUST SAVE 00900011<br />

* QUOTIENT IN R15 - IE MINUTES FOR MORE PROCESSING 00910011<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 00920011<br />

OI TIMET+7,X'0F' FIX SIGN 00930011<br />

UNPK TIMEX+6(2),TIMET+6(2) UNPACK SECONDS 00940011<br />

MVI TIMEX+5,C':' 00950011<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00960011<br />

LA R11,60 DIVIDE BY 60 TO GET HOURS 00970011<br />

DR R14,R11 DIVIDE TO GET HOURS & MINUTES AS REM. 00980011<br />

* REMAINDER NOW IN R14 WHICH IS MINUTES WHICH WE MUST SAVE 00990011<br />

* QUOTIENT IN R15 - IE HOURS WHICH WE MUST SAVE 01000011<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01010011<br />

OI TIMET+7,X'0F' FIX SIGN 01020011<br />

UNPK TIMEX+3(2),TIMET+6(2) UNPACK MINUTES 01030011<br />

MVI TIMEX+2,C':' 01040011<br />

CVD R15,TIMET CONVERT TO PACKED DECIMAL 01050011<br />

OI TIMET+7,X'0F' FIX SIGN 01060011<br />

UNPK TIMEX+0(2),TIMET+6(2) UNPACK HOURS 01070011<br />

MVC P42TME1,TIMEX 01080011<br />

MVC P42TME,TIMEX 01090011<br />

UNPK P42DTE(7),SMF42DTE(4) 01100011<br />

OI P42DTE+3,X'F0' 01110011<br />

CLC P42DTE(2),=CL2'01' 01120011<br />

BNE *+10 01130011<br />

MVC P42DTE(2),=C'20' 01140011<br />

MVC P42DTE(2),=C'20' 01150011<br />

MVC P42DTE1,P42DTE 01160011<br />

* 01170011<br />

LA R4,SMF42END END OF HEADER, START OF DATA 01180011<br />

USING SMF42S1,R4 01190011<br />

L R8,SMF42BMO OFFSET TO BMF TOTALS SECTIONS 01200011<br />

LH R9,SMF42BML LENGTH OF BMF TOTALS SECTIONS 01210011<br />

LH R10,SMF42BMN NUMBER OF BMF TOTALS SECTIONS 01220011<br />

BMFTRIP DS 0H 01230011<br />

CVD R10,DWORD 01240011<br />

480 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


OI DWORD+7,X'0F' 01250011<br />

UNPK P42T#(7),DWORD+4(4) 01260011<br />

PUT PRINTDCB,PRBMSL1 01270011<br />

LA R5,0(R3,R8) 01280011<br />

USING SMF4201A,R5 01290011<br />

L R7,SMF42TNA 01300011<br />

CVD R7,DWORD 01310011<br />

OI DWORD+7,X'0F' 01320011<br />

UNPK P42TNA(7),DWORD+4(4) 01330011<br />

L R7,SMF42TMT 01340011<br />

CVD R7,DWORD 01350011<br />

OI DWORD+7,X'0F' 01360011<br />

UNPK P42TMT(7),DWORD+4(4) 01370011<br />

L R7,SMF42TRT 01380011<br />

CVD R7,DWORD 01390011<br />

OI DWORD+7,X'0F' 01400011<br />

UNPK P42TRT(7),DWORD+4(4) 01410011<br />

L R7,SMF42TRH 01420011<br />

CVD R7,DWORD 01430011<br />

OI DWORD+7,X'0F' 01440011<br />

UNPK P42TRH(7),DWORD+4(4) 01450011<br />

L R7,SMF42TDT 01460011<br />

CVD R7,DWORD 01470011<br />

OI DWORD+7,X'0F' 01480011<br />

UNPK P42TDT(7),DWORD+4(4) 01490011<br />

L R7,SMF42TDH 01500011<br />

CVD R7,DWORD 01510011<br />

OI DWORD+7,X'0F' 01520011<br />

UNPK P42TDH(7),DWORD+4(4) 01530011<br />

L R7,SMF42BUF 01540011<br />

CVD R7,DWORD 01550011<br />

OI DWORD+7,X'0F' 01560011<br />

UNPK P42BUF(7),DWORD+4(4) 01570011<br />

L R7,SMF42BMX 01580011<br />

CVD R7,DWORD 01590011<br />

OI DWORD+7,X'0F' 01600011<br />

UNPK P42BMX(7),DWORD+4(4) 01610011<br />

LH R7,SMF42LRU 01620011<br />

CVD R7,DWORD 01630011<br />

OI DWORD+7,X'0F' 01640011<br />

UNPK P42LRU(7),DWORD+4(4) 01650011<br />

LH R7,SMF42UIC 01660011<br />

CVD R7,DWORD 01670011<br />

OI DWORD+7,X'0F' 01680011<br />

UNPK P42UIC(7),DWORD+4(4) 01690011<br />

DROP R5 01700011<br />

PUT PRINTDCB,PRBMSL2 01710011<br />

PUT PRINTDCB,PRBMSL3 01720011<br />

PUT PRINTDCB,PRINTBLK 01730011<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 01740011<br />

LA R8,0(R8,R9) 01750011<br />

BCT R10,BMFTRIP 01760011<br />

* WHEN BCT REACHES ZERO GO ON WITH THE SCLASS ENTRIES 01770011<br />

* PROCESS THE SC ENTRIES TRIPLET. 01780011<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START 01790011<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET 01800011<br />

* THIRD HW IS THE NUMBER OF TRIPLETS 01810011<br />

L R8,SMF42SCO OFFSET TO THE SCLASS SECTION 01820011<br />

LH R9,SMF42SCL LENGTH OF THE SCLASS SECTIONS 01830011<br />

LH R10,SMF42SCN NUMBER OF SCLASS SECTIONS 01840011<br />

Appendix B. Code samples 481


SCOTRIP DS 0H 01850011<br />

LA R6,0(R3,R8) 01860011<br />

USING SMF4201B,R6 01870011<br />

MVC P42PNN,SMF42PNN 01880011<br />

PUT PRINTDCB,PRINTL1 01890011<br />

L R7,SMF42SRT 01900011<br />

CVD R7,DWORD 01910011<br />

OI DWORD+7,X'0F' 01920011<br />

UNPK P42SRT(7),DWORD+4(4) 01930011<br />

L R7,SMF42SRH 01940011<br />

CVD R7,DWORD 01950011<br />

OI DWORD+7,X'0F' 01960011<br />

UNPK P42SRH(7),DWORD+4(4) 01970011<br />

L R7,SMF42SDT 01980011<br />

CVD R7,DWORD 01990011<br />

OI DWORD+7,X'0F' 02000011<br />

UNPK P42SDT(7),DWORD+4(4) 02010011<br />

L R7,SMF42SDH 02020011<br />

CVD R7,DWORD 02030011<br />

OI DWORD+7,X'0F' 02040011<br />

UNPK P42SDH(7),DWORD+4(4) 02050011<br />

WRITEIT DS 0H 02060011<br />

PUT PRINTDCB,PRINTL2 02070011<br />

PUT PRINTDCB,PRINTL3 02080011<br />

PUT PRINTDCB,PRINTBLK 02090011<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02100011<br />

* 02110011<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD 02120011<br />

LA R8,0(R8,R9) 02130011<br />

BCT R10,SCOTRIP 02140011<br />

B READ 02150011<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS 02160011<br />

B READ 02170011<br />

FINI DS 0H 02180011<br />

SEGEND 02190011<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP,EODAD=FINI 02200011<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133 02210011<br />

DWORD DS D 02220011<br />

ORG DWORD 02230011<br />

DC C'12345678' 02240011<br />

TIMET DS D WORKAREA FOR TIME CONVERSION 02250011<br />

TIMEX DS D WORKAREA FOR TIME CONVERSION 02260011<br />

TIMEF DS F WORKAREA FOR TIME CONVERSION 02270011<br />

PRINTBLK DC CL133' ' 02280011<br />

PRINTHDR DC CL133'1SMF TYPE 42 S/TYPE 1 RECORDS. COLS USE SMF NAMES' 02290011<br />

PRINTL1 DC CL133' SMF42PNN (SCLASS):' 02300011<br />

ORG PRINTL1+20 02310011<br />

P42PNN DC CL30' ' 02320011<br />

ORG 02330011<br />

PRBMSL1 DC CL133' BMF TOTALS SET #:' 02340011<br />

ORG PRBMSL1+20 02350011<br />

P42T# DC CL8' ' 02360011<br />

ORG 02370011<br />

* 02380011<br />

PRBMSL2 DC CL133' ' 02390011<br />

ORG PRBMSL2+1 02400011<br />

P42TMEH1 DC CL8'HH:MM:SS ' 02410011<br />

DC CL1' ' 02420011<br />

P42DTEH1 DC CL8'YYYYDDD ' 02430011<br />

P42TNAH DC CL9'SMF42TNA' 02440011<br />

482 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


P42TMTH DC CL9'SMF42TMT' 02450011<br />

P42TRTH DC CL9'SMF42TRT' 02460011<br />

P42TRHH DC CL9'SMF42TRH' 02470011<br />

P42TDTH DC CL9'SMF42TDT' 02480011<br />

P42TDHH DC CL9'SMF42TDH' 02490011<br />

P42BUFH DC CL9'SMF42BUF' 02500011<br />

P42BMXH DC CL9'SMF42BMX' 02510011<br />

P42LRUH DC CL9'SMF42LRU' 02520011<br />

P42UCIH DC CL9'SMF42UIC' 02530011<br />

ORG 02540011<br />

* 02550011<br />

PRBMSL3 DC CL133' ' 02560011<br />

ORG PRBMSL3+1 02570011<br />

P42TME1 DC CL8' ' 02580011<br />

DC CL1' ' 02590011<br />

P42DTE1 DC CL8' ' 02600011<br />

P42TNA DC CL9' ' SMF42TNA 02610011<br />

P42TMT DC CL9' ' SMF42TMT 02620011<br />

P42TRT DC CL9' ' SMF42TRT 02630011<br />

P42TRH DC CL9' ' SMF42TRH 02640011<br />

P42TDT DC CL9' ' SMF42TDT 02650011<br />

P42TDH DC CL9' ' SMF42TDH 02660011<br />

P42BUF DC CL9' ' SMF42BUF 02670011<br />

P42BMX DC CL9' ' SMF42BMX 02680011<br />

P42LRU DC CL9' ' SMF42LRU 02690011<br />

P42UIC DC CL9' ' SMF42UIC 02700011<br />

ORG 02710011<br />

* 02720011<br />

PRINTL2 DC CL133' ' 02730011<br />

ORG PRINTL2+1 02740011<br />

P42TMEH DC CL8'HH:MM:SS ' 02750011<br />

DC CL1' ' 02760011<br />

P42DTEH DC CL8'YYYYDDD ' 02770011<br />

P42SRTH DC CL9'SMF42SRT' 02780011<br />

P42SRHH DC CL9'SMF42SRH' 02790011<br />

P42SDTH DC CL9'SMF42SDT' 02800011<br />

P42SDHH DC CL9'SMF42SDH' 02810011<br />

ORG 02820011<br />

* 02830011<br />

PRINTL3 DC CL133' ' 02840011<br />

ORG PRINTL3+1 02850011<br />

P42TME DC CL8' ' 02860011<br />

DC CL1' ' 02870011<br />

P42DTE DC CL8' ' 02880011<br />

P42SRT DC CL9' ' SMF42SRT 02890011<br />

P42SRH DC CL9' ' SMF42SRH 02900011<br />

P42SDT DC CL9' ' SMF42SDT 02910011<br />

P42SDH DC CL9' ' SMF42SDH 02920011<br />

ORG 02930011<br />

SMFDSECT DSECT 02940011<br />

* IFASMFR (42) THIS DOES NOT EXPAND THE SUBTYPES AS IT SHOULD 02950011<br />

IGWSMF SMF42_01=YES 02960011<br />

END 02970011<br />

Appendix B. Code samples 483


SMF record type 85 subtype 38 data display program<br />

Program SMG85TO displays the contents of selected fields of SMF record Type 85 subtype<br />

38 data. It is not intended to provide a comprehensive report on OAM activity but rather to<br />

verify that retrieval from tape to DASD is occurring when an object is recalled.<br />

Note: The source code refers to an error in the CBRSMF macro. This is described by<br />

APAR OA20170 (see “OA20170” on page 464).<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF85TO.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-2 on page 485 and all subsequent contents through to<br />

Figure B-5 on page 488 one after the other into member SMFT85OA. The result should<br />

contain 201 lines.<br />

Note: In Figure B-5 on page 488 the line labelled SMFIN has a continuation character.<br />

This must be in column 72.<br />

484 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO<br />

&NAME SEGSTART<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA<br />

R0 EQU 0<br />

R1 EQU 1<br />

R2 EQU 2<br />

R3 EQU 3<br />

R4 EQU 4<br />

R5 EQU 5<br />

R6 EQU 6<br />

R7 EQU 7<br />

R8 EQU 8<br />

R9 EQU 9<br />

R10 EQU 10<br />

R11 EQU 11<br />

RB EQU 12<br />

R13 EQU 13<br />

R14 EQU 14<br />

R15 EQU 15<br />

BALR 12,0 SET UP ADDRESSABILITY<br />

USING *,12 USE REG 12 AS BASE REG<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13<br />

MEND<br />

MACRO<br />

SEGEND<br />

L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA<br />

XR R15,R15<br />

BR 14 RETURN TO CALLING RTN VIA REG 14<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA<br />

MEND<br />

SMFR85TO SEGSTART<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF<br />

* THE SMF TYPE 85 SUBTYPE 38 RECORDS, WHICH ARE THE OAM DATA SET<br />

* RECALL SUMMARY RECORDS<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED<br />

* TO SELECT TYPE 85 SUBTYPE 38<br />

* RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS.<br />

*<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED.<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 85 RECORD<br />

* R3 START OF WHOLE RECORD<br />

* THERE IS 1 DSECTS TO BE MAPPED<br />

* R4 START OF ST38 SINGLE OBJECT RECALL SECTION<br />

* R5 SPARE<br />

* R6 SPARE<br />

* R7 SPARE<br />

Figure B-2 SMF85TO assembler source (part 1 of 4)<br />

Appendix B. Code samples 485


* OTHER REGISTER USES<br />

* R12 OVERALL BASE REGISTER<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING<br />

* R9 LENGTH OF PARTICULAR DSECT<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET<br />

*<br />

* QSAM GET LOCATE PROCESSING IS USED<br />

*<br />

OPEN SMFIN<br />

OPEN (PRINTDCB,(OUTPUT))<br />

PUT PRINTDCB,PRINTHDR<br />

READ GET SMFIN<br />

* COPY PARAMETER POINTER<br />

LR R3,R1<br />

* R3 -> SMF RECORD<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION<br />

USING CBRSMF85,R3<br />

* CHECK IF TYPE 85<br />

CLI SMF85RTY,X'55'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

CHKSTYP1 DS 0H<br />

* CHECK IF SUBTYPE 38<br />

CLI SMF85STY+1,X'26'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

* IS TYPE 85 SUBTYPE 38, SO EXTRACT DATA<br />

* R3 IS THE START OF THE WHOLE RECORD<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS.<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION<br />

* ADD R8 TO R3<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS<br />

LA R4,SMF85END<br />

USING ST38,R4<br />

L R8,SMF85<strong>OS</strong>O<br />

LH R9,SMF85<strong>OS</strong>L<br />

LH R10,SMF85<strong>OS</strong>N<br />

* PROCESS THE SUMMARY ENTRIES TRIPLET.<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET<br />

* THIRD HW IS THE NUMBER OF TRIPLETS<br />

* FIELDS USED IN THE REPORT CORRESPOND TO THE RECORDS TAKEN FROM<br />

* THE SMF RECORD TYPE 85 SUBTYPE 38 RECORDS.<br />

* COLN COMES FROM ST38COLN<br />

* CNID COMES FROM ST38CNID<br />

* ETC<br />

* ST38FLGS IS INTERPRETED AS FLG0 ON OR OFF<br />

*<br />

Figure B-3 SMF85TO assembler source (part 2 of 4)<br />

486 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


**************************************************************<br />

* NOTE THAT THERE IS A PROBLEM WITH THE CBRSMF MACRO WHICH DOES<br />

* NOT DESCRIBE THE OFFSET TO ST38FLGS CORRECTLY. THE CODE<br />

* ACCOMODATES THIS, BUT IT WILL HAVE TO BE ADJUSTED WHEN THE<br />

* CBRSMF MACRO IS FIXED.<br />

**************************************************************<br />

*<br />

SCOTRIP DS 0H<br />

LA R4,0(R3,R8)<br />

MVC COLN,ST38COLN<br />

* CONVERT CNID<br />

L R1,ST38CNID<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK CNID(11),DWORD+2(6)<br />

PUT PRINTDCB,PRINTL1<br />

MVC OBJN,ST38OBJN<br />

MVC SGN,ST38SGN<br />

* CONVERT OLEN<br />

L R1,ST38OLEN<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK OLEN(11),DWORD+2(6)<br />

PUT PRINTDCB,PRINTL2<br />

*<br />

MVC VSN,ST38VSN<br />

MVC MT,ST38MT<br />

* CONVERT TKN<br />

L R1,ST38TKN<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK TKN(11),DWORD+2(6)<br />

MVC VT,ST38VT<br />

MVC BT,ST38BT<br />

* CONVERT FLAGS<br />

LA R1,ST38FLGS+4 **** TEMPORARY ADJUSTMENT DUE TO<br />

* ERROR IN CBRSMF RECORD. REMOVE<br />

* THE +4 WHEN ST38FLGS ASSEMBLES AT<br />

* OFFSET X'7C'<br />

* CVD R1,DWORD<br />

* OI DWORD+7,X'0F'<br />

* UNPK FLGS(11),DWORD+2(6)<br />

MVC FLGS,=CL20'FLG0 OFF'<br />

TM 0(R1),ST38FLG0 IS THE FLAG ON?<br />

BNO FLG0OFF<br />

MVC FLGS(08),=C'FLG0 ON '<br />

FLG0OFF EQU *<br />

PUT PRINTDCB,PRINTL3<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

WRITEIT DS 0H<br />

PUT PRINTDCB,PRINTBLK<br />

Figure B-4 SMF85TO assembler source (part 3 of 4)<br />

Appendix B. Code samples 487


* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS<br />

*<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD<br />

LA R8,0(R8,R9)<br />

BCT R10,SCOTRIP<br />

B READ<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS<br />

B READ<br />

FINISH DS 0H<br />

SEGEND<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP, C<br />

EODAD=FINISH<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133<br />

DWORD DS D<br />

ORG DWORD<br />

DC C'12345678'<br />

PRINTBLK DC CL133' '<br />

PRINTHDR DC CL133'1SMF TYPE 85 SUBTYPE 38 RECORDS'<br />

PRINTL1 DC CL133' COLN/CNID:'<br />

ORG PRINTL1+23<br />

COLN DC CL44' '<br />

DC C' '<br />

CNID DC CL20' ' CONVERTED FROM BL4<br />

ORG<br />

*<br />

PRINTL2 DC CL133' OBJN/SGN/OLEN:'<br />

ORG PRINTL2+23<br />

OBJN DC CL44' '<br />

DC CL1' '<br />

SGN DC CL8' '<br />

DC CL1' '<br />

OLEN DC CL20' ' CONVERTED FROM BL4<br />

ORG<br />

*<br />

PRINTL3 DC CL133' VSN/MT/TKN/VT/BT/FLGS:'<br />

ORG PRINTL3+23<br />

VSN DC CL6' '<br />

DC CL1' '<br />

MT DC CL2' '<br />

DC CL1' '<br />

TKN DC CL20' ' CONVERTED FROM BL4<br />

DC CL1' '<br />

VT DC CL2' '<br />

DC CL1' '<br />

BT DC CL2' '<br />

DC CL1' '<br />

FLGS DC CL20' ' INTERPRETED<br />

ORG<br />

SMFDSECT DSECT<br />

IFASMFR (85) THIS INCLUDES CBRSMF MACRO<br />

END<br />

Figure B-5 SMF85TO assembler source (part 4 of 4)<br />

488 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-6 into your PDS MHLRES1.SMF85TO.SOURCE as<br />

member SMFT85OJ. The result should contain 33 lines.<br />

//<br />

/*PRIORITY 15<br />

//MHLRES1O JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGCLASS=J,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF85TO.SOURCE(SMF85TOA)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TO.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF85TO(R)<br />

Figure B-6 SMF85TO JCL to assemble and link the program<br />

This creates data set MHLRES1.SMF85TO.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TO.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TO.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 489


SMF record type 85 subtype 39 data display program<br />

Program SMG85TI displays the contents of selected fields of SMF record type 85 subtype 39<br />

data. It is not intended to provide a comprehensive report on OAM activity but rather to verify<br />

that immediate backup is occurring.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF85TI.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-7 on page 491 and all subsequent contents through to<br />

Figure B-10 on page 494 one after the other into member SMFT85IA. The result should<br />

contain 178 lines.<br />

Note: In Figure B-9 on page 493 the line labelled SMFIN has a continuation character.<br />

This must be in column 72.<br />

490 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO<br />

&NAME SEGSTART<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA<br />

R0 EQU 0<br />

R1 EQU 1<br />

R2 EQU 2<br />

R3 EQU 3<br />

R4 EQU 4<br />

R5 EQU 5<br />

R6 EQU 6<br />

R7 EQU 7<br />

R8 EQU 8<br />

R9 EQU 9<br />

R10 EQU 10<br />

R11 EQU 11<br />

RB EQU 12<br />

R13 EQU 13<br />

R14 EQU 14<br />

R15 EQU 15<br />

BALR 12,0 SET UP ADDRESSABILITY<br />

USING *,12 USE REG 12 AS BASE REG<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13<br />

MEND<br />

MACRO<br />

&NAME SEGEND<br />

&NAME L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA<br />

XR R15,R15<br />

BR 14 RETURN TO CALLING RTN VIA REG 14<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA<br />

MEND<br />

SMFR85TI SEGSTART<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF<br />

* THE SMF TYPE 85 SUBTYPE 39 RECORDS, WHICH ARE THE OAM DATA SET<br />

* IMMEDIATE BACKUP RECORDS.<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED<br />

* TO SELECT TYPE 85 SUBTYPE 39<br />

* RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS.<br />

*<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED.<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 85 RECORD<br />

* R3 START OF WHOLE RECORD<br />

* THERE IS 1 DSECTS TO BE MAPPED<br />

* R4 START OF ST39 <strong>OS</strong>MC IMMEDIATE BACKUP COPY<br />

* R5 SPARE<br />

* R6 SPARE<br />

* R7 SPARE<br />

Figure B-7 SMF85TI assembler source (part 1 of 4)<br />

Appendix B. Code samples 491


* OTHER REGISTER USES<br />

* R12 OVERALL BASE REGISTER<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING<br />

* R9 LENGTH OF PARTICULAR DSECT<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET<br />

*<br />

* QSAM GET LOCATE PROCESSING IS USED<br />

*<br />

OPEN SMFIN<br />

OPEN (PRINTDCB,(OUTPUT))<br />

PUT PRINTDCB,PRINTHDR<br />

READ GET SMFIN<br />

* COPY PARAMETER POINTER<br />

LR R3,R1<br />

* R3 -> SMF RECORD<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION<br />

USING CBRSMF85,R3<br />

* CHECK IF TYPE 85<br />

CLI SMF85RTY,X'55'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

CHKSTYP1 DS 0H<br />

* CHECK IF SUBTYPE 39<br />

CLI SMF85STY+1,X'27'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

* IS TYPE 85 SUBTYPE 39, SO EXTRACT DATA<br />

* R3 IS THE START OF THE WHOLE RECORD<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS.<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION<br />

* ADD R8 TO R3<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS<br />

LA R4,SMF85END<br />

USING ST39,R4<br />

L R8,SMF85<strong>OS</strong>O<br />

LH R9,SMF85<strong>OS</strong>L<br />

LH R10,SMF85<strong>OS</strong>N<br />

* PROCESS THE SUMMARY ENTRIES TRIPLET.<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET<br />

* THIRD HW IS THE NUMBER OF TRIPLETS<br />

* FIELDS USED IN THE REPORT CORRESPOND TO THE RECORDS TAKEN FROM<br />

* THE SMF RECORD TYPE 85 SUBTYPE 39 RECORDS.<br />

* COLN COMES FROM ST39COLN<br />

* CNID COMES FROM ST39CNID<br />

* ETC<br />

* ST39FLGS IS NOT INTERPRETED - EACH BIT JUST SHOWN AS 1 OR 0<br />

*<br />

SCOTRIP DS 0H<br />

LA R4,0(R3,R8)<br />

MVC COLN,ST39COLN<br />

Figure B-8 SMF85TI assembler source (part 2 of 4)<br />

492 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* CONVERT CNID<br />

L R1,ST39CNID<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK CNID(11),DWORD+2(6)<br />

PUT PRINTDCB,PRINTL1<br />

MVC OBJN,ST39OBJN<br />

MVC SGN,ST39SGN<br />

* CONVERT OLEN<br />

L R1,ST39OLEN<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK OLEN(11),DWORD+2(6)<br />

PUT PRINTDCB,PRINTL2<br />

*<br />

MVC VSN,ST39TVSN<br />

MVC MT,ST39SMT<br />

* CONVERT TKN<br />

L R1,ST39BTKN<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK TKN(11),DWORD+2(6)<br />

* PRINT FLAGS<br />

UNPK FLGS(09),ST39FLGS(5) UNPK 1 MORE THAN NEEDED<br />

MVI FLGS+8,C' ' BLANK OUTTHE EXTRA BYTE<br />

PUT PRINTDCB,PRINTL3<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

WRITEIT DS 0H<br />

PUT PRINTDCB,PRINTBLK<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS<br />

*<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD<br />

LA R8,0(R8,R9)<br />

BCT R10,SCOTRIP<br />

B READ<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS<br />

B READ<br />

FINISH DS 0H<br />

SEGEND<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP, C<br />

EODAD=FINISH<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133<br />

DWORD DS D<br />

ORG DWORD<br />

DC C'12345678'<br />

PRINTBLK DC CL133' '<br />

PRINTHDR DC CL133'1SMF TYPE 85 SUBTYPE 39 RECORDS'<br />

Figure B-9 SMF85TI assembler source (part 3 of 4)<br />

Appendix B. Code samples 493


PRINTL1 DC CL133' COLN/CNID:'<br />

ORG PRINTL1+23<br />

COLN DC CL44' '<br />

DC C' '<br />

CNID DC CL20' ' CONVERTED FROM BL4<br />

ORG<br />

*<br />

PRINTL2 DC CL133' OBJN/SGN/OLEN:'<br />

ORG PRINTL2+23<br />

OBJN DC CL44' '<br />

DC CL1' '<br />

SGN DC CL8' '<br />

DC CL1' '<br />

OLEN DC CL20' ' CONVERTED FROM BL4<br />

ORG<br />

*<br />

PRINTL3 DC CL133' VSN/MT/TKN/FLGS:'<br />

ORG PRINTL3+23<br />

VSN DC CL6' '<br />

DC CL1' '<br />

MT DC CL2' '<br />

DC CL1' '<br />

TKN DC CL20' ' CONVERTED FROM BL4<br />

DC CL1' '<br />

FLGS DC CL20' ' AS-IS<br />

ORG<br />

SMFDSECT DSECT<br />

IFASMFR (85) THIS INCLUDES CBRSMF MACRO<br />

END<br />

Figure B-10 SMF85TI assembler source (part 4 of 4)<br />

494 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-6 on page 489 into your PDS<br />

MHLRES1.SMF85TI.SOURCE as member SMFT85IJ. The result should contain 32 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1O JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGCLASS=J,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

/*JOBPARM S=*<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF85TI.SOURCE(SMF85TI)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TI.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF85TI(R)<br />

Figure 9-16 SMF85TI JCL to assemble and link the program<br />

This creates data set MHLRES1.SMF85TI.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TI.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TI.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 495


SMF record type 85 subtype 40 data display program<br />

Program SMG85TJ displays the contents of selected fields of SMF record type 85 subtype 40<br />

data. It is not intended to provide a comprehensive report on OAM activity but rather to verify<br />

that immediate backup is occurring.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF85TJ.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-11 on page 497 and all subsequent contents through<br />

to Figure B-14 on page 500, one after the other, into member SMFT85JA. The result should<br />

contain 178 lines.<br />

496 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO<br />

&NAME SEGSTART<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA<br />

R0 EQU 0<br />

R1 EQU 1<br />

R2 EQU 2<br />

R3 EQU 3<br />

R4 EQU 4<br />

R5 EQU 5<br />

R6 EQU 6<br />

R7 EQU 7<br />

R8 EQU 8<br />

R9 EQU 9<br />

R10 EQU 10<br />

R11 EQU 11<br />

RB EQU 12<br />

R13 EQU 13<br />

R14 EQU 14<br />

R15 EQU 15<br />

BALR 12,0 SET UP ADDRESSABILITY<br />

USING *,12 USE REG 12 AS BASE REG<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13<br />

MEND<br />

MACRO<br />

&NAME SEGEND<br />

&NAME L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA<br />

XR R15,R15<br />

BR 14 RETURN TO CALLING RTN VIA REG 14<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA<br />

MEND<br />

SMFR85TJ SEGSTART<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF<br />

* THE SMF TYPE 85 SUBTYPE 40 RECORDS, WHICH ARE THE<br />

* OAM COMMAND RECYCLE RECORDS.<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED<br />

* TO SELECT TYPE 85 SUBTYPE 40<br />

* RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS.<br />

*<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED.<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 85 RECORD<br />

* R3 START OF WHOLE RECORD<br />

* THERE IS 1 DSECTS TO BE MAPPED<br />

* R4 START OF ST40 <strong>OS</strong>MC COMMAND RECYCLE<br />

* R5 START OF VOLUME ARRAY - ASSUMED TO START AT THE END OF BASE<br />

* R6 NUMBER OF VOLUMES<br />

* R7 SPARE<br />

Figure B-11 SMF85TJ assembler source (part 1 of 4)<br />

Appendix B. Code samples 497


* OTHER REGISTER USES<br />

* R12 OVERALL BASE REGISTER<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING<br />

* R9 LENGTH OF PARTICULAR DSECT<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET<br />

*<br />

* QSAM GET LOCATE PROCESSING IS USED<br />

*<br />

OPEN SMFIN<br />

OPEN (PRINTDCB,(OUTPUT))<br />

PUT PRINTDCB,PRINTHDR<br />

READ GET SMFIN<br />

* COPY PARAMETER POINTER<br />

LR R3,R1<br />

* R3 -> SMF RECORD<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION<br />

USING CBRSMF85,R3<br />

* CHECK IF TYPE 85<br />

CLI SMF85RTY,X'55'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

CHKSTYP1 DS 0H<br />

* CHECK IF SUBTYPE 40<br />

CLI SMF85STY+1,X'28'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

* IS TYPE 85 SUBTYPE 40, SO EXTRACT DATA<br />

* R3 IS THE START OF THE WHOLE RECORD<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS.<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION<br />

* ADD R8 TO R3<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS<br />

LA R4,SMF85END<br />

USING ST40,R4<br />

L R8,SMF85<strong>OS</strong>O<br />

LH R9,SMF85<strong>OS</strong>L<br />

LH R10,SMF85<strong>OS</strong>N<br />

* PROCESS THE SUMMARY ENTRIES TRIPLET.<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET<br />

* THIRD HW IS THE NUMBER OF TRIPLETS<br />

* FIELDS USED IN THE REPORT CORRESPOND TO THE RECORDS TAKEN FROM<br />

* THE SMF RECORD TYPE 85 SUBTYPE 40 RECORDS.<br />

* STRD COMES FROM ST40STRD<br />

* ENDD COMES FROM ST40ENDD<br />

* ETC<br />

*<br />

Figure B-12 SMF85TJ assembler source (part 2 of 4)<br />

498 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SCOTRIP DS 0H<br />

LA R4,0(R3,R8)<br />

LA R5,ST40END POINT TO THE VOLUME ARRAY<br />

USING ST40VOLD,R5<br />

* MOVE STRD<br />

MVC STRD,ST40STRD<br />

* MOVE ENDD<br />

MVC ENDD,ST40ENDD<br />

* CONVERT VOLN<br />

LH R1,ST40VOLN<br />

LR R6,R1 SAVE FOR LATER WHEN PRINTING THE VOLS<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK VOLN(11),DWORD+2(6)<br />

* CONVERT PCTV<br />

LH R1,ST40PCTV<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK PCTV(11),DWORD+2(6)<br />

* CONVERT LIM<br />

LH R1,ST40LIM<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK LIM(11),DWORD+2(6)<br />

PUT PRINTDCB,PRINTL1<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

VLOOP MVC VSN,ST40VSN<br />

PUT PRINTDCB,PRINTL2<br />

LA R5,6(R5)<br />

BCT R6,VLOOP<br />

WRITEIT DS 0H<br />

PUT PRINTDCB,PRINTBLK<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS<br />

*<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD<br />

LA R8,0(R8,R9)<br />

BCT R10,SCOTRIP<br />

B READ<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS<br />

B READ<br />

FINISH DS 0H<br />

SEGEND<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP, C<br />

EODAD=FINISH<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133<br />

DWORD DS D<br />

ORG DWORD<br />

DC C'12345678'<br />

PRINTBLK DC CL133' '<br />

Figure B-13 SMF85TJ assembler source (part 3 of 4)<br />

Appendix B. Code samples 499


PRINTHDR DC CL133'1SMF TYPE 85 SUBTYPE 40 RECORDS'<br />

PRINTL1 DC CL133' STRD/ENDD/VOLN/PCTV/LIM:'<br />

ORG PRINTL1+26<br />

STRD DC CL10' '<br />

DC C' '<br />

ENDD DC CL10' '<br />

DC C' '<br />

VOLN DC CL12' ' CONVERTED FROM BINARY<br />

DC C' '<br />

PCTV DC CL12' ' CONVERTED FROM BINARY<br />

DC C' '<br />

LIM DC CL12' ' CONVERTED FROM BINARY<br />

ORG<br />

*<br />

PRINTL2 DC CL133' VSN:'<br />

ORG PRINTL2+5<br />

VSN DC CL6' '<br />

ORG<br />

*<br />

SMFDSECT DSECT<br />

IFASMFR (85) THIS INCLUDES CBRSMF MACRO<br />

END<br />

Figure B-14 SMF85TJ assembler source (part 4 of 4)<br />

500 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-15 into your PDS MHLRES1.SMF85TJ.SOURCE as<br />

member SMFT85JJ. The result should contain 32 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1O JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGCLASS=J,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

/*JOBPARM S=*<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF85TJ.SOURCE(SMF85TJ)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TJ.LOAD,DISP=SHR TLG,DELETE),<br />

//* UNIT=SYSALLDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF85TJ(R)<br />

Figure B-15 SMF85TJ JCL to assemble and link the program<br />

This creates data set MHLRES1.SMF85TJ.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TJ.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TJ.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 501


SMF record type 85 subtype 32-35 data display program<br />

Program SMG85TH displays the contents of selected fields of SMF record type 85 subtypes<br />

32/33/34/25 data. It is not intended to provide a comprehensive report on OAM activity but<br />

rather to verify that immediate backup is occurring.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF85TH.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-16 on page 503 and all subsequent contents through<br />

to Figure B-24 on page 511, one after the other, into member SMF85TH. The result should<br />

contain 451 lines.<br />

502 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO 00010099<br />

&NAME SEGSTART 00020099<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA 00030099<br />

R0 EQU 0 00040099<br />

R1 EQU 1 00050099<br />

R2 EQU 2 00060099<br />

R3 EQU 3 00070099<br />

R4 EQU 4 00080099<br />

R5 EQU 5 00090099<br />

R6 EQU 6 00100099<br />

R7 EQU 7 00110099<br />

R8 EQU 8 00120099<br />

R9 EQU 9 00130099<br />

R10 EQU 10 00140099<br />

R11 EQU 11 00150099<br />

RB EQU 12 00160099<br />

R13 EQU 13 00170099<br />

R14 EQU 14 00180099<br />

R15 EQU 15 00190099<br />

BALR 12,0 SET UP ADDRESSABILITY 00200099<br />

USING *,12 USE REG 12 AS BASE REG 00210099<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE 00220099<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3 00230099<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS 00240099<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13 00250099<br />

MEND 00260099<br />

MACRO 00270099<br />

&NAME SEGEND 00280099<br />

&NAME L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE 00290099<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA 00300099<br />

XR R15,R15 00310099<br />

BR 14 RETURN TO CALLING RTN VIA REG 14 00320099<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA 00330099<br />

MEND 00340099<br />

MACRO 00350099<br />

BINDEC &KEY 00360099<br />

L R7,ST32&KEY 00370099<br />

CVD R7,DWORD 00380099<br />

OI DWORD+7,X'0F' 00390099<br />

UNPK &KEY.(7),DWORD+4(4) 00400099<br />

MEND 00410099<br />

SMFR85TH SEGSTART 00420099<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS PARTS OF 00430099<br />

* THE SMF TYPE 85 SUBTYPE 32-35 RECORDS. 00440099<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED 00450099<br />

* TO SELECT ANY OR ALL OF TYPE 85 SUBTYPES 32-35 00460099<br />

* RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR 00470099<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS. 00480099<br />

* 00490099<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED. 00500099<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 85 RECORD 00510099<br />

* R3 START OF WHOLE RECORD 00520099<br />

* THERE IS 1 DSECTS TO BE MAPPED 00530099<br />

* R4 START OF SUBTYPE RECORDS 00540099<br />

* R5 FOR DIVIDING (DIVISOR) 00550099<br />

* R6 FOR DIVIDING - EVEN-ODD PAIR WITH R7 (DIVIDEND) 00560099<br />

Figure B-16 SMF85TH assembler source (part 1 of 9)<br />

Appendix B. Code samples 503


* R7 FOR DIVIDING 00570099<br />

* OTHER REGISTER USES 00580099<br />

* R12 OVERALL BASE REGISTER 00590099<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING 00600099<br />

* R9 LENGTH OF PARTICULAR DSECT 00610099<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET 00620099<br />

* 00630099<br />

* QSAM GET LOCATE PROCESSING IS USED 00640099<br />

* 00650099<br />

OPEN SMFIN 00660099<br />

OPEN (PRINTDCB,(OUTPUT)) 00670099<br />

PUT PRINTDCB,PRINTHDR 00680099<br />

READ GET SMFIN 00690099<br />

* COPY PARAMETER POINTER 00700099<br />

LR R3,R1 00710099<br />

* R3 -> SMF RECORD 00720099<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION 00730099<br />

USING CBRSMF85,R3 00740099<br />

* CHECK IF TYPE 85 00750099<br />

CLI SMF85RTY,X'55' 00760099<br />

BNE IGNORE 00770099<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 00780099<br />

CHKSTYP1 DS 0H 00790099<br />

* CHECK IF ANY OF SUBTYPE 32-35 00800099<br />

CLI SMF85STY+1,X'20' 00810099<br />

BNE *+18 00820099<br />

MVI STYPE,C'2' 00830099<br />

MVC FUNC,=CL34'(STORAGE GROUP PROCESSING)' 00840099<br />

B STOK 00850099<br />

CLI SMF85STY+1,X'21' 00860099<br />

BNE *+18 00870099<br />

MVI STYPE,C'3' 00880099<br />

MVC FUNC,=CL34'(DASD SPACE MANAGEMENT PROCESSING)' 00890099<br />

B STOK 00900099<br />

CLI SMF85STY+1,X'22' 00910099<br />

BNE *+18 00920099<br />

MVI STYPE,C'4' 00930099<br />

MVC FUNC,=CL34'(OPTICAL DISK RECOVERY UTILITY)' 00940099<br />

B STOK 00950099<br />

CLI SMF85STY+1,X'23' 00960099<br />

BNE *+18 00970099<br />

MVI STYPE,C'5' 00980099<br />

MVC FUNC,=CL34'(MOVE VOLUME (MOVEVOL) UTILITY)' 00990099<br />

B STOK 01000099<br />

* OTHERWISE IGNORE 01010099<br />

B IGNORE 01020099<br />

STOK EQU * 01030099<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 01040099<br />

* IS ONE OF TYPE 85 SUBTYPE 32-35 SO EXTRACT DATA 01050099<br />

* R3 IS THE START OF THE WHOLE RECORD 01060099<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS. 01070099<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION 01080099<br />

* ADD R8 TO R3 01090099<br />

Figure B-17 SMF85TH assembler source (part 2 of 9)<br />

504 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS 01100099<br />

LA R4,SMF85END 01110099<br />

USING ST32,R4 01120099<br />

L R8,SMF85<strong>OS</strong>O 01130099<br />

LH R9,SMF85<strong>OS</strong>L 01140099<br />

LH R10,SMF85<strong>OS</strong>N 01150099<br />

* PROCESS THE SUMMARY ENTRIES TRIPLET. 01160099<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START 01170099<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET 01180099<br />

* THIRD HW IS THE NUMBER OF TRIPLETS 01190099<br />

* FIELDS USED IN THE REPORT CORRESPOND TO THE RECORDS TAKEN FROM 01200099<br />

* THE SMF RECORD TYPE 85 SUBTYPE 32-35 RECORDS. 01210099<br />

* SGN COMES FROM ST32SGN 01220099<br />

* VSN1 COMES FROM ST32VSN1 01230099<br />

* MT COMES FROM ST32OMT 01240099<br />

* ETC 01250099<br />

* STXXFLGS IS NOT INTERPRETED - EACH BIT JUST SHOWN AS 1 OR 0 01260099<br />

* 01270099<br />

SCOTRIP DS 0H 01280099<br />

LA R4,0(R3,R8) 01290099<br />

UNPK YYDDD(7),SMF85DTE 01300099<br />

CLI YYDDD+1,C'0' 01310099<br />

BE SETD0 01320099<br />

CLI YYDDD+1,C'1' 01330099<br />

BE SETD1 01340099<br />

* OTHERWISE ABEND AS SOMETHING HAS GONE WRONG 01350099<br />

DC F'0' 01360099<br />

SETD0 MVC YYDDD(2),=C'19' 01370099<br />

B SETDZ 01380099<br />

SETD1 MVC YYDDD(2),=C'20' 01390099<br />

* 01400099<br />

SETDZ EQU * 01410099<br />

* CONVERT THE TIME FROM HUNDREDTHS OF SEC SINCE MIDNIGHT 01420099<br />

LA R5,100 PREPARE TO DIVIDE BY 100 01430099<br />

LA R6,0 01440099<br />

L R7,SMF85TME GET THE TIME 01450099<br />

DR R6,R5 -> SECS IN R7, HUNS IN R6 01460099<br />

CVD R6,DWORD 01470099<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING 01480099<br />

UNPK HUS,DWORD+6(2) 01490099<br />

* DC F'0' 01500099<br />

* NOW GET THE SECS 01510099<br />

LA R5,60 PREPARE TO DIVIDE BY 60 01520099<br />

LA R6,0 01530099<br />

DR R6,R5 -> MINS IN R7, SECS REMAINDER IN R6 01540099<br />

CVD R6,DWORD 01550099<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING 01560099<br />

UNPK SS,DWORD+6(2) 01570099<br />

* NOW GET THE MINS 01580099<br />

LA R6,0 01590099<br />

DR R6,R5 -> HRS IN R7, MINS REMAINDER IN R6 01600099<br />

CVD R6,DWORD 01610099<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING 01620099<br />

UNPK MM,DWORD+6(2) 01630099<br />

CVD R7,DWORD DO HOURS 01640099<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING 01650099<br />

UNPK HH,DWORD+6(2) 01660099<br />

Figure B-18 SMF85TH assembler source (part 3 of 9)<br />

Appendix B. Code samples 505


* 01670099<br />

PUT PRINTDCB,PRINTL0 01680099<br />

* COPY SGN 01690099<br />

MVC SGN,ST32SGN 01700099<br />

* COPY VSM0 01710099<br />

MVC VSN0,ST32VSN0 01720099<br />

* COPY VSM1 01730099<br />

MVC VSN1,ST32VSN1 01740099<br />

* COPY MT 01750099<br />

MVC MT,ST32OMT 01760099<br />

PUT PRINTDCB,PRINTL1 01770099<br />

* 01780099<br />

BINDEC PDWO CONVERT 01790099<br />

BINDEC PDWK CONVERT 01800099<br />

BINDEC PDRO CONVERT 01810099<br />

BINDEC PDRK CONVERT 01820099<br />

BINDEC PDDO CONVERT 01830099<br />

BINDEC PDDK CONVERT 01840099<br />

PUT PRINTDCB,PRINTL2 01850099<br />

BINDEC PDWO CONVERT 01860099<br />

BINDEC PDWK CONVERT 01870099<br />

BINDEC PORO CONVERT 01880099<br />

BINDEC PORK CONVERT 01890099<br />

BINDEC PODO CONVERT 01900099<br />

BINDEC PODK CONVERT 01910099<br />

PUT PRINTDCB,PRINTL3 01920099<br />

BINDEC PTWO CONVERT 01930099<br />

BINDEC PTWK CONVERT 01940099<br />

BINDEC PTRO CONVERT 01950099<br />

BINDEC PTRK CONVERT 01960099<br />

BINDEC PTDO CONVERT 01970099<br />

BINDEC PTDK CONVERT 01980099<br />

PUT PRINTDCB,PRINTL4 01990099<br />

BINDEC BOWO CONVERT 02000099<br />

BINDEC BOWK CONVERT 02010099<br />

BINDEC BORO CONVERT 02020099<br />

BINDEC BORK CONVERT 02030099<br />

BINDEC BODO CONVERT 02040099<br />

BINDEC BODK CONVERT 02050099<br />

PUT PRINTDCB,PRINTL5 02060099<br />

BINDEC BTWO CONVERT 02070099<br />

BINDEC BTWK CONVERT 02080099<br />

BINDEC BTRO CONVERT 02090099<br />

BINDEC BTRK CONVERT 02100099<br />

BINDEC BTDO CONVERT 02110099<br />

BINDEC BTDK CONVERT 02120099<br />

PUT PRINTDCB,PRINTL6 02130099<br />

BINDEC B2OWO CONVERT 02140099<br />

BINDEC B2OWK CONVERT 02150099<br />

BINDEC B2ORO CONVERT 02160099<br />

BINDEC B2ORK CONVERT 02170099<br />

BINDEC B2ODO CONVERT 02180099<br />

BINDEC B2ODK CONVERT 02190099<br />

Figure B-19 SMF85TH assembler source (part 4 of 9)<br />

506 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


PUT PRINTDCB,PRINTL7 02200099<br />

BINDEC B2TWO CONVERT 02210099<br />

BINDEC B2TWK CONVERT 02220099<br />

BINDEC B2TRO CONVERT 02230099<br />

BINDEC B2TRK CONVERT 02240099<br />

BINDEC B2TDO CONVERT 02250099<br />

BINDEC B2TDK CONVERT 02260099<br />

PUT PRINTDCB,PRINTL8 02270099<br />

BINDEC DTUP CONVERT 02280099<br />

BINDEC DTDE CONVERT 02290099<br />

* CONVERT 4KIN 02300099<br />

L R1,ST324KIN 02310099<br />

CVD R1,DWORD 02320099<br />

OI DWORD+7,X'0F' 02330099<br />

UNPK N4KIN(11),DWORD+2(6) 02340099<br />

* CONVERT 4KDE 02350099<br />

L R1,ST324KDE 02360099<br />

CVD R1,DWORD 02370099<br />

OI DWORD+7,X'0F' 02380099<br />

UNPK N4KDE(11),DWORD+2(6) 02390099<br />

* CONVERT 32KI 02400099<br />

L R1,ST3232KI 02410099<br />

CVD R1,DWORD 02420099<br />

OI DWORD+7,X'0F' 02430099<br />

UNPK N32KI(11),DWORD+2(6) 02440099<br />

* CONVERT 32KD 02450099<br />

L R1,ST3232KD 02460099<br />

CVD R1,DWORD 02470099<br />

OI DWORD+7,X'0F' 02480099<br />

UNPK N32KD(11),DWORD+2(6) 02490099<br />

BINDEC NCE CONVERT 02500099<br />

PUT PRINTDCB,PRINTL9 02510099<br />

* INTERPRET THE FLAGS 02520099<br />

UNPK FLGS(09),ST32FLGS(5) UNPK 1 MORE THAN NEEDED 02530099<br />

MVI FLGS+8,C' ' BLANK OUTTHE EXTRA BYTE 02540099<br />

NC FLGS(08),=8X'0F' 02550099<br />

TR FLGS(8),TRTAB 02560099<br />

BINDEC NTE CONVERT 02570099<br />

BINDEC RCLD CONVERT 02580099<br />

BINDEC RCLK CONVERT 02590099<br />

BINDEC LOBI CONVERT 02600099<br />

BINDEC LOBD CONVERT 02610099<br />

PUT PRINTDCB,PRINTL10 02620099<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 02630099<br />

PUT PRINTDCB,PRINTBLK 02640099<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02650099<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD 02660099<br />

LA R8,0(R8,R9) 02670099<br />

BCT R10,SCOTRIP 02680099<br />

B READ 02690099<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS 02700099<br />

B READ 02710099<br />

Figure B-20 SMF85TH assembler source (part 5 of 9)<br />

Appendix B. Code samples 507


FINISH DS 0H 02720099<br />

SEGEND 02730099<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP, C02740099<br />

EODAD=FINISH 02750099<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133 02760099<br />

DWORD DS D 02770099<br />

ORG DWORD 02780099<br />

DC C'12345678' 02790099<br />

TRWORK DS CL33 02800099<br />

TRTAB DC C'0123456789ABCDEF' 02810099<br />

PRINTBLK DC CL133' ' 02820099<br />

PRINTHDR DC CL133'1SMF TYPE 85 SUBTYPE 32-35 RECORDS' 02830099<br />

PRINTL0 DC CL133' SMFDTE/TME:' 02840099<br />

ORG PRINTL0+38 02850099<br />

YYDDD DC CL7' ' 02860099<br />

DC CL1' ' 02870099<br />

HH DC CL2' ' 02880099<br />

DC C':' 02890099<br />

MM DC CL2' ' 02900099<br />

DC C':' 02910099<br />

SS DC CL2' ' 02920099<br />

DC C'.' 02930099<br />

HUS DC CL3' ' 02940099<br />

DC CL1' ' 02950099<br />

ORG 02960099<br />

PRINTL1 DC CL133' STYPE/SGN/VSN0/VSN1/MT:' 02970099<br />

ORG PRINTL1+38 02980099<br />

STYPE3 DC CL1'3' PREFIX TO SUBTYPES 32-35 02990099<br />

STYPE DC CL1' ' CONVERTED 03000099<br />

DC CL1' ' 03010099<br />

SGN DC CL8' ' 03020099<br />

DC C' ' 03030099<br />

VSN0 DC CL6' ' 03040099<br />

DC C' ' 03050099<br />

VSN1 DC CL6' ' 03060099<br />

DC C' ' 03070099<br />

MT DC CL2' ' 03080099<br />

DC C' ' 03090099<br />

FUNC DC CL34' ' 03100099<br />

ORG 03110099<br />

* 03120099<br />

PRINTL2 DC CL133' PDWO/PDWK/PDRO/PDRK/PDDO/PDDK:' 03130099<br />

ORG PRINTL2+38 03140099<br />

PDWO DC CL12' ' CONVERTED 03150099<br />

DC CL1' ' 03160099<br />

PDWK DC CL12' ' CONVERTED 03170099<br />

DC CL1' ' 03180099<br />

PDRO DC CL12' ' CONVERTED 03190099<br />

DC CL1' ' 03200099<br />

PDRK DC CL12' ' CONVERTED 03210099<br />

DC CL1' ' 03220099<br />

PDDO DC CL12' ' CONVERTED 03230099<br />

DC CL1' ' 03240099<br />

PDDK DC CL12' ' CONVERTED 03250099<br />

DC CL1' ' 03260099<br />

ORG 03270099<br />

* 03280099<br />

Figure B-21 SMF85TH assembler source (part 6 of 9)<br />

508 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


PRINTL3 DC CL133' POWO/POWK/PORO/PORD/PODO/PODK:' 03290099<br />

ORG PRINTL3+38 03300099<br />

POWO DC CL12' ' CONVERTED 03310099<br />

DC CL1' ' 03320099<br />

POWK DC CL12' ' CONVERTED 03330099<br />

DC CL1' ' 03340099<br />

PORO DC CL12' ' CONVERTED 03350099<br />

DC CL1' ' 03360099<br />

PORK DC CL12' ' CONVERTED 03370099<br />

DC CL1' ' 03380099<br />

PODO DC CL12' ' CONVERTED 03390099<br />

DC CL1' ' 03400099<br />

PODK DC CL12' ' CONVERTED 03410099<br />

DC CL1' ' 03420099<br />

ORG 03430099<br />

PRINTL4 DC CL133' PTWO/PTWK/PTRO/PTRD/PTDO/PTDK:' 03440099<br />

ORG PRINTL4+38 03450099<br />

PTWO DC CL12' ' CONVERTED 03460099<br />

DC CL1' ' 03470099<br />

PTWK DC CL12' ' CONVERTED 03480099<br />

DC CL1' ' 03490099<br />

PTRO DC CL12' ' CONVERTED 03500099<br />

DC CL1' ' 03510099<br />

PTRK DC CL12' ' CONVERTED 03520099<br />

DC CL1' ' 03530099<br />

PTDO DC CL12' ' CONVERTED 03540099<br />

DC CL1' ' 03550099<br />

PTDK DC CL12' ' CONVERTED 03560099<br />

DC CL1' ' 03570099<br />

ORG 03580099<br />

PRINTL5 DC CL133' BOWO/BOWK/BORO/BORK/BODO/BODK:' 03590099<br />

ORG PRINTL5+38 03600099<br />

BOWO DC CL12' ' CONVERTED 03610099<br />

DC CL1' ' 03620099<br />

BOWK DC CL12' ' CONVERTED 03630099<br />

DC CL1' ' 03640099<br />

BORO DC CL12' ' CONVERTED 03650099<br />

DC CL1' ' 03660099<br />

BORK DC CL12' ' CONVERTED 03670099<br />

DC CL1' ' 03680099<br />

BODO DC CL12' ' CONVERTED 03690099<br />

DC CL1' ' 03700099<br />

BODK DC CL12' ' CONVERTED 03710099<br />

DC CL1' ' 03720099<br />

ORG 03730099<br />

PRINTL6 DC CL133' BTWO/BTWK/BTRO/BTRK/BTDO/BTDK:' 03740099<br />

ORG PRINTL6+38 03750099<br />

BTWO DC CL12' ' CONVERTED 03760099<br />

DC CL1' ' 03770099<br />

BTWK DC CL12' ' CONVERTED 03780099<br />

DC CL1' ' 03790099<br />

BTRO DC CL12' ' CONVERTED 03800099<br />

DC CL1' ' 03810099<br />

BTRK DC CL12' ' CONVERTED 03820099<br />

DC CL1' ' 03830099<br />

Figure B-22 SMF85TH assembler source (part 7 of 9)<br />

Appendix B. Code samples 509


BTDO DC CL12' ' CONVERTED 03840099<br />

DC CL1' ' 03850099<br />

BTDK DC CL12' ' CONVERTED 03860099<br />

DC CL1' ' 03870099<br />

ORG 03880099<br />

PRINTL7 DC CL133' B2OWO/B2OWK/B2ORO/B2ORK/B2ODO/B2ODK:' 03890099<br />

ORG PRINTL7+38 03900099<br />

B2OWO DC CL12' ' CONVERTED 03910099<br />

DC CL1' ' 03920099<br />

B2OWK DC CL12' ' CONVERTED 03930099<br />

DC CL1' ' 03940099<br />

B2ORO DC CL12' ' CONVERTED 03950099<br />

DC CL1' ' 03960099<br />

B2ORK DC CL12' ' CONVERTED 03970099<br />

DC CL1' ' 03980099<br />

B2ODO DC CL12' ' CONVERTED 03990099<br />

DC CL1' ' 04000099<br />

B2ODK DC CL12' ' CONVERTED 04010099<br />

DC CL1' ' 04020099<br />

ORG 04030099<br />

PRINTL8 DC CL133' B2TWO/B2TWK/B2TRO/B2TRK/B2TDO/B2TDK:' 04040099<br />

ORG PRINTL8+38 04050099<br />

B2TWO DC CL12' ' CONVERTED 04060099<br />

DC CL1' ' 04070099<br />

B2TWK DC CL12' ' CONVERTED 04080099<br />

DC CL1' ' 04090099<br />

B2TRO DC CL12' ' CONVERTED 04100099<br />

DC CL1' ' 04110099<br />

B2TRK DC CL12' ' CONVERTED 04120099<br />

DC CL1' ' 04130099<br />

B2TDO DC CL12' ' CONVERTED 04140099<br />

DC CL1' ' 04150099<br />

B2TDK DC CL12' ' CONVERTED 04160099<br />

DC CL1' ' 04170099<br />

ORG 04180099<br />

PRINTL9 DC CL133' DTUP/DTDE/4KIN/4KDE/32KI/32KD/NCE:' 04190099<br />

ORG PRINTL9+38 04200099<br />

DTUP DC CL12' ' CONVERTED 04210099<br />

DC CL1' ' 04220099<br />

DTDE DC CL12' ' CONVERTED 04230099<br />

DC CL1' ' 04240099<br />

N4KIN DC CL12' ' CONVERTED 04250099<br />

DC CL1' ' 04260099<br />

N4KDE DC CL12' ' CONVERTED 04270099<br />

DC CL1' ' 04280099<br />

N32KI DC CL12' ' CONVERTED 04290099<br />

DC CL1' ' 04300099<br />

N32KD DC CL12' ' CONVERTED 04310099<br />

DC CL1' ' 04320099<br />

NCE DC CL12' ' CONVERTED 04330099<br />

ORG 04340099<br />

Figure B-23 SMF85TH assembler source (part 8 of 9)<br />

510 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


PRINTL10 DC CL133' FLGS/NTE/RCLD/RCLK/LOBI/LOBD:' 04350099<br />

ORG PRINTL10+38 04360099<br />

FLGS DC CL9' ' INTERPRETED AS 0 OR 1 04370099<br />

DC CL4' ' 04380099<br />

NTE DC CL12' ' CONVERTED 04390099<br />

DC CL1' ' 04400099<br />

RCLD DC CL12' ' CONVERTED 04410099<br />

DC CL1' ' 04420099<br />

RCLK DC CL12' ' CONVERTED 04430099<br />

DC CL1' ' 04440099<br />

LOBI DC CL12' ' CONVERTED 04450099<br />

DC CL1' ' 04460099<br />

LOBD DC CL12' ' CONVERTED 04470099<br />

ORG 04480099<br />

SMFDSECT DSECT 04490099<br />

IFASMFR (85) THIS INCLUDES CBRSMF MACRO 04500099<br />

END 04510099<br />

Figure B-24 SMF85TH assembler source (part 9 of 9)<br />

Appendix B. Code samples 511


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-25 into your PDS MHLRES1.SMF85TH.SOURCE as<br />

member SMF85THJ. The result should contain 32 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1O JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGCLASS=J,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

/*JOBPARM S=*<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF85TH.SOURCE(SMF85TH)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TH.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSALLDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF85TH(R)<br />

Figure B-25 SMF85TH JCL to assemble and link the program<br />

This creates data set MHLRES1.SMF85TH.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TH.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TH.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

512 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SMF record type 85 subtype 1-7 data display program<br />

Program SMG85TA displays the contents of selected fields of SMF record type 85 subtypes<br />

1/2/3/4/5/6/7 data. It is not intended to provide a comprehensive report on OAM activity but<br />

rather to verify that immediate backup is occurring.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF85TA.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-26 on page 514 and all subsequent contents through<br />

to Figure B-32 on page 520, one after the other, into member SMFT85AA. The result should<br />

contain 333 lines.<br />

Appendix B. Code samples 513


MACRO<br />

&NAME SEGSTART<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA<br />

R0 EQU 0<br />

R1 EQU 1<br />

R2 EQU 2<br />

R3 EQU 3<br />

R4 EQU 4<br />

R5 EQU 5<br />

R6 EQU 6<br />

R7 EQU 7<br />

R8 EQU 8<br />

R9 EQU 9<br />

R10 EQU 10<br />

R11 EQU 11<br />

RB EQU 12<br />

R13 EQU 13<br />

R14 EQU 14<br />

R15 EQU 15<br />

BALR 12,0 SET UP ADDRESSABILITY<br />

USING *,12 USE REG 12 AS BASE REG<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13<br />

MEND<br />

MACRO<br />

&NAME SEGEND<br />

&NAME L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA<br />

XR R15,R15<br />

BR 14 RETURN TO CALLING RTN VIA REG 14<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA<br />

MEND<br />

SMFR85TA SEGSTART<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS PARTS OF<br />

* THE SMF TYPE 85 SUBTYPE 1-7 RECORDS.<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED<br />

* TO SELECT ANY OR ALL OF TYPE 85 SUBTYPES 1-7<br />

* RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS.<br />

*<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED.<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 85 RECORD<br />

* R3 START OF WHOLE RECORD<br />

* THERE IS 1 DSECTS TO BE MAPPED<br />

* R4 START OF SUBTYPE RECORDS<br />

* R5 SPARE<br />

* R6 SPARE<br />

* R7 SPARE<br />

* OTHER REGISTER USES<br />

* R12 OVERALL BASE REGISTER<br />

Figure B-26 SMF85TA assembler source (part 1 of 7)<br />

514 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING<br />

* R9 LENGTH OF PARTICULAR DSECT<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET<br />

*<br />

* QSAM GET LOCATE PROCESSING IS USED<br />

*<br />

OPEN SMFIN<br />

OPEN (PRINTDCB,(OUTPUT))<br />

PUT PRINTDCB,PRINTHDR<br />

READ GET SMFIN<br />

* COPY PARAMETER POINTER<br />

LR R3,R1<br />

* R3 -> SMF RECORD<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION<br />

USING CBRSMF85,R3<br />

* CHECK IF TYPE 85<br />

CLI SMF85RTY,X'55'<br />

BNE IGNORE<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

CHKSTYP1 DS 0H<br />

* CHECK IF ANY OF SUBTYPE 1-7<br />

CLI SMF85STY+1,X'01'<br />

BNE *+18<br />

MVI STYPE,C'1'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ ACCESS'<br />

B STOK<br />

CLI SMF85STY+1,X'02'<br />

BNE *+18<br />

MVI STYPE,C'2'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ STORE'<br />

B STOK<br />

CLI SMF85STY+1,X'03'<br />

BNE *+18<br />

MVI STYPE,C'3'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ RETRIEVE'<br />

B STOK<br />

CLI SMF85STY+1,X'04'<br />

BNE *+18<br />

MVI STYPE,C'4'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ QUERY'<br />

B STOK<br />

CLI SMF85STY+1,X'05'<br />

BNE *+18<br />

MVI STYPE,C'5'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ CHANGE'<br />

B STOK<br />

CLI SMF85STY+1,X'06'<br />

BNE *+18<br />

MVI STYPE,C'6'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ DELETE'<br />

B STOK<br />

Figure B-27 SMF85TA assembler source (part 2 of 7<br />

Appendix B. Code samples 515


*<br />

CLI SMF85STY+1,X'07'<br />

BNE *+18<br />

MVI STYPE,C'7'<br />

MVC FUNC,=CL15'<strong>OS</strong>REQ UNACCESS'<br />

B STOK<br />

* OTHERWISE IGNORE<br />

B IGNORE<br />

STOK EQU *<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS<br />

* IS ONE OF TYPE 85 SUBTYPE 1-7 SO EXTRACT DATA<br />

* R3 IS THE START OF THE WHOLE RECORD<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS.<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION<br />

* ADD R8 TO R3<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS<br />

LA R4,SMF85END<br />

USING ST1,R4<br />

L R8,SMF85<strong>OS</strong>O<br />

LH R9,SMF85<strong>OS</strong>L<br />

LH R10,SMF85<strong>OS</strong>N<br />

* PROCESS THE SUMMARY ENTRIES TRIPLET.<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START<br />

* SECOND HW IS THE LENGTH OF EACH TRIPLET<br />

* THIRD HW IS THE NUMBER OF TRIPLETS<br />

* FIELDS USED IN THE REPORT CORRESPOND TO THE RECORDS TAKEN FROM<br />

* THE SMF RECORD TYPE 85 SUBTYPE 1-7 RECORDS.<br />

* COLN COMES FROM ST1COLN<br />

* OBJN COMES FROM ST1OBJN<br />

* ETC<br />

* ST1FLGS IS NOT INTERPRETED - EACH BIT JUST SHOWN AS 1 OR 0<br />

*<br />

SCOTRIP DS 0H<br />

LA R4,0(R3,R8)<br />

LA R4,0(R3,R8)<br />

UNPK YYDDD(7),SMF85DTE<br />

CLI YYDDD+1,C'0'<br />

BE SETD0<br />

CLI YYDDD+1,C'1'<br />

BE SETD1<br />

* OTHERWISE ABEND AS SOMETHING HAS GONE WRONG<br />

DC F'0'<br />

SETD0 MVC YYDDD(2),=C'19'<br />

B SETDZ<br />

SETD1 MVC YYDDD(2),=C'20'<br />

*<br />

Figure B-28 SMF85TA assembler source (part 3 of 7)<br />

516 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


SETDZ EQU *<br />

* CONVERT THE TIME FROM HUNDREDTHS OF SEC SINCE MIDNIGHT<br />

LA R5,100 PREPARE TO DIVIDE BY 100<br />

LA R6,0<br />

L R7,SMF85TME GET THE TIME<br />

DR R6,R5 -> SECS IN R7, HUNS IN R6<br />

CVD R6,DWORD<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING<br />

UNPK HUS,DWORD+6(2)<br />

* DC F'0'<br />

* NOW GET THE SECS<br />

LA R5,60 PREPARE TO DIVIDE BY 60<br />

LA R6,0<br />

DR R6,R5 -> MINS IN R7, SECS REMAINDER IN R6<br />

CVD R6,DWORD<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING<br />

UNPK SS,DWORD+6(2)<br />

* NOW GET THE MINS<br />

LA R6,0<br />

DR R6,R5 -> HRS IN R7, MINS REMAINDER IN R6<br />

CVD R6,DWORD<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING<br />

UNPK MM,DWORD+6(2)<br />

CVD R7,DWORD DO HOURS<br />

OI DWORD+7,X'0F' FIX THE SIGN FOR PRINTING<br />

UNPK HH,DWORD+6(2)<br />

*<br />

PUT PRINTDCB,PRINTL0<br />

*<br />

PUT PRINTDCB,PRINTL1<br />

* COPY COLN<br />

MVC COLN,ST1COLN<br />

* COPY OBJN<br />

MVC OBJN,ST1OBJN<br />

PUT PRINTDCB,PRINTL2<br />

*<br />

* COPY SGN<br />

MVC SGN,ST1SGN<br />

* COPY SCN<br />

MVC SCN,ST1SCN<br />

* COPY MCN<br />

MVC MCN,ST1MCN<br />

*<br />

* CONVERT LEN<br />

L R1,ST1LEN<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK LEN(11),DWORD+2(6)<br />

Figure B-29 SMF85TA assembler source (part 4 of 7)<br />

Appendix B. Code samples 517


* CONVERT TTOK & TOK<br />

* DO TOK FIRST<br />

* TOK IS 8 BYTES BINARY -> 16 BYTES PRINTABLE<br />

* MVC TOK,ST1TOK<br />

UNPK TRWORK(15),ST1TOK+1(8) 15 BYTES (ONE REDUNDANT BYTE)<br />

NC TRWORK(15),=15X'0F'<br />

TR TRWORK(15),TRTAB<br />

MVC TOK+2(14),TRWORK<br />

UNPK TRWORK(3),ST1TOK(2) LAST BYTE + ONE REDUNDANT BYTE<br />

NC TRWORK(3),=3X'0F'<br />

TR TRWORK(3),TRTAB<br />

MVC TOK(2),TRWORK<br />

*<br />

* TTOK IS 16 BYTES BINARY -> 32 BYTES PRINTABLE<br />

* HAVE TO UNPACK THIS AS TWO SETS OF 16 AS PER TOK<br />

* FIRST DO 16 BYTES, THE REPEAT FOR THE NEXT TWO<br />

UNPK TRWORK(15),ST1TTOK+1(8) 15 BYTES (ONE REDUNDANT BYTE)<br />

NC TRWORK(15),=15X'0F'<br />

TR TRWORK(15),TRTAB<br />

MVC TTOK+2(14),TRWORK<br />

UNPK TRWORK(3),ST1TTOK(2) LAST BYTES + ONE REDUNDANT BYTE<br />

NC TRWORK(3),=3X'0F'<br />

TR TRWORK(3),TRTAB<br />

MVC TTOK(2),TRWORK<br />

* NOW DO IT ALL AGAIN WITH OFFSET OF 8 ON ST1TTOK AND OFSET OF 16 ON<br />

* TTOK<br />

UNPK TRWORK(15),ST1TTOK+1+8(8) 15 BYTES (ONE REDUNDANT BYTE)<br />

NC TRWORK(15),=15X'0F'<br />

TR TRWORK(15),TRTAB<br />

MVC TTOK+2+16(14),TRWORK<br />

UNPK TRWORK(3),ST1TTOK+8(2) LAST BYTES + ONE REDUNDANT BYTE<br />

NC TRWORK(3),=3X'0F'<br />

TR TRWORK(3),TRTAB<br />

MVC TTOK+16(2),TRWORK<br />

*<br />

* TRANSLATE TO PRINTABLE<br />

PUT PRINTDCB,PRINTL3<br />

*<br />

* COPY VSN & VMT<br />

MVC VSN,ST1VSN<br />

MVC MT,ST1VMT<br />

* CONVERT RC & RS<br />

* CONVERT RC<br />

L R1,ST1RC<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK RC(08),DWORD+4(4)<br />

* CONVERT RS<br />

L R1,ST1RS<br />

CVD R1,DWORD<br />

OI DWORD+7,X'0F'<br />

UNPK RS(08),DWORD+4(4)<br />

Figure B-30 SMF85TA assembler source (part 5 of 7)<br />

518 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* PRINT FLAGS<br />

UNPK FLGS(09),ST1FLGS(5) UNPK 1 MORE THAN NEEDED<br />

MVI FLGS+8,C' ' BLANK OUT THE EXTRA BYTE<br />

NC FLGS(08),=8X'0F'<br />

TR FLGS(8),TRTAB<br />

PUT PRINTDCB,PRINTL4<br />

WRITEIT DS 0H<br />

PUT PRINTDCB,PRINTBLK<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS<br />

*<br />

* WHEN BCT REACHES ZERO GO GET ANOTHER RECORD<br />

LA R8,0(R8,R9)<br />

BCT R10,SCOTRIP<br />

B READ<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS<br />

B READ<br />

FINISH DS 0H<br />

SEGEND<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP,<br />

EODAD=FINISH<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133<br />

DWORD DS D<br />

ORG DWORD<br />

DC C'12345678'<br />

TRWORK DS CL33<br />

TRTAB DC C'0123456789ABCDEF'<br />

PRINTBLK DC CL133' '<br />

PRINTHDR DC CL133'1SMF TYPE 85 SUBTYPE 1-7 RECORDS'<br />

PRINTL0 DC CL133' SMFDTE/TME:'<br />

ORG PRINTL0+27<br />

YYDDD DC CL7' '<br />

DC CL1' '<br />

HH DC CL2' '<br />

DC C':'<br />

MM DC CL2' '<br />

DC C':'<br />

SS DC CL2' '<br />

DC C'.'<br />

HUS DC CL3' '<br />

DC CL1' '<br />

ORG<br />

PRINTL1 DC CL133' STYPE:'<br />

ORG PRINTL1+27<br />

STYPE DC CL1' ' CONVERTED<br />

DC CL1' '<br />

FUNC DC CL15' '<br />

ORG<br />

Figure B-31 SMF85TA assembler source (part 6 of 7)<br />

Appendix B. Code samples 519


PRINTL2 DC CL133' COLN/OBJN:'<br />

ORG PRINTL2+27<br />

COLN DC CL44' '<br />

DC C' '<br />

OBJN DC CL20' ' CONVERTED FROM BL4<br />

ORG<br />

*<br />

PRINTL3 DC CL133' SGN/SCN/MCN/LEN/TTOK/TOK:'<br />

ORG PRINTL3+27<br />

SGN DC CL8' '<br />

DC CL1' '<br />

SCN DC CL8' '<br />

DC CL1' '<br />

MCN DC CL8' '<br />

DC CL1' '<br />

LEN DC CL12' '<br />

DC CL1' '<br />

TTOK DC CL32' ' CONVERTED<br />

DC CL1' '<br />

TOK DC CL16' ' CONVERTED<br />

ORG<br />

*<br />

PRINTL4 DC CL133' VSN/MT/RC/RS/FLGS:'<br />

ORG PRINTL4+27<br />

VSN DC CL6' ' COPIED<br />

DC CL1' '<br />

MT DC CL2' ' COPIED<br />

DC CL1' '<br />

RC DC CL8' ' CONVERTED<br />

DC CL1' '<br />

RS DC CL8' ' CONVERTED<br />

DC CL1' '<br />

FLGS DC CL20' ' AS-IS<br />

ORG<br />

SMFDSECT DSECT<br />

IFASMFR (85) THIS INCLUDES CBRSMF MACRO<br />

END<br />

Figure B-32 SMF85TA assembler source (part 7 of 7)<br />

520 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-33 into your PDS MHLRES1.SMF85TA.SOURCE as<br />

member SMFT85AJ. The result should contain 32 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1O JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGCLASS=J,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF85TA.SOURCE(SMF85TAA)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TA.LOAD,DISP=(,CATLG,DELETE),<br />

//* UNIT=SYSALLDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF85TA(R)<br />

Figure B-33 SMF85TA JCL to assemble and link the program<br />

This creates data set MHLRES1.SMF85TA.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TA.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF85TA.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 521


SMF record type 42 subtype 16 data display program<br />

Program SMG42TG displays the contents of selected fields of SMF record type 42 subtypes<br />

16 data. It is not intended to provide a comprehensive report on RLS activity but rather to<br />

verify that data sets are being allocated below or above the 2 GB bar as required.<br />

There are three steps to build the program which needs to be done once, after which it can be<br />

executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF42TG.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-34 on page 523 and all subsequent contents through<br />

to Figure B-43 on page 532, one after the other, into member SMF42TG. The result should<br />

contain 708 lines.<br />

522 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO 00010043<br />

&NAME SEGSTART 00020043<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA 00030043<br />

R0 EQU 0 00040043<br />

R1 EQU 1 00050043<br />

R2 EQU 2 00060043<br />

R3 EQU 3 00070043<br />

R4 EQU 4 00080043<br />

R5 EQU 5 00090043<br />

R6 EQU 6 00100043<br />

R7 EQU 7 00110043<br />

R8 EQU 8 00120043<br />

R9 EQU 9 00130043<br />

R10 EQU 10 00140043<br />

R11 EQU 11 00150043<br />

RB EQU 12 00160043<br />

R13 EQU 13 00170043<br />

R14 EQU 14 00180043<br />

R15 EQU 15 00190064<br />

BALR 12,0 SET UP ADDRESSABILITY 00200043<br />

USING *,12 USE REG 12 AS BASE REG 00210043<br />

USING *+4096,6 00220074<br />

LA 6,4095(12) 00230074<br />

LA 6,1(6) 00240074<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE 00250043<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3 00260043<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS 00270043<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13 00280043<br />

MEND 00290043<br />

MACRO 00300043<br />

&NAME SEGEND 00310043<br />

&NAME L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE 00320043<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA 00330043<br />

XR R15,R15 00340043<br />

BR 14 RETURN TO CALLING RTN VIA REG 14 00350043<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA 00360043<br />

MEND 00370043<br />

MACRO 00380053<br />

BINDEC &KEY 00390053<br />

L R7,SMF42&KEY 00400053<br />

CVD R7,DWORD 00410053<br />

OI DWORD+7,X'0F' 00420053<br />

UNPK P42&KEY.(7),DWORD+4(4) 00430053<br />

MEND 00440053<br />

MACRO 00450073<br />

BINDECA &KEY 00460073<br />

L R7,SMF2A&KEY 00470073<br />

CVD R7,DWORD 00480073<br />

OI DWORD+7,X'0F' 00490073<br />

UNPK P2A&KEY.(7),DWORD+4(4) 00500073<br />

MEND 00510073<br />

SMF42TGA SEGSTART 00520099<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF 00530043<br />

* THE SMF TYPE 42 SUBTYPE 16 RECORDS, WHICH ARE THE SMS DATA SET 00540043<br />

* SUMMARY RECORDS 00550043<br />

* IT IS ASSUMED THAT THE IFASMFDP PROGRAM HAS ALREADY BEEN USED 00560043<br />

* TO SELECT RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR 00570043<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS. 00580043<br />

* 00590043<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED. 00600043<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 42 RECORD 00610043<br />

* R3 START OF WHOLE RECORD 00620043<br />

* THERE ARE 4 DSECTS TO BE MAPPED 00630043<br />

* 2 FOR THE BELOW 64-BIT DATA 00640043<br />

* 2 FOR THE ABOVE 64-BIT DATA 00650043<br />

* R4 START OF TRIPLETS 00660099<br />

* R5 START OF DATA 00670099<br />

* R7 00680099<br />

* OTHER REGISTER USES 00690043<br />

* R12 OVERALL BASE REGISTER 00700043<br />

* R6 2ND BASE REGISTER 00710099<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING 00720043<br />

* R9 LENGTH OF PARTICULAR DSECT 00730043<br />

* R10 NUMBER OF ENTRIES IN THE TRIPLET 00740043<br />

* 00750043<br />

Figure B-34 SMF42TG assembler source (part 1 of 10)<br />

Appendix B. Code samples 523


* QSAM GET LOCATE PROCESSING IS USED 00760043<br />

* 00770043<br />

OPEN SMFIN 00780043<br />

OPEN (PRINTDCB,(OUTPUT)) 00790043<br />

* LA R1,PGA142L1 00800060<br />

PUT PRINTDCB,PRINTHDR 00810043<br />

READ GET SMFIN 00820043<br />

* COPY PARAMETER POINTER 00830043<br />

LR R3,R1 00840043<br />

* R3 -> SMF RECORD 00850043<br />

* USE SMF R3 RECORD MAPPING FOR INITIAL VERSION 00860043<br />

USING SMF42,R3 00870043<br />

* CHECK IF TYPE 02 00880043<br />

CLI SMF42RTY,X'02' (SAME DISPLAEMENT SMF ADMIN RECORD 02) 00890043<br />

BE IGNORE 00900043<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 00910048<br />

* CHECK IF TYPE 42 00920043<br />

CLI SMF42RTY,X'2A' 00930043<br />

BNE IGNORE 00940043<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 00950048<br />

CHKSTYP1 DS 0H 00960043<br />

* CHECK IF SUBTYPE 16 00970043<br />

CLI SMF42STY+1,X'10' 00980043<br />

BNE IGNORE 00990049<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 01000052<br />

* IS TYPE 42 SUBTYPE 16, SO EXTRACT DATA 01010043<br />

* R3 IS THE START OF THE WHOLE RECORD 01020043<br />

* FIRST ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS. 01030043<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION 01040043<br />

* ADD R8 TO R3 01050043<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS 01060043<br />

LA R4,SMF42END (WHERE THE 1ST DATA SECTION STARTS) 01070043<br />

USING SMF42SG,R4 01080043<br />

MVC TIMEF,SMF42TME SAVE THE SMF TIME IN 100THS OF SECS 01090069<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01100069<br />

L R15,TIMEF COMPLETE EVEN/ODD PAIR CONTENTS 01110069<br />

LA R11,100 START BY DIVIDING BY 100 TO GET SECS 01120069<br />

DR R14,R11 DIVIDE 01130069<br />

* REMAINDER NOW IN R14 WHICH WE IGNORE 01140069<br />

* QUOTIENT IN R15 - IE SECONDS WHICH WE CONVERT TO MINS + SECS 01150069<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01160069<br />

LA R11,60 DIVIDE BY 60 TO GET MINS 01170069<br />

DR R14,R11 DIVIDE TO GET MINUTES & SECONDS AS REM. 01180069<br />

* REMAINDER NOW IN R14 WHICH IS SECONDS WHICH WE MUST SAVE 01190069<br />

* QUOTIENT IN R15 - IE MINUTES FOR MORE PROCESSING 01200069<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01210069<br />

OI TIMET+7,X'0F' FIX SIGN 01220069<br />

UNPK TIMEX+6(2),TIMET+6(2) UNPACK SECONDS 01230069<br />

MVI TIMEX+5,C':' 01240069<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01250069<br />

LA R11,60 DIVIDE BY 60 TO GET HOURS 01260069<br />

DR R14,R11 DIVIDE TO GET HOURS & MINUTES AS REM. 01270069<br />

* REMAINDER NOW IN R14 WHICH IS MINUTES WHICH WE MUST SAVE 01280069<br />

* QUOTIENT IN R15 - IE HOURS WHICH WE MUST SAVE 01290069<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01300069<br />

OI TIMET+7,X'0F' FIX SIGN 01310069<br />

UNPK TIMEX+3(2),TIMET+6(2) UNPACK MINUTES 01320069<br />

MVI TIMEX+2,C':' 01330069<br />

CVD R15,TIMET CONVERT TO PACKED DECIMAL 01340069<br />

OI TIMET+7,X'0F' FIX SIGN 01350069<br />

UNPK TIMEX+0(2),TIMET+6(2) UNPACK HOURS 01360069<br />

MVC P42TME,TIMEX 01370069<br />

MVC P42TME2,TIMEX 01380069<br />

MVC P2ATME,TIMEX 01390075<br />

MVC P2ATME2,TIMEX 01400075<br />

UNPK P42DTE3(7),SMF42DTE(4) 01410069<br />

OI P42DTE3+3,X'F0' 01420069<br />

CLC P42DTE3(2),=CL2'01' 01430069<br />

BNE *+10 01440069<br />

MVC P42DTE3(2),=C'20' 01450069<br />

MVC P42DTE5,P42DTE3 01460069<br />

MVC P2ADTE3,P42DTE3 01470075<br />

MVC P2ADTE5,P42DTE3 01480075<br />

Figure B-35 SMF42TG assembler source (part 2 of 10)<br />

524 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* PROCESS THE DS SUMMARY ENTRIES TRIPLET. 01490069<br />

* FIRST FULLWORD IS OFFSET TO WHERE THE TRIPLETS START 01500069<br />

* SECOND HW IS THE LENGTH OF ALL TRIPLETS 01510069<br />

* THIRD HW IS THE NUMBER OF TRIPLETS 01520069<br />

GA142PRP EQU * 01530057<br />

L R8,SMF42GD1 OFFSET TO START OF CF DATASET SUMMARY 01540099<br />

* BELOW THE 64-BIT LINE 01550043<br />

LH R9,SMF42GD2 LENGTH OF THE SCLASS SECTIONS 01560057<br />

LH R10,SMF42GD3 NUMBER OF SCLASS SECTIONS 01570057<br />

LTR R10,R10 01580057<br />

BZ G1A42PRP 01590060<br />

XR R14,R14 CLEAR HIGH ORDER 01600057<br />

STH R14,P42TGA1C START THE COUNT AT 0 01610057<br />

LR R15,R9 LOAD LEGTH IN R9 01620057<br />

DR R14,R10 GET LENGTH OF SMF420JA DSECTS 01630057<br />

LR R9,R15 01640057<br />

LA R5,0(R3,R8) POINT R5 TO THE RECORD START 01650043<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 01660057<br />

GA142TRP DS 0H 01670057<br />

LH R14,P42TGA1C GET CURRENT COUNT 01680057<br />

LA R14,1(R14) ADD ONE 01690057<br />

STH R14,P42TGA1C PUT CURRENT COUNT 01700057<br />

CVD R14,DWORD 01710057<br />

OI DWORD+7,X'0F' 01720057<br />

UNPK P42TGA1#(7),DWORD+4(4) 01730057<br />

PUT PRINTDCB,PGA142L1 01740057<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 01750057<br />

USING SMF420GA,R5 01760057<br />

MVC P42GAE,SMF42GAE 01770057<br />

BINDEC GAA 01780053<br />

MVC P42GAB(44),SMF42GAB 01790099<br />

MVC P42GAC(44),SMF42GAC 01800054<br />

PUT PRINTDCB,PGA142L2 01810060<br />

PUT PRINTDCB,PGA142L3 01820060<br />

MVC P42GAF(30),SMF42GAF 01830062<br />

MVC P42GAH(30),SMF42GAH 01840065<br />

MVC P42GAI(9),=CL9'UNKNOWN' SET UNKNOWN IN CASE NEITHER ON 01850099<br />

* TM SMF42GAI,SMF42GAI0 IS BIT 0 ON? 01860099<br />

TM SMF42GAI,X'80' IS BIT 0 ON? 01870099<br />

BO P42GAI0 NO SEE IF 01880099<br />

B P42GAI1T 01890099<br />

P42GAI0 MVC P42GAI(8),=C'DATA' YES SET DATA 01900099<br />

B P42GAIOK 01910099<br />

P42GAI1T EQU * 01920099<br />

* TM SMF42GAI,SMF42GAI1 IS BIT 1 ON? 01930099<br />

TM SMF42GAI,X'40' IS BIT 1 ON? 01940099<br />

BO P42GAI1 NO DON'T SET 01950099<br />

B P42GAIOK 01960099<br />

P42GAI1 MVC P42GAI(8),=C'INDEX' YES SET INDEX 01970099<br />

P42GAIOK EQU * 01980099<br />

MVC P42GAJ(12),SMF42GAJ 01990066<br />

PUT PRINTDCB,PGA142L4 02000099<br />

PUT PRINTDCB,PGA142L5 02010099<br />

MVC P42GAP(16),SMF42GAP 02020067<br />

BINDEC GCA 02030099<br />

BINDEC GCB 02040099<br />

BINDEC GCC 02050099<br />

BINDEC GCD 02060099<br />

BINDEC GCE 02070099<br />

BINDEC GCF 02080099<br />

BINDEC GCI 02090099<br />

BINDEC GCL 02100099<br />

BINDEC GCM 02110099<br />

BINDEC GCN 02120099<br />

PUT PRINTDCB,PGA142L6 02130099<br />

PUT PRINTDCB,PGA142L7 02140099<br />

PUT PRINTDCB,PRINTBLK 02150043<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02160043<br />

* 02170043<br />

* WHEN BCT REACHES ZERO GO ON TO THE NEXT SET 02180056<br />

BCT R10,GA142TRP 02190057<br />

Figure B-36 SMF42TG assembler source (part 3 of 10)<br />

Appendix B. Code samples 525


G1A42PRP EQU * 02200060<br />

L R8,SMF42GD4 OFFSET TO START OF DATASET CF/SYS SUMMARY 02210099<br />

* BELOW THE 64-BIT LINE 02220060<br />

LH R9,SMF42GD5 LENGTH OF THE SCLASS SECTIONS 02230060<br />

LH R10,SMF42GD6 NUMBER OF SCLASS SECTIONS 02240060<br />

LTR R10,R10 02250060<br />

BZ GA12APRP 02260083<br />

XR R14,R14 CLEAR HIGH ORDER 02270060<br />

STH R14,P42TG1AC START THE COUNT AT 0 02280060<br />

LR R15,R9 LOAD LEGTH IN R9 02290060<br />

DR R14,R10 GET LENGTH OF SMF420JA DSECTS 02300060<br />

LR R9,R15 02310060<br />

LA R5,0(R3,R8) POINT R5 TO THE RECORD START 02320060<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 02330060<br />

G1A42TRP DS 0H 02340060<br />

LH R14,P42TG1AC GET CURRENT COUNT 02350060<br />

LA R14,1(R14) ADD ONE 02360060<br />

STH R14,P42TG1AC PUT CURRENT COUNT 02370060<br />

CVD R14,DWORD 02380060<br />

OI DWORD+7,X'0F' 02390060<br />

UNPK P42TG1A#(7),DWORD+4(4) 02400061<br />

PUT PRINTDCB,PG1A42L1 02410060<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02420060<br />

USING SMF420GB,R5 02430060<br />

BINDEC GBA 02440082<br />

CH R7,=H'0' 02450099<br />

BE G1A42SKP IF THE COUNT IS ZERO SKIP REPORT 02460099<br />

MVC P42GBB(44),SMF42GBB 02470060<br />

MVC P42GBC(44),SMF42GBC 02480093<br />

PUT PRINTDCB,PG1A42L2 02490099<br />

PUT PRINTDCB,PG1A42L3 02500099<br />

MVC P42GBE,SMF42GBE 02510060<br />

MVC P42GBF(30),SMF42GBF 02520066<br />

MVC P42GBH(8),SMF42GBH 02530066<br />

MVC P42GBI(9),=CL9'UNKNOWN' SET UNKNOWN IN CASE NEITHER ON 02540099<br />

* TM SMF42GBI,SMF42GBI0 IS BIT 0 ON? 02550099<br />

TM SMF42GBI,X'80' IS BIT 0 ON? 02560099<br />

BO P42GBI0 NO SEE IF 02570099<br />

B P42GBI1T 02580099<br />

P42GBI0 MVC P42GBI(8),=C'DATA' YES SET DATA 02590099<br />

B P42GBIOK 02600099<br />

P42GBI1T EQU * 02610099<br />

* TM SMF42GBI,SMF42GBI1 IS BIT 1 ON? 02620099<br />

TM SMF42GBI,X'40' IS BIT 1 ON? 02630099<br />

BO P42GBI1 NO DON'T SET 02640099<br />

B P42GBIOK 02650099<br />

P42GBI1 MVC P42GBI(8),=C'INDEX' YES SET INDEX 02660099<br />

P42GBIOK EQU * 02670099<br />

MVC P42A09(12),SMF42A09 02680066<br />

PUT PRINTDCB,PG1A42L4 02690099<br />

PUT PRINTDCB,PG1A42L5 02700099<br />

MVC P42GBP(16),SMF42GBP 02710093<br />

BINDEC GIA 02720099<br />

BINDEC GIB 02730099<br />

BINDEC GIC 02740099<br />

BINDEC GID 02750099<br />

BINDEC GIE 02760099<br />

BINDEC GIF 02770099<br />

BINDEC GIL 02780099<br />

BINDEC GIR 02790099<br />

BINDEC GIS 02800099<br />

PUT PRINTDCB,PG1A42L6 02810099<br />

PUT PRINTDCB,PG1A42L7 02820099<br />

PUT PRINTDCB,PRINTBLK 02830065<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02840065<br />

* 02850065<br />

* WHEN BCT REACHES ZERO GO ON TO THE NEXT SET 02860065<br />

G1A42SKP DS 0H 02870099<br />

BCT R10,G1A42TRP 02880065<br />

GA12APRP EQU * 02890073<br />

L R8,SMF2AGD1 OFFSET TO START OF CF DATASET SUMMARY 02900099<br />

* ABOVE THE 64-BIT LINE 02910090<br />

LH R9,SMF2AGD2 LENGTH OF THE SCLASS SECTIONS 02920073<br />

LH R10,SMF2AGD3 NUMBER OF SCLASS SECTIONS 02930073<br />

LTR R10,R10 02940073<br />

BZ G1A2APRP 02950099<br />

XR R14,R14 CLEAR HIGH ORDER 02960073<br />

STH R14,P2ATGA1C START THE COUNT AT 0 02970073<br />

Figure B-37 SMF42TG assembler source (part 4 of 10)<br />

526 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


LR R15,R9 LOAD LEGTH IN R9 02980073<br />

DR R14,R10 GET LENGTH OF SMF2A0JA DSECTS 02990073<br />

LR R9,R15 03000073<br />

LA R5,0(R3,R8) POINT R5 TO THE RECORD START 03010073<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 03020073<br />

GA12ATRP DS 0H 03030073<br />

LH R14,P2ATGA1C GET CURRENT COUNT 03040073<br />

LA R14,1(R14) ADD ONE 03050073<br />

STH R14,P2ATGA1C PUT CURRENT COUNT 03060073<br />

CVD R14,DWORD 03070073<br />

OI DWORD+7,X'0F' 03080073<br />

UNPK P2ATGA1#(7),DWORD+4(4) 03090073<br />

PUT PRINTDCB,PGA12AL1 03100073<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 03110073<br />

USING SMF2A0GA,R5 03120073<br />

MVC P2AGAE,SMF2AGAE 03130073<br />

BINDECA GAA 03140073<br />

MVC P2AGAB(44),SMF2AGAB 03150099<br />

MVC P2AGAC(44),SMF2AGAC 03160073<br />

PUT PRINTDCB,PGA12AL2 03170073<br />

PUT PRINTDCB,PGA12AL3 03180073<br />

MVC P2AGAF(30),SMF2AGAF 03190073<br />

MVC P2AGAH(30),SMF2AGAH 03200073<br />

MVC P2AGAI(9),=CL9'UNKNOWN' SET UNKNOWN IN CASE NEITHER ON 03210099<br />

* TM SMF2AGAI,SMF2AGAI0 IS BIT 0 ON? 03220099<br />

TM SMF2AGAI,X'80' IS BIT 0 ON? 03230099<br />

BO P2AGAI0 NO SEE IF 03240099<br />

B P2AGAI1T 03250099<br />

P2AGAI0 MVC P2AGAI(8),=C'DATA' YES SET DATA 03260099<br />

B P2AGAIOK 03270099<br />

P2AGAI1T EQU * 03280099<br />

* TM SMF2AGAI,SMF2AGAI1 IS BIT 1 ON? 03290099<br />

TM SMF2AGAI,X'40' IS BIT 1 ON? 03300099<br />

BO P2AGAI1 NO DON'T SET 03310099<br />

B P2AGAIOK 03320099<br />

P2AGAI1 MVC P2AGAI(8),=C'INDEX' YES SET INDEX 03330099<br />

P2AGAIOK EQU * 03340099<br />

MVC P2AGAJ(12),SMF2AGAJ 03350073<br />

PUT PRINTDCB,PGA12AL4 03360099<br />

PUT PRINTDCB,PGA12AL5 03370099<br />

MVC P2AGAP(16),SMF2AGAP 03380073<br />

BINDECA GCA 03390099<br />

BINDECA GCB 03400099<br />

BINDECA GCC 03410099<br />

BINDECA GCD 03420099<br />

BINDECA GCE 03430099<br />

BINDECA GCF 03440099<br />

BINDECA GCI 03450099<br />

BINDECA GCL 03460099<br />

BINDECA GCM 03470099<br />

BINDECA GCN 03480099<br />

PUT PRINTDCB,PGA12AL6 03490099<br />

PUT PRINTDCB,PGA12AL7 03500099<br />

PUT PRINTDCB,PRINTBLK 03510073<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 03520073<br />

* 03530073<br />

* WHEN BCT REACHES ZERO GO ON TO THE NEXT SET 03540073<br />

BCT R10,GA12ATRP 03550073<br />

G1A2APRP EQU * 03560073<br />

L R8,SMF2AGD4 OFFSET TO START OF DATASET CF/SYS SUMMARY 03570099<br />

* ABOVE THE 64-BIT LINE 03580099<br />

LH R9,SMF2AGD5 LENGTH OF THE SCLASS SECTIONS 03590073<br />

LH R10,SMF2AGD6 NUMBER OF SCLASS SECTIONS 03600073<br />

LTR R10,R10 03610073<br />

BZ READ (LAST ONE) 03620099<br />

XR R14,R14 CLEAR HIGH ORDER 03630073<br />

STH R14,P2ATG1AC START THE COUNT AT 0 03640073<br />

LR R15,R9 LOAD LEGTH IN R9 03650073<br />

DR R14,R10 GET LENGTH OF SMF2A0JA DSECTS 03660073<br />

LR R9,R15 03670073<br />

LA R5,0(R3,R8) POINT R5 TO THE RECORD START 03680073<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 03690073<br />

Figure B-38 SMF42TG assembler source (part 5 of 10)<br />

Appendix B. Code samples 527


G1A2ATRP DS 0H 03700073<br />

LH R14,P2ATG1AC GET CURRENT COUNT 03710099<br />

LA R14,1(R14) ADD ONE 03720099<br />

STH R14,P2ATG1AC PUT CURRENT COUNT 03730099<br />

CVD R14,DWORD 03740099<br />

OI DWORD+7,X'0F' 03750099<br />

UNPK P2ATG1A#(7),DWORD+4(4) 03760099<br />

PUT PRINTDCB,PG1A2AL1 03770099<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 03780099<br />

USING SMF2A0GB,R5 03790073<br />

BINDECA GBA 03800082<br />

MVC P2AGBB(44),SMF2AGBB 03810073<br />

MVC P2AGBC(44),SMF2AGBC 03820093<br />

PUT PRINTDCB,PG1A2AL2 03830099<br />

PUT PRINTDCB,PG1A2AL3 03840099<br />

MVC P2AGBE,SMF2AGBE 03850073<br />

MVC P2AGBF(30),SMF2AGBF 03860073<br />

MVC P2AGBH(8),SMF2AGBH 03870073<br />

MVC P2AGBI(9),=CL9'UNKNOWN' SET UNKNOWN IN CASE NEITHER ON 03880099<br />

* TM SMF2AGBI,SMF2AGBI0 IS BIT 0 ON? 03890099<br />

TM SMF2AGBI,X'80' IS BIT 0 ON? 03900099<br />

BO P2AGBI0 NO SEE IF 03910099<br />

B P2AGBI1T 03920099<br />

P2AGBI0 MVC P2AGBI(8),=C'DATA' YES SET DATA 03930099<br />

B P2AGBIOK 03940099<br />

P2AGBI1T EQU * 03950099<br />

* TM SMF2AGBI,SMF2AGBI1 IS BIT 1 ON? 03960099<br />

TM SMF2AGBI,X'40' IS BIT 1 ON? 03970099<br />

BO P2AGBI1 NO DON'T SET 03980099<br />

B P2AGBIOK 03990099<br />

P2AGBI1 MVC P2AGBI(8),=C'INDEX' YES SET INDEX 04000099<br />

P2AGBIOK EQU * 04010099<br />

MVC P2AA09(12),SMF2AA09 04020073<br />

PUT PRINTDCB,PG1A2AL4 04030099<br />

PUT PRINTDCB,PG1A2AL5 04040099<br />

MVC P2AGBP(16),SMF2AGBP 04050093<br />

BINDECA GIA 04060099<br />

BINDECA GIB 04070099<br />

BINDECA GIC 04080099<br />

BINDECA GID 04090099<br />

BINDECA GIE 04100099<br />

BINDECA GIF 04110099<br />

BINDECA GIL 04120099<br />

BINDECA GIR 04130099<br />

BINDECA GIS 04140099<br />

PUT PRINTDCB,PG1A2AL6 04150099<br />

PUT PRINTDCB,PG1A2AL7 04160099<br />

PUT PRINTDCB,PRINTBLK 04170073<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 04180073<br />

* WHEN BCT REACHES ZERO GO ON TO THE NEXT SET 04190073<br />

BCT R10,G1A2ATRP 04200073<br />

B READ 04210043<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS 04220043<br />

B READ 04230043<br />

FINISH DS 0H 04240043<br />

SEGEND 04250044<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP, C04260043<br />

EODAD=FINISH 04270043<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133 04280043<br />

DWORD DS D 04290043<br />

ORG DWORD 04300043<br />

DC C'12345678' 04310043<br />

TIMET DS D WORKAREA FOR TIME CONVERSION 04320069<br />

TIMEX DS D WORKAREA FOR TIME CONVERSION 04330069<br />

TIMEF DS F WORKAREA FOR TIME CONVERSION 04340069<br />

PRINTBLK DC CL133' ' 04350043<br />

PRINTHDR DC CL133'1SMF TYPE 42 SUBTYPE 16 RECORDS' 04360043<br />

************* SMF42GA1 ************ 04370060<br />

PGA142L1 DC CL133' SMF42GA1 SYSPLEX D/S RESPONSE SUMMARY SET #:' 04380099<br />

ORG PGA142L1+51 04390099<br />

P42TGA1# DC CL8' ' 04400057<br />

ORG 04410057<br />

P42TGA1C DC H'0' TO COUNT THE NUMBER OF SETS 04420057<br />

Figure B-39 SMF42TG assembler source (part 6 of 10)<br />

528 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* 04430057<br />

* 04440043<br />

PGA142L2 DC CL133' ' 04450060<br />

ORG PGA142L2+1 04460060<br />

P42DTE3H DC CL8'YYYYDDD ' 04470062<br />

P42TMEH DC CL9'HH:MM:SS ' 04480069<br />

P42GAAH DC CL9'SMF42GAA' 04490054<br />

P42GABH DC CL44'SMF42GAB' 04500099<br />

P42GACH DC CL45'SMF42GAC' 04510054<br />

ORG 04520043<br />

* 04530043<br />

PGA142L3 DC CL133' ' 04540060<br />

ORG PGA142L3+1 04550060<br />

P42DTE3 DC CL8' ' 04560062<br />

P42TME DC CL9'HH:MM:SS ' 04570069<br />

P42GAA DC CL9' ' 04580062<br />

P42GAB DC CL44' ' 04590099<br />

P42GAC DC CL45' ' 04600099<br />

ORG 04610043<br />

PGA142L4 DC CL133' ' 04620062<br />

ORG PGA142L4+1+8 04630063<br />

P42GAEH DC CL26'SMF42GAE' 04640099<br />

P42GAFH DC CL31'SMF42GAF' 04650062<br />

P42GAHH DC CL32'SMF42GAH' 04660073<br />

P42GAIH DC CL9'SMF42GAI' INTERPRETED 04670099<br />

P42GAJH DC CL13'SMF42GAJ' 04680099<br />

ORG 04690062<br />

* 04700062<br />

PGA142L5 DC CL133' ' 04710062<br />

ORG PGA142L5+1+8 04720064<br />

P42GAE DC CL26' ' 04730099<br />

P42GAF DC CL31' ' 04740065<br />

P42GAH DC CL32' ' 04750073<br />

P42GAI DC CL9' ' 04760099<br />

P42GAJ DC CL13' ' 04770066<br />

ORG 04780062<br />

PGA142L6 DC CL133' ' 04790099<br />

ORG PGA142L6+1+8 04800099<br />

P42GAPH DC CL17'SMF42GAP' 04810099<br />

P42GCAH DC CL9'SMF42GCA' 04820099<br />

P42GCBH DC CL9'SMF42GCB' 04830099<br />

P42GCCH DC CL9'SMF42GCC' 04840099<br />

P42GCDH DC CL9'SMF42GCD' 04850099<br />

P42GCEH DC CL9'SMF42GCE' 04860099<br />

P42GCFH DC CL9'SMF42GCF' 04870099<br />

P42GCIH DC CL9'SMF42GCI' 04880099<br />

P42GCLH DC CL9'SMF42GCL' 04890099<br />

P42GCMH DC CL9'SMF42GCM' 04900099<br />

P42GCNH DC CL9'SMF42GCN' 04910099<br />

ORG 04920099<br />

* 04930099<br />

PGA142L7 DC CL133' ' 04940099<br />

ORG PGA142L7+1+8 04950099<br />

P42GAP DC CL17' ' 04960099<br />

P42GCA DC CL9' ' 04970099<br />

P42GCB DC CL9' ' 04980099<br />

P42GCC DC CL9' ' 04990099<br />

P42GCD DC CL9' ' 05000099<br />

P42GCE DC CL9' ' 05010099<br />

P42GCF DC CL9' ' 05020099<br />

P42GCI DC CL9' ' 05030099<br />

P42GCL DC CL9' ' 05040099<br />

P42GCM DC CL9' ' 05050099<br />

P42GCN DC CL9' ' 05060099<br />

ORG 05070099<br />

************* SMF42G1A ************ 05080099<br />

PG1A42L1 DC CL133' SMF42G1A DATA SET/MVS SYSTEM SUMMARY SET #:' 05090099<br />

ORG PG1A42L1+45 05100099<br />

P42TG1A# DC CL8' ' 05110060<br />

ORG 05120060<br />

P42TG1AC DC H'0' TO COUNT THE NUMBER OF SETS 05130060<br />

PG1A42L2 DC CL133' ' 05140060<br />

ORG PG1A42L2+1 05150060<br />

P42DTE5H DC CL8'YYYYDDD ' 05160062<br />

P42TME2H DC CL9'HH:MM:SS ' 05170070<br />

Figure B-40 SMF42TG assembler source (part 7 of 10)<br />

Appendix B. Code samples 529


P42TME2H DC CL9'HH:MM:SS ' 05170070<br />

P42GBAH DC CL9'SMF42GBA' 05180060<br />

P42GBBH DC CL45'SMF42GBB' 05190060<br />

P42GBCH DC CL45'SMF42GBC' 05200060<br />

DC CL1' ' 05210060<br />

ORG 05220060<br />

PG1A42L3 DC CL133' ' 05230060<br />

ORG PG1A42L3+1 05240060<br />

P42DTE5 DC CL8' ' 05250062<br />

P42TME2 DC CL9'HH:MM:SS ' 05260070<br />

P42GBA DC CL9' ' 05270060<br />

P42GBB DC CL45' ' 05280060<br />

P42GBC DC CL45' ' 05290060<br />

DC CL1' ' 05300060<br />

ORG 05310060<br />

05320063<br />

PG1A42L4 DC CL133' ' 05330062<br />

ORG PG1A42L4+1+8 05340063<br />

P42GBEH DC CL30'SMF42GBE' 05350099<br />

P42GBFH DC CL31'SMF42GBF' 05360099<br />

P42GBHH DC CL32'SMF42GBH' 05370099<br />

P42GBIH DC CL9'SMF42GBI' INTERPRETED 05380099<br />

P42A09H DC CL13'SMF42AO9' 05390099<br />

ORG 05400062<br />

PG1A42L5 DC CL133' ' 05410062<br />

ORG PG1A42L5+1+8 05420063<br />

P42GBE DC CL30' ' 05430099<br />

P42GBF DC CL31' ' 05440099<br />

P42GBH DC CL32' ' 05450099<br />

P42GBI DC CL9' ' 05460099<br />

P42A09 DC CL13' ' 05470099<br />

ORG 05480062<br />

PG1A42L6 DC CL133' ' 05490099<br />

ORG PG1A42L6+1+8 05500099<br />

P42GBPH DC CL17'SMF42GBP' 05510099<br />

P42GIAH DC CL9'SMF42GIA' 05520099<br />

P42GIBH DC CL9'SMF42GIB' 05530099<br />

P42GICH DC CL9'SMF42GIC' 05540099<br />

P42GIDH DC CL9'SMF42GID' 05550099<br />

P42GIEH DC CL9'SMF42GIE' 05560099<br />

P42GIFH DC CL9'SMF42GIF' 05570099<br />

P42GILH DC CL9'SMF42GIL' 05580099<br />

P42GIRH DC CL9'SMF42GIR' 05590099<br />

P42GISH DC CL9'SMF42GIS' 05600099<br />

ORG 05610099<br />

PG1A42L7 DC CL133' ' 05620099<br />

ORG PG1A42L7+1+8 05630099<br />

P42GBP DC CL17' ' 05640099<br />

P42GIA DC CL9' ' 05650099<br />

P42GIB DC CL9' ' 05660099<br />

P42GIC DC CL9' ' 05670099<br />

P42GID DC CL9' ' 05680099<br />

P42GIE DC CL9' ' 05690099<br />

P42GIF DC CL9' ' 05700099<br />

P42GIL DC CL9' ' 05710099<br />

P42GIR DC CL9' ' 05720099<br />

P42GIS DC CL9' ' 05730099<br />

ORG 05740099<br />

************* SMF2AGA1 ************ 05750073<br />

PGA12AL1 DC CL133' SMF2AGA1 SYSPLEX D/S RESPONSE SUMMARY SET #:' 05760099<br />

ORG PGA12AL1+51 05770099<br />

P2ATGA1# DC CL8' ' 05780073<br />

ORG 05790073<br />

P2ATGA1C DC H'0' TO COUNT THE NUMBER OF SETS 05800073<br />

PGA12AL2 DC CL133' ' 05810073<br />

ORG PGA12AL2+1 05820073<br />

P2ADTE3H DC CL8'YYYYDDD ' 05830073<br />

P2ATMEH DC CL9'HH:MM:SS ' 05840073<br />

P2AGAAH DC CL9'SMF2AGAA' 05850073<br />

P2AGABH DC CL44'SMF2AGAB' 05860099<br />

P2AGACH DC CL45'SMF2AGAC' 05870073<br />

ORG 05880073<br />

Figure B-41 SMF42TG assembler source (part 8 of 10)<br />

530 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


PGA12AL3 DC CL133' ' 05890073<br />

ORG PGA12AL3+1 05900073<br />

P2ADTE3 DC CL8' ' 05910073<br />

P2ATME DC CL9'HH:MM:SS ' 05920073<br />

P2AGAA DC CL9' ' 05930073<br />

P2AGAB DC CL44'SMF2AGAB' 05940099<br />

P2AGAC DC CL45'SMF2AGAC' 05950073<br />

ORG 05960073<br />

PGA12AL4 DC CL133' ' 05970073<br />

ORG PGA12AL4+1+8 05980073<br />

P2AGAEH DC CL27'SMF2AGAE' 05990099<br />

P2AGAFH DC CL31'SMF2AGAF' 06000073<br />

P2AGAHH DC CL32'SMF2AGAH' 06010073<br />

P2AGAIH DC CL9'SMF2AGAI' INTERPRETED 06020099<br />

P2AGAJH DC CL13'SMF2AGAJ' 06030099<br />

ORG 06040073<br />

PGA12AL5 DC CL133' ' 06050073<br />

ORG PGA12AL5+1+8 06060073<br />

P2AGAE DC CL27' ' 06070099<br />

P2AGAF DC CL31' ' 06080073<br />

P2AGAH DC CL32' ' 06090073<br />

P2AGAI DC CL9' ' 06100099<br />

P2AGAJ DC CL13' ' 06110099<br />

ORG 06120073<br />

PGA12AL6 DC CL133' ' 06130099<br />

ORG PGA12AL6+1+8 06140099<br />

P2AGAPH DC CL17'SMF2AGAP' 06150099<br />

P2AGCAH DC CL9'SMF2AGCA' 06160099<br />

P2AGCBH DC CL9'SMF2AGCB' 06170099<br />

P2AGCCH DC CL9'SMF2AGCC' 06180099<br />

P2AGCDH DC CL9'SMF2AGCD' 06190099<br />

P2AGCEH DC CL9'SMF2AGCE' 06200099<br />

P2AGCFH DC CL9'SMF2AGCF' 06210099<br />

P2AGCIH DC CL9'SMF2AGCI' 06220099<br />

P2AGCLH DC CL9'SMF2AGCL' 06230099<br />

P2AGCMH DC CL9'SMF2AGCM' 06240099<br />

P2AGCNH DC CL9'SMF2AGCN' 06250099<br />

ORG 06260099<br />

PGA12AL7 DC CL133' ' 06270099<br />

ORG PGA12AL7+1+8 06280099<br />

P2AGAP DC CL17' ' 06290099<br />

P2AGCA DC CL9' ' 06300099<br />

P2AGCB DC CL9' ' 06310099<br />

P2AGCC DC CL9' ' 06320099<br />

P2AGCD DC CL9' ' 06330099<br />

P2AGCE DC CL9' ' 06340099<br />

P2AGCF DC CL9' ' 06350099<br />

P2AGCI DC CL9' ' 06360099<br />

P2AGCL DC CL9' ' 06370099<br />

P2AGCM DC CL9' ' 06380099<br />

P2AGCN DC CL9' ' 06390099<br />

ORG 06400099<br />

************* SMF2AG1A ************ 06410073<br />

PG1A2AL1 DC CL133' SMF2AG1A DATA SET/MVS SYSTEM SUMMARY SET #:' 06420099<br />

ORG PG1A2AL1+44 06430099<br />

P2ATG1A# DC CL8' ' 06440073<br />

ORG 06450073<br />

P2ATG1AC DC H'0' TO COUNT THE NUMBER OF SETS 06460073<br />

PG1A2AL2 DC CL133' ' 06470073<br />

ORG PG1A2AL2+1 06480073<br />

P2ADTE5H DC CL8'YYYYDDD ' 06490073<br />

P2ATME2H DC CL9'HH:MM:SS ' 06500073<br />

P2AGBAH DC CL9'SMF2AGBA' 06510073<br />

P2AGBBH DC CL45'SMF2AGBB' 06520073<br />

P2AGBCH DC CL45'SMF2AGBC' 06530073<br />

ORG 06540073<br />

PG1A2AL3 DC CL133' ' 06550073<br />

ORG PG1A2AL3+1 06560073<br />

P2ADTE5 DC CL8' ' 06570073<br />

P2ATME2 DC CL9'HH:MM:SS ' 06580073<br />

P2AGBA DC CL9' ' 06590073<br />

P2AGBB DC CL45' ' 06600073<br />

P2AGBC DC CL45' ' 06610073<br />

ORG 06620073<br />

Figure B-42 SMF42TG assembler source (part 9 of 10)<br />

Appendix B. Code samples 531


PG1A2AL4 DC CL133' ' 06630073<br />

ORG PG1A2AL4+1+8 06640073<br />

P2AGBEH DC CL30'SMF2AGBE' 06650099<br />

P2AGBFH DC CL31'SMF2AGBF' 06660099<br />

P2AGBHH DC CL32'SMF2AGBH' 06670099<br />

P2AGBIH DC CL9'SMF2AGBI' INTERPRETED 06680099<br />

P2AA09H DC CL13'SMF2AAO9' 06690099<br />

ORG 06700073<br />

PG1A2AL5 DC CL133' ' 06710073<br />

ORG PG1A2AL5+1+8 06720073<br />

P2AGBE DC CL30' ' 06730099<br />

P2AGBF DC CL31' ' 06740099<br />

P2AGBH DC CL32' ' 06750099<br />

P2AGBI DC CL9' ' 06760099<br />

P2AA09 DC CL13' ' 06770099<br />

ORG 06780073<br />

PG1A2AL6 DC CL133' ' 06790099<br />

ORG PG1A2AL6+1+8 06800099<br />

P2AGBPH DC CL17'SMF2AGBP' 06810099<br />

P2AGIAH DC CL9'SMF2AGIA' 06820099<br />

P2AGIBH DC CL9'SMF2AGIB' 06830099<br />

P2AGICH DC CL9'SMF2AGIC' 06840099<br />

P2AGIDH DC CL9'SMF2AGID' 06850099<br />

P2AGIEH DC CL9'SMF2AGIE' 06860099<br />

P2AGIFH DC CL9'SMF2AGIF' 06870099<br />

P2AGILH DC CL9'SMF2AGIL' 06880099<br />

P2AGIRH DC CL9'SMF2AGIR' 06890099<br />

P2AGISH DC CL9'SMF2AGIS' 06900099<br />

ORG 06910099<br />

PG1A2AL7 DC CL133' ' 06920099<br />

ORG PG1A2AL7+1+8 06930099<br />

P2AGBP DC CL17' ' 06940099<br />

P2AGIA DC CL9' ' 06950099<br />

P2AGIB DC CL9' ' 06960099<br />

P2AGIC DC CL9' ' 06970099<br />

P2AGID DC CL9' ' 06980099<br />

P2AGIE DC CL9' ' 06990099<br />

P2AGIF DC CL9' ' 07000099<br />

P2AGIL DC CL9' ' 07010099<br />

P2AGIR DC CL9' ' 07020099<br />

P2AGIS DC CL9' ' 07030099<br />

ORG 07040099<br />

SMFDSECT DSECT 07050073<br />

* IFASMFR (42) THIS DOES NOT EXPAND THE SUBTYPES 07060043<br />

IGWSMF SMF42_0G=YES 07070043<br />

END 07080043<br />

Figure B-43 SMF42TG assembler source (part 10 of 10)<br />

532 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-44 into your PDS MHLRES1.SMF42TGA.SOURCE<br />

as member SMF42TGJ. The result should contain 31 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1L JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

/*JOBPARM S=*<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF42TG.SOURCE(SMF42TG)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TG.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF42TG(R)<br />

Figure B-44 SMF42TGJ JCL to assemble and link the program SMF42TG<br />

This creates data set MHLRES1.SMF42TG.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TG.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TG.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 533


Program SMF42TG alteration<br />

The SMF records are generally TEXT or binary values, and when binary values, are usually<br />

fixed bin 32.<br />

The program refers to each field four times:<br />

► The SMF source field as mapped by the IGWSMF macro<br />

► The location in the code where the field is copied or converted<br />

► The storage location where the output line header is generated<br />

► The storage location where the copied or converted data is stored<br />

If text fields are changed, you need to take account of the length of the field. If the<br />

replacement is shorter than the field it replaces, the length does not have to be adjusted, but<br />

the output is longer than it need be. If the replacement field is longer than the field it replaces,<br />

the lengths must be adjusted to avoid overlay or truncation of storage. For example, the<br />

following simple changes can be made:<br />

► Character changes<br />

If field SMF42A00 (which is currently reserved) was changed so that it contained useful<br />

information, and field SMF42GAJ was no longer needed, all references to GAJ could be<br />

changed to A00 and the program would change the headings and the source of the data<br />

when assembled and display the new information.<br />

► Binary changes<br />

Not all currently defined fields in the IGWSMF macro for SMF record type 42 subtype 16<br />

are defined in the program, as there are many. The program can be altered to swap one<br />

binary field for another easily. For example, if field SMF42GCA was no longer needed, but<br />

SMF42GDX was required, if all references to SMF42GCA were changed to SMF42GDX,<br />

the program would change the headings and the source of the data when assembled and<br />

display the new information.<br />

The above the 2 GB bar part of the program fields defined with prefix SMF2A, and in the<br />

output definitions as P2A, work in the same manner as those defined SMF42 and P42 for the<br />

below 2 GB bar as described above.<br />

SMF Record type 42 subtype 18 data display program<br />

Program SMG42TI displays the contents of selected fields of SMF record Type 42 subtypes<br />

18 data. It is not intended to provide a comprehensive report on RLS activity, but rather to<br />

verify that data is being allocated below or above the 2 GB bar as required.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF42TI.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-45 on page 535 and all subsequent contents through<br />

to Figure B-55 on page 545, one after the other, into member SMF42TI. Set the EDIT session<br />

up in NUMBER OFF mode. The result should contain 531 lines.<br />

534 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


MACRO 00010091<br />

&NAME SEGSTART 00020091<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA 00030091<br />

R0 EQU 0 00040091<br />

R1 EQU 1 00050091<br />

R2 EQU 2 00060091<br />

R3 EQU 3 00070091<br />

R4 EQU 4 00080091<br />

R5 EQU 5 00090091<br />

R6 EQU 6 00100091<br />

R7 EQU 7 00110091<br />

R8 EQU 8 00120091<br />

R9 EQU 9 00130091<br />

R10 EQU 10 00140091<br />

R11 EQU 11 00150091<br />

RB EQU 12 00160091<br />

R13 EQU 13 00170091<br />

R14 EQU 14 00180091<br />

R15 EQU 15 00190091<br />

BALR 12,0 SET UP ADDRESSABILITY 00200091<br />

USING *,12 USE REG 12 AS BASE REG 00210091<br />

USING *+4096,6 00220091<br />

LA 6,4095(12) 00230091<br />

LA 6,1(6) 00240091<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE 00250091<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3 00260091<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS 00270091<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13 00280091<br />

MEND 00290091<br />

MACRO 00300091<br />

&NAME2 SEGEND 00310091<br />

&NAME2 L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE 00320091<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA 00330091<br />

XR R15,R15 00340091<br />

BR 14 RETURN TO CALLING RTN VIA REG 14 00350091<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA 00360091<br />

MEND 00370091<br />

MACRO 00380091<br />

BINDEC &KEY 00390091<br />

L R7,SMF42&KEY 00400091<br />

CVD R7,DWORD 00410091<br />

OI DWORD+7,X'0F' 00420091<br />

UNPK P42&KEY.(7),DWORD+4(4) 00430091<br />

MEND 00440091<br />

SMF42TI SEGSTART 00450091<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF 00460091<br />

* THE SMF TYPE 42 SUBTYPE 18 RECORDS, WHICH ARE THE SMS 00470091<br />

* COUPLING FACILITY CACHE PARTITION SUMMARY 00480091<br />

* THE IFASMFDP PROGRAM MUST HAVE BEEN USED 00490091<br />

* TO SELECT RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR 00500091<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS. 00510091<br />

* 00520091<br />

* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED. 00530091<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 42 RECORD 00540091<br />

* R3 START OF WHOLE RECORD 00550091<br />

* R4 START OF SMF42SI SECTION 00560091<br />

Figure B-45 SMF42TI assembler source (part 1 of 11)<br />

Appendix B. Code samples 535


* R5 START OF EACH SECTION IN BM LRU ACTIVITY GROUP 00570091<br />

* OTHER REGISTER USES 00580091<br />

* R12 OVERALL BASE REGISTER 00590091<br />

* R6 2ND BASE REGISTER 00600091<br />

* R7 RECORD TYPE/SUBTYPE CHECKING/WORKING 00610091<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING 00620091<br />

* R9 USED FOR OFFSET LENGTH ON TRIPLETS 00630091<br />

* R10 USED FOR BCT 00640091<br />

* R11 USED FOR TIME CONVERSION 00650091<br />

* R14 USED FOR TIME CONVERSION 00660091<br />

* R15 USED FOR TIME CONVERSION 00670091<br />

* 00680091<br />

OPEN SMFIN QSAM GET LOCATE PROCESSING IS USED 00690091<br />

OPEN (PRINTDCB,(OUTPUT)) QSAM PUT MOVE PROCESSING IS USED 00700091<br />

PUT PRINTDCB,PRINTHDR 00710091<br />

READ GET SMFIN 00720091<br />

LR R3,R1 COPY PARAMETER POINTER 00730091<br />

USING SMF42,R3 -> SMF RECORD 00740091<br />

* CHECK IF TYPE 02 WHICH CAN ALWAYS BE SELECTED 00750091<br />

CLI SMF42RTY,X'02' (SAME DISPLAEMENT SMF ADMIN RECORD 02) 00760091<br />

BE IGNORE 00770091<br />

CLI SMF42RTY,X'2A' * CHECK IF TYPE 42 00780091<br />

BNE IGNORE 00790091<br />

CHKSTYP1 DS 0H 00800091<br />

CLI SMF42STY+1,X'12' * CHECK IF SUBTYPE 18 00810091<br />

BNE IGNORE 00820091<br />

* IS TYPE 42 SUBTYPE 18, SO EXTRACT DATA 00830091<br />

* FIRST EXTRACT THE RECORD TIME AND DATE AND CONVERT TO HUMAN 00840091<br />

* THEN ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS. 00850091<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION 00860091<br />

* ADD R8 TO R3 00870091<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS, HOWEVER MANY THERE ARE 00880091<br />

* DO THE TIME & DATE EXTRACTS NOW SO THE REGS CAN BE REUSED IF NEEDED 00890091<br />

MVC TIMEF,SMF42TME SAVE THE SMF TIME IN 100THS OF SECS 00900091<br />

* 00910091<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00920091<br />

L R15,TIMEF COMPLETE EVEN/ODD PAIR CONTENTS 00930091<br />

LA R11,100 START BY DIVIDING BY 100 TO GET SECS 00940091<br />

DR R14,R11 DIVIDE 00950091<br />

* DC F'0' CREATE AN ABEND TO LOOK AT THE RECORDS 00960091<br />

* REMAINDER NOW IN R14 WHICH WE IGNORE 00970091<br />

* QUOTIENT IN R15 - IE SECONDS WHICH WE CONVERT TO MINS + SECS 00980091<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00990091<br />

LA R11,60 DIVIDE BY 60 TO GET MINS 01000091<br />

DR R14,R11 DIVIDE TO GET MINUTES & SECONDS AS REM. 01010091<br />

* REMAINDER NOW IN R14 WHICH IS SECONDS WHICH WE MUST SAVE 01020091<br />

* QUOTIENT IN R15 - IE MINUTES FOR MORE PROCESSING 01030091<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01040091<br />

OI TIMET+7,X'0F' FIX SIGN 01050091<br />

UNPK TIMEX+6(2),TIMET+6(2) UNPACK SECONDS 01060091<br />

MVI TIMEX+5,C':' 01070091<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01080091<br />

LA R11,60 DIVIDE BY 60 TO GET HOURS 01090091<br />

DR R14,R11 DIVIDE TO GET HOURS & MINUTES AS REM. 01100091<br />

Figure B-46 SMF42TI assembler source (part 2 of 11<br />

536 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* REMAINDER NOW IN R14 WHICH IS MINUTES WHICH WE MUST SAVE 01110091<br />

* QUOTIENT IN R15 - IE HOURS WHICH WE MUST SAVE 01120091<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01130091<br />

OI TIMET+7,X'0F' FIX SIGN 01140091<br />

UNPK TIMEX+3(2),TIMET+6(2) UNPACK MINUTES 01150091<br />

MVI TIMEX+2,C':' 01160091<br />

CVD R15,TIMET CONVERT TO PACKED DECIMAL 01170091<br />

OI TIMET+7,X'0F' FIX SIGN 01180091<br />

UNPK TIMEX+0(2),TIMET+6(2) UNPACK HOURS 01190091<br />

MVC P42TME,TIMEX 01200091<br />

MVC P42TME2,TIMEX 01210091<br />

MVC P42TME3,TIMEX 01220091<br />

UNPK P42DTE(7),SMF42DTE(4) 01230091<br />

OI P42DTE+3,X'F0' 01240091<br />

CLC P42DTE(2),=CL2'01' 01250091<br />

BNE *+10 01260091<br />

MVC P42DTE(2),=C'20' 01270091<br />

MVC P42DTE(2),=C'20' 01280091<br />

MVC P42DTE2,P42DTE 01290091<br />

MVC P42DTE3,P42DTE 01300091<br />

LA R4,SMF42END -> PRODUCT SECTION 01310091<br />

USING SMF42SI,R4 01320091<br />

IA142PRP EQU * 01330091<br />

L R8,SMF42IM1 OFFSET 01340091<br />

* TO SYSPLEX CACHE PARTITION TOTAKLS 01350091<br />

LH R10,SMF42IM3 NUMBER OF COPIES OF THE DSECT 01360091<br />

LH R9,SMF42IM2 LENGTH OF ALL SMF420JA DSECTS 01370091<br />

LTR R10,R10 01380091<br />

BZ IC142PRP GO ON TO THE SINGLE CACHE 01390091<br />

XR R14,R14 CLEAR HIGH ORDER 01400091<br />

STH R14,P42TIACC START THE COUNT AT 0 01410091<br />

LR R15,R9 LOAD LEGTH IN R9 01420091<br />

DR R14,R10 GET LENGTH OF SMF420JA DSECTS 01430091<br />

LR R9,R15 01440091<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 01450091<br />

* THE START OF THE RECORD 01460091<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 01470091<br />

IA142TRP DS 0H 01480091<br />

LH R14,P42TIACC GET CURRENT COUNT 01490091<br />

LA R14,1(R14) ADD ONE 01500091<br />

STH R14,P42TIACC PUT CURRENT COUNT 01510091<br />

CVD R14,DWORD 01520091<br />

OI DWORD+7,X'0F' 01530091<br />

UNPK P42TIAC#(7),DWORD+4(4) 01540091<br />

PUT PRINTDCB,PIA142L1 01550091<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 01560091<br />

USING SMF420IA,R5 01570091<br />

BINDEC IAA 01580091<br />

MVC P42IBG(16),SMF42IBG 01590091<br />

BINDEC IBH 01600091<br />

MVC P42I01(12),SMF42I01 01610091<br />

BINDEC IAD 01620091<br />

BINDEC IAF 01630091<br />

BINDEC IAG 01640091<br />

BINDEC IAH 01650091<br />

Figure B-47 SMF42TI assembler source (part 3 of 11<br />

Appendix B. Code samples 537


BINDEC IAI 01660091<br />

BINDEC IAJ 01670091<br />

PUT PRINTDCB,PIA142L2 01680091<br />

PUT PRINTDCB,PIA142L3 01690091<br />

BINDEC IAK 01700091<br />

BINDEC IAL 01710091<br />

BINDEC IAM 01720091<br />

BINDEC IAN 01730091<br />

BINDEC IAO 01740091<br />

BINDEC IAP 01750091<br />

BINDEC IAQ 01760091<br />

BINDEC IAR 01770091<br />

BINDEC IAS 01780091<br />

BINDEC IAT 01790091<br />

BINDEC IAU 01800091<br />

BINDEC IAV 01810091<br />

PUT PRINTDCB,PIA142L4 01820091<br />

PUT PRINTDCB,PIA142L5 01830091<br />

BINDEC IAW 01840091<br />

BINDEC IAX 01850091<br />

BINDEC IAY 01860091<br />

BINDEC IAZ 01870091<br />

BINDEC IBA 01880091<br />

BINDEC IBB 01890091<br />

BINDEC IBC 01900091<br />

BINDEC IBD 01910091<br />

BINDEC IBE 01920091<br />

BINDEC IBF 01930091<br />

DROP R5 01940091<br />

PUT PRINTDCB,PIA142L6 01950091<br />

PUT PRINTDCB,PIA142L7 01960091<br />

PUT PRINTDCB,PRINTBLK 01970091<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 01980091<br />

BCT R10,IA142TRP 01990091<br />

IC142PRP EQU * 02000091<br />

L R8,SMF42IM4 OFFSET 02010091<br />

* TO PARTITION FOR SINGE CACHE STRUCTURE 02020091<br />

LH R10,SMF42IM6 NUMBER OF COPIES OF THE DSECT 02030091<br />

LH R9,SMF42IM5 LENGTH OF BM SECTION 02040091<br />

LTR R10,R10 02050091<br />

BZ READ 02060091<br />

XR R14,R14 CLEAR HIGH ORDER 02070091<br />

STH R14,P42TIC1C START THE COUNT AT 0 02080091<br />

LR R15,R9 LOAD LEGTH IN R9 02090091<br />

DR R14,R10 GET LENGTH OF SMF420PA DSECTS 02100091<br />

LR R9,R15 02110091<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 02120091<br />

* THE START OF THE RECORD 02130091<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 02140091<br />

IC142TRP DS 0H 02150091<br />

LH R14,P42TIC1C GET CURRENT COUNT 02160091<br />

LA R14,1(R14) ADD ONE 02170091<br />

STH R14,P42TIC1C PUT CURRENT COUNT 02180091<br />

CVD R14,DWORD 02190091<br />

OI DWORD+7,X'0F' 02200091<br />

Figure B-48 SMF42TI assembler source (part 4 of 11<br />

538 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


UNPK P42TIC1#(7),DWORD+4(4) 02210091<br />

PUT PRINTDCB,PIC142L1 02220091<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02230091<br />

USING SMF420IC,R5 02240091<br />

BINDEC ICA 02250091<br />

MVC P42ICB(26),SMF42ICB 02260091<br />

MVC P42IDG(16),SMF42IDG 02270091<br />

BINDEC IDH 02280091<br />

BINDEC ICD 02290091<br />

BINDEC ICF 02300091<br />

BINDEC ICG 02310091<br />

BINDEC ICH 02320091<br />

PUT PRINTDCB,PIC142L2 02330091<br />

PUT PRINTDCB,PIC142L3 02340091<br />

BINDEC ICI 02350091<br />

BINDEC ICJ 02360091<br />

BINDEC ICK 02370091<br />

BINDEC ICL 02380091<br />

BINDEC ICM 02390091<br />

BINDEC ICN 02400091<br />

BINDEC ICO 02410091<br />

BINDEC ICP 02420091<br />

BINDEC ICQ 02430091<br />

BINDEC ICR 02440091<br />

BINDEC ICS 02450091<br />

PUT PRINTDCB,PIC142L4 02460091<br />

PUT PRINTDCB,PIC142L5 02470091<br />

BINDEC ICT 02480091<br />

BINDEC ICU 02490091<br />

BINDEC ICV 02500091<br />

BINDEC ICW 02510091<br />

BINDEC ICX 02520091<br />

BINDEC ICY 02530091<br />

BINDEC ICZ 02540091<br />

BINDEC IDA 02550091<br />

BINDEC IDB 02560091<br />

BINDEC IDC 02570091<br />

BINDEC IDD 02580091<br />

BINDEC IDE 02590091<br />

BINDEC IDF 02600091<br />

DROP R5 02610091<br />

PUT PRINTDCB,PIC142L6 02620091<br />

PUT PRINTDCB,PIC142L7 02630091<br />

PUT PRINTDCB,PRINTBLK 02640091<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02650091<br />

BCT R10,IC142TRP 02660091<br />

IE142PRP EQU * 02670091<br />

L R8,SMF42IM7 OFFSET 02680091<br />

* TO SYSPLEX TOTALS LOCAL BM LRU STATS SUMM 02690091<br />

* BELOW THE LINE 02700091<br />

LH R10,SMF42IM9 NUMBER OF COPIES OF THE DSECT 02710091<br />

LH R9,SMF42IM8 LENGTH OF ALL SMF420JA DSECTS 02720091<br />

LTR R10,R10 02730091<br />

BZ READ GO GET ANOTHER RECORD 02740091<br />

Figure B-49 SMF42TI assembler source (part 5 of 11<br />

Appendix B. Code samples 539


XR R14,R14 CLEAR HIGH ORDER 02750091<br />

STH R14,P42TIE1C START THE COUNT AT 0 02760091<br />

LR R15,R9 LOAD LEGTH IN R9 02770091<br />

DR R14,R10 GET LENGTH OF SMF420JA DSECTS 02780091<br />

LR R9,R15 02790091<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 02800091<br />

* THE START OF THE RECORD 02810091<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 02820091<br />

IE142TRP DS 0H 02830091<br />

LH R14,P42TIE1C GET CURRENT COUNT 02840091<br />

LA R14,1(R14) ADD ONE 02850091<br />

STH R14,P42TIE1C PUT CURRENT COUNT 02860091<br />

CVD R14,DWORD 02870091<br />

OI DWORD+7,X'0F' 02880091<br />

UNPK P42TIE1#(7),DWORD+4(4) 02890091<br />

PUT PRINTDCB,PIE142L1 02900091<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02910091<br />

USING SMF420IE,R5 02920091<br />

BINDEC IEA 02930091<br />

MVC P42IEB(26),SMF42IEB 02940091<br />

BINDEC IEC 02950091<br />

BINDEC IED 02960091<br />

BINDEC IEE 02970091<br />

BINDEC IEF 02980091<br />

BINDEC IEG 02990091<br />

BINDEC IEH 03000091<br />

BINDEC IEI 03010091<br />

BINDEC IEJ 03020091<br />

DROP R5 03030091<br />

PUT PRINTDCB,PIE142L2 03040091<br />

PUT PRINTDCB,PIE142L3 03050091<br />

PUT PRINTDCB,PRINTBLK 03060091<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 03070091<br />

BCT R10,IE142TRP 03080091<br />

B READ 03090091<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS 03100091<br />

B READ 03110091<br />

FINI DS 0H 03120091<br />

SEGEND 03130091<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP,EODAD=FINI 03140091<br />

DWORD DS D 03150091<br />

ORG DWORD 03160091<br />

DC C'12345678' 03170091<br />

TIMET DS D WORKAREA FOR TIME CONVERSION 03180091<br />

TIMEX DS D WORKAREA FOR TIME CONVERSION 03190091<br />

TIMEF DS F WORKAREA FOR TIME CONVERSION 03200091<br />

PRINTBLK DC CL133' ' 03210091<br />

PRINTHDR DC CL133'1SMF TYPE 42 S/TYPE 18 RECS. COLS USE SMF NAMES' 03220091<br />

Figure B-50 SMF42TI assembler source (part 6 of 11<br />

540 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


************* SMF42IA1 ************ 03230091<br />

PIA142L1 DC CL133' SMF42IA1 TOTALS SET #:' 03240091<br />

ORG PIA142L1+26 03250091<br />

P42TIAC# DC CL8' ' 03260091<br />

ORG 03270091<br />

P42TIACC DC H'0' TO COUNT THE NUMBER OF SETS 03280091<br />

PIA142L2 DC CL133' ' 03290091<br />

ORG PIA142L2+1 03300091<br />

P42TMEH DC CL8'HH:MM:SS ' 03310091<br />

DC CL1' ' 03320091<br />

P42DTEH DC CL8'YYYYDDD ' 03330091<br />

P42IAAH DC CL9'SMF42IAA' 03340091<br />

P42IBGH DC CL18'SMF42IBG' 03350091<br />

P42IBHH DC CL9'SMF42IBH' 03360091<br />

P42I01H DC CL18'SMF42I01' 03370091<br />

P42IADH DC CL9'SMF42IAD' 03380091<br />

P42IAFH DC CL9'SMF42IAF' 03390091<br />

P42IAGH DC CL9'SMF42IAG' 03400091<br />

P42IAHH DC CL9'SMF42IAH' 03410091<br />

P42IAIH DC CL9'SMF42IAI' 03420091<br />

P42IAJH DC CL9'SMF42IAJ' 03430091<br />

ORG 03440091<br />

PIA142L3 DC CL133' ' 03450091<br />

ORG PIA142L3+1 03460091<br />

P42TME DC CL8' ' 03470091<br />

DC CL1' ' 03480091<br />

P42DTE DC CL8'YYDDDFI ' 03490091<br />

P42IAA DC CL9' ' 03500091<br />

P42IBG DC CL18' ' 03510091<br />

P42IBH DC CL9' ' 03520091<br />

P42I01 DC CL18' ' 03530091<br />

P42IAD DC CL9' ' 03540091<br />

P42IAF DC CL9' ' 03550091<br />

P42IAG DC CL9' ' 03560091<br />

P42IAH DC CL9' ' 03570091<br />

P42IAI DC CL9' ' 03580091<br />

P42IAJ DC CL9' ' 03590091<br />

ORG 03600091<br />

PIA142L4 DC CL133' ' 03610091<br />

ORG PIA142L4+1+8+1+8 03620091<br />

P42IAKH DC CL9'SMF42IAK' 03630091<br />

P42IALH DC CL9'SMF42IAL' 03640091<br />

P42IAMH DC CL9'SMF42IAM' 03650091<br />

P42IANH DC CL9'SMF42IAN' 03660091<br />

P42IAOH DC CL9'SMF42IAO' 03670091<br />

P42IAPH DC CL9'SMF42IAP' 03680091<br />

P42IAQH DC CL9'SMF42IAQ' 03690091<br />

P42IARH DC CL9'SMF42IAR' 03700091<br />

P42IASH DC CL9'SMF42IAS' 03710091<br />

P42IATH DC CL9'SMF42IAT' 03720091<br />

P42IAUH DC CL9'SMF42IAU' 03730091<br />

P42IAVH DC CL9'SMF42IAV' 03740091<br />

ORG 03750091<br />

Figure B-51 SMF42TI assembler source (part 7 of 11<br />

Appendix B. Code samples 541


PIA142L5 DC CL133' ' 03760091<br />

ORG PIA142L5+1+8+1+8 03770091<br />

P42IAK DC CL9' ' SMF42IAK 03780091<br />

P42IAL DC CL9' ' SMF42IAL 03790091<br />

P42IAM DC CL9' ' SMF42IAM 03800091<br />

P42IAN DC CL9' ' SMF42IAN 03810091<br />

P42IAO DC CL9' ' SMF42IAO 03820091<br />

P42IAP DC CL9' ' SMF42IAP 03830091<br />

P42IAQ DC CL9' ' SMF42IAQ 03840091<br />

P42IAR DC CL9' ' SMF42IAR 03850091<br />

P42IAS DC CL9' ' SMF42IAS 03860091<br />

P42IAT DC CL9' ' SMF42IAT 03870091<br />

P42IAU DC CL9' ' SMF42IAU 03880091<br />

P42IAV DC CL9' ' SMF42IAV 03890091<br />

ORG 03900091<br />

PIA142L6 DC CL133' ' 03910091<br />

ORG PIA142L6+1+8+1+8 03920091<br />

P42IAWH DC CL9'SMF42IAW' 03930091<br />

P42IAXH DC CL9'SMF42IAX' 03940091<br />

P42IAYH DC CL9'SMF42IAY' 03950091<br />

P42IAZH DC CL9'SMF42IAZ' 03960091<br />

P42IBAH DC CL9'SMF42IBA' 03970091<br />

P42IBBH DC CL9'SMF42IBB' 03980091<br />

P42IBCH DC CL9'SMF42IBC' 03990091<br />

P42IBDH DC CL9'SMF42IBD' 04000091<br />

P42IBEH DC CL9'SMF42IBE' 04010091<br />

P42IBFH DC CL9'SMF42IBF' 04020091<br />

ORG 04030091<br />

PIA142L7 DC CL133' ' 04040091<br />

ORG PIA142L7+1+8+1+8 04050091<br />

P42IAW DC CL9' ' SMF42IAW 04060091<br />

P42IAX DC CL9' ' SMF42IAX 04070091<br />

P42IAY DC CL9' ' SMF42IAY 04080091<br />

P42IAZ DC CL9' ' SMF42IAZ 04090091<br />

P42IBA DC CL9' ' SMF42IBA 04100091<br />

P42IBB DC CL9' ' SMF42IBB 04110091<br />

P42IBC DC CL9' ' SMF42IBC 04120091<br />

P42IBD DC CL9' ' SMF42IBD 04130091<br />

P42IBE DC CL9' ' SMF42IBE 04140091<br />

P42IBF DC CL9' ' SMF42IBF 04150091<br />

ORG 04160091<br />

************* SMF42IC1 ************ 04170091<br />

PIC142L1 DC CL133' SMF42IC1 TOTALS SET #:' 04180091<br />

ORG PIC142L1+26 04190091<br />

P42TIC1# DC CL8' ' 04200091<br />

ORG 04210091<br />

P42TIC1C DC H'0' TO COUNT THE NUMBER OF SETS 04220091<br />

PIC142L2 DC CL133' ' 04230091<br />

ORG PIC142L2+1 04240091<br />

P42TMEH2 DC CL8'HH:MM:SS ' 04250091<br />

DC CL1' ' 04260091<br />

P42DTEH2 DC CL8'YYYYDDD ' 04270091<br />

P42ICAH DC CL9'SMF42ICA' 04280091<br />

P42ICBH DC CL27'SMF42ICB' 04290091<br />

Figure B-52 SMF42TI assembler source (part 8 of 11<br />

542 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


P42IDGH DC CL18'SMF42IDG' 04300091<br />

P42IDHH DC CL9'SMF42IDH' 04310091<br />

P42ICDH DC CL9'SMF42ICD' 04320091<br />

P42ICFH DC CL9'SMF42ICF' 04330091<br />

P42ICGH DC CL9'SMF42ICG' 04340091<br />

P42ICHH DC CL9'SMF42ICH' 04350091<br />

ORG 04360091<br />

PIC142L3 DC CL133' ' 04370091<br />

ORG PIC142L3+1 04380091<br />

P42TME2 DC CL8' ' 04390091<br />

DC CL1' ' 04400091<br />

P42DTE2 DC CL8' ' 04410091<br />

P42ICA DC CL9' ' SMF42ICA 04420091<br />

P42ICB DC CL27' ' 04430091<br />

P42IDG DC CL18' ' 04440091<br />

P42IDH DC CL9' ' 04450091<br />

P42ICD DC CL9' ' 04460091<br />

P42ICF DC CL9' ' 04470091<br />

P42ICG DC CL9' ' 04480091<br />

P42ICH DC CL9' ' 04490091<br />

ORG 04500091<br />

PIC142L4 DC CL133' ' 04510091<br />

ORG PIC142L4+1+8+1+8 04520091<br />

P42ICIH DC CL9'SMF42ICI' 04530091<br />

P42ICJH DC CL9'SMF42ICJ' 04540091<br />

P42ICKH DC CL9'SMF42ICK' 04550091<br />

P42ICLH DC CL9'SMF42ICL' 04560091<br />

P42ICMH DC CL9'SMF42ICM' 04570091<br />

P42ICNH DC CL9'SMF42ICN' 04580091<br />

P42ICOH DC CL9'SMF42ICO' 04590091<br />

P42ICPH DC CL9'SMF42ICP' 04600091<br />

P42ICQH DC CL9'SMF42ICQ' 04610091<br />

P42ICRH DC CL9'SMF42ICR' 04620091<br />

P42ICSH DC CL9'SMF42ICS' 04630091<br />

ORG 04640091<br />

PIC142L5 DC CL133' ' 04650091<br />

ORG PIC142L5+1+8+1+8 04660091<br />

P42ICI DC CL9' ' 04670091<br />

P42ICJ DC CL9' ' 04680091<br />

P42ICK DC CL9' ' 04690091<br />

P42ICL DC CL9' ' 04700091<br />

P42ICM DC CL9' ' 04710091<br />

P42ICN DC CL9' ' 04720091<br />

P42ICO DC CL9' ' 04730091<br />

P42ICP DC CL9' ' 04740091<br />

P42ICQ DC CL9' ' 04750091<br />

P42ICR DC CL9' ' 04760091<br />

P42ICS DC CL9' ' 04770091<br />

ORG 04780091<br />

Figure B-53 SMF42TI assembler source (part 9 of 11<br />

Appendix B. Code samples 543


PIC142L6 DC CL133' ' 04790091<br />

ORG PIC142L6+1+8+1+8 04800091<br />

P42ICTH DC CL9'SMF42ICT' 04810091<br />

P42ICUH DC CL9'SMF42ICU' 04820091<br />

P42ICVH DC CL9'SMF42ICV' 04830091<br />

P42ICWH DC CL9'SMF42ICW' 04840091<br />

P42ICXH DC CL9'SMF42ICX' 04850091<br />

P42ICYH DC CL9'SMF42ICY' 04860091<br />

P42ICZH DC CL9'SMF42ICZ' 04870091<br />

P42IDAH DC CL9'SMF42IDA' 04880091<br />

P42IDBH DC CL9'SMF42IDB' 04890091<br />

P42IDCH DC CL9'SMF42IDC' 04900091<br />

P42IDDH DC CL9'SMF42IDD' 04910091<br />

P42IDEH DC CL9'SMF42IDE' 04920091<br />

P42IDFH DC CL9'SMF42IDF' 04930091<br />

ORG 04940091<br />

PIC142L7 DC CL133' ' 04950091<br />

ORG PIC142L7+1+8+1+8 04960091<br />

P42ICT DC CL9' ' 04970091<br />

P42ICU DC CL9' ' 04980091<br />

P42ICV DC CL9' ' 04990091<br />

P42ICW DC CL9' ' 05000091<br />

P42ICX DC CL9' ' 05010091<br />

P42ICY DC CL9' ' 05020091<br />

P42ICZ DC CL9' ' 05030091<br />

P42IDA DC CL9' ' 05040091<br />

P42IDB DC CL9' ' 05050091<br />

P42IDC DC CL9' ' 05060091<br />

P42IDD DC CL9' ' 05070091<br />

P42IDE DC CL9' ' 05080091<br />

P42IDF DC CL9' ' 05090091<br />

ORG 05100091<br />

************* SMF42IE1 ************ 05110091<br />

PIE142L1 DC CL133' SMF42IE1 TOTALS SET #:' 05120091<br />

ORG PIE142L1+26 05130091<br />

P42TIE1# DC CL8' ' 05140091<br />

ORG 05150091<br />

P42TIE1C DC H'0' TO COUNT THE NUMBER OF SETS 05160091<br />

PIE142L2 DC CL133' ' 05170091<br />

ORG PIE142L2+1 05180091<br />

P42TMEH3 DC CL8'HH:MM:SS ' 05190091<br />

DC CL1' ' 05200091<br />

P42DTEH3 DC CL8'YYYYDDD ' 05210091<br />

P42IEAH DC CL9'SMF42IEA' 05220091<br />

P42IEBH DC CL27'SMF42IEB' 05230091<br />

P42IECH DC CL9'SMF42IEC' 05240091<br />

P42IEDH DC CL9'SMF42IED' 05250091<br />

P42IEEH DC CL9'SMF42IEE' 05260091<br />

P42IEFH DC CL9'SMF42IEF' 05270091<br />

P42IEGH DC CL9'SMF42IEG' 05280091<br />

P42IEHH DC CL9'SMF42IEH' 05290091<br />

P42IEIH DC CL9'SMF42IEI' 05300091<br />

P42IEJH DC CL9'SMF42IEJ' 05310091<br />

ORG 05320091<br />

Figure B-54 SMF42TI assembler source (part 10 of 11<br />

544 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


PIE142L3 DC CL133' ' 05330091<br />

ORG PIE142L3+1 05340091<br />

P42TME3 DC CL8' ' 05350091<br />

DC CL1' ' 05360091<br />

P42DTE3 DC CL8'YYDDDFIL' 05370091<br />

P42IEA DC CL9' ' SMF42IEA 05380091<br />

P42IEB DC CL27' ' 05390091<br />

P42IEC DC CL9' ' 05400091<br />

P42IED DC CL9' ' 05410091<br />

P42IEE DC CL9' ' 05420091<br />

P42IEF DC CL9' ' 05430091<br />

P42IEG DC CL9' ' 05440091<br />

P42IEH DC CL9' ' 05450091<br />

P42IEI DC CL9' ' 05460091<br />

P42IEJ DC CL9' ' 05470091<br />

ORG 05480091<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133 05490091<br />

SMFDSECT DSECT 05500091<br />

* IFASMFR (42) THIS DOES NOT EXPAND THE SUBTYPES AS IT SHOULD 05510091<br />

IGWSMF SMF42_0I=YES 05520091<br />

END 05530091<br />

Figure B-55 SMF42TI assembler source (part 11 of 11)<br />

Note 1: In the SMF42TI code, fields SMF42ICB and SMF42IEB have been slightly<br />

truncated in the output to improve the format. The records involved (Cache-structure<br />

name) are unlikely to have been defined to their full length on most systems.<br />

Note 2: In the SMF42TI code, field SMF42IDF has been defined in the output and will be<br />

populated when the program runs. However, the addition of the output field for SMF42IDF<br />

(P42IDF) takes the line length over the defined 133 characters. This apparent error has<br />

been included to demonstrate the possibility of defining the length too long. The situation<br />

can be changed by changing the program to use longer print line definitions where they<br />

occur, and on the LRECL statement on the PRINTDCB MACRO definition.<br />

Appendix B. Code samples 545


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-56 into your PDS MHLRES1.SMF42TI.SOURCE as<br />

member SMF42TIJ. The result should contain 31 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1L JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

/*JOBPARM S=*<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF42TI.SOURCE(SMF42TI)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TI.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF42TI(R)<br />

Figure B-56 SMF42TIJ JCL to assemble and link the program SMF42TI<br />

This creates data set MHLRES1.SMF42TI.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TI.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TI.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

546 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Program SMF42TI alteration<br />

The SMF records are generally TEXT or binary values, and when binary values, are usually<br />

fixed bin 32.<br />

The program refers to each field four times:<br />

► The SMF source field as mapped by the IGWSMF macro<br />

► The location in the code where the field is copied or converted<br />

► The storage location where the output line header is generated<br />

► The storage location where the copied or converted data is stored<br />

If text fields are changed, you need to take account of the length of the field. If the<br />

replacement is shorter than the field it replaces, the length does not have to be adjusted, but<br />

the output is longer than it need be. If the replacement field is longer than the field it replaces,<br />

the lengths must be adjusted to avoid overlay or truncation of storage. For example, the<br />

following simple changes can be made:<br />

► Character changes<br />

If field SMF42I00 (which is currently reserved) was changed so that it contained useful<br />

information, and field SMF42IBG was no longer needed, all references to IBG could be<br />

changed to I00 and the program would change the headings and the source of the data<br />

when assembled and display the new information.<br />

► Binary changes<br />

All currently defined fields in the IGWSMF macro for SMF record type 42 subtype 18 are<br />

used in the program, but as commented in step 2 above, this results in a longer line length<br />

than defined for printing.<br />

If field SMF42IDE was no longer needed, but SMF42IDF was required, if all references to<br />

IDE could be removed and the program would change the headings and the source of the<br />

data when assembled and display the new information.<br />

SMF record type 42 subtype 19 data display program<br />

Program SMG42TI displays the contents of selected fields of SMF record type 42 subtypes<br />

19 data. It is not intended to provide a comprehensive report on RLS activity but rather to<br />

verify that data is being allocated below or above the 2 GB bar as required.<br />

There are three steps to build the program, which needs to be done once, after which it can<br />

be executed several times. It is not necessary to have in-depth assembler experience, but<br />

familiarity with JCL is required.<br />

Step 1: create a PDS/PDSE to hold the members<br />

In this example the PDS is called MHLRES1.SMF42TJ.SOURCE. The LRECL/RECFM must<br />

be 80/FB. All other attributes can be chosen by you.<br />

Step 2: store the program source in the PDS<br />

Cut and paste the contents of Figure B-57 on page 548 and all subsequent contents through<br />

to Figure B-67 on page 558, one after the other, into member SMF42TJA. Set the EDIT<br />

session up in NUMBER OFF mode. The result should contain 498 lines.<br />

Appendix B. Code samples 547


MACRO 00010099<br />

&NAME SEGSTART 00020099<br />

&NAME STM 14,12,12(13) SAVE HIS REGS IN HIS SAVE AREA 00030099<br />

R0 EQU 0 00040099<br />

R1 EQU 1 00050099<br />

R2 EQU 2 00060099<br />

R3 EQU 3 00070099<br />

R4 EQU 4 00080099<br />

R5 EQU 5 00090099<br />

R6 EQU 6 00100099<br />

R7 EQU 7 00110099<br />

R8 EQU 8 00120099<br />

R9 EQU 9 00130099<br />

R10 EQU 10 00140099<br />

R11 EQU 11 00150099<br />

RB EQU 12 00160099<br />

R13 EQU 13 00170099<br />

R14 EQU 14 00180099<br />

R15 EQU 15 00190099<br />

BALR 12,0 SET UP ADDRESSABILITY 00200099<br />

USING *,12 USE REG 12 AS BASE REG 00210099<br />

ST 13,SAVEREGS+4 SAVE @ OF HIS SAVEAREA IN MINE 00220099<br />

LA 03,SAVEREGS LOAD @ OF MY SAVE AREA IN REG 3 00230099<br />

ST 03,8(13) SAVE @ OF MY SAVE AREA IN HIS 00240099<br />

LR 13,03 LOAD @ OF MY SAVE AREA IN REG 13 00250099<br />

MEND 00260099<br />

MACRO 00270099<br />

&NAME2 SEGEND 00280099<br />

&NAME2 L 13,SAVEREGS+4 LOAD REG13 WITH @ OF HIS SAVE 00290099<br />

LM 14,12,12(13) RESTORE REGS FROM HIS SAVEAREA 00300099<br />

XR R15,R15 00310099<br />

BR 14 RETURN TO CALLING RTN VIA REG 14 00320099<br />

SAVEREGS DC 18F'0' SET UP SAVE AREA 00330099<br />

MEND 00340099<br />

MACRO 00350099<br />

BINDEC &KEY 00360099<br />

L R7,SMF42&KEY 00370099<br />

CVD R7,DWORD 00380099<br />

OI DWORD+7,X'0F' 00390099<br />

UNPK P42&KEY.(7),DWORD+4(4) 00400099<br />

MEND 00410099<br />

MACRO 00420099<br />

BINDECA &KEY 00430099<br />

L R7,SMF2A&KEY 00440099<br />

CVD R7,DWORD 00450099<br />

OI DWORD+7,X'0F' 00460099<br />

UNPK P2A&KEY.(7),DWORD+4(4) 00470099<br />

MEND 00480099<br />

SMF42TJA SEGSTART 00490099<br />

* THIS IS A SIMPLE PROGRAM TO DISPLAY THE CONTENTS OF VARIOUS OF 00500099<br />

* THE SMF TYPE 42 SUBTYPE 19 RECORDS, WHICH ARE OF THE SMS 00510099<br />

* BUFFER MANAGER LRU ACTIVITY 00520099<br />

* THE IFASMFDP PROGRAM MUST HAVE BEEN USED 00530099<br />

* TO SELECT RECORDS FROM EITHER THE ACTIVE SMF 'MAN' DATASETS OR 00540099<br />

* OFF A PREVIOUSLY EXTRACTED COPY OF THE 'MAN' DATASETS. 00550099<br />

* 00560099<br />

Figure B-57 SMF42TJ assembler source (part 1 of 11)<br />

548 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


* THE STANDARD SMF RECORD MAPPING MACR<strong>OS</strong> ARE USED. 00570099<br />

* REGISTER EQUATES TO PARTS OF THE SMF TYPE 42 RECORD 00580099<br />

* R3 START OF WHOLE RECORD 00590099<br />

* R4 START OF SMF42SJ SECTION 00600099<br />

* R5 START OF EACH SECTION IN BM LRU ACTIVITY GROUP 00610099<br />

* R6 TRACE 00620099<br />

* OTHER REGISTER USES 00630099<br />

* R12 OVERALL BASE REGISTER 00640099<br />

* R7 RECORD TYPE/SUBTYPE CHECKING/WORKING 00650099<br />

* R8 RECORD TYPE/SUBTYPE CHECKING/WORKING 00660099<br />

* R9 USED FOR OFFSET LENGTH ON TRIPLETS 00670099<br />

* R10 USED FOR BCT 00680099<br />

* R11 USED FOR TIME CONVERSION 00690099<br />

* R14 USED FOR TIME CONVERSION 00700099<br />

* R15 USED FOR TIME CONVERSION 00710099<br />

* 00720099<br />

OPEN SMFIN QSAM GET LOCATE PROCESSING IS USED 00730099<br />

OPEN (PRINTDCB,(OUTPUT)) QSAM PUT MOVE PROCESSING IS USED 00740099<br />

PUT PRINTDCB,PRINTHDR 00750099<br />

READ GET SMFIN 00760099<br />

LR R3,R1 COPY PARAMETER POINTER 00770099<br />

USING SMF42,R3 -> SMF RECORD 00780099<br />

* CHECK IF TYPE 02 WHICH CAN ALWAYS BE SELECTED 00790099<br />

CLI SMF42RTY,X'02' (SAME DISPLAEMENT SMF ADMIN RECORD 02) 00800099<br />

BE IGNORE 00810099<br />

CLI SMF42RTY,X'2A' * CHECK IF TYPE 42 00820099<br />

BNE IGNORE 00830099<br />

CHKSTYP1 DS 0H 00840099<br />

CLI SMF42STY+1,X'13' * CHECK IF SUBTYPE 19 00850099<br />

BNE IGNORE 00860099<br />

* IS TYPE 42 SUBTYPE 19, SO EXTRACT DATA 00870099<br />

* FIRST EXTRACT THE RECORD TIME AND DATE AND CONVERT TO READABLE 00880099<br />

* THEN ESTABLISH ADDRESSIBILITY TO THE VARIOUS SECTIONS. 00890099<br />

* GENERAL PROCESS IS LOAD R8 WITH OFFSET TO THE RELEVANT SECTION 00900099<br />

* ADD R8 TO R3 THEN INDEX IT THOUGH R5. 00910099<br />

* THEN THE DSECTS SHOULD ADDRESS THE SECTIONS, HOWEVER MANY THERE ARE 00920099<br />

* DO THE TIME & DATE EXTRACTS NOW SO THE REGS CAN BE REUSED IF NEEDED 00930099<br />

MVC TIMEF,SMF42TME SAVE THE SMF TIME IN 100THS OF SECS 00940099<br />

* 00950099<br />

XR R14,R14 CLEAR HIGH END OF PAIR 00960099<br />

L R15,TIMEF COMPLETE EVEN/ODD PAIR CONTENTS 00970099<br />

LA R11,100 START BY DIVIDING BY 100 TO GET SECS 00980099<br />

DR R14,R11 DIVIDE 00990099<br />

* REMAINDER NOW IN R14 WHICH WE IGNORE 01000099<br />

* QUOTIENT IN R15 - IE SECONDS WHICH WE CONVERT TO MINS + SECS 01010099<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01020099<br />

LA R11,60 DIVIDE BY 60 TO GET MINS 01030099<br />

DR R14,R11 DIVIDE TO GET MINUTES & SECONDS AS REM. 01040099<br />

* REMAINDER NOW IN R14 WHICH IS SECONDS WHICH WE MUST SAVE 01050099<br />

Figure B-58 SMF42TJ assembler source (part 2 of 11)<br />

Appendix B. Code samples 549


* QUOTIENT IN R15 - IE MINUTES FOR MORE PROCESSING 01060099<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01070099<br />

OI TIMET+7,X'0F' FIX SIGN 01080099<br />

UNPK TIMEX+6(2),TIMET+6(2) UNPACK SECONDS 01090099<br />

MVI TIMEX+5,C':' 01100099<br />

XR R14,R14 CLEAR HIGH END OF PAIR 01110099<br />

LA R11,60 DIVIDE BY 60 TO GET HOURS 01120099<br />

DR R14,R11 DIVIDE TO GET HOURS & MINUTES AS REM. 01130099<br />

* REMAINDER NOW IN R14 WHICH IS MINUTES WHICH WE MUST SAVE 01140099<br />

* QUOTIENT IN R15 - IE HOURS WHICH WE MUST SAVE 01150099<br />

CVD R14,TIMET CONVERT TO PACKED DECIMAL 01160099<br />

OI TIMET+7,X'0F' FIX SIGN 01170099<br />

UNPK TIMEX+3(2),TIMET+6(2) UNPACK MINUTES 01180099<br />

MVI TIMEX+2,C':' 01190099<br />

CVD R15,TIMET CONVERT TO PACKED DECIMAL 01200099<br />

OI TIMET+7,X'0F' FIX SIGN 01210099<br />

UNPK TIMEX+0(2),TIMET+6(2) UNPACK HOURS 01220099<br />

MVC P42TME1(8),TIMEX 01230099<br />

MVC P42TME(8),TIMEX 01240099<br />

MVC P2ATME1(8),TIMEX 01250099<br />

MVC P2ATME(8),TIMEX 01260099<br />

UNPK P42DTE(7),SMF42DTE(4) 01270099<br />

OI P42DTE+3,X'F0' 01280099<br />

CLC P42DTE(2),=CL2'01' 01290099<br />

BNE *+10 01300099<br />

MVC P42DTE(2),=C'20' 01310099<br />

MVC P2ADTE(7),P42DTE 01320099<br />

MVC P42DTE1,P42DTE 01330099<br />

MVC P2ADTE1,P42DTE1 01340099<br />

LA R4,SMF42END -> PRODUCT SECTION 01350099<br />

USING SMF42SJ,R4 01360099<br />

JNA42PRP EQU * PREPARE TO CYCLE 01370099<br />

L R8,SMF42JN1 OFFSET 01380099<br />

* TO SYSPLEX TOTALS LOCAL BM LRU STATS SUMM 01390099<br />

* BELOW THE LINE 01400099<br />

LH R10,SMF42JN3 NUMBER OF COPIES OF THE DSECT 01410099<br />

LH R9,SMF42JN2 LENGTH OF ALL SMF420JA DSECTS 01420099<br />

LTR R10,R10 01430099<br />

BZ JPA42PRP GO ON TO THE LOCAL ONES 01440099<br />

XR R14,R14 CLEAR HIGH ORDER 01450099<br />

STH R14,P42TJNAC START THE COUNT AT 0 01460099<br />

LR R15,R9 LOAD LEGTH IN R9 01470099<br />

DR R14,R10 GET LENGTH OF SMF420JA DSECTS 01480099<br />

LR R9,R15 01490099<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 01500099<br />

* THE START OF THE RECORD 01510099<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 01520099<br />

Figure B-59 SMF42TJ assembler source (part 3 of 11)<br />

550 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


JNA42TRP DS 0H CYCLE ROUND RECORDS 01530099<br />

LH R14,P42TJNAC GET CURRENT COUNT 01540099<br />

LA R14,1(R14) ADD ONE 01550099<br />

STH R14,P42TJNAC PUT CURRENT COUNT 01560099<br />

CVD R14,DWORD 01570099<br />

OI DWORD+7,X'0F' 01580099<br />

UNPK P42TJNA#(7),DWORD+4(4) 01590099<br />

PUT PRINTDCB,PJNA42L1 01600099<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 01610099<br />

USING SMF420JA,R5 01620099<br />

BINDEC JNA 01630099<br />

BINDEC JN7 01640099<br />

BINDEC JNG 01650099<br />

BINDEC JNH 01660099<br />

BINDEC JNI 01670099<br />

BINDEC JNJ 01680099<br />

BINDEC JNK 01690099<br />

BINDEC JNL 01700099<br />

BINDEC JNM 01710099<br />

BINDEC JNN 01720099<br />

DROP R5 01730099<br />

PUT PRINTDCB,PJNA42L2 01740099<br />

PUT PRINTDCB,PJNA42L3 01750099<br />

PUT PRINTDCB,PRINTBLK 01760099<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 01770099<br />

* LA R8,0(R8,R9) ADVANCE TO THE NEXT TRIPLET (IF ANY) 01780099<br />

BCT R10,JNA42TRP 01790099<br />

JPA42PRP EQU * 01800099<br />

L R8,SMF42JN4 OFFSET 01810099<br />

* TO SYSPLEX TOTALS LOCAL BM LRU STATS SUMM 01820099<br />

* BELOW THE LINE 01830099<br />

LH R10,SMF42JN6 NUMBER OF COPIES OF THE DSECT 01840099<br />

LH R9,SMF42JN5 LENGTH OF BM SECTION 01850099<br />

LTR R10,R10 01860099<br />

BZ JNA2APRP 01870099<br />

XR R14,R14 CLEAR HIGH ORDER 01880099<br />

STH R14,P42TJPAC START THE COUNT AT 0 01890099<br />

LR R15,R9 LOAD LEGTH IN R9 01900099<br />

DR R14,R10 GET LENGTH OF SMF420PA DSECTS 01910099<br />

LR R9,R15 01920099<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 01930099<br />

* THE START OF THE RECORD 01940099<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 01950099<br />

Figure B-60 SMF42TJ assembler source (part 4 of 11)<br />

Appendix B. Code samples 551


JPA42TRP DS 0H 01960099<br />

LH R14,P42TJPAC GET CURRENT COUNT 01970099<br />

LA R14,1(R14) ADD ONE 01980099<br />

STH R14,P42TJPAC PUT CURRENT COUNT 01990099<br />

CVD R14,DWORD 02000099<br />

OI DWORD+7,X'0F' 02010099<br />

UNPK P42TJPA#(7),DWORD+4(4) 02020099<br />

PUT PRINTDCB,PJPA42L1 02030099<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02040099<br />

USING SMF420PA,R5 02050099<br />

BINDEC JPA 02060099<br />

MVC P42JPB(8),SMF42JPB 02070099<br />

BINDEC JP6 02080099<br />

BINDEC JPG 02090099<br />

BINDEC JPH 02100099<br />

BINDEC JPI 02110099<br />

BINDEC JP2 02120099<br />

BINDEC JPJ 02130099<br />

BINDEC JPK 02140099<br />

BINDEC JPL 02150099<br />

BINDEC JPM 02160099<br />

BINDEC JPN 02170099<br />

DROP R5 02180099<br />

PUT PRINTDCB,PJPA42L2 02190099<br />

PUT PRINTDCB,PJPA42L3 02200099<br />

PUT PRINTDCB,PRINTBLK 02210099<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02220099<br />

* LA R8,0(R8,R9) ADVANCE TO THE NEXT TRIPLET (IF ANY) 02230099<br />

BCT R10,JPA42TRP 02240099<br />

JNA2APRP EQU * PREPARE TO CYCLE 02250099<br />

L R8,SMF2AJN1 OFFSET 02260099<br />

* TO SYSPLEX TOTALS LOCAL BM LRU STATS SUMM 02270099<br />

* BELOW THE LINE 02280099<br />

LH R10,SMF2AJN3 NUMBER OF COPIES OF THE DSECT 02290099<br />

LH R9,SMF2AJN2 LENGTH OF ALL SMF2A0JA DSECTS 02300099<br />

LTR R10,R10 02310099<br />

BZ JPA2APRP GO ON TO THE LOCAL ONES 02320099<br />

XR R14,R14 CLEAR HIGH ORDER 02330099<br />

STH R14,P2ATJNAC START THE COUNT AT 0 02340099<br />

LR R15,R9 LOAD LEGTH IN R9 02350099<br />

DR R14,R10 GET LENGTH OF SMF2A0JA DSECTS 02360099<br />

LR R9,R15 02370099<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 02380099<br />

* THE START OF THE RECORD 02390099<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 02400099<br />

Figure B-61 SMF42TJ assembler source (part 5 of 11)<br />

552 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


JNA2ATRP DS 0H CYCLE 02410099<br />

LH R14,P2ATJNAC GET CURRENT COUNT 02420099<br />

LA R14,1(R14) ADD ONE 02430099<br />

STH R14,P2ATJNAC PUT CURRENT COUNT 02440099<br />

CVD R14,DWORD 02450099<br />

OI DWORD+7,X'0F' 02460099<br />

UNPK P2ATJNA#(7),DWORD+4(4) 02470099<br />

PUT PRINTDCB,PJNA2AL1 02480099<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02490099<br />

USING SMF2A0JA,R5 02500099<br />

BINDECA JNA 02510099<br />

BINDECA JN7 02520099<br />

BINDECA JNG 02530099<br />

BINDECA JNH 02540099<br />

BINDECA JNI 02550099<br />

BINDECA JNJ 02560099<br />

BINDECA JNK 02570099<br />

BINDECA JNL 02580099<br />

BINDECA JNM 02590099<br />

BINDECA JNN 02600099<br />

DROP R5 02610099<br />

PUT PRINTDCB,PJNA2AL2 02620099<br />

PUT PRINTDCB,PJNA2AL3 02630099<br />

PUT PRINTDCB,PRINTBLK 02640099<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 02650099<br />

* LA R8,0(R8,R9) ADVANCE TO THE NEXT TRIPLET (IF ANY) 02660099<br />

BCT R10,JNA2ATRP 02670099<br />

JPA2APRP EQU * PREPARE TO CYCLE 02680099<br />

L R8,SMF2AJN4 OFFSET 02690099<br />

* TO SYSPLEX TOTALS LOCAL BM LRU STATS SUMM 02700099<br />

* BELOW THE LINE 02710099<br />

LH R10,SMF2AJN6 NUMBER OF COPIES OF THE DSECT 02720099<br />

LH R9,SMF2AJN5 LENGTH OF BM SECTION 02730099<br />

LTR R10,R10 02740099<br />

BZ READ 02750099<br />

XR R14,R14 CLEAR HIGH ORDER 02760099<br />

STH R14,P2ATJPAC START THE COUNT AT 0 02770099<br />

LR R15,R9 LOAD LEGTH IN R9 02780099<br />

DR R14,R10 GET LENGTH OF SMF2A0PA DSECTS 02790099<br />

LR R9,R15 02800099<br />

LA R5,0(R3,R8) USE THE OFFSET TO LOCATE 02810099<br />

* THE START OF THE RECORD 02820099<br />

SR R5,R9 BACK UP BY LENGTH OF 1 SECTION 02830099<br />

Figure B-62 SMF42TJ assembler source (part 6 of 11)<br />

Appendix B. Code samples 553


JPA2ATRP DS 0H CYCLE 02840099<br />

LH R14,P2ATJPAC GET CURRENT COUNT 02850099<br />

LA R14,1(R14) ADD ONE 02860099<br />

STH R14,P2ATJPAC PUT CURRENT COUNT 02870099<br />

CVD R14,DWORD 02880099<br />

OI DWORD+7,X'0F' 02890099<br />

UNPK P2ATJPA#(7),DWORD+4(4) 02900099<br />

PUT PRINTDCB,PJPA2AL1 02910099<br />

LA R5,0(R5,R9) ADVANCE TO DSECT 02920099<br />

USING SMF2A0PA,R5 02930099<br />

BINDECA JPA 02940099<br />

MVC P2AJPB(8),SMF2AJPB 02950099<br />

BINDECA JP6 02960099<br />

BINDECA JPG 02970099<br />

BINDECA JPH 02980099<br />

BINDECA JPI 02990099<br />

BINDECA JP2 03000099<br />

BINDECA JPJ 03010099<br />

BINDECA JPK 03020099<br />

BINDECA JPL 03030099<br />

BINDECA JPM 03040099<br />

BINDECA JPN 03050099<br />

DROP R5 03060099<br />

PUT PRINTDCB,PJPA2AL2 03070099<br />

PUT PRINTDCB,PJPA2AL3 03080099<br />

PUT PRINTDCB,PRINTBLK 03090099<br />

* LOOP BACK AT THIS POINT IF THERE ARE ANY MORE TRIPLETS 03100099<br />

* LA R8,0(R8,R9) ADVANCE TO THE NEXT TRIPLET (IF ANY) 03110099<br />

BCT R10,JPA2ATRP 03120099<br />

B READ 03130099<br />

IGNORE DS 0H EXIT WITH OUT WRITING IF NOT THE RIGHT RECORDS 03140099<br />

B READ 03150099<br />

FINI DS 0H 03160099<br />

SEGEND 03170099<br />

SMFIN DCB DDNAME=SMFIN,DSORG=PS,MACRF=(GL),EROPT=SKP,EODAD=FINI 03180099<br />

PRINTDCB DCB DDNAME=PRINT,DSORG=PS,MACRF=(PM),LRECL=133 03190099<br />

DWORD DS D 03200099<br />

ORG DWORD 03210099<br />

DC C'12345678' 03220099<br />

TIMET DS D WORKAREA FOR TIME CONVERSION 03230099<br />

TIMEX DS D WORKAREA FOR TIME CONVERSION 03240099<br />

TIMEF DS F WORKAREA FOR TIME CONVERSION 03250099<br />

PRINTBLK DC CL133' ' 03260099<br />

PRINTHDR DC CL133'1SMF TYPE 42 S/TYPE 19 RECS. COLS USE SMF NAMES' 03270099<br />

* 03280099<br />

Figure B-63 SMF42TJ assembler source (part 7 of 11)<br />

554 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


************* SMF42JNA ************ 03290099<br />

PJNA42L1 DC CL133' SMF42JNA SYSPLEX SET #:' 03300099<br />

ORG PJNA42L1+26 03310099<br />

P42TJNA# DC CL8' ' 03320099<br />

ORG 03330099<br />

P42TJNAC DC H'0' TO COUNT THE NUMBER OF SETS 03340099<br />

* 03350099<br />

PJNA42L2 DC CL133' ' 03360099<br />

ORG PJNA42L2+1 03370099<br />

P42TMEH1 DC CL9'HH:MM:SS ' 03380099<br />

P42DTEH1 DC CL8'YYYYDDD ' 03390099<br />

P42JNAH DC CL9'SMF42JNA' 03400099<br />

P42JN7H DC CL9'SMF42JN7' 03410099<br />

P42JNGH DC CL9'SMF42JNG' 03420099<br />

P42JNHH DC CL9'SMF42JNH' 03430099<br />

P42JNIH DC CL9'SMF42JNI' 03440099<br />

P42JNJH DC CL9'SMF42JNJ' 03450099<br />

P42JNKH DC CL9'SMF42JNK' 03460099<br />

P42JNLH DC CL9'SMF42JNL' 03470099<br />

P42JNMH DC CL9'SMF42JNM' 03480099<br />

P42JNNH DC CL9'SMF42JNN' 03490099<br />

ORG 03500099<br />

* 03510099<br />

PJNA42L3 DC CL133' ' 03520099<br />

ORG PJNA42L3+1 03530099<br />

P42TME1 DC CL8' ' 03540099<br />

DC CL1' ' 03550099<br />

P42DTE1 DC CL8'YYDDDFIL' 03560099<br />

P42JNA DC CL9' ' 03570099<br />

P42JN7 DC CL9' ' 03580099<br />

P42JNG DC CL9' ' 03590099<br />

P42JNH DC CL9' ' 03600099<br />

P42JNI DC CL9' ' 03610099<br />

P42JNJ DC CL9' ' 03620099<br />

P42JNK DC CL9' ' 03630099<br />

P42JNL DC CL9' ' 03640099<br />

P42JNM DC CL9' ' 03650099<br />

P42JNN DC CL9' ' 03660099<br />

ORG 03670099<br />

Figure B-64 SMF42TJ assembler source (part 8 of 11)<br />

Appendix B. Code samples 555


************* SMF42JPA ************ 03680099<br />

PJPA42L1 DC CL133' SMF42JPA LPAR SET #:' 03690099<br />

ORG PJPA42L1+26 03700099<br />

P42TJPA# DC CL8' ' 03710099<br />

ORG 03720099<br />

P42TJPAC DC H'0' TO COUNT THE NUMBER OF SETS 03730099<br />

* 03740099<br />

PJPA42L2 DC CL133' ' 03750099<br />

ORG PJPA42L2+1 03760099<br />

P42TMEH DC CL8'HH:MM:SS ' 03770099<br />

DC CL1' ' 03780099<br />

P42DTEH DC CL8'YYYYDDD ' 03790099<br />

P42JPAH DC CL9'SMF42JPA' 03800099<br />

P42JPBH DC CL9'SMF42JPB' 03810099<br />

P42JP6H DC CL9'SMF42JP6' 03820099<br />

P42JPGH DC CL9'SMF42JPG' 03830099<br />

P42JPHH DC CL9'SMF42JPH' 03840099<br />

P42JPIH DC CL9'SMF42JPI' 03850099<br />

P42JP2H DC CL9'SMF42JP2' 03860099<br />

P42JPJH DC CL9'SMF42JPJ' 03870099<br />

P42JPJK DC CL9'SMF42JPK' 03880099<br />

P42JPJL DC CL9'SMF42JPL' 03890099<br />

P42JPJM DC CL9'SMF42JPM' 03900099<br />

P42JPJN DC CL9'SMF42JPN' 03910099<br />

ORG 03920099<br />

* 03930099<br />

PJPA42L3 DC CL133' ' 03940099<br />

ORG PJPA42L3+1 03950099<br />

P42TME DC CL8' ' 03960099<br />

DC CL1' ' 03970099<br />

P42DTE DC CL8' ' 03980099<br />

P42JPA DC CL9' ' 03990099<br />

P42JPB DC CL9' ' 04000099<br />

P42JP6 DC CL9' ' 04010099<br />

P42JPG DC CL9' ' 04020099<br />

P42JPH DC CL9' ' 04030099<br />

P42JPI DC CL9' ' 04040099<br />

P42JP2 DC CL9' ' 04050099<br />

P42JPJ DC CL9' ' 04060099<br />

P42JPK DC CL9' ' 04070099<br />

P42JPL DC CL9' ' 04080099<br />

P42JPM DC CL9' ' 04090099<br />

P42JPN DC CL9' ' 04100099<br />

ORG 04110099<br />

Figure B-65 SMF42TJ assembler source (part 9 of 11)<br />

556 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


************* SMF2AJNA ************ 04120099<br />

PJNA2AL1 DC CL133' SMF2AJNA SYSPLEX SET #:' 04130099<br />

ORG PJNA2AL1+26 04140099<br />

P2ATJNA# DC CL8' ' 04150099<br />

ORG 04160099<br />

P2ATJNAC DC H'0' TO COUNT THE NUMBER OF SETS 04170099<br />

* 04180099<br />

PJNA2AL2 DC CL133' ' 04190099<br />

ORG PJNA2AL2+1 04200099<br />

P2ATMEH1 DC CL9'HH:MM:SS ' 04210099<br />

P2ADTEH1 DC CL8'YYYYDDD ' 04220099<br />

P2AJNAH DC CL9'SMF2AJNA' 04230099<br />

P2AJN7H DC CL9'SMF2AJN7' 04240099<br />

P2AJNGH DC CL9'SMF2AJNG' 04250099<br />

P2AJNHH DC CL9'SMF2AJNH' 04260099<br />

P2AJNIH DC CL9'SMF2AJNI' 04270099<br />

P2AJNJH DC CL9'SMF2AJNJ' 04280099<br />

P2AJNKH DC CL9'SMF2AJNK' 04290099<br />

P2AJNLH DC CL9'SMF2AJNL' 04300099<br />

P2AJNMH DC CL9'SMF2AJNM' 04310099<br />

P2AJNNH DC CL9'SMF2AJNN' 04320099<br />

ORG 04330099<br />

* 04340099<br />

PJNA2AL3 DC CL133' ' 04350099<br />

ORG PJNA2AL3+1 04360099<br />

P2ATME1 DC CL8' ' 04370099<br />

DC CL1' ' 04380099<br />

P2ADTE1 DC CL8'YYDDDFIL' 04390099<br />

P2AJNA DC CL9' ' 04400099<br />

P2AJN7 DC CL9' ' 04410099<br />

P2AJNG DC CL9' ' 04420099<br />

P2AJNH DC CL9' ' 04430099<br />

P2AJNI DC CL9' ' 04440099<br />

P2AJNJ DC CL9' ' 04450099<br />

P2AJNK DC CL9' ' 04460099<br />

P2AJNL DC CL9' ' 04470099<br />

P2AJNM DC CL9' ' 04480099<br />

P2AJNN DC CL9' ' 04490099<br />

ORG 04500099<br />

Figure B-66 SMF42TJ assembler source (part 10 of 11)<br />

Appendix B. Code samples 557


************* SMF2AJPA ************ 04510099<br />

PJPA2AL1 DC CL133' SMF2AJPA LPAR SET #:' 04520099<br />

ORG PJPA2AL1+26 04530099<br />

P2ATJPA# DC CL8' ' 04540099<br />

ORG 04550099<br />

P2ATJPAC DC H'0' TO COUNT THE NUMBER OF SETS 04560099<br />

* 04570099<br />

PJPA2AL2 DC CL133' ' 04580099<br />

ORG PJPA2AL2+1 04590099<br />

P2ATMEH DC CL8'HH:MM:SS ' 04600099<br />

DC CL1' ' 04610099<br />

P2ADTEH DC CL8'YYYYDDD ' 04620099<br />

P2AJPAH DC CL9'SMF2AJPA' 04630099<br />

P2AJPBH DC CL9'SMF2AJPB' 04640099<br />

P2AJP6H DC CL9'SMF2AJP6' 04650099<br />

P2AJPGH DC CL9'SMF2AJPG' 04660099<br />

P2AJPHH DC CL9'SMF2AJPH' 04670099<br />

P2AJPIH DC CL9'SMF2AJPI' 04680099<br />

P2AJP2H DC CL9'SMF2AJP2' 04690099<br />

P2AJPJH DC CL9'SMF2AJPJ' 04700099<br />

P2AJPJK DC CL9'SMF2AJPK' 04710099<br />

P2AJPJL DC CL9'SMF2AJPL' 04720099<br />

P2AJPJM DC CL9'SMF2AJPM' 04730099<br />

P2AJPJN DC CL9'SMF2AJPN' 04740099<br />

ORG 04750099<br />

* 04760099<br />

PJPA2AL3 DC CL133' ' 04770099<br />

ORG PJPA2AL3+1 04780099<br />

P2ATME DC CL8' ' 04790099<br />

DC CL1' ' 04800099<br />

P2ADTE DC CL8' ' 04810099<br />

P2AJPA DC CL9' ' 04820099<br />

P2AJPB DC CL9' ' 04830099<br />

P2AJP6 DC CL9' ' 04840099<br />

P2AJPG DC CL9' ' 04850099<br />

P2AJPH DC CL9' ' 04860099<br />

P2AJPI DC CL9' ' 04870099<br />

P2AJP2 DC CL9' ' 04880099<br />

P2AJPJ DC CL9' ' 04890099<br />

P2AJPK DC CL9' ' 04900099<br />

P2AJPL DC CL9' ' 04910099<br />

P2AJPM DC CL9' ' 04920099<br />

P2AJPN DC CL9' ' 04930099<br />

ORG 04940099<br />

SMFDSECT DSECT 04950099<br />

* IFASMFR (42) THIS DOES NOT EXPAND THE SUBTYPES AS IT SHOULD 04960099<br />

IGWSMF SMF42_0J=YES 04970099<br />

END 04980099<br />

Figure B-67 SMF42TJ assembler source (part 11 of 11)<br />

558 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Step 3: store the JCL to assemble and link the source in the PDS<br />

Cut and paste the contents of Figure B-68 into your PDS MHLRES1.SMF42TJ.SOURCE as<br />

member SMF42TIJ. The result should contain 30 lines.<br />

Run the job when the member has been created.<br />

//MHLRES1L JOB (1234567,COMMENT),MHLRES1,TIME=10,<br />

// MSGLEVEL=1,CLASS=A,<br />

// NOTIFY=MHLRES1<br />

//ASMHCL PROC<br />

//ASM EXEC PGM=ASMA90,REGION=0M,<br />

// PARM='OBJECT,NODECK'<br />

//SYSIN DD DSN=SYS1.SAMPLIB(IEFESO),DISP=SHR<br />

//SYSLIN DD DSN=&&OBJ,DISP=(NEW,PASS),UNIT=SYSDA,<br />

// SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120<br />

//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

//*<br />

//LKED EXEC PGM=HEWL,REGION=2048K,COND=(8,LE,ASM),<br />

// PARM='XREF,LIST,LET'<br />

//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)<br />

// DD DDNAME=SYSIN<br />

//SYSLMOD DD DSN=&&LOADMOD(IEFESO),DISP=(MOD,PASS),UNIT=SYSDA,<br />

// SPACE=(1024,(50,20,1))<br />

//SYSPRINT DD SYSOUT=*<br />

//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(CYL,(5,5))<br />

// PEND<br />

// EXEC ASMHCL<br />

//ASM.SYSIN DD DISP=SHR,DSN=MHLRES1.SMF42TJ.SOURCE(SMF42TJA)<br />

/*<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TJJ.PDS,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

//LKED.SYSIN DD *<br />

SETSSI 00001800<br />

NAME SMF42TJ(R)<br />

Figure B-68 SMF42TJJ JCL to assemble and link the program SMF42TJ<br />

This creates data set MHLRES1.SMF42TJ.LOAD.<br />

Note: If this JCL needs to be rerun, change the lines:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TJ.LOAD,DISP=(,CATLG,DELETE),<br />

// UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

to read:<br />

//LKED.SYSLMOD DD DSN=MHLRES1.SMF42TJ.LOAD,DISP=SHR (,CATLG,DELETE),<br />

//* UNIT=SYSDA,SPACE=(CYL,(1,1,1))<br />

This is to stop it from trying to make the data set again.<br />

Appendix B. Code samples 559


Program SMF42TJ alteration<br />

The SMF records are generally TEXT or binary values, and when binary values, are usually<br />

fixed bin 32.<br />

The program refers to each field four times:<br />

► The SMF source field as mapped by the IGWSMF macro<br />

► The location in the code where the field is copied or converted<br />

► The storage location where the output line header is generated<br />

► The storage location where the copied or converted data is stored<br />

If text fields are changed, you need to take account of the length of the field. If the<br />

replacement is shorter than the field it replaces, the length does not have to be adjusted, but<br />

the output is longer than it need be. If the replacement field is longer than the field it replaces,<br />

the lengths must be adjusted to avoid overlay or truncation of storage. For example, the<br />

following simple changes can be made:<br />

► Character changes<br />

If field SMF42JPC (which is currently reserved) was changed so that it contained useful<br />

information, and field SMF42JPB was no longer needed, all references to JPB could be<br />

changed to JPC and the program would change the headings and the source of the data<br />

and display the new information. Note that this would change both the below and above<br />

the 2 GB bar fields.<br />

► Binary changes<br />

If field SMF42JP6 was no longer needed, but SMF42JPO was required, if all references to<br />

JP6 were changed to JPO, the program would change the headings and the source of the<br />

data and display the new information. Note that this would change both the below and<br />

above the 2 GB bar fields.<br />

There are other fields that do not fit into the Fixed Bin 32 category, for example, Fixed<br />

bin(16) or double words, which would require more significant program changes.<br />

560 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Related publications<br />

<strong>IBM</strong> <strong>Redbooks</strong><br />

The publications listed in this section are considered particularly suitable for a more detailed<br />

discussion of the topics covered in this book.<br />

For information about ordering these publications, see “How to get <strong>IBM</strong> <strong>Redbooks</strong>” on<br />

page 562. Note that some of the documents referenced here may be available in softcopy<br />

only.<br />

► z/<strong>OS</strong> Version 1 Release 7 Implementation, SG24-6755<br />

► Partitioned Data Set Extended Usage Guide, SG24-6106<br />

► VSAM Demystified, SG24-6105<br />

► LOBs with DB2 for z/<strong>OS</strong>: Stronger and Faster, SG24-7270<br />

Other publications<br />

These publications are also relevant as further information sources:<br />

► MVS Initialization and Tuning Guide, SA22-7591<br />

► MVS Initialization and Tuning Reference, SA22-7592<br />

► MVS System Commands, SA22-7627<br />

► <strong>DFSMS</strong> OAM Planning, Installation, and Storage Administration Guide for Object Support,<br />

SC26-0426<br />

► Network File System Guide and Reference, SG26-7417<br />

► <strong>DFSMS</strong>rmm Implementation and Customization Guide, SC26-7405<br />

► <strong>DFSMS</strong>rmm Application Programming Interface, SC26-7403<br />

► <strong>DFSMS</strong>rmm Guide and Reference, SC26-7404<br />

► <strong>DFSMS</strong> Managing Catalogs, SC26-7409<br />

► z/<strong>OS</strong> Support for Unicode: Using Conversion Services, SC33-7050<br />

► z/<strong>OS</strong> UNIX System Services Planning, SC28-1890<br />

► z/<strong>OS</strong> <strong>IBM</strong> CS V2R10.0: IP Configuration Guide, SC31-8725<br />

► z/<strong>OS</strong> Integrated Security Services Network Authentication Service Administration,<br />

SC24-5926<br />

► z/<strong>OS</strong> Integrated Security Services Network Authentication Service Programming,<br />

SC24-5927<br />

► z/<strong>OS</strong> CS, IPv6 Network and Application Design Guide, SC31-8885<br />

► z/<strong>OS</strong> Integrated Security Services Network Authentication Service Administration,<br />

SC24-5926<br />

► <strong>DFSMS</strong> Using the New Functions, SC26-7473<br />

► <strong>DFSMS</strong>dfp Diagnosis, GY27-7618<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 561


Online resources<br />

These Web sites and URLs are also relevant as further information sources:<br />

► SNIA Web site<br />

http://www.opengroup.org/snia-cimom/<br />

► z/<strong>OS</strong> NFS Web site<br />

http://www-1.ibm.com/servers/eserver/zseries/zos/nfs/<br />

► DHCP Web site<br />

http://www.faqs.org/rfcs/rfc2131.html<br />

How to get <strong>IBM</strong> <strong>Redbooks</strong><br />

Help from <strong>IBM</strong><br />

You can search for, view, or download <strong>Redbooks</strong>, Redpapers, Hints and Tips, draft<br />

publications and Additional materials, as well as order hardcopy <strong>Redbooks</strong> or CD-ROMs, at<br />

this Web site:<br />

ibm.com/redbooks<br />

<strong>IBM</strong> Support and downloads<br />

ibm.com/support<br />

<strong>IBM</strong> Global Services<br />

ibm.com/services<br />

562 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


Index<br />

Numerics<br />

0F4 completion code 25<br />

64-bit buffers<br />

VSAM RLS 28<br />

A<br />

ABACKUP command 153<br />

ABARS 152<br />

Aggregate group definition 152<br />

ALTERPRI command 165<br />

protecting 168<br />

ALTERPRI syntax 166<br />

APAR II14250 15<br />

APAR OA09928 145<br />

APAR OA12683 109, 116, 128<br />

APAR OA13355 282<br />

APAR OA14568 27<br />

APAR OA16372 15<br />

APAR OA16562 109<br />

APAR OA16912 15<br />

APAR OA17310 128<br />

APAR OA17415 24<br />

APAR OA17478 50<br />

APAR OA1770 31<br />

APAR OA17704 30<br />

APAR OA18465 11<br />

APAR OA18519 116<br />

APAR OA18720 15<br />

APAR OA20169 15<br />

APAR OA20170 129<br />

APAR OA20242 137<br />

APAR OA20293<br />

retention tape volumes 12<br />

Apar OA20907 9<br />

APAR OW43224 146<br />

APAR OW48234 220<br />

APAR PK19625 50<br />

APPLYINCREMENTAL processing 223<br />

ARCHSEND macro interface 175<br />

ARECOVER command 154<br />

ARECOVER processing<br />

individual data set restore 152<br />

AUTO BACKUP field 110<br />

Automatic dump 191<br />

B<br />

BACKUP FREQUENCY field 110<br />

BMF buffers 71<br />

BMF data<br />

SMF capture 66<br />

BMF Totals data section 70<br />

Buffer beyond PDSE close 62<br />

BUILDIX failure 50<br />

C<br />

catalog enhancements<br />

LISTCAT processing 14<br />

CBRSAMIV sample job 100<br />

CBRSAMIV samplib member 98<br />

CBRSMF data 101<br />

CBRSMF macro 105, 122, 124, 131<br />

CBRSMR18 job 109<br />

CBRSMR18 migration 97<br />

CLOCKxx PARMLIB member<br />

TIMEZONE 275<br />

command<br />

D SMS,OPTIONS 58<br />

commands<br />

D SMS,OPTIONS 28<br />

d sms,options 69<br />

LIST TTOC 149<br />

MODIFY CATALOG,REPORT 15<br />

MODIFY OAM,START 116<br />

RMM TSO LISTCONTOL 273<br />

SET SMS=xx 59<br />

SETSMS PDSE_BUFFER_BEYOND_CL<strong>OS</strong>E 64<br />

SETSMS PDSE_DIRECTORY_STORAGE 58<br />

TSO RMM SEARCHVOLUME 286<br />

common time support 272<br />

Copy Pool Backup storage group 174, 177, 255<br />

defining volumes 182<br />

Copy Pool Backup storage groups 182<br />

Copy Pool construct 174<br />

copy pool construct 175<br />

copy pools<br />

backup and recovery 185<br />

copy SCDS to ACDS 20<br />

COPYSCDS command 20<br />

creating reports 249<br />

CRURRSV program. 84<br />

customizing reports 250<br />

CVRSAMIV sample job 100<br />

D<br />

D SMS,OPTIONS command 19<br />

D SMS,TRACE command 22<br />

data set name mask<br />

policy seperation 277<br />

data set recovery operation 135<br />

DCOLLECT output 240<br />

deactivate RACF functions 346<br />

device manager enhancements 50<br />

DEVMAN address space 50<br />

DEVSUP command 339<br />

DEVSUPxx keywords<br />

TAPEAUTHDSN 335<br />

TAPEAUTHF1 336<br />

TAPEAUTHRC4 336<br />

© Copyright <strong>IBM</strong> Corp. 2008. All rights reserved. 563


TAPEAUTHRC8 337<br />

DEVSUPxx parmlib member 335, 340<br />

<strong>DFSMS</strong> 1.7<br />

<strong>DFSMS</strong>dss enhancements 2<br />

<strong>DFSMS</strong>hsm enhancements 3<br />

<strong>DFSMS</strong>rmm enhancements 3<br />

feature summary 2<br />

OAM 3<br />

<strong>DFSMS</strong> 1.8<br />

<strong>DFSMS</strong>dfp enhancements 4<br />

<strong>DFSMS</strong>dss enhancements 5<br />

<strong>DFSMS</strong>hsm 5<br />

<strong>DFSMS</strong>rmm enhancements 5<br />

OAM enhancements 5<br />

tape data set authorization 342<br />

<strong>DFSMS</strong>dss<br />

COPY command 134<br />

DUMP command 134<br />

dump processing 135<br />

Fast Replication support 175<br />

logical copy 138<br />

logical processing 134<br />

LOGINDDNAME keyword 139<br />

physical processing 134<br />

PHYSINDDNAME keyword 137<br />

PHYSINDYNAM keyword 137<br />

RENAMEUNCONDITIONAL keyword 135<br />

RESTORE command 134<br />

VSAM KSDS 140<br />

<strong>DFSMS</strong>dss enhancements 133<br />

<strong>DFSMS</strong>dss Physical COPY 136<br />

<strong>DFSMS</strong>dss support<br />

NOVTOCENQ keyword 175<br />

<strong>DFSMS</strong>hsm<br />

alternate duplex tapes 144<br />

CONTINUE option 144<br />

dump copies 218<br />

ERRORALTERNATE keyword 144<br />

migration scratch queue 152<br />

queued requests priority 165<br />

scratch operation from L0 volume 152<br />

SETSYS DUPLEX(MIGRATION(Y)) 144<br />

TAPESECURITY 346<br />

TCN record 144<br />

<strong>DFSMS</strong>hsm command<br />

ALTERPRI 165<br />

<strong>DFSMS</strong>hsm commands<br />

RACF support 251<br />

<strong>DFSMS</strong>hsm fast replication 169<br />

<strong>DFSMS</strong>rmm<br />

ABEND and OPEN masks 279<br />

ABEND keyword 284<br />

ADDVRS commands 286<br />

Client Server Environment date time 271<br />

Common Time Support 270<br />

common time support, 272<br />

data set search result list 290<br />

dates and times 271<br />

DISPLAY T command 275<br />

email address basic setup 265<br />

564 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

incomplete chain 281<br />

ISPF dialog enhancements 288<br />

JES2 Network Environment 267<br />

local time problems 275<br />

LOCATION operand 287<br />

message EDG2317E 276<br />

MGMTCLAS keyword 284<br />

notification feature 264<br />

RELEASEACTION operand 287<br />

SELECT primary command 291<br />

VRS last reference date and time 280<br />

VRS policy simplification 276<br />

VRSEL(NEW) option 278<br />

<strong>DFSMS</strong>rmm enhancements 263<br />

<strong>DFSMS</strong>rmm time<br />

EDGUTIL utility 274<br />

display latch contention 26<br />

DSNALI module 98<br />

DSNCLI module 98<br />

DSNZPARM<br />

LOBVALA value 96<br />

DSS COPY RLS 29<br />

DUMPCONDITIONING keyword 195<br />

DUMPSTATE<br />

ALLCOMPLETE 206<br />

DUMPVTOC data set 210<br />

dynamic service count 15<br />

E<br />

EDGCNVT conversion program 286<br />

EDGCSVDS conversion program 285<br />

EDGRMMxx 348<br />

EDGRMMxx parmlib<br />

OPTION command VRSEL(NEW) 279<br />

email address implementation<br />

setup 265<br />

ERRORALTERNATE parameter 149<br />

F<br />

fast path volume selection 17<br />

Fast Replication<br />

defining copy pools 178<br />

Fast replication<br />

recovery processing 222<br />

fast replication<br />

backup tape support 193<br />

overview 170<br />

reporting 241<br />

fast replication backup<br />

multi-volume data set 233<br />

Fast Subsequent Migration<br />

<strong>DFSMS</strong>dss error 8<br />

fast volume selection 18<br />

FAST_VOLSEL parameter 18<br />

IGD17294I message 20<br />

IGDSMSxx member 18<br />

SETSMS FAST_VOLSEL 19<br />

FASTREPLICATIONSTATE<br />

DUMPONLY 200


RECOVERABLE 200, 208<br />

FASTREPLICATIONSTATE field 187<br />

F<strong>DFSMS</strong>dss support<br />

FASTREPLICATION(REQUIRED) keyword 175<br />

FIXCDS 255<br />

FlashCopy<br />

process with NOCOPY 213<br />

FlashCopy overview 171<br />

FlashCopy Version 1 173<br />

FlashCopy Version 2 173<br />

FRBACKUP command 175<br />

DUMPONLY parameter 207, 213<br />

FRBACKUP COPYPOOL(cpname) PREPARE command<br />

176<br />

FRBACKUP DUMP 205<br />

FRDELETE command 175, 253<br />

FROMCOPYPOOL keyword 190, 222<br />

FRRECOV<br />

data set filtering 225<br />

FRRECOV command 175, 188<br />

FRRECOV DSNAME command 241<br />

multi-volume data sets 228<br />

FRRECOV TOVOLUME command 190<br />

FRROCOV command 224<br />

FSR reporting 243<br />

FSR SMF record number 246<br />

FSRSTAT program 248<br />

FSRSTAT REXX program 249<br />

FULL COPY DUMPCONDITIONING 220<br />

H<br />

HSM fast reconnect<br />

APAR 8<br />

I<br />

ICETOOL job 250<br />

ICFRU<br />

CRURRAP program 87<br />

CRURRSV program 73<br />

preparation 75<br />

use 73<br />

ICFRU implementation 94<br />

ICH408I message 337, 353<br />

ICHBLP resource 334<br />

IDCAMS command<br />

DEFINE NVSAM 142<br />

IDCAMS DEFINE RECATALOG 135<br />

IEFSSNxx PARMLIB member<br />

LOB keyword 97<br />

M<strong>OS</strong> value 96<br />

IFASMFDP program 67, 247<br />

IGWSMF macro 50<br />

IGWSMF mapping macro 31, 46<br />

Integrated Catalog Forward Recovery Utility 73<br />

ITSO sample program<br />

SMF42TG 30<br />

SMF42TI 36<br />

SMF42TJ 44<br />

SMF85TA 101<br />

SMF85TI 112<br />

SMF85TJ 120<br />

SMFT85I 121<br />

L<br />

large objects 96<br />

LCLTCTC001I 281–282, 315, 351<br />

LIST COPYPOOL<br />

ALLVOLS parameter 211<br />

LIST COPYPOOL command 208–209<br />

optional parameters 197<br />

LIST COPYPOOL(CP1) command 211<br />

List Of Names Data Set 162<br />

LISTCAT LEVEL output, 14<br />

LISTOFNAMES parameter 154<br />

LOADxx member 16<br />

LOB function<br />

CBRSMR18 job 97<br />

<strong>OS</strong>REQ command 98<br />

LOB support<br />

CBRILOB sample job 98<br />

CBRSAMIV sample job. 100<br />

IEFSSNxx member 97<br />

Logical processing<br />

unlike device types 134<br />

logical processing 134<br />

LRUCYCLES definition 66<br />

M<br />

management class retention limit 11<br />

MCH keys 255<br />

message ARC1866I 226<br />

message IGW342I 26<br />

messages<br />

ADR146I 137<br />

ARC0120I 145<br />

ARC0150I 246<br />

ARC0442I 149<br />

ARC1801I 204<br />

ARC1802I 204, 206<br />

ARC1803E 190<br />

ARC1841I 194<br />

ARC1842I 194<br />

EDG2221E 282<br />

EDG2225I 277<br />

EDG2230I, 281<br />

IDC0594I 82<br />

IDC3009I 352<br />

IEA888A 271<br />

IEC604I 51<br />

IEE136I 275<br />

IGD088I 21<br />

IGW343I VSAM RLS 26<br />

IGW495I 27<br />

mirroring technology 170<br />

MODIFY CATALOG command<br />

VDUMPOFF parameter 23<br />

VDUMPON parameter 23<br />

MODIFY CATALOG,REPORT command 17<br />

Index 565


MODIFY DEVMAN parameters 52<br />

MODIFY DEVMAN,RESTART command 54<br />

MODIFY OAM,DISPLAY command 128<br />

MODIFY,OAM,START,MOVEVOL command 116<br />

N<br />

NOCOPY processing 214<br />

NOVTOCENQ keyword 175<br />

O<br />

OA20170 129<br />

OAM 8<br />

CBRPBIND sample job 98<br />

immediate backup copy 110<br />

LIM= keyword 120<br />

message CBR0401 98<br />

PERCENTVALID value 120<br />

RECYCLE candidates 119<br />

RECYCLE parameter 116<br />

RECYCLE volumes 8<br />

ONLYDATASET parameter 154<br />

<strong>OS</strong>FORMAT VTOC 51<br />

<strong>OS</strong>MC command migration facility 121<br />

<strong>OS</strong>MC SINGLE OBJECT RECALL utility 129<br />

<strong>OS</strong>REQ command 98<br />

<strong>OS</strong>REQ RETRIEVE 101<br />

<strong>OS</strong>REQ STORE 112<br />

<strong>OS</strong>REQ store function 110<br />

P<br />

PDSE BMF 66<br />

PDSE close<br />

buffers retained 62<br />

PDSE enhancements 54<br />

PDSE extended sharing 62<br />

PDSE hiperspace 66<br />

PDSE performance 72<br />

PDSE PO5 55<br />

PDSE Storage Class 72<br />

PDSE1_HSP_SIZE 56<br />

PDSESHARING keyword 62<br />

persistent FlashCopy 172<br />

Physical Data Set COPY 133<br />

physical data set copy 141<br />

physical data set restore 134<br />

Physical processing 135<br />

physical track images 135<br />

PHYSINDDNAME keyword 136<br />

PHYSINDYNAM keyword 136<br />

PO5 4<br />

point-in-time copy 170<br />

Pool storage group 184<br />

potential data loss<br />

RECYCLE error 11<br />

R<br />

RACF Facility Class profiles 251<br />

RACF option TAPEDSN 335<br />

566 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

RACF TAPEVOL 342<br />

rapid index rebuild 50<br />

recover non-existent data sets 239<br />

RECYCLE error<br />

APAR OA18465 11<br />

RECYCLE facility 120<br />

Recycle SYNCDEV<br />

processing 150<br />

Recycle SYNCDEV at intervals 150<br />

<strong>Redbooks</strong> Web site 562<br />

Contact us xiii<br />

REPORT DAILY command 242<br />

REPORT statistics 243<br />

REPORT VOLUMES command 242<br />

reports<br />

customizing 250<br />

sample REXX execs 248<br />

restore operation 134<br />

RLS enhanced recovery 25<br />

RLS health checks 25<br />

RLSDATA attribute 140<br />

RMF for RLS 30<br />

RMM SEACHVOLUME subcommand 349<br />

RMM TSO CHANGEVRS subcommand 295<br />

RMMPLEX times 272<br />

S<br />

SAF tape security 332<br />

sample program<br />

SMF42TJ 46<br />

SECURITY CONFLICT status 352<br />

SERVICE TASK UPPER LIMIT value 15<br />

SET<strong>OS</strong>MC settings 129<br />

SETROPTS CLASSACT(TAPEVOL) 335<br />

SETROPTS NOCLASSACT(TAPEVOL) 335<br />

SETROPTS NOTAPEDSN 335<br />

SETROPTS TAPEDSN 335<br />

SETSMS COPYSCDS command 21<br />

SETSMS TRACE command 21<br />

single data set recover 154<br />

SMF<br />

Record type 85 subtype 39 112<br />

SMF dump program 247<br />

SMF extract records 31<br />

SMF record<br />

type 42 subtype 16 30<br />

type 42 subtype 18 30<br />

type 42 Subtype 19 30<br />

SMF record sort 87<br />

SMF Record type 42<br />

subtype 18 36<br />

SMF42BMX field 71<br />

SMF42BUF field 71<br />

SMF42G1A records 35<br />

SMF42GA1 group 32, 34<br />

SMF42LRU field 71<br />

SMF42PNL field 72<br />

SMF42PNN field 72<br />

SMF42SDH field 72<br />

SMF42SDT field 72


SMF42SRH field 72<br />

SMF42SRT field 72<br />

SMF42T1 program 70<br />

SMF42TDH field 71<br />

SMF42TDT field 71<br />

SMF42TMT field 71<br />

SMF42TNA field 71<br />

SMF42TRH field 71<br />

SMF42TRT field 71<br />

SMF42UIC field 71<br />

SMF85TA program 104<br />

SMF85TA sample program 101<br />

SMF85TH program 122<br />

SMF85TO program 130<br />

SMFT42TG program 31<br />

SMFT85I program 101, 113, 123<br />

SMS serviceability<br />

DEBUG parameter 21<br />

SMS volume selection 17<br />

SMSVSAM address space 25<br />

SMSVSAM address space termination 25<br />

Split of a Continuous Mirror 170<br />

statistic records 242<br />

STGADMIN.* profile 252<br />

STGADMIN.ARC.command RACF profile 168<br />

striping allocation 18<br />

SVC D command 25<br />

SYSBMF data space 54<br />

SYSBMFDS data space 54<br />

SYSCATxx member<br />

service tasks defined 16<br />

T<br />

tape data set authorization<br />

implementation 338<br />

tape data set security 331, 337<br />

tape security<br />

ARCCMDxx parmlib member 347<br />

DEVSUPnn parmlib member 340<br />

DEVSUPxx parmlib member 332<br />

<strong>DFSMS</strong> V1.8 tape security 9<br />

error messages 351<br />

ICHBLP resource 335<br />

implementtion 338<br />

nonstandard label tapes 334<br />

SAF 332<br />

TAPEVOL and TAPEDSN processing 333<br />

using combined functions 332<br />

TAPEAUTHRC4(ALLOW) 332<br />

TAPEAUTHRC8(WARN) 332<br />

TAPEDSN option 331, 333<br />

TAPEVOL class 331, 333<br />

TAPEVOL class profile 334<br />

TAPEVOL profile<br />

TVTOC 334<br />

TAPEVOL profiles 348<br />

target volumes 177<br />

The appropriate SMF data set names and the otput data<br />

set have been specified. 85<br />

TPRACF OPTION 347<br />

TPRACF(AUTOMATIC) 347<br />

TPRACF(CLEANUP) 347<br />

TPRACF(CLEANUP) option 332<br />

TPRACF(PREDEFINED) 347<br />

TSO NETSTAT command 266<br />

TSO subcommand<br />

ADDOWNER 265<br />

V<br />

V SMS,MONDS(datasetname),ON 30<br />

VLPOOL command 349<br />

VLPOOL RACF 348<br />

VRS policy 276<br />

VRSEL(OLD) migration 276<br />

VSAM address space<br />

SMSVSAM 25<br />

VSAM code modernization 22<br />

VSAM GET/PUT requests failing 15<br />

VSAM record level sharing 25<br />

VSAM RLA<br />

64-bit buffers 28<br />

VSAM RLS 26<br />

64-bit data buffers 30<br />

OA17415 24<br />

VSAM RLS DIAG command 27<br />

VSAM RLS features 24<br />

X<br />

XES lock table 27<br />

Index 567


568 z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

(0.5” spine)<br />

0.475”0.873”<br />

250 459 pages<br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong><br />

z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong> <strong>Technical</strong> <strong>Update</strong>


z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong><br />

<strong>Technical</strong> <strong>Update</strong><br />

Understand the<br />

features and<br />

functions in z/<strong>OS</strong><br />

<strong>DFSMS</strong> V1.8<br />

Read implementation<br />

hints and tips<br />

Learn <strong>DFSMS</strong> trends<br />

and directions<br />

Back cover<br />

Each release of <strong>DFSMS</strong> builds upon the previous version to provide<br />

enhanced storage management, data access, device support, program<br />

management, and distributed data access for the z/<strong>OS</strong> platform in a<br />

system-managed storage environment.<br />

This <strong>IBM</strong> <strong>Redbooks</strong> publication provides a technical overview of the<br />

functions and enhancements in z/<strong>OS</strong> <strong>V1R8</strong> <strong>DFSMS</strong>. It provides you with<br />

the information that you need to understand and evaluate the content<br />

of this <strong>DFSMS</strong> release, along with practical implementation hints and<br />

tips. Also included are enhancements that were made available<br />

through an enabling PTF that has been integrated into z/<strong>OS</strong> <strong>DFSMS</strong><br />

<strong>V1R8</strong>.<br />

This book was written for storage professionals and system<br />

programmers who have experience with the components of <strong>DFSMS</strong>. It<br />

provides sufficient information so that you can start prioritizing the<br />

implementation of new functions and evaluating their applicability in<br />

your <strong>DFSMS</strong> environment.<br />

SG24-7435-00 ISBN 073848573X<br />

INTERNATIONAL<br />

TECHNICAL<br />

SUPPORT<br />

ORGANIZATION<br />

®<br />

BUILDING TECHNICAL<br />

INFORMATION BASED ON<br />

PRACTICAL EXPERIENCE<br />

<strong>IBM</strong> <strong>Redbooks</strong> are developed<br />

by the <strong>IBM</strong> International<br />

<strong>Technical</strong> Support<br />

Organization. Experts from<br />

<strong>IBM</strong>, Customers and Partners<br />

from around the world create<br />

timely technical information<br />

based on realistic scenarios.<br />

Specific recommendations<br />

are provided to help you<br />

implement IT solutions more<br />

effectively in your<br />

environment.<br />

For more information:<br />

ibm.com/redbooks<br />

®

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!