z/OS V1R8 DFSMS Technical Update - IBM Redbooks
z/OS V1R8 DFSMS Technical Update - IBM Redbooks
z/OS V1R8 DFSMS Technical Update - IBM Redbooks
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 />
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 />
®