PKZIP Version 2.5 for MVS User Reference T4ASI025-00-00 Ascent Solutions Inc. 9009-Springboro Pike, Miamisburg Ohio 45342, USA Support: Sales: Fax: Internet: E-Mail: +1 937 847 2687 +1 937 847 2374 +1 937 847 2375 http://www.asizip.com sales@asizip.com support@asizip.com Targetfour Limited Imperial House 8 Oaklands Park Fishponds Road Wokingham Berkshire RG41 2FD United Kingdom Telephone: Fax: Internet: E-Mail: HelpDesk: +44 (0)118 936 4300 +44 (0)118 936 4329 http://www.target4.com sales@target4.com +44 (0) 118 936 4100 helpdesk@target4.com First Edition (September 1999) This edition applies to the following ASi licensed program: PKZIP Version 2.5 for MVS (Level 1, September 1999) All trademarks acknowledged. Any reference to licensed programs or other material, belonging to any company, is not intended to state or imply that such programs or material are available or may be used. The copyright in this work is vested in Ascent Solutions Inc. and Targetfour Limited and the document is issued in confidence for the purpose only for which it is supplied. It must not be reproduced in whole or in part or used for tendering purposes except under an agreement or with the consent in writing of Ascent Solutions Inc. or Targetfour Limited and then only on condition that this notice is included in any such reproduction. No information as to the contents or subject matter of this document or any part thereof either directly or indirectly arising therefrom shall be given or communicated in any manner whatsoever to a third party being an individual firm or company or any employee thereof without the prior consent in writing of Ascent Solutions Inc. or Targetfour Limited. Copyright© 1989-1999 ASi®, PKWare Inc.® and Targetfour Ltd. All rights reserved. Preface This manual provides usage and reference information, together with conceptual and functional descriptions of PKZIP Version 2.5 for MVS, which is called PKZIP for MVS (or PKZIP 2.5 for MVS when it is necessary to distinguish this level from previous levels of the product) in this manual. Users migrating from previous levels of PKZIP for MVS should review Migration Considerations on page 23. About this Manual This manual covers all aspects of PKZIP Version 2.5 for MVS. It provides all the information required to use PKZIP Version 2.5 for MVS. Part 1. An Introduction to PKZIP for MVS provides a general description of the PKZIP product, which is applicable to all supported platforms. It goes on to describe the MVS specific features of the PKZIP for MVS product and provides a simple description of how the PKZIP for MVS product is used to provide the compression and decompression of datasets. Part 2. File Processing provides more detailed examples of how specific file types should be processed by PKZIP for MVS. Part 3. Advanced Topics provides detailed advice and guidance on customising and tuning PKZIP specifically to your installation needs. Part 4. Additional Facilities provides instructions on the use of other facilities provided with PKZIP for MVS, specifically the ISPF panel interface. Part 5. GZIP (GNU zip) Processing provides a description of the GZIP format archive and the GZIP processing supported by PKZIP for MVS. Part 6. Reference Section provides a comprehensive description of the commands and messages found in PKZIP for MVS. Part 7. Appendices provides instructions for the installation and licensing of the product along with summary of the changes made to PKZIP version 2 for MVS through the product's history. Part 8. Glossary and Index contains a glossary of terms and a detailed index of the contents of this document. This manual is intended for persons responsible for implementing and using PKZIP Version 2.5 for MVS. The manual assumes that the reader has a good understanding of JCL and dataset processing. T4ASI025-00-00 Preface iii Conventions Used in this Manual Throughout this manual, the conventions are used: Bullets indicate items, or instructions, in a first level unordered list. The use of the Courier font indicates text used in JCL or JES logs. The use of <angle brackets> in a command syntax description indicates a mandatory command parameter. The use of [square brackets] in a command syntax description indicates an optional command parameter. A vertical bar, |, is used in a command syntax description to separate mutually exclusive command parameter options. The use of italics indicates a value that must be substituted by the user (e.g. a dataset name in an example job) or a manual name or section in a reference. Related Publications [1] PKZIP Multiplatform General Information T4008-01. This provides information on the PKZIP product set and the platforms on which it is available. Also provided is a general introduction to data compression and answers to frequently asked questions on the subject. iv PKZIP for MVS: User Reference T4ASI025-00-00 Related IBM Publications Where necessary, this manual references information in IBM manuals, using a shortened version of the book title. The full title of the book may vary depending on the level of the Operating system and the companion products that are installed. This following table presents the shortened title and briefly describes the important information contained in the manual. This information should be sufficient to determine the correct title for the system on which PKZIP for MVS is executing. T4ASI025-00-00 Title Description Access Method Services Describes how to create and manage VSAM datasets. Most installations should use the Integrated Catalog Facility version of this manual. Assembler Programming Guide A guide to coding IBM assembler programs. Authorised Assembler Language Programs This manual describes some of the more technical processing used by PKZIP for MVS, including dynamic allocation (DYNALLOC). This manual also lists and explains return codes from dynamic allocation. JCL User’s Guide Describes how to code JCL statements, such as DD statements. Macro Instructions for Datasets This manual lists the instructions used to access various IBM datasets. More importantly, it lists the possible return codes and reasons codes that can result when accessing a dataset. The explanation of these codes can be very helpful in determining what has gone wrong in PKZIP processing. System Messages Explains the messages that are output by programs while processing on the system. These messages may be in a number of different manuals depending on the prefix used. Using Data Sets Describes the attributes and how to process the various dataset types, including GDGs. Preface v Contents Preface .................................................................................................................. iii About this Manual .................................................................................................. iii Conventions Used in this Manual .......................................................................... iv Related Publications .............................................................................................. iv Related IBM Publications ........................................................................................ v Part 1. An Introduction to PKZIP for MVS 1 Chapter 1. An Introduction to PKZIP ................................................................. 3 Data compression................................................................................................... 3 ZIP archives ............................................................................................................ 3 Cyclic Redundancy Check ...................................................................................... 4 Data Encryption ...................................................................................................... 5 Cross Platform Compatibility .................................................................................. 5 Chapter 2. PKZIP Version 2.5 for MVS............................................................... 7 General features of PKZIP for MVS ....................................................................... 7 MVS specific features of PKZIP Version 2.5 for MVS ............................................ 8 Changes with PKZIP Version 2.5 for MVS ........................................................... 10 Changes with PKZIP Version 2.2 for MVS ........................................................... 19 Restrictions for PKZIP Version 2.5 for MVS ......................................................... 21 Migration Considerations ...................................................................................... 23 Chapter 3. Getting Started ................................................................................ 27 Introduction to PKZIP for MVS.............................................................................. 27 Invoking PKZIP or PKUNZIP using JCL ............................................................... 28 Essentials for running PKZIP and PKUNZIP ........................................................ 29 Compressing a dataset......................................................................................... 31 Viewing the contents of an archive ....................................................................... 32 Decompressing a dataset ..................................................................................... 34 Updating or Refreshing a file ................................................................................ 35 Testing a ZIP archive ............................................................................................ 36 Deleting a file ........................................................................................................ 36 Part 2. File Processing 39 Chapter 4. File Selection and Name Processing ............................................ 41 Selecting files for compression ............................................................................. 41 Selecting files for decompression ......................................................................... 41 Chapter 5. ZIP Files ........................................................................................... 45 File formats ........................................................................................................... 45 File attributes ........................................................................................................ 47 Large file support .................................................................................................. 48 File Size Recommendations ................................................................................. 49 T4ASI025-00-00 Contents vii Chapter 6. Processing Sequential Files .......................................................... 51 Processing Sequential files using JCL DD cards ................................................. 52 GDG support ........................................................................................................ 54 Chapter 7. Processing PDS Members ............................................................. 57 Selecting PDS members for compression............................................................ 57 ZIP Archives as PDS members ............................................................................ 59 Creating PDS datasets and members on extraction ............................................ 60 Compressing Load libraries .................................................................................. 61 Chapter 8. Processing VSAM Files .................................................................. 63 Compressing a VSAM File ................................................................................... 64 VSAM ZIP Archives .............................................................................................. 64 Decompressing to a VSAM file ............................................................................. 65 Processing ‘sparse’ RRDS files ............................................................................ 67 Processing unsupported file types ........................................................................ 67 Chapter 9. Processing Magnetic Tapes or Cartridges ................................... 69 Compression of data residing on Tape................................................................. 70 Decompression of data onto Tape ....................................................................... 72 Zip Archives on Tape ............................................................................................ 73 Part 3. Advanced Topics 79 Chapter 10. ZIP Archives .................................................................................. 81 ZIP Archives in MVS ............................................................................................. 81 Old and New ZIP archives .................................................................................... 82 Temporary datasets .............................................................................................. 82 Chapter 11. Compatibility Issues ..................................................................... 85 Using PKZIP 2.5 for MVS with PKZIP version 2 on other platforms ..................... 85 Using PKZIP 2.5 for MVS with PKZIP 2.2 for MVS for MVS ................................ 86 Using PKZIP 2.5 for MVS with PKZIP 2.1 for MVS for MVS ................................ 86 Chapter 12. Cross Platform Support ............................................................... 89 Transferring ZIP archives to and from other platforms ......................................... 89 Unzipping on MVS ................................................................................................ 90 Compressing on VM and decompressing on MVS ............................................... 92 Compressing on WinZip Version 5 and decompressing on MVS ........................ 92 Chapter 13. Performance .................................................................................. 93 I/O implications ..................................................................................................... 93 Use of extended storage by PKZIP ...................................................................... 93 PKZIP speed versus compressed file size ........................................................... 94 HyperZIP License ................................................................................................. 94 Chapter 14. Command Input............................................................................. 99 Configuration File.................................................................................................. 99 PARM parameter ................................................................................................ 100 SYSIN ................................................................................................................. 101 Command Continuation Characters ................................................................... 102 Comment Lines .................................................................................................. 103 viii PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 15. Calling PKZIP from a Program................................................... 105 Resource Allocation and Deallocation ................................................................ 105 Invoking PKZIP/PKUNZIP from an assembler program ..................................... 107 Invoking PKZIP/PKUNZIP from a COBOL program ........................................... 109 Chapter 16. Translation and Translation Tables .......................................... 111 PKZIP Translation............................................................................................... 111 Modifying a translation table ............................................................................... 113 Code Pages ........................................................................................................ 116 The supplied translation tables ........................................................................... 118 Part 4. Additional Facilities 121 Chapter 17. Using the ISPF Panel Interface .................................................. 123 Starting the Panel Interface ................................................................................ 123 Main Menu .......................................................................................................... 124 Configuration Panel ............................................................................................ 124 Using the Panels................................................................................................. 125 Compressing Data .............................................................................................. 126 Decompressing Data .......................................................................................... 127 Viewing Archives ................................................................................................ 128 Product License Information ............................................................................... 129 Exiting the Panel Interface .................................................................................. 131 Error Recovery.................................................................................................... 131 Restrictions ......................................................................................................... 131 Part 5. GZIP (GNU zip) Processing 133 Chapter 18. An Introduction to GZIP (GNU zip) ............................................ 135 Why use a GZIP archive?................................................................................... 135 Deflate compression ........................................................................................... 136 GZIP file format .................................................................................................. 136 File contents ....................................................................................................... 137 Cross Platform Compatibility .............................................................................. 137 Chapter 19. Processing GZIP Format Archives ............................................ 139 Creating GZIP archives ...................................................................................... 139 Extracting GZIP files ........................................................................................... 141 GZIP restrictions ................................................................................................. 142 Sample GZIP processing.................................................................................... 144 Part 6. Reference Section 149 Chapter 20. Introduction to PKZIP Commands ............................................ 151 Chapter 21. PKZIP Commands ....................................................................... 153 Summary of available PKZIP commands ........................................................... 154 General PKZIP commands ................................................................................. 159 <dataset name> .................................................................................................. 159 -ADD command .................................................................................................. 161 -ALIASMEMBER................................................................................................. 162 T4ASI025-00-00 Contents ix -ARCHBLKSIZ .................................................................................................... 162 -ARCHDCLASS .................................................................................................. 162 -ARCHDIRBLKS ................................................................................................. 163 -ARCHDSORG ................................................................................................... 164 -ARCHINDD........................................................................................................ 164 -ARCHIVE........................................................................................................... 165 -ARCHLRL .......................................................................................................... 166 -ARCHMCLASS.................................................................................................. 166 -ARCHNORLSE.................................................................................................. 167 -ARCHOUTDD ................................................................................................... 167 -ARCHPRIMARY ................................................................................................ 168 -ARCHRLSE ....................................................................................................... 169 -ARCHSCLASS .................................................................................................. 169 -ARCHSECONDARY.......................................................................................... 169 -ARCHSPACE .................................................................................................... 170 -ARCHTYPE ....................................................................................................... 170 -ARCHUNIT ........................................................................................................ 171 -ARCHVOL ......................................................................................................... 171 -ATTRIB .............................................................................................................. 172 -ATTRIBCENTRAL ............................................................................................. 172 -ATTRIBLOCAL .................................................................................................. 172 -BINARY ............................................................................................................. 173 -CACHEMEMORY .............................................................................................. 173 -DELETE command............................................................................................ 174 -DELIM................................................................................................................ 174 -ECHO ................................................................................................................ 175 -FILEPROCERR ................................................................................................. 176 -FILESELERR..................................................................................................... 176 -FRESHEN command ........................................................................................ 177 -FTRAN .............................................................................................................. 178 -GZIP .................................................................................................................. 178 -INDD .................................................................................................................. 178 -KEEPINORDER ................................................................................................ 179 -METHOD ........................................................................................................... 180 -NIA..................................................................................................................... 181 -NIASEP ............................................................................................................. 185 -NOALIASMEMBER ........................................................................................... 186 -NOATTRIB ........................................................................................................ 186 -NOECHO ........................................................................................................... 187 -NOKEEPINORDER ........................................................................................... 187 -NOPATH ........................................................................................................... 187 -NORECURSE.................................................................................................... 188 -NOSYSIN .......................................................................................................... 188 -NOVSAM ........................................................................................................... 188 -PASSWORD ..................................................................................................... 189 -PATH ................................................................................................................. 189 -PCP ................................................................................................................... 190 -RECURSE ......................................................................................................... 191 -STRIP ................................................................................................................ 192 -TAPETODISK .................................................................................................... 192 -TASKS ............................................................................................................... 193 -TEMPBLKSIZ .................................................................................................... 194 -TEMPDCLASS .................................................................................................. 194 -TEMPPRIMARY ................................................................................................ 194 -TEMPSCLASS .................................................................................................. 195 -TEMPSECONDARY .......................................................................................... 195 x PKZIP for MVS: User Reference T4ASI025-00-00 -TEMPSPACE .................................................................................................... 195 -TEMPTYPE ....................................................................................................... 196 -TEMPUNIT ........................................................................................................ 196 -TEMPVOL ......................................................................................................... 196 -TERM ................................................................................................................ 197 -TEXT ................................................................................................................. 198 -TIMESTAMP ..................................................................................................... 198 -TRAN ................................................................................................................. 199 -UPDATE command ........................................................................................... 200 -VIEW command ................................................................................................ 200 -ZDW .................................................................................................................. 200 -ZIPCUR ............................................................................................................. 201 Chapter 22. VSAM Specific PKZIP Commands ............................................. 203 General Syntax for creating a VSAM archive ..................................................... 203 Summary of VSAM cluster level commands ...................................................... 204 Summary of VSAM data level commands .......................................................... 205 VSAM Cluster Level commands ......................................................................... 207 -ARCHBUFSPACE ............................................................................................. 207 -ARCHCATALOG ............................................................................................... 207 -ARCHCISZ ........................................................................................................ 207 -ARCHEEXT ....................................................................................................... 208 -ARCHERASE .................................................................................................... 208 -ARCHFILE ......................................................................................................... 208 -ARCHFOR ......................................................................................................... 209 -ARCHFREECA .................................................................................................. 209 -ARCHFREECI ................................................................................................... 209 -ARCHNOERASE ............................................................................................... 210 -ARCHNONSPANNED ....................................................................................... 210 -ARCHNOREUSE............................................................................................... 210 -ARCHNOWRITECHK ....................................................................................... 210 -ARCHOWNER .................................................................................................. 211 -ARCHRECORDSIZE ......................................................................................... 211 -ARCHREUSE .................................................................................................... 212 -ARCHSHR ......................................................................................................... 212 -ARCHSPACE .................................................................................................... 212 -ARCHSPANNED ............................................................................................... 213 -ARCHTO ........................................................................................................... 213 -ARCHWRITECHK ............................................................................................. 214 VSAM Data Level commands ............................................................................. 215 -ARCHDATACISZ .............................................................................................. 215 -ARCHDATAEEXT ............................................................................................. 215 -ARCHDATAFILE ............................................................................................... 216 -ARCHDATANAME ............................................................................................ 216 -ARCHDATANORD ............................................................................................ 216 -ARCHDATANRUS ............................................................................................ 217 -ARCHDATANWCK ........................................................................................... 217 -ARCHDATAORD ............................................................................................... 217 -ARCHDATAOWNER ......................................................................................... 218 -ARCHDATAPRI ................................................................................................. 218 -ARCHDATARUS ............................................................................................... 218 -ARCHDATASEC ............................................................................................... 219 -ARCHDATASHR ............................................................................................... 219 -ARCHDATASPACE........................................................................................... 219 -ARCHDATAVOL ............................................................................................... 220 T4ASI025-00-00 Contents xi -ARCHDATAWCK .............................................................................................. 221 Chapter 23. PKUNZIP Commands.................................................................. 223 Summary of general PKUNZIP commands ........................................................ 224 General PKUNZIP commands............................................................................ 228 <dataset name> .................................................................................................. 228 -ALIASMEMBER................................................................................................. 230 -ARCHINDD........................................................................................................ 230 -ARCHIVE........................................................................................................... 230 -ATTRIB .............................................................................................................. 231 -BINARY ............................................................................................................. 231 -CACHEMEMORY .............................................................................................. 231 -CNVEXT ............................................................................................................ 232 -DELIM................................................................................................................ 233 -ECHO ................................................................................................................ 234 -EXTRACT command......................................................................................... 235 -FILEPROCERR ................................................................................................. 235 -FILESELERR..................................................................................................... 236 -FTRAN .............................................................................................................. 237 -HIERARCHY ..................................................................................................... 237 -HLQ ................................................................................................................... 238 -INSERTMEMBER.............................................................................................. 241 -MAKEPDS ......................................................................................................... 241 -MAKESEQ ......................................................................................................... 242 -MAKEVSAM ...................................................................................................... 242 -NOALIASMEMBER ........................................................................................... 243 -NOATTRIB ........................................................................................................ 243 -NOCRLF ............................................................................................................ 243 -NOECHO ........................................................................................................... 244 -NOHIERARCHY ................................................................................................ 244 -NOSYSIN .......................................................................................................... 244 -OUTBLKSIZ ...................................................................................................... 245 -OUTDCLASS .................................................................................................... 245 -OUTDD .............................................................................................................. 246 -OUTDIRBLKS ................................................................................................... 248 -OUTLRL ............................................................................................................ 249 -OUTMCLASS .................................................................................................... 249 -OUTNORLSE .................................................................................................... 250 -OUTPRIMARY................................................................................................... 250 -OUTRLSE ......................................................................................................... 251 -OUTSCLASS ..................................................................................................... 251 -OUTSECONDARY ............................................................................................ 251 -OUTSPACE ....................................................................................................... 252 -OUTTYPE ......................................................................................................... 253 -OUTUNIT .......................................................................................................... 254 -OUTVOL ............................................................................................................ 254 -OVERWRITE .................................................................................................... 255 -PAD ................................................................................................................... 255 -PASSWORD ..................................................................................................... 256 -TAPETODISK .................................................................................................... 256 -TEMPBLKSIZ .................................................................................................... 257 -TEMPDCLASS .................................................................................................. 257 -TEMPPRIMARY ................................................................................................ 258 -TEMPSCLASS .................................................................................................. 258 -TEMPSECONDARY .......................................................................................... 258 -TEMPSPACE .................................................................................................... 259 xii PKZIP for MVS: User Reference T4ASI025-00-00 -TEMPTYPE ....................................................................................................... 259 -TEMPUNIT ........................................................................................................ 260 -TEMPVOL ......................................................................................................... 260 -TERM ................................................................................................................ 260 TEST command ................................................................................................. 262 -TEXT ................................................................................................................. 262 -TRAN ................................................................................................................. 263 -VIEW command ................................................................................................ 263 -ZDW .................................................................................................................. 267 -ZIPCUR ............................................................................................................. 268 Chapter 24. VSAM Specific PKUNZIP Commands ....................................... 269 General Syntax for creating an extracted VSAM dataset ................................... 269 Summary of VSAM cluster level commands ...................................................... 271 Summary of VSAM data level commands .......................................................... 273 Summary of VSAM index level commands ........................................................ 274 VSAM Cluster Level commands ......................................................................... 276 -NOPADVSAM.................................................................................................... 276 -PADVSAM ......................................................................................................... 276 -OUTATTR ......................................................................................................... 277 -OUTBUFSPACE ............................................................................................... 277 -OUTCATALOG.................................................................................................. 278 -OUTCISZ ........................................................................................................... 278 -OUTDUPLICATES ............................................................................................ 278 -OUTEEXT ......................................................................................................... 279 -OUTERASE ....................................................................................................... 279 -OUTFILE ........................................................................................................... 279 -OUTFOR ........................................................................................................... 280 -OUTFREECA .................................................................................................... 280 -OUTFREECI ...................................................................................................... 281 -OUTIMBED ....................................................................................................... 281 -OUTKEYS ......................................................................................................... 282 -OUTNOERASE ................................................................................................. 282 -OUTNOIMBED .................................................................................................. 283 -OUTNONSPANNED ......................................................................................... 283 -OUTNOREPLICATE ......................................................................................... 283 -OUTNOREUSE ................................................................................................. 284 -OUTNOWRITECHK .......................................................................................... 284 -OUTOWNER ..................................................................................................... 284 -OUTPRIMARY................................................................................................... 285 -OUTRECORDSIZE ........................................................................................... 285 -OUTRECOVERY ............................................................................................... 285 -OUTREPLICATE ............................................................................................... 286 -OUTREUSE ...................................................................................................... 286 -OUTSECONDARY ............................................................................................ 286 -OUTSHR ........................................................................................................... 287 -OUTSPACE ....................................................................................................... 287 -OUTSPANNED ................................................................................................. 288 -OUTSPEED ....................................................................................................... 288 -OUTTO .............................................................................................................. 289 -OUTWRITECHK ............................................................................................... 289 VSAM Data Level commands ............................................................................. 290 -OUTDATACISZ ................................................................................................. 290 -OUTDATAEEXT ................................................................................................ 290 -OUTDATAFILE.................................................................................................. 291 T4ASI025-00-00 Contents xiii -OUTDATANORD............................................................................................... 291 -OUTDATANRUS ............................................................................................... 291 -OUTDATANWCK .............................................................................................. 292 -OUTDATAORD ................................................................................................. 292 -OUTDATAOWNER ........................................................................................... 293 -OUTDATAPRI ................................................................................................... 293 -OUTDATARUS.................................................................................................. 294 -OUTDATASEC .................................................................................................. 294 -OUTDATASHR.................................................................................................. 295 -OUTDATASPACE ............................................................................................. 295 -OUTDATAVOL .................................................................................................. 296 -OUTDATAWCK................................................................................................. 296 VSAM Index Level commands ........................................................................... 297 -OUTINDXCISZ .................................................................................................. 297 -OUTINDXEEXT ................................................................................................. 297 -OUTINDXFILE................................................................................................... 298 -OUTINDXNORD................................................................................................ 298 -OUTINDXNRUS ................................................................................................ 298 -OUTINDXNWCK ............................................................................................... 299 -OUTINDXORD .................................................................................................. 299 -OUTINDXOWNER ............................................................................................ 300 -OUTINDXPRI .................................................................................................... 300 -OUTINDXRUS................................................................................................... 301 -OUTINDXSEC ................................................................................................... 301 -OUTINDXSHR................................................................................................... 302 -OUTINDXSPACE .............................................................................................. 302 -OUTINDXVOL ................................................................................................... 303 -OUTINDXWCK.................................................................................................. 303 Chapter 25. What To Do If You Have a Problem ........................................... 305 Problems using the product ................................................................................ 305 Failures using the product .................................................................................. 306 Patch Notes ........................................................................................................ 308 The Patch Process ............................................................................................. 308 PKZIP for MVS Trace facilities ........................................................................... 311 Chapter 26. PKZIP and PKUNZIP Messages ................................................. 315 Message format .................................................................................................. 315 Details of messages produced by PKZIP and PKUNZIP ................................... 315 Chapter 27. User Abend Codes ...................................................................... 385 WTO Message format ........................................................................................ 385 JES Message format .......................................................................................... 385 Details of WTO messages produced by PKZIP and PKUNZIP .......................... 386 Chapter 28. Licensing Messages ................................................................... 387 Message format .................................................................................................. 387 Details of messages ........................................................................................... 387 Part 7. Appendices 399 Appendix A. Installation Guide ....................................................................... 401 Prerequisites ....................................................................................................... 401 MVS Installation .................................................................................................. 402 Licensing............................................................................................................. 412 xiv PKZIP for MVS: User Reference T4ASI025-00-00 Apply Maintenance ............................................................................................. 415 Installation Verification Procedure ...................................................................... 415 Further Tailoring ................................................................................................. 420 ISPF Integration .................................................................................................. 420 Getting Started.................................................................................................... 421 Appendix B. Licensing Guide ......................................................................... 423 Licenses.............................................................................................................. 423 Effects of PKZIP Licensing ................................................................................. 426 Reporting current Licenses ................................................................................. 426 Updating current Licenses .................................................................................. 427 Short Term Licenses .......................................................................................... 428 Appendix C. Change Summaries ................................................................... 431 PKZIP 2.1 Level 0 for MVS (October 1994) ....................................................... 431 PKZIP 2.1 Level 1 for MVS (November 1994) .................................................... 432 PKZIP 2.1 Level 2 for MVS (February 1995) ...................................................... 433 PKZIP 2.1 Level 4 for MVS (August 1995) ......................................................... 434 PKZIP 2.1 Level 7 for MVS (November 1995) .................................................... 435 PKZIP 2.2 Level 1 for MVS (October 1997) ....................................................... 436 PKZIP 2.2 Level 1b for MVS (July 1998) ............................................................ 437 PKZIP 2.2 Level 1c for MVS (July 1999) ............................................................ 439 Appendix D. Characteristics of Data Compression ..................................... 441 Random data ...................................................................................................... 441 Best compression ............................................................................................... 441 Run-length encoding........................................................................................... 442 Lempel-Ziv-Welch compression algorithm ......................................................... 443 Probabilistic compression methods .................................................................... 443 The PKZIP compression algorithms ................................................................... 444 The GZIP compression algorithm - Deflate ........................................................ 445 Part 8. Glossary and Index 447 Glossary ............................................................................................................ 449 Index .................................................................................................................. 451 T4ASI025-00-00 Contents xv Part 1. An Introduction to PKZIP for MVS T4ASI025-00-00 Introduction 1 Chapter 1. An Introduction to PKZIP PKZIP is a high performance data compression product, containing two main programs, PKZIP and PKUNZIP: The PKZIP program is used to compress or store files into a ZIP format archive. This process can be comprehensively controlled using options allowing such things as compression speed adjustment, password encryption etc. The PKUNZIP program is used to decompress data compressed by PKZIP. A 32-bit Cyclic Redundancy Check (CRC) is used to guarantee data integrity. A ZIP archive is platform independent, therefore data compressed (zipped) on one platform (e.g. UNIX) can be decompressed (unzipped) on another platform (e.g. MVS) by using a compatible version of PKUNZIP. Data compression Data compression is generally achieved by eliminating redundancy within a data stream. This is normally done by identifying areas of the data that contain repeated data patterns and replacing them with smaller coded sequences. For example, a simple technique known as Run Length Encoding (RLE), compresses the following sequence of 10 bytes: E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 by representing it as: 10 E0 PKZIP however, uses far more advanced algorithms to provide enhanced compression performance. For a more detailed discussion of data compression techniques and further information on the algorithms used by PKZIP, please refer to Appendix D. Characteristics of Data Compression. ZIP archives PKZIP uses ZIP archives to store compressed data. You may create as many ZIP archives as you like. ZIP archives have the following features: T4ASI025-00-00 An Introduction to PKZIP 3 Ability to store up to 16,383 files in one ZIP archive. Ability to compress files with sizes up to 4 Gigabytes uncompressed. If files that are greater than 4 Gigabytes need to be processed, then see Part 5. GZIP (GNU zip) Processing on page 133. Ability to create archives up to 4 Gigabytes in size. Along with the compressed data, the following information is stored for each file contained within the archive: The name of the file. The directory date and time of the file. The CRC value prior to compression (See the Cyclic Redundancy Check section below). The compression method used on the file. The uncompressed and compressed sizes of the file. The minimum version of PKZIP required to extract the file. In addition to this, some versions of PKZIP may also store the following extra information for each file: The version of PKZIP that created the archive. A comment about each file in the archive (if any). File attributes (hidden, read only, system). The ZIP archive comment (if any). Finally, ZIP archives can also store platform specific information (for instance, DCB information on MVS) for each file in the archive. When unzipping a file from a ZIP archive, PKUNZIP will determine if the information is relevant to the platform on which it is decompressing, if so this information may be used to create the decompressed file. Cyclic Redundancy Check When a Cyclic Redundancy Check (CRC) is performed on a file, the data making up the file is passed through an algorithm which computes a value based on the contents of the file. The result is an eight hexadecimal digit number for that file. A change in the contents of the file will produce a different CRC value. The CRC process provides a very good means of determining whether one file exactly matches another – if the CRC values are the same then the contents should be the same. 4 PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP calculates a CRC value for a file before it is compressed and stores the value, with the compressed version of the file, in the ZIP archive. When the file is extracted by PKUNZIP, a CRC value is computed for the extracted file data and compared with the original CRC value. If the CRC values stored in the archive and the CRC calculated do not match, this is reported by PKUNZIP. In this circumstance, it is likely that there has been some corruption of the data in the ZIP archive. Data Encryption PKZIP provides the ability to encrypt compressed data, a password being required to decompress the data. It is important to note however that although PKZIP provides an added level of security, it is not 100% secure and should not be relied upon to protect extremely sensitive data. Please remember that PKZIP is a data compression tool, not an encryption tool! Cross Platform Compatibility A ZIP archive can be transferred from one platform to another, and can be decompressed or modified by a copy of PKZIP or PKUNZIP which is running on that platform. The internal format of a ZIP archive is identical no matter which platform compressed the files that it contains. To ensure compatibility ZIP archives must be created by PKZIP 2.04g running on MS-DOS or PKZIP version 2 on other platforms. If you wish to transfer data across platforms using any other version of PKZIP you should check with your supplier first to confirm that your versions of PKZIP are compatible. Please also note that the PKZIP DCL products are not compatible with the PKZIP 2.04g for MS-DOS or PKZIP version 2 products. T4ASI025-00-00 An Introduction to PKZIP 5 Chapter 2. PKZIP Version 2.5 for MVS PKZIP Version 2.5 for MVS is a full version of the PKZIP product running on the MVS platform; providing compression and decompression of files in an MVS environment, and full compatibility with PKZIP 2.04g running on MS-DOS and PKZIP version 2 on other platforms. PKZIP for MVS allows for conversion between the ASCII and EBCDIC character sets. Compressed text files can therefore be transparently moved between IBM Mainframe environments and systems based on the ASCII character set, such as MS-DOS or UNIX. The ZIP file format used by PKZIP for MVS is identical to that used by version 2.04g of PKZIP on MS-DOS and by version 2 of PKZIP on other platforms. Compressed files can be copied to another platform and interpreted by the appropriate version of PKZIP on that platform. PKZIP Version 2.5 for MVS supersedes all previous versions of PKZIP Version 2 for MVS. Many new features have been introduced in PKZIP Version 2.5 for MVS that enhance the performance and capabilities of the product. The features of the product are summarised in this chapter. In addition to supporting the PKZIP format archives, PKZIP for MVS can also be used to create and process GZIP format archives. Further information on this is included in Part 5. GZIP (GNU zip) Processing. This chapter focuses on the use of PKZIP for MVS with PKZIP format archives. General features of PKZIP for MVS PKZIP for MVS has the following general features; they also apply to PKZIP 2.04g for MS-DOS and all other PKZIP version 2 products: Compatible with PKZIP on other platforms, such as MS-DOS, UNIX, VM, VSE, AS/400 etc. High compression ratio (variable dependent upon file type) Ability to store up to 16,383 files in one ZIP archive Ability to compress files with sizes up to 4 gigabytes uncompressed Ability to create archives up to 4 gigabytes in size 32-Bit CRC error checking to ensure data integrity Provision of platform independent data for file transfer. T4ASI025-00-00 PKZIP 2.5 for MVS 7 MVS specific features of PKZIP Version 2.5 for MVS The following features of PKZIP 2.5 for MVS are specific to the MVS platform: PKZIP 2.5 for MVS supports the compression of, and extraction of, files to the following: Sequential files. PDSs and PDS members. VSAM files. Magnetic tapes and cartridges. When compressing files, PKZIP 2.5 for MVS can store allocation information, such as dataset type, record length with the file in the ZIP archive. This information should be sufficient to recreate the file with the same attributes during UNZIP operations. This file attribute information may also be used by other platforms (for example PKZIP for VM). PKZIP 2.5 for MVS supports the compression of, and extraction to MVS Load Libraries. Extracted load modules will remain executable so long as their original blocksize is preserved. See also Restrictions for PKZIP Version 2.5 for MVS later in this chapter. PKZIP 2.5 for MVS supports the compression of, and extraction to Generation Data Groups (GDGs). A GDG generation may also be used as an archive. PKZIP 2.5 for MVS supports ZIP archives of the following file types: Sequential files. PDS members. VSAM ESDS files. Magnetic tapes and cartridges. Datasets processed by PKZIP Version 2.5 can be selected and specified from SYSIN or via a DD statement chosen by the user. An ISPF panel interface is available to simplify the use of the various features within PKZIP 2.5 for MVS. PKZIP 2.5 for MVS can be executed in batch from JCL, from ISPF Panels or invoked from a user’s program (COBOL, ASSEMBLER etc.). PKZIP 2.5 for MVS is Year 2000 compliant. 8 PKZIP for MVS: User Reference T4ASI025-00-00 All dates displayed by PKZIP 2.5 for MVS use four characters e.g. 1997. Dates stored in ZIP archives on all platforms use six bits to represent the year offset from 1980, therefore ZIP archives will not encounter a problem until 2043 (1980+(26-1)). Licensing dates are based on Local Time expressed as a TOD value which is also not subject to a problem with Year 2000 dates. PKZIP 2.5 for MVS runs on MVS/ESA and higher. PKZIP 2.5 for MVS runs in AMODE 31 using storage above the 16Mb line wherever possible. When an I/O call is made it switches temporarily to AMODE 24 and uses only data below the 16Mb line. PKZIP 2.5 for MVS offers more control and increased performance over previous versions. For example, a user can specify that PKZIP should use more storage to improve performance. Configuration file(s) can be used with PKZIP 2.5 for MVS. This allows default commands to be specified in one place and shared between users or groups of users. Using the configuration file removes the need for commonly used commands to be repeatedly specified (for example, in each user’s commands). PKZIP 2.5 for MVS allows specific product components to be licensed. During evaluation all components are made available to the user. After evaluation, various components may be selectively licensed according to the requirements. Please refer to Appendix B. Licensing Guide for more details. T4ASI025-00-00 PKZIP 2.5 for MVS 9 Changes with PKZIP Version 2.5 for MVS Where appropriate, please refer to Part 6. Reference Section for details of the changed commands. Users migrating from Version 2.2 of PKZIP for MVS, with a level less than 1c may be interested to review the later sections, which describe changes introduced at Level 1c. Commands new with PKZIP Version 2.5 The following commands are new in PKZIP Version 2.5 for MVS: 10 Command Affects Description ALIASMEMBER Both Indicates that PDS Alias entries should be processed ATTRIBCENTRAL PKZIP Extended attributes should be stored in the Central Directory only ATTRIBLOCAL PKZIP Extended attributes should be stored in the Local Directory only DELIM PKUNZIP Specifies a record delimiter string to be removed for text files. FILEPROCERR Both Indicates whether processing will continue after a processing error with a file. FILESELERR Both Indicates whether processing will continue after a selection error with a file. GZIP PKZIP Indicates that the output archive will be created in GZIP (GNU zip) format. NIA PKZIP Name In Archive specification is an improved PCP command with pattern matching and multiple commands possible NIASEP PKZIP Name in Archive Separator character. Character used to separate ‘levels’ for the Archive name NOALIASMEMBER Both Indicates that PDS Alias entries should not be processed NOECHO Both Suppresses –ECHO TAPETODISK Both Specifies that a temporary disk base archive should be used instead of directly processing an archive from a magnetic cartridge. TERM PKUNZIP Specifies a file delimiter string to be removed for text files. TIMESTAMP PKZIP Specifies which if the available dates/times will be used to set the timestamp for the file in the PKZIP archive PKZIP for MVS: User Reference T4ASI025-00-00 Commands changed with PKZIP Version 2.5 The following commands have been changed at this level of the product. Command Affects Description of change ARCHVOL PKZIP Supports up to 31 volumes ARCHDATAVOL PKZIP Supports up to 31 volumes HLQ PKUNZIP Multiple HLQs can be used, with improved matching capabilities INDD PKZIP Multiple INDDs can be used OUTVOL PKUNZIP Supports up to 31 volumes OUTDATAVOL PKUNZIP Supports up to 31 volumes OUTINDXVOL PKUNZIP Supports up to 31 volumes TEMPVOL Both Supports up to 31 volumes Messages changed with PKZIP Version 2.5 The following messages are new or have changed: T4ASI025-00-00 Licensing system messages 52, 53, 54, 90 and 91 are new. 010, 011, 012, 015 and 017 - display input commands/comments when these are sourced from SYSIN, PARM or Configuration file. 091 – new message which indicates a processing problem within ZIP. 092 – new message which indicates that a file that has been selected for processing will not be processed because of a detected error. Previously the user would not know which files had not been processed as a result of an error. 099 – new message used for ZIP processing only to confirm that the ZIP archive has been created or updated. 101 – start-up message now displays highest patch and date/time. 104 – text has been clarified. 106 – now indicates that the archive could not be opened. 108 – new message to indicate error in GZIP processing. 109 – new message warning that the input archive does not start with the correct identifier. PKZIP 2.5 for MVS 11 12 129 – text changed to indicate selections may not match when selected files are not available for processing (e.g. someone else has them open). 180 – now includes a dataset name (if appropriate). This message will cause ZIP processing to stop. 207, 208 – indicates a continuation error in commands that have been continued on following lines. 237, 238, 239 – generic messages which indicate problems detected in numerical checks of input parameters. 240, 241 – new messages to indicate redundant or replaced commands. 329, 330 – now include 331 and 332 (with the STRIP being replaced with PAD) and the new NIASEP command. These messages have become generic to other commands rather than specific to STRIP. 331 is now a generic message indicating that the parameter supplied to a command is not recognised. 350 – indicates that the ARCHINDD is being copied to the ARCHOUTDD. 360, 361 - these messages have become generic to other commands (including NIA and HLQ (removing 298 and 299)) rather than specific to PCP. 402 – message changed to apply to ZIP and GZIP archives. 403 – new message when a ZIP archive can not be processing. 408/409 – new messages used by GZIP processing. 453 and 459 – File added and File Updated messages have been clarified. 501, 502, 503, 505 and 506 – format changed to output large file sizes. 521 – new GZIP archive message. 599, 600 – new messages warning of a mismatch of attributes between UNZIP commands and the files in the archive. 605 – was just a Warning indicating that the Local File Attributes were not matched correctly, but processing continued. This is now an error and processing for the file will stop. 612-616 – new messages outputting information for GZIP processing. PKZIP for MVS: User Reference T4ASI025-00-00 796 – new message indicating when record(s) in the output file have been truncated. 865 – this message is output prior to PKZIP or PKUNZIP starting a compression to or extraction from a GZIP archive and indicates which file is currently being processed. 873 – new message indicating internal processing error. 929 – new message indicating if PKZIP suspects that the indicated load module will not execute correctly when restored. 931 – message has been clarified. 932 – message has been clarified and both the ZIP archive name and the ‘converted’ name are output. 933 – now includes an attribute indicator flag that can be used to interpret the unsupported attribute reported. 944 – new message to indicate error in member name when extracting to a PDS. 945, 946 – new messages to indicate a problem when selecting files - see FILESELERR command. 947 – new message for PDS Member Alias processing. 948-950 – new messages related to files and archives > 4GB. 951 – new message related to Archive ‘directory’ entries. 953 – new message to indicate that a file has been skipped because it is ‘busy’. 954 – new warning message to indicate that a non PDS file (with no member name) has been selected for placement in a PDS dataset. 955 – new warning message indicating that the Global Configuration file is busy. 956 – new error message to indicate that to unzip the selected file, a non PDS file would have to be overwritten with a PDS dataset. 957 – new error message indicating that a selected file could not be found – usually associated with a missing DD statement. ISPF Interface Changes The Interface has been updated and made more user friendly. In addition: T4ASI025-00-00 Job cards can now be supplied for the generated batch JCL PKZIP 2.5 for MVS 13 SMS allocation details and a UNIT specification are now supported for the temporary ‘Browse’ datasets. The Translation Tables specified on the Configuration panel are used for all ISPF processing. The interface can now use either the Userid or the TSO PREFIX as the high level qualifier for the configuration and work datasets. Values entered in most panels are now ‘remembered’ across uses of the panel (within the same TSO session). Dataset names are displayed in quotes to indicate that the TSO User prefix will not be concatenated in front of the specified name. There is no longer a requirement for each user to specify the load library to be used, as it is set during installation for all users. The ‘V’ command option, previously used only in the ZIP panel, is now specified using ‘View’ and is available from both the ZIP and UNZIP panels. Other changes with PKZIP Version 2.5 PKZIP 2.5 for MVS has introduced other changes. These and the impact that these might have on existing PKZIP processing are documented in this section: 14 File selection has been re-written for both PKZIP and PKUNZIP to; simplify the processing, remove a number of anomalies and to speed up the process. There is a small chance that for complicated selections, the same selection string will not select the same files in PKZIP 2.2 for MVS and PKZIP 2.5 for MVS. Where complicated selection criteria is used, it is recommended that the user check that the same file(s) are selected under both levels. PKZIP and PKUNZIP will now, by default, output the input commands. This output can be suppressed using the –NOECHO command. Users who do not wish to see the input commands will need to change their input commands to specify –NOECHO, however –ECHO is recommended. The ability to continue commands on subsequent SYSIN or Configuration File records, as described in Chapter 14. Command Input. The ability to include comments as SYSIN or Configuration File records (in both system wide and step specific configuration files), as described in Chapter 14. Command Input. The output now distinguishes commands input from SYSIN, the PARM option and the Configuration file (system wide or step specific) using different message numbers, 010, 011 and 012 respectively. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 For VSAM processing, ARCHVOL and OUTVOL processing has been changed so that they specify the volumes at the cluster level only. In PKZIP 2.2 for MVS, the use of these commands was equivalent to coding the associated *DATAVOL and *INDXVOL with the same volume identified. Now it is possible (though not necessarily desirable) to independently specify cluster, data and index level volume specifications. When compressing a VSAM datasets, the associated VOLUME information (for the DATA and INDEX components) is now collected into a single attribute, which may be used when extracting the dataset. In PKZIP 2.2 for MVS, the volume information was collected into multiple attributes and only the first was used when extracting the dataset. In previous releases, the record format and block size for the temporary file (TEMPTYPE and TEMPBLKSIZ) have defaulted to the same values as the equivalent ARCH command. In this release, the record format defaults to Undefined record format (TEMPTYPE(U)) and the block size for the temporary file is calculated to give ½ track blocking. PKUNZIP will warn the user: * If ZDW is specified on UNZIP but was not specified on ZIP and * If the TEXT/BINARY and the file’s Text/Binary flag are mismatched. In addition, invalid ZDW values are now detected and processing is stopped. In previous releases of PKZIP, the PAD character, which can be specified to pad fixed length records, was assumed to be in ASCII. However the documentation suggested that the PAD character was specified in EBCDIC. In this release the product now matches the documentation, i.e. the PAD character is specified in EBCDIC. Any PKUNZIP processing that included the –PAD command should be checked to ensure that the appropriate PAD character has been specified. The functionality provided by the PCP command is provided more effectively using the NIA command. The PCP command will be removed in a future release. It is recommended that users replace PCP commands with NIA commands. Note that in some situations, particularly when processing members of a PDS, the direct replacement of the ‘PCP’ command with a ‘NIA’ command might produce different file names. Users currently using PCP commands with PDS members are advised to carefully review the two commands and adjust the parameters of the NIA command appropriately - it is possible to achieve equivalent conversion. In general, when converting PCP to NIA commands, review the descriptions of both commands to ensure equivalent function. The functionality provided by the HLQ command is been improved and the separator character has changed from ‘/’ to ‘,’ (‘/’ is still supported but may be withdrawn in a future release). Review the descriptions of the new command to ensure continued compatibility. PKZIP 2.5 for MVS 15 16 The Licensing System has been updated to Version 4.04. The only visible difference is the inclusion of a CPU Table when reporting on the current licenses. This level uses Local time when PKZIP is installed for evaluation and provides a new Short Term License facility. When using the system wide Configuration file (PKZIP.CONFIG.UNZIP and PKZIP.CONFIG.ZIP), previous processing would terminate immediately if the file was held for update by another task. The processing will now attempt the access the configuration file a number of times, warning the user if the file is not available. This processing will output message 955 (a number of times) to the console. Some error detection processing has changed resulting in slightly different messages with different return codes. In all cases however the return code will still be greater than 16. The SMS Classes for VSAM files are now retained in the archive. – OUTSMSxCLASS commands are now used for output VSAM clusters. When using PKZIP with ARCHINDD and ARCHOUTDD, previous processing would not create the ARCHOUTDD file if there is no match for file selections made. PKZIP 2.5 will create the output archive as a copy of the input archive, and issue message 350 (Warning) to indicate that this is what it has done. PKZIP and PKUNZIP both ENQ using the Archive name specified in the -ARCHIVE command to prevent other tasks attempting to update the archive while it is in use. PKZIP will now prevent files > 4GB being processed and archives > 4GB being created. PKUNZIP will not read an archive > 4GB. Storage ‘leaks’ and file allocation processing has been significantly improved to assist in the use of ZIP processing via an API. A Patch module and Patch report are now used to make it easier to determine which patches have and have not been applied. In previous releases, some VSAM attributes that were (NULL) or (NONE) indicating no such value, where still stored in the archive (OWNER was one such attribute). These are now not stored. No processing is effected by these changes, but anyone viewing the details of an archive might see differences. When unzipping to VSAM datasets using NOCRLF processing it was possible through a combination of OUTRECORDSIZE and existing attributes, to get output that contained a Record Descriptor Word (RDW, normally of the form X’LLLL0000’ where LLLL is the record length). This possibility has been removed. Any UNZIP processing using NOCRLF to VSAM files should be reviewed. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 The Operating System identifier used for AS/400 is the same as that used for Operating Systems using the NTFS file system. When doing a VIEWDETAIL the source operating system for archives from either of these platforms will be “NTFS/AS400”, whereas it was just “AS/400”. Attributes are now created in a different order. Users using VIEWDETAIL will see similar attributes but not necessarily in the same order as for previous releases. Note that the order of the attributes is not defined. Note also that the PDS User detail attribute may look different in a VIEWDETAIL but this is does not effect the used portions of this attribute. The new TIMESTAMP command has resulted in a change to the way the time associated with a file in the archive is defined. If the default option is chosen, the time associated with each file in the archive will be the time at which the PKZIP processing started. Previously the time at which the file was written to the archive was used. This time has no meaning and it is no longer possible to create an archive with the time set in this way. Review the TIMESTAMP command for more details. When unzipping using a combination of the default/stored attributes and input commands it was possible to get an unusual combination of Blocksize and Record Length for Record Format F and V files. In addition, Record Format U output files would usually get the Record Length set to the Blocksize. This processing has been tidied up so that output datasets are validly defined when using the defaults and Record Format U files will get an output Record Length of 0. This processing will also ‘correct’ (without warning) datasets’ definitions where these are thought to be invalid, for example Record Format F dataset with a Record Length and Blocksize that are different will have the Record Length set to the Blocksize. When creating a new ZIP archive using a combination of the default attributes and input commands it was possible to get an unusual combination of Blocksize and Record Length for Record Format F files. In addition, Record Format U output files would usually get the Record Length set to the Blocksize. This processing has been tidied up in the same way as the output datasets described above. MVS file attributes can now be directed to the Central Directory (at the end of the ZIP archive), the Local Directory or both (the default). Use the new ATTRIB, ATTRIBLOCAL or ATTRIBCENTRAL commands to control the location of the attributes, as appropriate when an MVS archive is to be transferred to another platform that requires the attributes in a specific place. PKZIP 2.5 for MVS 17 18 ZIP processing now uses the DYNALLOC Dynamic Request Block Extension so additional allocation messages may be output to the system log and/or programmer log (and TSO screen when running under TSO) when a new file is created. This change assists in problem resolution when there is a dynamic allocation error because in most cases users can use this text rather than look up the dynamic allocation error codes. However some informational messages are also output even when the allocation is successful, so users might notice additional output. These messages usually indicate default actions taken by the system when no value is specified and can usually be suppressed by specifically coding the appropriate command so that the default is not taken. For example the following message: IGD01008I UNIT ASSIGNED UNITSYSALLDA could be suppressed by coding a UNIT command. When extracting files, it is possible that jobs that previously ended with return code of 0 will end with return code of 4 because of new message 796 (records truncated). Previous levels of PKUNZIP did not warn users when the output record length was less than the record length of extracted records. In previous releases, a number of attributes of a new archive, including the record length, were incorrectly set to default values (e.g. record length was set to the blocksize), if they were not specified, even when an SMS Class (especially Data Class) was being used. In this release, these values are not set. This may mean archives are created with different (and perhaps incorrect) attributes. This can result in unreadable archives, especially if the archives have been created with record format of F or FB. PKZIP processing that specifies an ARCHTYPE(F) or ARCHTYPE(FB) should be checked to ensure that the record length will be set correctly. In previous releases when compressing a file, it was possible to specify a member selection but select a matching sequential file. For example, the file selection ZIP.INPUT.FILE(MEM) would compress the member MEM if ZIP.INPUT.FILE was a PDS, but could also compress the file ZIP.INPUT.FILE if it was a sequential file. In this release, if a ‘member selection’ has been specified, then only PDS files will match the selection. Any selections specifying members where the required dataset may not be a PDS should be altered appropriately – potentially by coding the file name with and without member selection. PKZIP RECURSE processing has been improved and will more accurately match files. Any commands using the RECURSE option should be checked to ensure that extra files that may be selected are actually required. Each command specified using the PARM JCL option or passed via the parameter list when using the API, is now each printed on a separate line. All commands specified via the parameter list will now be printed – previously only the first 256 bytes would be output. PKZIP for MVS: User Reference T4ASI025-00-00 Additional sequential file formats, including VA, VM, VBA, VBM, FA, FM, FBA, FBM and FBS, are now supported as input and output files. The Record Format FBS may also be used for a ZIP archive. The default value for ARCHBLKSIZ and/or ARCHLRL and whether these values are used, now depends on the ARCHTYPE being created. ZIP processing will detect when an archive might exceed 4 GB and will stop adding files to the archive. Also ZIP processing will detect if an input file exceeds 4GB and will stop processing that file. It is possible to specify 0 for both ARCHBLKSIZ and OUTBLKSIZ, which will allow the system to determine the blocksize. PKZIP will now detect and prevent compression of VSAM Alternate Indexes. In addition, there have been many editorial Changes and improvements to this manual. Changes with PKZIP Version 2.2 for MVS Command changed with PKZIP Version 2.2 Level 1c With this level, the TEMPMCLASS command has been removed. For compatibility reasons, support for this command is still included in the product but this support may be withdrawn in future releases and patches to this level. It is recommended that users migrating to this level remove any uses of the command. Commands new with PKZIP Version 2.2 Level 1b The following commands are new in PKZIP Version 2.2 Level 1b for MVS: -PADVSAM T4ASI025-00-00 -NOPADVSAM PKZIP 2.5 for MVS 19 Commands changed with PKZIP Version 2.2 Level 1b With this level, many redundant and duplicated options and commands have been removed. For compatibility reasons, support for many of these commands is still included in the product but this support may be withdrawn in future releases and patches to this level. It is recommended that users migrating to this level review the following table and remove any uses of the commands listed. Where the command has been removed because it is duplicated, the retained command is listed in brackets following the removed command. PKZIP Changes PKUNZIP Changes OLDRETURNCODE OLDRETURNCODE ARCHATTEMPTS OUTATTEMPTS ARCHAUTH OUTAUTH ARCHCODE OUTCODE ARCHRECOVERY, ARCHSPEED OUTKEYRANGES ARCHDATAATT OUTDATAATT ARCHDATAAUTH OUTDATAAUTH ARCHDATABUFSP (use ARCHBUFSPACE) OUTDATABUFSP (use OUTBUFSPACE), ARCHDATACODE OUTDATACODE ARCHDATAERAS (use ARCHERASE) OUTDATAERAS (use OUTERASE) ARCHDATAFREECA (use ARCHFREECA) OUTDATAFREECA (use OUTFREECA) ARCHDATAFREECI (use ARCHFREECI) OUTDATAFREECI (use OUTFREECI) OUTDATAKRNG ARCHDATANERAS (use ARCHNOERASE) OUTDATANERAS (use OUTNOERASE), ARCHDATANSPND (use ARCHNOSPANNED) OUTDATANSPND (use OUTNOSPANNED), ARCHDATARCVY OUTDATARCVY (use OUTRECOVERY) ARCHDATARECSZ (use ARCHRECORDSIZE) OUTDATARECSZ (use OUTRECORDSIZE) ARCHDATASPEED OUTDATASPEED (use OUTSPEED) ARCHDATASPND (use ARCHSPANNED) OUTDATASPND (use OUTSPANNED) OUTINDXATT OUTINDXAUTH OUTINDXCODE OUTINDXIMBD (use OUTIMBED) OUTINDXNIMBD (use OUTNOIMBED) OUTINDXNREPL (use OUTNOREPLICATE) OUTINDXREPL (use OUTREPLICATE) 20 PKZIP for MVS: User Reference T4ASI025-00-00 Restrictions for PKZIP Version 2.5 for MVS The following restrictions apply to PKZIP Version 2.5 for MVS. ZIP archives created with the PKZIP Data Compression Library Version 1.5 for MVS cannot be processed. In environments that do not use the Integrated Catalog Facility (ICF), PKZIP cannot function fully. It is unable to rename the temporary dataset it creates as a ZIP archive to the name specified by the user. The integrity of the ZIP archive is not impaired in any way and archived files can be extracted successfully. However, the temporary dataset name of the ZIP archive should be changed to the name required by the user after PKZIP has completed. Most MVS sites use ICF and therefore do not encounter this problem. When two (or more) files from a ZIP archive are extracted with the same MVS dataset name, the last file will overwrite any previous file(s). GDG Bases cannot be compressed or extracted. PKZIP for MVS does not support the compression of, and extraction of, files to the following: Spooled datasets PDSE files or members HFS files Spanned files. File types and attributes that are supported by PKZIP for MVS are documented in the following chapters: Sequential File support is documented in Chapter 6. Processing Sequential Files. PDS file support is documented in Chapter 7. Processing PDS Members. VSAM file support is documented in Chapter 8. Processing VSAM Files. Tape file support is documented in Chapter 9. Processing Magnetic Tapes or Cartridges. PKZIP for MVS will not process datasets that are spread over more than 31 volumes. T4ASI025-00-00 PKZIP 2.5 for MVS 21 The number of files or PDS members that can be processed in one operation may be restricted by the number of concurrent DD’s that can be used in the address space, i.e. the size of the TIOT. In most installations this will restrict the number of files that can be processed to around 1630, however increasing the size of the TIOT can increase this limit. For further information on this limit, see the documentation for DD statements in the IBM JCL User’s Guide. Some IDCAMS DEFINE Cluster options can be specified at the Cluster, Data (and Index if appropriate) levels. However a few of these options, when specified using ARCH* or OUT* commands during PKZIP or PKUNZIP operations, will set only the Data (and Index) components. This is because some PKZIP ARCH* and PKUNZIP OUT* commands which apply to Cluster, Data and Index components, currently set both the data and index attributes and ignore the Cluster level component. These may in future, set the Cluster level option only. Commands that may change in this way are shown in the following table. For these commands, it is recommended that the ARCHDATA* and ARCHINDX, or OUTDATA* and OUTINDX* options be used, as these will not change in the future. PKUNZIP Command Comments ARCHEEXT Is effectively the same as setting both ARCHDATAEEXT and ARCHINDXEEXT ARCHOWNER Is effectively the same as setting both ARCHDATAOWNER and ARCHINDXOWNER OUTEEXT Is effectively the same as setting both OUTDATAEEXT and OUTINDXEEXT OUTOWNER Is effectively the same as setting both OUTDATAOWNER and OUTINDXOWNER Some IDCAMS DEFINE Cluster options which can be specified at the Cluster, Data (and Index if appropriate) levels are only retained in the archive for the Data (and Index) components only. In future, the Cluster level option may also be stored in the archive. PKUNZIP options associated with attributes that could change in this way are shown in the following table: PKUNZIP Command OUTOWNER 22 PKZIP for MVS: User Reference T4ASI025-00-00 When processing Tape datasets, without a Tape license, PKZIP and PKUNZIP may request that a Tape be mounted, prior to checking that the product is not actually licensed to process the Tape. In this circumstance, the Tape mount must be satisfied before PKZIP for MVS processing will proceed, even when this processing will just inform the user that it is not possible to process the Tape. PKZIP for MVS will not process catalogued Tape datasets using the file name. To process a Tape dataset, one of the ‘DD’ commands must be used and the Tape dataset must be defined using a DD card in JCL. PDS members containing positioning information (for example Load members with Overlay sections) are not supported. In certain circumstances these might be processed – see Chapter 7. Processing PDS Members. GZIP (GNU zip) file processing has a number of restrictions as documented in GZIP restrictions on page 142. A ZIP archive is restricted to 4 Gigabytes. However, to ensure that there is sufficient space to write the control information at the end of the archive, ZIP processing will calculate the expected size of this information and will stop adding files when this, added to the size of next compressed file, exceeds 4 Gigabytes. In practise this means that the largest amount of compressed data that may be included in the archive is restricted to 132 Kilobytes less than 4 Gigabytes. Dataset Alias entries cannot be used to select datasets. Specification of alias entries as part of file selection, may cause unexpected ZIP errors when it attempts to find the associated dataset. PDS Member Aliases are supported. Migration Considerations Compatibility Issues with archives created by previous levels of PKZIP for MVS are presented in Chapter 11. Compatibility Issues. Migration considerations from PKZIP Version 2.2 Some processing in PKZIP Version 2.5 has corrected or subtly changed the way certain commands worked in PKZIP Version 2.2 and before. When migrating to PKZIP Version 2.5, a PKZIP Version 2.2 user should review the changes documented in Changes with PKZIP Version 2.5 for MVS presented earlier in this chapter. In addition to the migration considerations described in that section, a PKZIP Version 2.2 user should be aware of the following: T4ASI025-00-00 PKZIP 2.5 for MVS 23 Cartridge (3480 and 3490) processing has been changed so that by default these archives are processed directly from the tape rather than being copied to a temporary (DISK) file. This change has been found to improve performance. If required, processing can be forced to use a temporary (DISK) file by specifying the -TAPETODISK command. The PKUNZIP –HLQ command has been changed to support multiple translations. This may cause two problems: Command input which specified two HLQ commands, would in previous releases, only use the last command specified. With PKZIP 2.5 for MVS, all HLQ commands will be used. PKUNZIP command input should be checked to ensure that this change does not impact processing. This translation is now performed in EBCDIC. Previously this command was translated to ASCII prior to its use. This change should have no effect, where standard ASCII translation is used. If non standard translation is used, particularly involving the file separator characters (‘/’, ‘\’ or ‘.’), these commands should be reviewed to ensure that they continue to work as required. The PKZIP –INDD command has been changed to support multiple input datasets. In previous releases only the last INDD command would be used. Users who have coded multiple INDDs will see different results. When using INDD, it was possible (though not documented in the manual) to specify a member in the INDD JCL DD card, with a member selection on the –INDD command. In this situation, only the member(s) specified on the -INDD command would be compressed into the archive, the member specified on the JCL DD card would be ignored. (This is the same processing that would occur if no member had been specified on the JCL DD card.) This processing has changed in PKZIP 2.5 for MVS. Now if a member is specified on the JCL DD statement, this member only is compressed into the archive. Any member specifications on the INDD command are ignored (without warning). To ensure compatibility between PKZIP 2.5 for MVS and PKZIP 2.2 for MVS, any member specification on any DD statement used for INDD processing should be removed. Migration considerations from PKZIP Version 2.1 Some processing in PKZIP Version 2.5 has corrected or subtly changed the way certain commands worked in PKZIP Version 2.1/7 and before. In addition to noting the considerations listed for PKZIP Version 2.2, when migrating to PKZIP Version 2.5, a PKZIP Version 2.1 user should be aware of the following: 24 PKZIP for MVS: User Reference T4ASI025-00-00 The PKUNZIP –HLQ command now works as documented in the manual. In PKZIP Version 2.1, in some cases when the <old name> did not match, the substitution to the <new name> was still made. For example, when the <old name> was “* *” (i.e. two asterisks separated by a blank), this could be treated as a match. Users should verify that –HLQ commands have been coded correctly. In an SMS environment, where an SMS class had been specified, the PKZIP 2.1 default values for block size, record length and space information (type, primary and secondary), directory block (if applicable), organisation and record format were still specified on the allocation – (potentially) overriding the SMS class specification. In PKZIP 2.5 for MVS, these values are only specified on the allocation if they are actually used, i.e. if the associated commands have been specified. So an allocation in PKZIP 2.1 could be forced to the PKZIP default values, whereas using the same commands in PKZIP 2.5 for MVS would allow the SMS class would decide. All jobs that specify an SMS class should be checked to ensure that the resultant files will have the correct attributes. Note that this change could affect both archives and output files. In PKZIP 2.1 for MVS, –VIEWing an empty file gave no messages and a return code of 0. In PKZIP 2.5 for MVS this will give message 402 and a return code of 24. Licensing: PKZIP 2.5 for MVS uses a new licensing utility which removes some of the restrictions of the licensing system used by PKZIP 2.1 for MVS. As a result, users migrating to PKZIP 2.5 for MVS will need to obtain and apply a new license key, as documented in Appendix B. Licensing Guide. PKZIP 2.5 for MVS (by default) stores file attributes in the archive. These provide the default attributes when PKZIP 2.5 for MVS is used to UNZIP an archive. This could cause archives that are created and extracted on MVS to behave differently in PKZIP 2.5 for MVS. For example, PDS members will by default be restored to a PDS, whereas in PKZIP 2.1 for MVS, the default processing was to restore each PDS member as a separate sequential file (unless –MAKEPDS was specified). To replicate PKZIP 2.1 for MVS processing, the PKZIP 2.5 for MVS command –NOATTRIB may be used for PKZIP and PKUNZIP, in which case: PKZIP will not store file attributes in the archive. This is not recommended. PKUNZIP will ignore attributes in the archive. This option is recommended, as it ensures attributes are available if needed. The new Configuration file (see Chapter 14. Command Input) provides a useful place to specify standard PKZIP 2.5 for MVS commands without changing existing command files. T4ASI025-00-00 PKZIP 2.5 for MVS 25 Chapter 3. Getting Started This chapter describes some of the most frequently used features and commands of PKZIP for MVS and how to use them. This chapter covers: Introduction to PKZIP for MVS. Invoking PKZIP and PKUNZIP using JCL Essentials for PKZIP and PKUNZIP. It then reviews various examples of PKZIP for MVS processing, specifically: Compressing a dataset Viewing the contents of an archive Decompressing a dataset Updating or Refreshing a file Testing a ZIP archive Deleting a file. Introduction to PKZIP for MVS PKZIP for MVS consists of two separate programs: PKZIP which provides compression of datasets into an archive PKUNZIP which provides decompression of datasets from an archive. To use either of these programs, the user must specify: T4ASI025-00-00 Commands, which tell PKZIP or PKUNZIP what processing they are to perform and how they are to do it. Commands are identified by a preceding hyphen (“-“). For example, -ECHO is the command that specifies that command input should be reported in the output for the program. File selections, which identify the files to compressed into an archive (PKZIP) or decompressed from an archive (PKUNZIP). File selections are distinguished from commands because they are not preceded by a hyphen (“-“). Getting Started 27 These commands and file selections can be specified in a number of ways. The most common way, which is the way that will be used in the examples presented in this chapter, is to run PKZIP and PKUNZIP as batch jobs using JCL and specify the commands and file selections using via SYSIN, as shown in the next section. Invoking PKZIP or PKUNZIP using JCL In these examples we will be running PKZIP for MVS in batch by submitting JCL. However, if required, PKZIP for MVS can also be run via the ISPF panel interface (see Part 4. Additional Facilities) or it can be called from a user written program (see Chapter 15. Calling PKZIP from a Program). The example below demonstrates the basic JCL statements required to run PKZIP. //<job card>1 //ZIP EXEC PGM=PKZIP2,REGION=2M3 //STEPLIB4 DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=*5 //SYSIN DD *6 -ECHO <commands>7 /* // Notes 28 1. <job card> should be replaced with the job details required for running this job, in accordance with your installation standards. 2. To add (compress), update, freshen, delete or view compressed files within a ZIP archive use the ‘PKZIP’ program. To extract (decompress), test or view compressed files in a ZIP archive use the ‘PKUNZIP’ program. 3. PKZIP for MVS should normally run within a region size of 2Mb, however this value is dependent on the number and type of files being processed. If you encounter storage problems then this value should be increased but please refer to Use of extended storage by PKZIP in Chapter 13. Performance first. 4 STEPLIB specifies the library that contains PKZIP for MVS. PKZIP may be placed in the JOBLIB or in one of the libraries shared by all MVS processing (e.g. LNKLST), in which case there would be no need to use the STEPLIB DD. 5 SYSPRINT contains all the messages output by PKZIP. The optional DD statement SYSUDUMP may also be included to provide additional information in the event of a problem. 6 SYSIN is the usual mechanism for supplying commands to PKZIP. Alternatively you can use the PARM parameter on the EXEC statement, or the Configuration file as described in Chapter 14. Command Input for more information. PKZIP for MVS: User Reference T4ASI025-00-00 7 The remaining commands specify the processing to be carried out by PKZIP. See the examples in this chapter for more details. Return Codes PKZIP issues a completion code dependant on the results of the processing that was carried out. The completion code can take the following values: 0 Processing has completed without errors being detected. 4 A warning message has been output but processing has continued. 8 or higher An error has occurred during processing, please refer to the error messages for more details. Each message issued by PKZIP has a completion code value associated with it. The final completion code issued is the maximum value of the codes associated with the messages issued during the job step. A return code greater than zero indicates that there are one or more warning or error messages in the job output. Note that throughout the evaluation period, PKZIP issues the warning message ZIP023W which reminds the user that the license period will soon expire. As a result, jobs run during evaluation will have a minimum return code of 04. During this period, it is important that you check all messages output by PKZIP to ensure that no other warnings have been overlooked. Please refer to Chapter 26. PKZIP and PKUNZIP Messages, for details of the various messages that can be output by PKZIP. Essentials for running PKZIP and PKUNZIP As noted previously, the programs PKZIP and PKUNZIP are responsible for compression and decompression respectively. This section describes the essential requirements for using these two programs. PKZIP PKZIP is used to take a number of datasets and compress these into a single dataset (ZIP archive). To achieve this, PKZIP needs to be told three things: T4ASI025-00-00 1. The action to perform – this is PKZIP command as shown below 2. The archive into which the datasets are to be compressed 3. The files that are to be added to the archive. Getting Started 29 PKZIP can perform various actions according to one of the following commands: [ -ADD | -DELETE | -FRESHEN | -UPDATE | -VIEW ] The actions are described below. -ADD is the default action if none of the above actions are specified. Command Description -ADD Used to add files that are not already present into a new or existing ZIP archive. -DELETE Used to delete selected files from an existing ZIP archive. -FRESHEN Used to update existing files in an existing ZIP archive. -UPDATE Used to add new files to or update existing files in an existing ZIP archive. -VIEW Used to display details of selected files in an existing ZIP archive. Each of the actions requires a ZIP archive to process so the -ARCHIVE(<ZIP dataset name>) command (or alternative) must always be specified. Finally we must specify the dataset(s) to be added, deleted, freshened, updated or viewed in the archive. We can do this using standard MVS dataset naming, for example: MY.INPUT.DATA.SEQ This line identifies a single file that is to be processed by PKZIP. PKUNZIP PKUNZIP is used to extract a number of compressed datasets (ZIP files) from single dataset (ZIP archive). To achieve this, PKUNZIP needs to be told three things: 1. The action to perform – this is PKUNZIP command as shown below 2. The archive from which the datasets are to be decompressed 3. The files that are to be extracted from the archive. PKUNZIP can perform various actions according to one of the following commands: [ -EXTRACT | -TEST | -VIEW ] 30 PKZIP for MVS: User Reference T4ASI025-00-00 The actions are described below. -EXTRACT is the default action if none of the above actions are specified. Command Description -EXTRACT Used to extract selected files from an existing ZIP archive. -TEST Used to delete selected files from an existing ZIP archive. -VIEW Used to display details of selected files in an existing ZIP archive. Each of the actions requires a ZIP archive to process so the -ARCHIVE(<ZIP dataset name>) command (or alternative) must always be specified. Finally we must specify the dataset(s) to be extracted, tested or viewed in the archive. We can do this using standard MVS dataset naming, for example: MY.INPUT.DATA.SEQ This line identifies a single file that is to be processed by PKUNZIP. Compressing a dataset The following example shows how to compress a dataset using PKZIP for MVS. //ZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP)1 -ARCHUNIT(SYSDA)2 MY.INPUT.DATA.SEQ3 /* This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP453I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) MY.INPUT.DATA.SEQ Compressed file MY.INPUT.DATA.SEQ as MY/INPUT/DATA/SEQ4 (Deflated 85%) PKZIP MVS 2.5 level x ending. T4ASI025-00-00 Getting Started 31 Notes In this case, the sequential dataset MY.INPUT.DATA.SEQ is to be compressed into the new ZIP archive OUTPUT.FILE.ZIP, which is created on a SYSDA volume. Please refer to Part 6. Reference Section for more information on individual commands if required. 1. ZIP archives can be considered as a large envelope or box into which the compressed files are placed. Please note however that an empty dataset is not the same as an empty archive. ZIP archives created by PKZIP for MVS cannot be pre-allocated, only PKZIP should be used to create new archives. 2. You should tell PKZIP how to create the ZIP archive, the recommended minimum information is a volume name, unit name or a DFSMS storage class. By default ZIP archives are created as sequential datasets but, if required, you have full control over the type of archive created using the various -ARCH commands available. 3. You tell PKZIP what to compress using a ‘file selection’. Any command which does not begin with a "-" is considered to be a file selection. In this example we tell PKZIP to compress the sequential dataset MY.INPUT.DATA.SEQ. You can specify a file for compression via a DD statement if you prefer (see -INDD in Chapter 21. PKZIP Commands) but a file selection has the advantage of wildcards. For example, to zip up all your input data files you could type MY.INPUT.DATA.* (see <dataset name> in Chapter 21. PKZIP Commands for more information). 4. To ensure cross platform compatibility, all MVS dataset names are converted to the standard PKZIP MS-DOS format i.e. MY/INPUT/DATA/SEQ. When you unzip the file, the conversion is reversed to recreate the original MVS name. The compressed version of the sequential dataset is known as a ZIP file within the ZIP archive. Viewing the contents of an archive The following example shows how to view the contents of a ZIP archive (created in the previous example), using PKZIP for MVS. //STPZIP EXEC PGM=PKZIP1,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEW2 /* 32 PKZIP for MVS: User Reference T4ASI025-00-00 This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP501I ZIP502I ZIP503I ZIP505I ZIP506I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEW Length Method Size Ratio Date Time CRC-32 Name3 ---------- ------- ---------- ----- ---------- ----- ----------1969 DeflatN 188 91% 04-04-19xx 11:19 4DA4CA28 MY/INPUT/DATA/SEQ ------------------- ----1969 188 91% PKZIP MVS 2.5 level x ending. Notes 1. The -VIEW command is available via the programs PKZIP or PKUNZIP. 2. The -VIEW command has various options that can be used to tailor the output. For example, if you have multiple files within the archive then the output can be sorted by the file’s attributes including name, size and compression ratio. 3. This example demonstrates a standard view of the archive. It displays information about the files in the archive including the original length of the file, the compression method and the compressed file size. For a full description of the information provided by the -VIEW command and the various options available please refer to Chapter 23. PKUNZIP Commands. -VIEWDETAIL One useful option is the -VIEWDETAIL command. It displays the full technical details, including any file attributes stored, for each file in the archive. Running a -VIEW or -VIEWDETAIL on an existing archive can be very helpful if you are experiencing problems with unzipping from, or adding to, that archive. For more information on problem solving please refer to Chapter 25. What To Do If You Have a Problem. //STPZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEWDETAIL /* This step could give the following output: T4ASI025-00-00 Getting Started 33 ZIP101I ZIP010I ZIP010I ZIP010I ZIP507I ZIP508I ZIP509I ZIP510I ZIP511I ZIP512I ZIP513I ZIP514I ZIP515I ZIP520I ZIP519I ZIP519I ZIP519I ZIP519I ZIP519I ZIP519I ZIP519I ZIP519I ZIP519I ZIP501I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEWDETAIL Filename: MY/INPUT/DATA/SEQ File type: Text Date and Time: 04-Apr-19xx 11:19:16 Compression Method: DeflatN Compressed Size: 188 Uncompressed Size: 1969 32 bit CRC value : 4DA4CA28 Created by: PKZIP: 2.0 under MVS Needed to extract: PKUNZIP: 2.0 File attributes Secondary quantity: 5 Space allocation: Tracks Record format: Undefined Volume serial(s): TSTVOL Block size: 6160 Record length: 6160 Dataset organisation: Sequential File Creation Date: 19xx0101 Last Reference Date: 19xx0404 PKZIP MVS 2.5 level x ending. Note: The order in which attributes are displayed may vary. Decompressing a dataset The following example shows how to extract ("unzip") a dataset using PKZIP for MVS. //UNZIP EXEC PGM=PKUNZIP1,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -OUTVOL(NEWVOL)2 /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP609I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -OUTVOL(NEWVOL) ZIP file MY/INPUT/DATA/SEQ inflated to MVS file MY.INPUT.DATA.SEQ PKUNZIP MVS 2.5 level x ending. Notes 1. 34 To extract files from an archive you must call the PKUNZIP program. PKZIP for MVS: User Reference T4ASI025-00-00 2. The extracted dataset is created according to the stored file attributes (if any) and the -OUT commands that override them. In this case the dataset will be created on the volume NEWVOL. Information required to create the dataset which is not provided by the stored file attributes or overridden by the -OUT commands may be defaulted by PKUNZIP. If the extracted dataset already exists, then (by default) PKUNZIP will not overwrite it. To overwrite a dataset or PDS member please use the -OVERWRITE command. To add new members to existing PDSs use the -INSERTMEMBER command. Alternatively the extracted file can be given a new name if required by using the -HLQ command. These commands are documented in Chapter 23. PKUNZIP Commands. By default, PKUNZIP will extract all files in the archive. If you have more than 1 file in the archive, then individual or groups of files can be selected for extraction if required. See <dataset name> in Chapter 23. PKUNZIP Commands for more information. Updating or Refreshing a file You cannot -ADD a file that already exists in a ZIP archive, however you can update it using the -UPDATE or -FRESHEN commands. The –UPDATE and –FRESHEN commands differ in their processing of files that do not already exist in the archive. If a file selected for compression doesn't already exist in the archive then -UPDATE will add it, but -FRESHEN will ignore it. The following example shows how to update a file in a ZIP archive using PKZIP for MVS. //UPDATE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA)1 -UPDATE MY.INPUT.DATA.SEQ /* This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP459I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) -UPDATE MY.INPUT.DATA.SEQ Updated file MY.INPUT.DATA.SEQ as MY/INPUT/DATA/SEQ (Deflated 85%). PKZIP MVS 2.5 level x ending. T4ASI025-00-00 Getting Started 35 Notes 1. It is not necessary but is recommended that you specify a volume, unit or DFSMS storage class for a new or updated ZIP archive. Testing a ZIP archive The following example shows how to test the integrity of files contained within a ZIP archive using PKZIP for MVS. //TEST EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -TEST1 /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP608I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -TEST File T4ZIP/SYSTST/SEQ tested ok. PKUNZIP MVS 2.5 level x ending. Note 1. When processing the –TEST command, PKUNZIP will perform all the actions which would normally occur during an -EXTRACT command, except that no data is actually extracted or written to a file. The validity of the data is confirmed by checking it against the stored CRC value (see Cyclic Redundancy Check in Chapter 1. An Introduction to PKZIP, for more details). Deleting a file The following example shows how to remove a file from a ZIP archive using PKZIP for MVS. //UPDATE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA)1 -DELETE MY.INPUT.DATA.SEQ /* 36 PKZIP for MVS: User Reference T4ASI025-00-00 This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP352I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) -DELETE MY.INPUT.DATA.SEQ Deleted file MY/INPUT/DATA/SEQ from ZIP archive PKZIP MVS 2.5 level x ending. Note 1. T4ASI025-00-00 It is not necessary but is recommended that you specify a volume, unit or DFSMS storage class for a new or updated ZIP archive. Getting Started 37 Part 2. File Processing T4ASI025-00-00 File Processing 39 Chapter 4. File Selection and Name Processing This chapter describes in overview, how to select files for compression and decompression and how ZIP files (in an archive) and created MVS datasets are actually named. Selecting files for compression Files can be selected for compression in two ways: Using one or more file selections. This method allows the use of wildcards to select multiple files. Via a DD name in the JCL that is referenced using the -INDD command. This method is useful when writing JCL procedures or compressing special files such as GDGs. For more details on selecting files, please refer to the <dataset name> and -INDD commands in Chapter 21. PKZIP Commands. ZIP file names When an MVS file is added to a ZIP archive, its name is converted to the UNIX like format supported by PKZIP on other platforms. By default this processing just involves converting the file name to ASCII and changing the ‘.’ MVS qualifier separators to UNIX directory levels. So the file MY.INPUT.DATA.SEQ will be stored as MY/INPUT/DATA/SEQ. PDS members are treated as another level in the hierarchy, so the member MY.INPUT.DATA.PDS(MEMBER) will be stored as MY/INPUT/DATA/PDS/MEMBER. PKZIP processing includes a number of commands that will alter the default processing, including -PATH/-NOPATH and -NIASEP. The most important is the –NIA command, which provides the ability to create almost any combination of characters for the output file name. When using the –NIA command, be careful to ensure that the generated name is valid for the target platform. Selecting files for decompression ZIP file names When selecting a file from a ZIP archive, it is helpful to understand ZIP file names (i.e. the names of files in the archive) and how MVS file names are converted to ZIP file names that are stored in a ZIP archive. T4ASI025-00-00 File Selection 41 ZIP file names in a ZIP archive are stored in UNIX format, with ‘/’ separators between levels of the directory and ‘.’ characters between names and extensions. For example, the file SYSTEM.INI in the directory WINDOWS could be stored in a ZIP archive with the name WINDOWS/SYSTEM.INI. ZIP file selection There are two ways to select a file: 1. Using an MVS name. 2. Using a UNIX style name – this is distinguished from an MVS name by being surrounded in “” (double quote) characters. To understand both these options, consider an example ZIP archive, from which the ZIP file with the name WINDOWS/SYSTEM.INI is to be extracted. If the file selection in placed in double quotes, then the file selection is just compared with the ZIP file name. e.g. "WINDOWS/SYSTEM.INI" will match. If it is not in quotes then the file selection is assumed to be an MVS style dataset name. To do the comparison PKUNZIP must convert the MVS style name into a 'ZIP file' type name. e.g. WINDOWS.SYSTEM.INI gets converted to "WINDOWS/SYSTEM/INI". Unfortunately this means that the .INI is not interpreted as an extension (it gets interpreted as a dataset component) so it will not match. In general, when unzipping a file from another platform, it is best to VIEW the contents of the ZIP archive and then use the ZIP file name in quotes to select the file, ensuring that the correct case is used. e.g. To select: Windows/Autoexec.bat enter "Windows/Autoexec.bat". For more details on selecting files for decompression, please refer to <dataset name> in Chapter 23. PKUNZIP Commands. Note: 42 In general, use the UNIX style name (i.e. the quotes) to select the file(s) when the archive is not from an IBM MVS, VSE or VM platform. When using an MVS style name (i.e. without quotes) for a file name that has an extension (e.g. SOURCE.TXT), the file must be selected using wild cards. For example, if the archive contains the file SOURCE.TXT, then the MVS selection SOURCE** can be used. PKZIP for MVS: User Reference T4ASI025-00-00 MVS file names When a file is extracted from a ZIP archive, its name must be converted from the UNIX like format supported by PKZIP on other platforms, to an MVS format name. By default, this processing just involves converting the Zip file name to EBCDIC and changing the ‘\’ separators to ‘.’ MVS level separators. This conversion is not appropriate if the Zip file name is not suitable for use on an MVS system (for example it contains blanks). PKUNZIP processing includes a number of commands that will alter this default processing, including -CNVEXT. The most important is the –HLQ command, which can be very useful when the Zip file name is not appropriate for an MVS system. T4ASI025-00-00 File Selection 43 Chapter 5. ZIP Files File formats A ZIP archive holds files internally in either Text or Binary format, both formats are compatible with other platforms supported by PKZIP. Text files contain alphanumeric data which is "human readable" and can include the characters A-Z, a-z, 0-9 along with various punctuation and special characters such as ",.@#%()&*. Text files should be compressed using the -TEXT command. Binary files contain raw, "machine readable" data i.e. a stream of hexadecimal values whose meaning is interpreted by the application which processes it. For example, the value x'1AFE' could be interpreted as the number 6910. Binary files should be compressed with the -BINARY command. If a file contains both text and binary data, then the file should be treated as all binary and compressed with the -BINARY command. This data may cause problems when moving ZIP archives across platforms, please refer to the section on Mixed Binary and Text Files in Chapter 12. Cross Platform Support for more guidance. If neither -TEXT nor -BINARY is specified when compressing a file, PKZIP will read a portion of the selected file to determine its most likely file type, and will compress it appropriately. The determination process can affect performance so it is recommended that you specify either the -BINARY or the -TEXT command if the file type is known. The -VIEWDETAIL command (see the -VIEW command in Chapter 23. PKUNZIP Commands for more details) can be used to examine whether a particular file in a ZIP archive is in binary or text format. Special consideration must be given to binary files that have variable record lengths, as discussed later in this chapter. Text files Text files held by PKZIP are always in ASCII format, and will normally have embedded delimiters at the end of each record. This format may appear strange to an MVS user, but it is common across all versions of PKZIP and ensures that a text file compressed on an EBCDIC platform can be decompressed on an ASCII platform (and vice-versa) without the data content changing. PKZIP for MVS transforms text files into the required format as they are compressed. This transformation involves; translating each character in the file from EBCDIC to ASCII using a translation table, adding a record delimiter to the end of each record compressed, and adding a file terminator to the final record in the file. T4ASI025-00-00 ZIP Files 45 By default, PKZIP uses ASCII CR/LF (x'0D0A') as the record delimiter and ASCII CR/LF/Ctrl-Z (x'0A0D1A') as the file terminator. These defaults can be changed using the -DELIM and -TERM commands respectively (see Chapter 21. PKZIP Commands for more details). It may be useful to change the record delimiters and file terminator when moving an MVS file to another platform, such as UNIX (see Record delimiters and file terminators in Chapter 12. Cross Platform Support for more information). By default, PKZIP uses a translation table called ASCII for the translation of characters from EBCDIC to ASCII (and vice-versa). Several translation tables are available on the installation media, one of which should be selected for use as the default. The installation process selects the required table from those available, copying it and naming the copy ASCII. It is recognised that the available translation tables may not suffice for all countries or all situations, especially on those sites where text files are received from several different countries for processing into a single format. The source of the translation table used by PKZIP and PKUNZIP has been supplied, together with instructions for modifying the table to create new tables (see Chapter 16. Translation and Translation Tables for more details). This enables sites to modify the translation tables as required. The -TRAN and -FTRAN commands (see Chapter 21. PKZIP Commands) can be used to specify a new or different translation table to be used for a particular operation. When text files held in a ZIP archive are to be decompressed, PKUNZIP for MVS will transform them from text files into MVS format files. PKUNZIP for MVS will examine the files for CR/LF or CR/LF/Ctrl-Z sequences to determine the record delimiters, and will use these delimiters to mark the end of each record. Each record is then written into the format of the dataset specified. Records that are written into fixed length record datasets are truncated or expanded (with space characters) as necessary (see also the -STRIP command in Chapter 21. PKZIP Commands and the -PAD command in Chapter 23. PKUNZIP Commands). The -NOCRLF command (see Chapter 23. PKUNZIP Commands) can be used to specify that PKUNZIP for MVS should not examine the data for record delimiters but should instead use the record length of the dataset into which the file is being decompressed. PKUNZIP for MVS will also translate characters within text format files from ASCII to EBCDIC as they are decompressed. This is done using the translation table, as described above, or different translation tables can be specified using the -TRAN command (see Chapter 23. PKUNZIP Commands). Note that for text files compressed and decompressed entirely on an MVS system, the transformation of files into and out of ZIP text format is entirely transparent. Binary files Binary files compressed by PKZIP for MVS are compressed exactly as found in the MVS files - no translation of the data is performed. 46 PKZIP for MVS: User Reference T4ASI025-00-00 As a result, no record delimiters are held within binary format files. Record delimiters cannot be distinguished from data (e.g. is the sequence x'0A0D' the decimal number '2573' or is it the ASCII CR/LF record delimiter?). This means that when a binary format file is decompressed, it is always decompressed at the record size which is the maximum supported by the dataset into which it is being decompressed. For certain variable format files, this may mean that the file record structure is lost, as the file will no longer be identical to that which was compressed. For these files, it is recommended that the -ZDW command is used, see below. Binary files with variable length records You must use the -ZDW command to preserve the record lengths of a binary format file with variable record lengths. If you specify the -ZDW command you should also specify the -BINARY command. Binary files compressed by PKZIP for MVS with the -BINARY -ZDW commands are compressed exactly as found in the MVS files - no translation of the data is performed. In addition, the ZIP file contains, for each record, the exact size of that record in an area known as the ZDW (Zip Descriptor Word). When the file is decompressed, these ZDWs are used to determine the length of the original record. Note that these records must still fit into the output dataset. Records which are written into fixed length record datasets are truncated or expanded (with binary zero characters) as necessary (see also the -STRIP command in Chapter 21. PKZIP Commands and the -PAD command in Chapter 23. PKUNZIP Commands). The -ZDW command was written specifically for IBM mainframe users (MVS, VM and VSE) and may not be supported on other platforms yet. If your target platform does not support the -ZDW command then it may not be possible to preserve variable record lengths of a binary file, in these cases the file should be compressed with just the -BINARY command before transfer. Please refer to the -ZDW command in Chapter 21. PKZIP Commands for more guidance. File attributes When compressing files PKZIP for MVS will store allocation information, such as dataset type, record length with the file in the ZIP archive. This information should be sufficient to recreate the file with the same attributes during UNZIP operations. This file attribute information may also be used by other platforms (for example PKZIP for VM or PKZIP for VSE). T4ASI025-00-00 ZIP Files 47 Attributes created by PKZIP may not be recognised on other platforms and other platforms may generate attributes that are not recognised by PKZIP for MVS. Attributes may be displayed using the DETAIL option of the –VIEW command. Using this command, attributes will be displayed with a text indicator of their meaning - attributes that are not recognised will generate a 518 warning message. File Attribute Storage File attributes may be stored in two places in the ZIP archive: In the Central Directory which is at the end of the archive. In the Local Directory with each file in the archive. PKZIP for MVS does not use the attributes that are stored in the Local Directory. When creating an archive, commands can be used to indicate whether attributes should be stored in the Central Directory, the Local Directory, both, or neither. If the archive is to be used on the MVS platform, then the attributes must be in the Central Directory. If the archive is to be used by a product that supports the file attribute information (e.g. PKZIP for VM), then the attribute location (Local Central or both) will depend on what the target product will support. If the archive is intended for a platform that does not support MVS file attributes (e.g. PC), then these can be suppressed. Further information is included in Chapter 11. Compatibility Issues. The location of attributes is specified using the ATTRIB, ATTRIBCENTRAL, ATRRIBLOCAL and NOATTRIB commands when creating the archive. By default attributes are created in both the Local and Central Directories. The additional storage requirements for file attributes depends on the type of file and how it was defined, but the following figures give an indication: PDS member: 200 bytes Sequential file: 100 bytes VSAM file: 350 bytes Large file support When compressing large files, consider the following: 48 The choice of block size will significantly effect the amount of data that will fit on a single volume. In general, half track blocking (so that two blocks fit in one track) will give the best performance as well as best space utilisation for both ZIP archives and ZIP temporary files. Note that the default allocation for ZIP temporary files is half track blocking. PKZIP for MVS: User Reference T4ASI025-00-00 ZIP Temporary files hold the ‘compressed’ form of the input dataset – changing the compression method will change the space requirement for this file and the resultant archive. When updating an existing archive, sufficient space must be available for the old archive, the new archive and the temporary files. When creating a new archive (unless the processing is using ARCHOUTDD), there should be no need to specify the size parameters for temporary files (i.e. TEMPSPACE, TEMPPRIMARY and TEMPSECONDARY) as these will use the ARCH* values by default. The largest temporary file will be the size of the largest (compressed) file being added to the archive. Temporary files should never be larger than the archive. See File Size Recommendations next. When using ARCHOUTDD to create a new archive, ensure that the TEMP* parameters are specified appropriately. Temporary files must be large enough to hold the ‘compressed’ version of the largest file being processed. See File Size Recommendations next. File Size Recommendations When compressing large files, the default space allocations for the archive and the temporary files may be insufficient. The following general rules may be used to calculate more appropriate sizes for the primary and secondary extents. Note that it is possible to use a Temporary disk archive when processing a Tape based archive. In this case, the size specified should match the data in the Tape archive. Archive File Size These sizes are specified using the ARCHPRIMARY and ARCHSECONDARY commands. Primary: One quarter (25%) of the total size of the file(s) to be compressed. Secondary: One tenth (10%) of the total size of the file(s) to be compressed. Temporary File Size These sizes are specified using the TEMPPRIMARY and TEMPSECONDARY commands. T4ASI025-00-00 Primary: One quarter (25%) of the size of the largest file to be compressed. Secondary: One tenth (10%) of the size of the largest file to be compressed. ZIP Files 49 50 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 6. Processing Sequential Files PKZIP for MVS is capable of: Compressing Sequential files into a ZIP archive Creating and processing ZIP archives which are Sequential files Decompressing data from a ZIP archive into Sequential files. Examples showing PKZIP for MVS working with Sequential files are included in Chapter 3. Getting Started (page 27). In particular, review the sections Compressing a dataset, Viewing the contents of an archive and Decompressing a dataset. These examples show PKZIP for MVS processing a single, fully specified dataset. Wild card processing and/or multiple specifications of fully specified files can be used to add or extract a number of files to/from an archive. In addition to specifying an input dataset by name, PKZIP for MVS supports the use of JCL DD cards to define sequential datasets to be processed, as discussed in Processing Sequential files using JCL DD cards later in this chapter. Special consideration must be given when processing Generation Data Groups using PKZIP for MVS, as explained in GDG support later in this chapter. The Sequential file handling capability is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. Supported Sequential Record Formats PKZIP for MVS supports the compression and decompression of the following sequential Record Formats: Undefined (U). Fixed and Variable record formats, specifically F, FA, FB, FM, FBA, FBM, V, VA, VB, VM, VBA, VBM and FBS. PKZIP supports ZIP archives of the following sequential Record Formats: T4ASI025-00-00 Undefined (U). Fixed record formats, specifically F, FB, and FBS. Processing Sequential Files 51 Processing Sequential files using JCL DD cards There are four PKZIP for MVS commands that can be used when specifying files via JCL DD cards. They are: -INDD: This command specifies an input DD from which PKZIP should read records to be placed in the archive. -OUTDD: This command specifies an output DD to which PKUNZIP should write records extracted from the archive. -ARCHINDD: This command specifies an input (archive) DD from which PKZIP will extract data to be included in the output archive (specified by -ARCHOUTDD) PKUNZIP will extract data to be written to the output file. -ARCHOUTDD: This command specifies an output (archive) DD to which PKZIP will write the new archive The use of these commands can be demonstrated by the following examples. Note: When a dataset is created using an output DD command (-ARCHOUTDD or –OUTDD), the DCB attributes of the new dataset must be specified on the DD card. Creation of a new archive using input file specified by DD //ZIP EXEC PGM=PKZIP //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //INPUT DD DSN=<input file identifier>,DISP=SHR //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) -INDD(INPUT) /* In this example, <input file identifier> should be replaced with a suitable sequential file identifier. This file will be added to the archive identified by the –ARCHIVE command using the dataset name of the input file. For more details refer -INDD in Chapter 21. PKZIP Commands. 52 PKZIP for MVS: User Reference T4ASI025-00-00 Creation of a new archive using -ARCHOUTDD //ZIP EXEC PGM=PKZIP //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //OUTARCH DD DSN=<output archive identifier>, // DISP=(NEW,CATLOG,DELETE), // DCB=(BLKSIZE=22800,RECFM=U), // UNIT=SYSDA,SPACE=(BLK,(10,10),RLSE) //INPUT DD DSN=<input file identifier>,DISP=SHR //SYSIN DD * -ECHO -ARCHOUTDD(OUTARCH) -INDD(INPUT) /* In this case, < output archive identifier> should be replaced with a suitable sequential file identifier. This archive will be created during the processing and (assuming the processing completes satisfactorily) will contain the file identified by <input file identifier>. For more details refer to -ARCHOUTDD in Chapter 21. PKZIP Commands. Reading of an existing archive using -ARCHINDD //ZIP EXEC PGM=PKZIP //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //INARCH DD DSN=<input archive identifier>,DISP=SHR //OUTARCH DD DSN=<output archive identifier>, // DISP=(NEW,CATLOG,DELETE), // DCB=(BLKSIZE=22800,RECFM=U), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE) //INPUT DD DSN=<input file identifier>,DISP=SHR //SYSIN DD * -ECHO -ARCHINDD(INARCH) -ARCHOUTDD(OUTARCH) -INDD(INPUT) /* Where <input archive identifier> should be replaced with a suitable sequential file identifier. This archive will be read and used to create < output archive identifier> . The output archive (assuming the processing completes satisfactorily) will contain the file identified by <input file identifier> in addition to all the files in the <input archive identifier>. For more details refer to -ARCHINDD in Chapter 21. PKZIP Commands. T4ASI025-00-00 Processing Sequential Files 53 Extraction of file from archive to DD //UNZIP EXEC PGM=PKUNZIP //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //INARCH DD DSN=<input archive identifier>,DISP=SHR //OUTDD DD DISP=(NEW,CATLG,DELETE), // DSN=<output file identifier>, // UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE), // DCB=(LRECL=133,RECFM=F,DSORG=PS) //SYSUDUMP DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHINDD(INARCH) -OUTDD(OUTDD) <output file selection> /* In this example <output file identifier> should be replaced with a suitable sequential file identifier. This file will be created and should contain the data associated with the file(s) identified by <output file selection> in the archive. For more details refer to -OUTDD and -ARCHINDD in Chapter 23. PKUNZIP Commands. GDG support Special consideration is required when compressing and decompressing GDGs (Generation Data Groups). PKZIP for MVS will treat datasets from a GDG like any other dataset and will compress the data normally. PKZIP for MVS will not however, compress or store the Generation Data Group Base. GDGs files should be processed using the PKZIP -INDD command and the PKUNZIP -OUTDD command. Similarly, GDG archives can be read using the PKZIP and PKUNZIP –ARCHINDD command and written using the PKZIP –ARCHOUTDD command. These commands allow you to process GDGs via a DD name. The generation numbers in the DD name will be honoured. There is no other way to process a generation number, such as (0). PKZIP name conversion commands, including NIA and HLQ, do not support the expansion of a generation number. If you choose not to use the -OUTDD command when decompressing data or the –ARCHOUTDD command when creating an archive, then there are two important considerations: 1. 54 Neither PKZIP nor PKUNZIP can convert a generation number to the desired dataset name. In fact, a file specification in the form “name(n)” will be processed as a PDS member. PKZIP for MVS: User Reference T4ASI025-00-00 2. MVS considers any dataset ending with the qualifier ‘.GxxxxVyy’ (where xxxx and yy are 4 and 2 digit numbers respectively e.g. .G0301V02) to be a member of a Generation Data Group. MVS will not allow datasets to be created with the ‘.GxxxxVyy’ low level qualifier unless a Generation Data Group Base exists. If the GDG Base does not exist, PKZIP or PKUNZIP will report an error similar to the following: “..901E Unable to allocate file name, DYNALLOC error code 5708”. If the Generation Data Group Base does not exist or cannot be created prior to decompression, then the data can still be extracted by modifying the name of the target dataset. For example: If the ZIP archive contains files like: T4ASI.GDGBASE.G0001V00 T4ASI.GDGBASE.G0002V00 T4ASI.GDGBASE.G0003V00 Then use the following PKUNZIP command to modify the destination: -HLQ(T4ASI.GDGBASE.G,T4ASI.NOBASE.X) This will extract the ZIP files to the following datasets: T4ASI.NOBASE.X0001V00 T4ASI.NOBASE.X0002V00 T4ASI.NOBASE.X0003V00 The extracted data will not be part of a Generation Data Group. Example of use of GDGs The following shows an example of JCL which uses GDGs for the input archive, the output archive and for the input file. //ZIP EXEC PGM=PKZIP //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //INPUT DD DSN=INPUT.GDG(0),DISP=SHR //ARCHIN DD DSN=ZIP.TEST.GDG(0),DISP=SHR //ARCHOUT DD DSN=ZIP.TEST.GDG(+1), // DISP=(NEW,CATLOG,DELETE), // DCB=(BLKSIZE=22800,RECFM=U), // UNIT=SYSDA,SPACE=(CYL,(1,1),RLSE) //SYSIN DD * -ECHO -ARCHINDD(ARCHIN) -ARCHOUTDD(ARCHOUT) -INDD(INPUT) /* T4ASI025-00-00 Processing Sequential Files 55 Chapter 7. Processing PDS Members PKZIP for MVS is capable of: Compressing PDS members into a ZIP archive Creating and processing ZIP archives which are PDS members Decompressing data from a ZIP archive into a PDS member. The PDS member handling capability is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. Supported PDS Files Multiple Volume PDS files are not supported (due to IBM restrictions). If multiple volumes are specified for a PDS that is created by PKZIP for MVS, only the first volume will be used. PKZIP for MVS supports the compression and decompression of members of PDS datasets with the following record formats: Undefined (U), see Compressing Load libraries later in this chapter for more information. Fixed and Variable Record Formats, specifically F, FA, FM, FB, FBA, FBM, V, VA, VB, VM, VBA and VBM. PKZIP supports ZIP archives that are members of PDS datasets with the following Record Formats: Undefined (U). Fixed Record Formats, specifically F and FB. PKZIP PDS processing works with PDS members rather than PDS datasets. If there are no members in a PDS selected for compression, then no files will be added to the archive. When decompressing, a PDS dataset will only be created if there is a member to be placed in it. Selecting PDS members for compression Members can be selected for compression file selection or via a DD statement. The following examples demonstrate how this can be achieved: T4ASI025-00-00 Processing PDS Members 57 File Selection Selecting members via file selection allows the use of wildcards to select multiple members at the same time. //ZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) <file selections> /* Where <file selections> should be replaced with a suitable file selection(s), examples of which are shown below. For more details, refer to <dataset name> in Chapter 21. PKZIP Commands. Examples of File Selection To compress a PDS member, replace <file selections> with: MY.INPUT.PDS(MEMBER1) To compress multiple PDS members, replace <file selections> with: MY.INPUT.PDS(MEMBER1,MEMBER2,MEMBER3) To compress multiple PDS members using wildcards, replace <file selections> with: MY.INPUT.PDS(MEM*) To compress all members of a PDS, replace <file selections> with: MY.INPUT.PDS(*) To compress all members of several PDSs, replace <file selections> with: MY.INPUT.PDS(*) MY.OTHER.INPUT.PDS(*) YET.ANOTHER.INPUT.PDS(*) Selection using a DD statement //ZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //INPUT DD DSN=<file identifier>,DISP=SHR //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -ARCHUNIT(SYSDA) -INDD(INPUT<,members>) /* 58 PKZIP for MVS: User Reference T4ASI025-00-00 Where <file identifier> should be replaced with a suitable file identifier, and <,members> with an appropriate member selection, examples of which are shown below. For more details refer to -INDD in Chapter 21. PKZIP Commands. Examples of Selection using a DD statement To compress a single PDS member (e.g. ‘MY.INPUT.PDS(MEMBER1)’) specified in the JCL, replace <file identifier> with MY.INPUT.PDS(MEMBER1) and delete the <,members> from the INDD command. Note that this member will be processed as a sequential dataset (called MY.INPUT.PDS.MEMBER1), not as a member of a PDS. This member will be treated as a sequential dataset. To compress selected PDS member(s), replace <file identifier> with: MY.INPUT.PDS and replace the <,members> with the selected member name(s): MEMBER1,MEMBER2 To compress multiple PDS members using wild cards, replace <file identifier> with: MY.INPUT.PDS and replace the <,members> with: MEM* To compress all members of a PDS, replace <file identifier> with: MY.INPUT.PDS and delete the <,members> from the INDD command ZIP Archives as PDS members PKZIP for MVS is capable of storing ZIP archives as PDS members. To create a ZIP archive as a PDS member, specify the PDS and member name in the -ARCHIVE command, i.e. -ARCHIVE(MY.NEW.PDS.ARCHIVE(MEM1)) Processing that takes place will depend on whether the PDS exists. T4ASI025-00-00 Processing PDS Members 59 If the PDS exists PKZIP for MVS can create ZIP archives as members of an existing PDS, however the following point should be noted: 1. PKZIP will not modify the attribute information (for example, the DCB information) for an existing PDS, even if you have specified –ARCH* commands. Any specified –ARCH* commands will be ignored (without warning). If the PDS doesn’t exist PKZIP for MVS can create a new PDS to contain a ZIP archive as a member of that PDS, however the following points should be noted: 1. You should specify an -ARCHVOL, -ARCHUNIT or one of the DFSMS class commands (such as –ARCHSCLASS) to define where to create the PDS. 2. You may wish to review the default allocation information, such as the block size, primary space allocation, directory block allocation and so on to ensure that the specified values are appropriate. 3. By default, PKZIP will not release free space for the PDS, as you may wish to add other members later. This can be overridden using the -ARCHRLSE command. Creating PDS datasets and members on extraction PKZIP for MVS can create and populate a PDS with files extracted from an archive. In the following example, a PDS that has been added to an archive under MVS can be extracted to another PDS. Note that PKUNZIP can determine the appropriate attributes to use for the output PDS using the file attributes retained in the archive. //UNZIP EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -HLQ(MY.INPUT.PDS/MY.OUTPUT.PDS) /* When data is obtained from another platform, the commands required to set the attributes for the output PDS must be specified, along with the command (-MAKEPDS) that tells PKUNZIP to create a PDS from the selected input files. The following example demonstrates creating a PDS from an archive created on the PC platform. 60 PKZIP for MVS: User Reference T4ASI025-00-00 //UNZIP EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(PC.ARCHIVE) -MAKEPDS -OUTLRL(1350) -OUTDIRBLKS(10) -OUTBLKSIZ(27000) -OUTTYPE(FB) -HLQ(/NEW.PDS.) -NOHIERARCHY /* With this example, note the following: The –HLQ command is used to rename the output dataset The –NOHIERARCHY is used so that when creating the output name, the path name in the archive is ignored (meaning only the file name and extension are used) As –CNVEXT has not been specified, the file extension is dropped, so the member name will be the file name of the original file on the PC. Compressing Load libraries Load libraries will not typically be decompressed on any platform other than MVS, allowing two alternative ways of processing a load library: 1. Individual member compression. 2. Library compression. Compressing load library members An archive created in this way will retain each member of the PDS as a separate Zip file in the archive. To correctly capture details of each load library member, both BINARY and ZDW commands should be used. Processed in this way allows any single member to be selected when decompressing. However this method relies on PKZIP translating the TTR information for the module when the member is recreated. When compressing members of a load library, PKZIP for MVS captures additional information that is needed when loading the module, specifically the TTR to be used as the entry point. T4ASI025-00-00 Processing PDS Members 61 However PKZIP does not retain or update other TTR information, such as the NOTELIST to be used for Overlay segments. For this reason, some load modules, for example those that contain overlay segments, will typically not be correctly restored by PKUNZIP (during compression PKZIP will report modules that it suspects might not be translated correctly). In certain circumstances however, the module may be useable. This will happen when the unconverted TTRs used by the module are not changed. The easiest way to ensure that this is the case is to place the load module in a library by itself and make sure that the dataset is restored to a library on the same type of device, using the same blocksize. In general this method is recommended when individual module selection is required and the modules do not contain any complicated TTR information. Compressing libraries This alternative uses a standard utility, such as TSO Transmit, to create a sequential file, which is then compressed by PKZIP. On decompression, PKUNZIP will recreate the sequential file that can then be used by the same utility to recreate the input PDS. This alternative requires an additional step in both the compression and decompression phases but imposes no restrictions on the members contained in the library. In general, this method is recommended where the library contains specialised load modules (such as overlay segments) or when there is no requirement to select individual members. However it does involve an extra processing step. 62 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 8. Processing VSAM Files PKZIP for MVS is capable of: Compressing VSAM files into a ZIP archive Creating and processing ZIP archives as VSAM files Decompressing data from a ZIP archive into VSAM files. The VSAM file handling capability is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. When managing VSAM datasets, PKZIP for MVS invokes the IBM Access Method Services utility IDCAMS, as documented in the IBM Access Method Services manual. Parameters to IDCAMS processing are specified indirectly using the PKZIP or PKUNZIP commands. Some knowledge and experience of using the IDCAMS processing will assist in the effective use of VSAM datasets with PKZIP for MVS. In addition, access to the IBM Access Method Services manual may be very helpful in understanding the processing and commands used by the product. This remainder of this chapter describes the methods employed to process VSAM files. Supported VSAM file types PKZIP for MVS supports the compression and decompression of the following VSAM file types: ESDS (Entry Sequenced Dataset) KSDS (Key Sequenced Dataset) RRDS (Relative Record Dataset), both Fixed and Variable length records. However, only RRDS files with no interspersed empty slots will be correctly recreated by PKZIP processing. This restriction is described in more detail later in this chapter. PKZIP for MVS does not support other types of VSAM files, including Alternate Indexes and Linear datasets. This also is described in more detail later in the chapter. PKZIP supports ZIP archives of the following VSAM file type: T4ASI025-00-00 ESDS (Entry Sequenced Dataset). Processing VSAM Files 63 Compressing a VSAM File There are two considerations when processing VSAM datasets: 1. VSAM files are typically selected for compression using their cluster name. It is not usual to attempt to process just the data or index components of the dataset as this method is unlikely to result in a useful file. 2. Many VSAM datasets are a mixture of text and binary data, even if this is not obvious from the file. For example, a KSDS may consist of text data but have a binary key. If there is no need to convert the data to ASCII, VSAM files should be compressed using both the -BINARY and -ZDW commands. VSAM ZIP Archives To create a VSAM ZIP archive, specify the -ARCHDSORG(VS) command. As noted above, only the ESDS VSAM format is supported for ZIP archives. ESDS ZIP Archive Typically commands like the following are specified to create a VSAM ESDS (Entry Sequenced Dataset) ZIP archive: -ARCHIVE(MY.NEW.VSAM.ESDS.ZIP) -ARCHDSORG(VS) -ARCHUNIT(SYSDA) From the commands above, PKZIP could generate the following command input to the IBM utility IDCAMS: DEFINE CLUSTER ( RECORDSIZE(4000 4000) TRACKS (100 100) NONINDEXED NAME(MY.NEW.VSAM.ESDS.ZIP48324)) DATA ( VOLUMES(TSTVOL) NAME(MY.NEW.VSAM.ESDS.ZIP48324.DATA) UNORDERED ) Please note some commands are defaulted by PKZIP, whilst other attributes not specified may be defaulted by IDCAMS. The following commands would change the space allocation for the data component: -ARCHDATASPACE(..) -ARCHDATAPRI(..) -ARCHDATASEC(..) For more details please refer to the DEFINE CLUSTER command in the IBM manual Access Method Services. 64 PKZIP for MVS: User Reference T4ASI025-00-00 Updating a VSAM archive Problems may occur if you try to update a VSAM ZIP archive created with the -ARCHTO or -ARCHFOR commands. To update a ZIP archive, PKZIP first generates a new ZIP archive and then deletes the old ZIP archive. If either -ARCHTO or -ARCHFOR command was used to generate the original ZIP archive then the delete process may fail as the retention period for the VSAM ZIP archive may not have been satisfied. Decompressing to a VSAM file PKZIP for MVS is capable of decompressing data from ZIP archives to VSAM files. Before extracting a file from a ZIP archive you should perform a -VIEWDETAIL on the ZIP archive so that you understand what file name and file attributes are held for the compressed file. Note: Output records for a KSDS are extracted from the archive in the same order as they were in the original dataset. These records may not be sorted into an appropriate order for the target file. Performance of the loading of the target KSDS file may be impacted if these records are badly sorted. Overwriting an existing VSAM file If the file you are extracting to already exists then you need only specify the -OVERWRITE command. For example, the following may be used to restore the compressed file MY.VSAM.FILE, replacing the current file: -ARCHIVE(MY.ARCHIVE.ZIP) -OVERWRITE MY.VSAM.FILE The extraction process will not modify the file attributes of the existing file so you should ensure that the target file is suitable for the data being extracted. Note that the existing file cannot be overwritten if it has been allocated with the NOREUSE option. Restoring a compressed VSAM file By default, PKZIP for MVS stores the file attributes of a VSAM file along with the compressed data in a ZIP archive. When the VSAM file is decompressed then the file attributes are used to recreate the VSAM file if the file does not already exist. T4ASI025-00-00 Processing VSAM Files 65 Any of the file attributes can be overridden during the extraction process by specifying the appropriate –OUT, -OUTDATA or –OUTINDX commands. For example, the following may be used to restore the compressed file MY.VSAM.FILE (that does not exist) to the volume TSTVOL: -ARCHIVE(MY.ARCHIVE.ZIP) -OUTVOL(TSTVOL) MY.VSAM.FILE Creating a new VSAM file The -MAKEVSAM command is used to create a VSAM file from a ZIP file that does not have VSAM file attributes (because it was not originally a VSAM dataset or the attributes were not stored in the archive). In addition to the –MAKEVSAM command, appropriate –OUT commands must be used to describe the VSAM file to be created. For example, the following commands might be specified to create a new VSAM ESDS (Entry Sequenced) Dataset for the file MY.NONVSAM.FILE: -ARCHIVE(MY.ARCHIVE.ZIP) -MAKEVSAM -OUTATTR(NONINDEXED) -OUTVOL(TSTVOL) -OUTSPACE(TRK) -OUTPRIMARY(1) -OUTSECONDARY(1) -OUTRECORDSIZE(80 80) MY.NONVSAM.FILE From the commands above, PKZIP may generate the following command input to the IBM utility IDCAMS: DEFINE CLUSTER ( RECORDSIZE(80 80) VOLUMES(TSTVOL) TRACKS (1 1 ) NONINDEXED NAME(MY.OUTPUT.FILE) DATA ( NAME(MY.OUTPUT.FILE.DATA) UNORDERED ) Please note some commands are defaulted by PKZIP (e.g. UNORDERED), whilst other attributes not specified may be defaulted by IDCAMS. For more details please refer to the -OUT, -OUTDATA and -OUTINDX commands in Chapter 24. VSAM Specific PKUNZIP Commands. 66 PKZIP for MVS: User Reference T4ASI025-00-00 Processing ‘sparse’ RRDS files When processing VSAM RRDS datasets with unused ‘slots’, PKZIP replicates the processing performed by IDCAMS REPRO when the RRDS is copied to a sequential dataset, i.e. missing slots are ignored. If the data is subsequently used to recreate an RRDS, the resultant file does not include any missing slots, effectively changing the slot number of (some of) the copied records. For example, if an RRDS contained records in slots 1, 5, 9 and 11 before the processing, the recreated RRDS would have records in slots numbered 1, 2, 3 and 4. Only RRDS files with no interspersed empty slots will be correctly recreated by PKZIP processing. This restriction applies to both variable length and fixed length RRDS files. Processing unsupported file types PKZIP processing does not support some VSAM file types, for example VSAM Alternate Indexes. If it is necessary to compress an Alternate Index, then the user has two options 1. Extract the data to another supported dataset type using the Alternate Index and compress the copy. The reverse processing will be needed when decompressing the data. This approach ensures that the data in the ZIP archive is in the same order as the Alternate Index. 2. Process the base cluster and recreate the Alternate Index when the data is decompressed. This is the recommended approach. For other file types, option 1 (i.e. copying to supported type) is recommended. T4ASI025-00-00 Processing VSAM Files 67 Chapter 9. Processing Magnetic Tapes or Cartridges PKZIP for MVS is capable of: Compressing data that resides on a Magnetic Tape or Cartridge Reading and writing ZIP archives on a Magnetic Tape or Cartridge Decompressing data directly onto a Magnetic Tape or Cartridge. In this manual the word Tape is used to indicate both Magnetic Tapes (3420 style) and Magnetic Cartridge (3480/3490 style). If only one of these types is specifically referenced it should be clear which from the context. The Tape file handling capability is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. The remainder of this chapter describes the methods employed to process Tapes. These methods use the four ‘DD’ commands that are described in Processing Sequential files using JCL DD cards on page 51. Note: When processing Tape datasets, without a Tape license, PKZIP and PKUNZIP may request that a Tape be mounted, prior to checking that the product is licensed to process the Tape. The Tape mount must be satisfied before PKZIP for MVS processing will proceed, even when this processing will just inform the user that it is not possible to process the Tape. Supported Tape Files PKZIP can process Tape Files located on volumes with: IBM standard labels (SL) No labels (NL). PKZIP for MVS will not process catalogued Tape datasets using the file name. To process a Tape dataset, one of the ‘DD’ commands must be used and the Tape dataset must be defined using a DD card in JCL. When the DD defines an output file, DCB information must be coded on the DD statement. PKZIP for MVS supports the compression and decompression of the tape files with the formats that are supported for Sequential files. See Chapter 6. Processing Sequential Files for further information. T4ASI025-00-00 Processing Magnetic Tapes or Cartridges 69 Copying a Tape based archive to a disk file When processing an existing cartridge or tape based ZIP archive, PKZIP and PKUNZIP may be requested to read the entire ZIP archive into a temporary dataset (this will always be attempted for a Tape (3420) archive). The size and format of the temporary dataset is controlled by the –TEMP* commands. If the temporary dataset is not large enough to contain the entire ZIP archive (as is likely if the default size options are chosen), then a B37-04 error will result, in which case the temporary dataset is discarded and processing reverts to using the file directly. Direct file processing means that the ZIP archive is processed directly from Cartridge/Tape, which reduces the burden on DASD, but may be slower for a large (multi-volume) archive. For further information see the description of the –TAPETODISK command. Compression of data residing on Tape PKZIP for MVS can compress datasets that reside on Tape using the -INDD command. To compress a dataset that resides on a Tape simply: 1. Specify the dataset you wish to compress via a DD statement 2. Use -INDD to tell PKZIP to compress the dataset referenced by the appropriate DD name. An example is given below: //ZIPTAPE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //FRED DD DSN=ZIP.TEST.DATASET, // UNIT=CART,DISP=SHR, // LABEL=(1,SL,EXPDT=99365),VOL=SER=ZIP214 //SYSIN DD * -ECHO -ARCHIVE(T4ZIP.TEST0001.ZIP) -ARCHUNIT(SYSDA) -INDD(FRED) /* This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP453I ZIP102I 70 PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(T4ZIP.TEST0001.ZIP) -ARCHUNIT(SYSDA) -INDD(FRED) Compressed file ZIP.TEST.DATASET as ZIP/TEST/DATASET (Deflated 83%). PKZIP MVS 2.5 level x ending. PKZIP for MVS: User Reference T4ASI025-00-00 No Label (NL) Tapes It is essential that PKZIP can find the DCB attributes (RECFM, LRECL, and BLKSIZE) for the dataset being compressed. With IBM standard label Tapes, the DCB information is held in the label, however for No Label Tapes, no DCB information is available. To ensure that No Label Tapes can be processed correctly, the DCB information must be coded on the DD statement. An example is given below: //ZIPTAPE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //BARNEY DD DSN=ZIP.TEST.DATASET, // UNIT=CART,DISP=OLD, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120,DSORG=PS), // LABEL=(1,NL,EXPDT=99365),VOL=SER=TSTVOL //SYSIN DD * -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -ARCHUNIT(SYSDA) -INDD(BARNEY) /* This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP453I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -ARCHUNIT(SYSDA) -INDD(BARNEY) Compressed file ZIP.TEST.DATASET as ZIP/TEST/DATASET (Deflated 83%). PKZIP MVS 2.5 level x ending. File Attributes As a minimum, PKZIP for MVS stores the following attributes for Tapes: DSORG, RECFM, LRECL, and BLKSIZE. A view detail of the archive confirms this: //ZIPTAPE EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -VIEWDETAIL /* T4ASI025-00-00 Processing Magnetic Tapes or Cartridges 71 This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP507I UNZIP508I UNZIP509I UNZIP510I UNZIP511I UNZIP512I UNZIP513I UNZIP514I UNZIP515I UNZIP520I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP501I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -VIEWDETAIL Filename: ZIP/TEST/DATASET File type: Text Date and Time: 01-Apr-19xx 15:29:14 Compression Method: DeflatN Compressed Size: 929 Uncompressed Size: 5404 32 bit CRC value : 770EC19B Created by: PKZIP: 2.0 under MVS Needed to extract: PKUNZIP: 2.0 File attributes Record format: Fixed Blocked Record length: 80 Block size: 3120 Volume serial(s): TSTVOL Dataset organisation: Sequential PKUNZIP MVS 2.5 level x ending. Decompression of data onto Tape PKZIP for MVS can decompress data onto Tape using the -OUTDD command. To decompress a ZIP file onto a Tape simply: 1. Specify the ZIP file you wish to extract with a suitable file selection 2. Specify the Tape dataset that you wish to extract to via a DD statement, including the DCB information on the DD statement 3. Use -OUTDD to tell PKZIP to decompress the ZIP file to the Tape dataset referenced by the appropriate DD name. An example is given below: //UNZIP EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //OUTPUT DD DSN=TEST.UNZIP001, // DISP=NEW,LABEL=(1,SL), // DCB=(DSORG=PS,RECFM=FB,LRECL=128,BLKSIZE=12800), // UNIT=CART,VOL=SER=OUT001 //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -OUTDD(OUTPUT) “ZIP/TEST/DATASET” /* 72 PKZIP for MVS: User Reference T4ASI025-00-00 This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP010I UNZIP609I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(T4ZIP.TEST0002.ZIP) -OUTDD(WILMA) ″ZIP/TEST/DATASET″ ZIP file ZIP/TEST/DATASET inflated to MVS file TEST.UNZIP001 PKUNZIP MVS 2.5 level x ending. Restriction Only one -OUTDD statement can be used per job step. In most circumstances, only one dataset should be decompressed to Tape at a time. Zip Archives on Tape PKZIP for MVS can read or write ZIP archives on Tape. To specify the Tape(s), PKZIP for MVS uses the -ARCHINDD and -ARCHOUTDD commands in place of the normal -ARCHIVE command. Tape Mounts for multiple volume Tape archives When reading a ZIP archive, PKZIP for MVS processing will scan to the end of the Tape dataset looking for important ZIP archive information that is located at the end of the archive. When this is found, the archive is repositioned back to the start to process the data in the archive. This processing is unavoidable given the structure of the ZIP archive, however it will result in the system requiring access to each Tape in a ZIP archive at least twice. To reduce the impact of the Tape handling, users should consider the following options for ZIP archives on Tape: T4ASI025-00-00 Ensuring that there are sufficient Tape units allocated to have all the Tapes required mounted at once. One way to achieve this might be to use the unit count parameter for the UNIT keyword of the JCL DD statement. For example UNIT=(TAPE,2) will allocate 2 Tape units and will mean that both volumes of a 2 volume archive can be mounted at the same time. Copying the archive to a disk file prior to processing. Using PKZIP facilities to copy the archive to disk. See the – TAPETODISK command. Processing Magnetic Tapes or Cartridges 73 Compressing a file to Tape PKZIP for MVS can compress data into a ZIP archive that resides on Tape using the -ARCHOUTDD command. To compress data onto a Tape simply: 1. Specify the new, Tape based archive dataset via a DD statement, including the DCB information on the statement 2. Replace the normal -ARCHIVE, -ARCHVOL and other -ARCH commands with an -ARCHOUTDD command. The -ARCHOUTDD command tells PKZIP to create the ZIP archive in the Tape dataset referenced by the appropriate DD name. An example is given below: //ZIPTAPE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //BETTY DD DSN=MY.TEST0001.ZIP, // UNIT=CART,DISP=NEW, // DCB=(RECFM=U,LRECL=0,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL),VOL=SER=ZIP001 //SYSIN DD * -ECHO -ARCHOUTDD(BETTY) MY.NORMAL.DATASET /* This step could give the following output: ZIP101I ZIP010I ZIP010I ZIP010I ZIP453I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO –ARCHOUTDD(BETTY) MY.NORMAL.DATASET Compressed file MY.NORMAL.DATASET as MY/NORMAL/DATASET (Deflated 83%). PKZIP MVS 2.5 level x ending. Viewing a Tape based archive PKZIP for MVS can view or test a ZIP archive that resides on Tape using the -ARCHINDD command. To view a ZIP archive that resides on a Tape simply: 74 1. Specify the Tape based archive via a DD statement, remembering to specify the DCB information if it is a No Label (NL) Tape. 2. Use -ARCHINDD to tell PKZIP to read the ZIP archive referenced by the appropriate DD name. PKZIP for MVS: User Reference T4ASI025-00-00 An example is given below: //ZIPTAPE EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //PEBBLES DD DSN=MY.TEST0001.ZIP, // UNIT=CART,DISP=SHR, // DCB=(RECFM=U,LRECL=0,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL),VOL=SER=ZIP001 //SYSIN DD * -ECHO -ARCHINDD(PEBBLES) -VIEWDETAIL /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP507I UNZIP508I UNZIP509I UNZIP510I UNZIP511I UNZIP512I UNZIP513I UNZIP514I UNZIP515I UNZIP520I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP501I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHINDD(PEBBLES) -VIEWDETAIL Filename: MY/NORMAL/DATASET File type: Text Date and Time: 02-Apr-19xx 16:29:14 Compression Method: DeflatN Compressed Size: 929 Uncompressed Size: 5404 32 bit CRC value : 770EC19B Created by: PKZIP: 2.0 under MVS Needed to extract: PKUNZIP: 2.0 File attributes Dataset organisation: Sequential Record format: Fixed Record length: 80 Block size: 80 File Creation Date: 19xx0101 Last Reference Date: 19xx0401 PKUNZIP MVS 2.5 level x ending. Decompressing files from a Tape based archive PKZIP for MVS can decompress files from a ZIP archive that resides on Tape, it achieves this via the -ARCHINDD command. To decompress files from a ZIP archive that resides on a Tape simply: T4ASI025-00-00 1. Specify the Tape based archive via a DD statement, remembering to specify the DCB information if it is a No Label (NL) Tape 2. Use -ARCHINDD to tell PKUNZIP to read the ZIP archive referenced by the appropriate DD name 3. Use a suitable file selection to select the files you wish to extract (or let PKUNZIP default and unzip all the compressed files). Processing Magnetic Tapes or Cartridges 75 An example is given below: //ZIPTAPE EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //BAMBAM DD DSN=MY.TEST0001.ZIP, // UNIT=CART,DISP=SHR, // DCB=(RECFM=U,LRECL=0,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL),VOL=SER=ZIP001 //SYSIN DD * -ECHO -ARCHINDD(BAMBAM) ″MY/NORMAL/DATASET″ /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP609I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO –ARCHINDD(BAMBAM) ″MY/NORMAL/DATASET″ ZIP file MY/NORMAL/DATASET inflated to MVS file MY.NORMAL.DATASET PKUNZIP MVS 2.5 level x ending. Updating files in a Tape based archive PKZIP for MVS can update files in a ZIP archive that resides on Tape, but the updated ZIP archive must be created on a new Tape. Archives can be updated by using the -ARCHINDD and -ARCHOUTDD commands, where -ARCHINDD is used to read the old archive in and -ARCHOUTDD is used to write the new archive out. To updates files in a ZIP archive that resides on a Tape simply: 76 1. Specify the old ZIP archive to be read in via a DD statement 2. Use -ARCHINDD to tell PKZIP to read the ZIP archive referenced by the DD statement 3. Specify the new, Tape based archive dataset via a second DD statement 4. Use -ARCHOUTDD to tell PKZIP to write the new, updated archive to the dataset referenced by the second DD statement. PKZIP for MVS: User Reference T4ASI025-00-00 An example is given below: //ZIPTAPE EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //BAMBAM DD DSN=MY.TEST0001.ZIP, // UNIT=CART,DISP=SHR, // DCB=(RECFM=U,LRECL=0,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL),VOL=SER=ZIP001 //DINO DD DSN=MY.TEST0001.UPDATED.ZIP, // UNIT=CART,DISP=NEW, // DCB=(RECFM=U,LRECL=0,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL),VOL=SER=ZIP002 //SYSIN DD * -ECHO -ARCHINDD(BAMBAM) -ARCHOUTDD(DINO) -UPDATE ″MY/NORMAL/DATASET″ /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP010I UNZIP459I UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO –ARCHINDD(BAMBAM) –ARCHOUTDD(DINO) ″ZIP/NORMAL/DATASET″ Updated file MY.NORMAL.DATASET as MY/NORMAL/DATASET (Deflated 83%). PKUNZIP MVS 2.5 level x ending. This step creates an updated archive on the Tape labelled ″ZIP002″. The original Tape (labelled ″ZIP001″) is not modified by this process. T4ASI025-00-00 Processing Magnetic Tapes or Cartridges 77 Part 3. Advanced Topics T4ASI025-00-00 Advanced Topics 79 Chapter 10. ZIP Archives The term ‘ZIP archive’ is used to describe the dataset that holds one or more files which have been compressed by one of the PKZIP family of programs. A ZIP archive is the equivalent of a ‘*.ZIP’ file created by PKZIP on MS-DOS. A ZIP archive can hold up to 16383 files, which may be compressed by up to 99% of their original size. Each file is held together with a CRC (Cyclic Redundancy Check), which is used to guarantee that the data which is decompressed by PKUNZIP is identical to that originally compressed by PKZIP. A ZIP archive can be transferred from one platform to another, and can be decompressed or modified by a copy of PKZIP or PKUNZIP which is running on that platform. The internal format of a ZIP archive is identical, no matter which platform compressed the files that it contains. PKZIP for MVS stores the MVS attributes of files in the ZIP archive. Attributes such as dataset organisation, block size and load library TTR information are stored so that datasets and PDS members can be archived into and restored from ZIP archives without any other intervention. ZIP Archives in MVS ZIP archives on MVS can be held as one of the following: a sequential dataset a PDS member VSAM Entry Sequenced dataset (ESDS). ZIP archives which are sequential datasets or PDS members must have a record format of U (undefined), F (fixed) or FB (fixed block) and FBS (fixed block standard) for sequential datasets. A typical ZIP archive allocation is shown below: -------------------------- DATA SET INFORMATION --------------------COMMAND ===> DATA SET NAME: T4ZIP.TEST.ZIP GENERAL DATA: CURRENT ALLOCATION: Volume serial: T4PRD2 Allocated tracks: 1 Device type: 9345 Allocated extents: 1 Organisation: PS Record format: U Record length: 0 Block size: 6160 CURRENT UTILIZATION: 1st extent tracks: 1 Used tracks: 1 Secondary tracks: 1 Used extents: 1 Creation date: Expiration date: T4ASI025-00-00 19xx/01/28 ***NONE*** ZIP Archives 81 The ZIP archive should have the same contents on whatever platform it exists i.e. if you browse the file in hexadecimal it should always start with the values x'504B' (i.e. the characters "PK" in ASCII and "&." in EBCDIC) and the remainder of the data should also be identical. Old and New ZIP archives These two expressions are used when describing PKZIP operations. To understand the distinction, it is important to understand some of the PKZIP processing. The old ZIP archive may have been created by PKZIP for MVS during an earlier operation, or may have been created by PKZIP on another platform and transferred from there. When PKZIP starts, the old ZIP archive already exists and contains valid ZIP files. When PKZIP is executed, the old ZIP archive is specified using the -ARCHIVE command or the –ARCHINDD command (see Chapter 21. PKZIP Commands). When PKZIP for MVS is updating a ZIP archive, it takes the necessary data from the old ZIP archive, merges it with any new data, and transfers it to a new ZIP archive. If the archive has been specified using the –ARCHIVE command, the new ZIP archive is initially created in a ‘temporary’ MVS dataset that is allocated using the -ARCH* commands (like ARCHPRIMARY which specifies its primary extent). When all updating is completed, PKZIP for MVS will delete the old ZIP archive and rename the new ZIP archive to the same name as the old ZIP archive (using the new allocation). When updating a ZIP archive, therefore, you may wish to make certain of the allocation of the new ZIP archive using the appropriate allocation commands, as described in Chapter 21. PKZIP Commands. If the new ZIP archive has been specified using the –ARCHOUTDD, then new data will be written directly into the specified dataset. The old ZIP archive, if any (specified by -ARCHINDD) will not be deleted by PKZIP. Temporary datasets Temporary datasets are typically only used by PKZIP compression processing, however, they can be used to improve the performance of PKZIP and PKUNZIP when data is being extracted from a sequential (i.e. Tape or Cartridge) archive. Temporary Datasets are used for three purposes: 1. The new ZIP archive for PKZIP. 2. As temporary datasets used during PKZIP compression processing 3. As a temporary store to improve processing for a sequential archive 82 PKZIP for MVS: User Reference T4ASI025-00-00 The new ZIP archive (not using ARCHOUTDD) A new ZIP archive dataset has the same dataset name as the ‘old’ ZIP archive (i.e. the dataset specified in the -ARCHIVE command), except that the last component of the dataset name hierarchy is replaced by ZIPnnnnn, where nnnnn is a 5 digit number. If the new archive is a member of a PDS, then the ZIPnnnnn is used as the member name. Note that this nnnnn number is a random number and is not the same as the sequentially increasing number used for the DD allocation. If there is a duplicate dataset name or insufficient disk space, PKZIP will try again using a different 5 digit number in the dataset name. PKZIP will attempt the allocation of the dataset 3 times, after which an error message will be output if the operation is still unsuccessful. Note: A new ZIP archive is created by compressing the selected files into temporary datasets, with the final temporary dataset being renamed to become the new ZIP archive. Unfortunately however, the rename process does not pass any information to the JES log, which means that in the JES log it will appear that the final temporary dataset was catalogued, not the ZIP archive. This may be confusing for users with automated operations but it is an unavoidable restriction of the PKZIP program. If the ZIP processes Abends or fails in some way that does not allow it to complete the termination processing, the new ZIP archive (with its ZIPnnnnn name) may have to be deleted manually. PKZIP Temporary Datasets While PKZIP for MVS is compressing files for insertion into the new ZIP archive, it uses temporary datasets as an initial storage location for the compressed file. By default, temporary datasets are allocated in a similar way as the new ZIP archive. If this allocation is not appropriate, then different attributes can be specified using the -TEMP group of commands (see Chapter 21. PKZIP Commands). These datasets are allocated as standard MVS temporary datasets and will be automatically deleted at the end of the step. T4ASI025-00-00 ZIP Archives 83 Use of Temporary Datasets when processing a sequential archive When extracting data from a sequential archive (especially an archive that is located on a Tape or Cartridge), while it is processing, PKZIP for MVS may be requested (via the TAPETODISK command) to copy the archive to a disk based temporary file. In fact, PKZIP for MVS will do this automatically for 3420 (round) Tape, which may otherwise be unacceptably slow. If this ‘copy’ is successful, then this temporary archive is used in subsequent processing, removing the need to scan backward and forward over the sequential archive and, as a result, improving performance for the processing. In this circumstance, the temporary archive must be at least as large as the archive. If it is not, PKZIP for MVS will stop copying the archive to disk and will use the real (but potentially slow) archive in subsequent processing. 84 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 11. Compatibility Issues This chapter reviews some of the issues that a user might have using PKZIP 2.5 for MVS with other PKZIP version 2 products. Using PKZIP 2.5 for MVS with PKZIP version 2 on other platforms The file attributes stored by PKZIP 2.5 for MVS are marked as MVS attributes and therefore will be ignored by most other platforms. The exceptions are PKZIP for VM and PKZIP for VSE, which are capable of recognising some MVS attributes and creating attributes that are recognised by PKZIP for MVS. Platforms that recognise/create attributes (PKZIP for VM and VSE) Attributes created by PKZIP for MVS may not be recognised on other platforms and other platforms may generate attributes that are not recognised by PKZIP for MVS. These will be ignored, unless they are being displayed using the DETAIL option of the -VIEW command. Using this command, attributes that are not recognised will generate a 518 warning message. PKZIP for MVS has changed the format of some attributes so that these will not be displayed correctly unless compatibility patches have been applied to PKZIP for VSE and VM. Processing of these attributes is not affected. When a PKZIP 2.5 for MVS archive is to be transferred to VM or VSE, to be processed by PKZIP for VM or VSE, the PKZIP 2.5 for MVS archive should be created with attributes in both the Central and Local Directories (the default) or in neither place. If attributes are only stored in either the Local or the Central Directories and the archive is subsequently updated, the created archive will be corrupt. This restriction does not effect archives that are not updated. The products listed below and previous levels of these products are effected by this restriction: PKZIP for VSE 2.1/7 PKZIP for VM 2.1/8. If the target platform uses a later level of the product, this restriction may have been lifted. See the associated program documentation for details. T4ASI025-00-00 Compatibility Issues 85 Using PKZIP 2.5 for MVS with PKZIP 2.2 for MVS for MVS The section Migration Considerations in Chapter 2. PKZIP Version 2.5 for MVS, should be reviewed prior to using PKZIP 2.5 with PKZIP 2.2 for MVS. Compatibility patches are available for PKZIP 2.2 for MVS to ensure that new and changed attributes for 2.5 are correctly processed in PKZIP 2.2 for MVS. This leads to the following minor restriction for PKZIP 2.2 for MVS: When a 2.5 archive that contains a file that was originally stored on multiple volumes is processed in PKZIP 2.2 for MVS, only the first of the original volumes will be available in the file attributes. In addition, PKZIP 2.5 for MVS archives that are to be processed by PKZIP 2.2 for MVS, should be created with (the default) attributes in both the Central and Local Directories or in neither place. If attributes are only stored in either the Local or the Central Directories and the archive is subsequently updated by PKZIP 2.2 for MVS, the created archive will be corrupt. This restriction does not effect archives that are not updated. Attributes created by PKZIP 2.5 for MVS may not be recognised by PKZIP 2.2 for MVS. These will be ignored, unless they are being displayed using the DETAIL option of the -VIEW command. Using this command, attributes that are not recognised will generate a 518 warning message. Using PKZIP 2.5 for MVS with PKZIP 2.1 for MVS for MVS The following sections consist of some frequently asked questions, which apply to those users who wish to run PKZIP 2.1 for MVS and PKZIP 2.5 for MVS in parallel. Will the ZIP processing now select VSAM files? PKZIP 2.5 for MVS will select VSAM files that match the wildcard specification. PKZIP 2.1 did not. The -NOVSAM command has been included for PKZIP 2.1 for MVS users who find that existing job streams are compressing unwanted VSAM files when they use PKZIP 2.5 for MVS instead of PKZIP 2.1 for MVS. For example, in 2.1 the file selection USER.DATA.* might match the Sequential and PDS datasets USER.DATA.SEQ and USER.DATA.PDS but in 2.5 it might also match USER.DATA.ESDS which is not required for compression. Using the -NOVSAM command would prevent the VSAM file USER.DATA.ESDS from being selected for compression, therefore ensuring compatibility with PKZIP 2.1 for MVS. 86 PKZIP for MVS: User Reference T4ASI025-00-00 Are archives created by PKZIP 2.1 for MVS supported by 2.5? Yes! PKZIP 2.1 for MVS and PKZIP 2.5 for MVS both use the same algorithm for the compression of data, so data compressed by one can be extracted by the other. Archives created by PKZIP 2.1 for MVS are fully supported by PKZIP 2.5 for MVS for MVS. How will PKZIP 2.1 for MVS handle a 2.5 archive? PKZIP 2.1 for MVS does not support the various file attributes that PKZIP 2.5 for MVS can store. If you are compressing data with PKZIP 2.5 for MVS and expect to decompress it with PKZIP 2.1 for MVS then you should compress the data with the -NOATTRIB command. How will PKZIP 2.1 for MVS handle a VSAM archive? PKZIP 2.1 for MVS does not support the processing of VSAM files or archives. The data within a VSAM archive can be processed however if the VSAM archive is copied to a sequential dataset using a utility such as IDCAMS REPRO, then the resultant file can be processed by PKZIP 2.1 for MVS. For more details on REPRO, refer to the IBM manual Access Method Services. What will PKZIP 2.1 for MVS do with a compressed VSAM file? PKZIP 2.1 for MVS does not support the compression or decompression of VSAM files. VSAM files compressed by PKZIP 2.5 for MVS can be extracted by PKZIP 2.1 for MVS but only to a supported file type i.e. sequential or PDS. If you must have the extracted data in a VSAM file then extract the data first to a sequential dataset and then copy the data into an equivalent VSAM file (using a utility like REPRO). What will PKZIP 2.1 for MVS do with a compressed loadlib? PKZIP 2.1 for MVS does not support the compression or decompression of loadlibs. If you have compressed a loadlib with PKZIP 2.5 for MVS then the data can be extracted by PKZIP 2.1 for MVS but the file will not be executable. T4ASI025-00-00 Compatibility Issues 87 Chapter 12. Cross Platform Support One of the major benefits of using PKZIP for MVS is that the ZIP archive format is identical on all platforms. File can be compressed and decompressed on any platform (for example, a file can be compressed on MVS and decompressed on UNIX) providing the target platform is running a compatible version of PKZIP. Compatible versions are as follows: PKZIP 2.04g for MS-DOS PKZIP version 2 on other platforms. This section describes how ZIP archives should be transferred between MVS systems and other platforms. Transferring ZIP archives to and from other platforms All ZIP archives transferred to or from MVS must be transferred in BINARY i.e. no ASCII <-> EBCDIC translation of the data and no record delimiters (such as CR/LF - Carriage Return/Line Feed) appended. The ZIP archive should have the same contents on whatever platform it exists i.e. if you browse the file in hexadecimal it should always start with the values x'504B' (i.e. the characters "PK" in ASCII and "&." in EBCDIC) and the remainder of the data should also be identical. Mixed Binary and Text Files Some files contain a mixture of binary and text data. This sort of file may not be supported across platforms when using PKZIP. This is not a restriction specific to PKZIP but is a general problem, which would also occur if the data was transferred in an uncompressed form. Consider an example where a file containing mixed data is being moved from MVS to the PC. If the file is compressed with the -BINARY command on MVS then the EBCDIC text will not be converted to ASCII, thus making it unreadable on the PC. If the file is compressed with the -TEXT command however, then the binary data will be corrupted. The solution is to consider how you would approach the problem if PKZIP was not involved. The problem faced by PKZIP is identical to that faced by a standard file transfer package. One possible solution involves pre-processing the file into a transferable form before compressing it by separating the text and binary fields into separate files and translating just the text to ASCII. Alternatively, use the -BINARY command and modify the process at the receiving end so that it can handle EBCDIC text. T4ASI025-00-00 Cross Platform Support 89 Mixed data files are not normally a problem when moving from MVS to MVS, VSE or VM, as these platforms use the same data formats and codes, but note that in this circumstance the file should be compressed using the –BINARY command. Self-extracting archives Self-extracting ZIP archives created on other platforms can not be run on MVS, however it may be possible to extract the files they contain on MVS by using PKUNZIP. Executable files If executable files are compressed on one platform, it is very unlikely that they will run on a different platform. For example, if you compress a working DOS EXE file, you cannot expect to decompress it and run it on an MVS system. However, if a ZIP archive containing an executable DOS EXE file was moved to a DOS platform, once extracted, the executable file should function normally. Record delimiters and file terminators It may be necessary to modify the record delimiters and file terminators used when compressing a text file on MVS and decompressing it on UNIX. Files compressed with default values for -DELIM and -TERM on MVS may appear to contain extra blank lines in the output when decompressed on UNIX. The usual record delimiter for UNIX is LF whilst the usual file terminator is also LF. The values should be specified on the compression step as follows: -DELIM(LF) -TERM(LF) Unzipping on MVS Decompressing an archive created on another platform requires special consideration. The following issues need to be resolved when unzipping: File extensions e.g. '.TXT' You must decide what to do with any file extensions e.g. ‘.TXT’. Extensions can be discarded or made part of the extracted dataset name by use of the -CNVEXT filename (see Chapter 23. PKUNZIP Commands). Lower case characters, spaces, special characters and long file names MVS dataset and member names cannot be created using spaces or some special characters. Typically a Dynalloc Error will occur if you attempt to extract to a filename that does not adhere to the standard format. Use the -HLQ command to rename the file or alternatively use -OUTDD to specify the dataset you wish to extract to (see Chapter 23. PKUNZIP Commands for more information). 90 PKZIP for MVS: User Reference T4ASI025-00-00 Lower case characters used in a dataset name are automatically converted to upper case. Selecting specific files for extraction To select files from a ZIP archive that has been transferred from another platform, use the PC/UNIX style file selection (see MS-DOS and UNIX format filenames in Chapter 23. PKUNZIP Commands). To be sure of selecting the correct file, perform a -VIEW on the archive, then specify the ZIP file name surrounded by double quotes. Examples of such file selections are: "MYFILE.TXT" "WINDOWS/MYDATA.DAT" "My/Long Directory Name/data" The double quotes are important as they tell PKZIP to treat a ".XXX" as a PC style file extension, they also allow you to put special characters such as spaces in the file selection. To extract just the ".TXT" files you can specify the following file selection: "*.TXT" The file selections are case sensitive. Examples Extracting and renaming a file with an extension //SYSIN DD * -ARCHIVE(ASIZIP.TRIAL.ZIP) -OUTUNIT(SYSDA) "ASIZIP.TXT" -HLQ(ASIZIP,NEW.NAME) In this example the PC file ASIZIP.TXT is selected for extraction and renamed to the dataset NEW.NAME. Please note that by default PKZIP drops the file extension so it is not required in the -HLQ command. Extracting and renaming file but keeping the extension //SYSIN DD * -ARCHIVE(ASIZIP.TRIAL.ZIP) -OUTUNIT(SYSDA) "ASIZIP.D01" -CNVEXT(SUFFIX) -HLQ(ASIZIP,NEW.NAME) In this example the PC file ASIZIP.D01 is selected for extraction and renamed to the dataset NEW.NAME.D01. This is useful when the extension is the only part of the filename that uniquely identifies the file. Extracting files with lower case, spaces or special characters T4ASI025-00-00 Cross Platform Support 91 //SYSIN DD * -ARCHIVE(ASIZIP.TRIAL.ZIP) -OUTUNIT(SYSDA) "asizip file" -HLQ(**,ASIZIP.FILE) MVS dataset and member names can not contain spaces or special characters. In this example the filename is renamed to a supported MVS file name. Compressing on VM and decompressing on MVS A file on VM with a record type V and a record length 80 is capable of storing 80 characters of data per record. A file on MVS with a record type V and a record length 80 is only capable of storing 76 characters of data per record. The restriction is due to the 4 byte Record Descriptor Word (RDW) which precedes the data. PKZIP for MVS will automatically create the correct length for a variable length file when extracting from an archive that has been created using PKZIP for VM, if the archive was created with attributes. If the archive was not created with attributes, or the various -OUT commands are being used to override the attributes, then it is possible to incorrectly set the record length for the output file. Ensure that the record length specified for any variable length file is increased by 4 under MVS to compensate for the RDW. For example, a file which on VM has a record length of 80, should be extracted specifying a value of 84 for the – OUTLRL command (i.e. -OUTLRL(84)). Compressing on WinZip Version 5 and decompressing on MVS WinZip version 5 assumes all files to be compressed have file extensions and therefore automatically inserts a ‘.’ after the filename. Files which do not have an extension and therefore end in a ‘.’ can only be unzipped using the -HLQ command. See Chapter 23. PKUNZIP Commands for more information. 92 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 13. Performance Performance of PKZIP for MVS, in terms of elapsed time and resources consumed, can be influenced by the Input/Output (I/O) processing, the use of virtual (and by implication actual) storage and the use of processor resources. This chapter discusses the significant options that can be varied that could impact some or all of these areas. I/O implications While compressing and decompressing files, PKZIP and PKUNZIP perform a significant number of I/Os to the archive, temporary and output files. The number of I/Os performed can be strongly influenced by the size and blocking used for these files. This is particularly important for the ZIP archive(s). The unit of I/O for a ZIP archive (which could be the block for a sequential dataset or Control Interval for a VSAM dataset) should be as large as practicable. In addition, the record size should also be large, to reduce the time taken to ‘deblock’ the record. As a general rule, the record size associated with a ZIP archive should be at least 4Kb. In most cases, the use of 1/2 track blocking, where two ZIP Archive blocks will fully utilise a Track on the target DASD device, should provide the optimal performance and space utilisation. Use of extended storage by PKZIP In this context, extended storage is the storage which resides above the so-called the 16Mb line, i.e. that storage which is only accessible to programs running in 31 bit mode. PKZIP for MVS uses extended storage wherever possible, so, in general it should be capable of processing most requests with REGION=2M JCL parameter. Note that REGION=2M means that the system establishes a 2Mb private area below the 16Mb line and a default, usually 32Mb, extended region above the 16Mb line. In some cases PKZIP may require a larger region size, for example when updating a large ZIP archive or when processing a large number of files. If you increase the region size then please note that the specification of REGION=0M may not appropriate, since this allocates all the available storage below the 16 Mb line to the PKZIP program, which restricts the amount of system storage available below the 16Mb line. This may cause problems when PKZIP processes VSAM files or attempts to use the IDCAMS utility. If PKZIP is not able to obtain enough storage then it will terminate with a User Abend. Please see Chapter 27. User Abend Codes for more details. T4ASI025-00-00 Performance 93 PKZIP speed versus compressed file size By varying the way in which the compression algorithms are used during data compression, the ratio between compressed file size and compression speed can be altered. In this context, speed means both the elapsed time taken and the processor resources consumed when compressing the data. PKZIP for MVS allows a choice between four different speed/compression combinations, ranging from that giving the maximum level of compression to that giving the highest compression speed. The approximate relationship between these four combinations is shown in the figure below: Size Time Super Fast Fast Normal Maximum Chart of compressed file size and time taken for the PKZIP methods Note that the above figure is a simplified illustration. The shape of the chart will differ according to the type of file being compressed but, in general, the compressed file size does not differ much between the Super Fast and Maximum options. HyperZIP License PKZIP 2.2 for MVS has licensed features which may improve the performance on your system. The improvements relate to: 94 -TASKS command -CACHEMEMORY command PDS compression. PKZIP for MVS: User Reference T4ASI025-00-00 The following sections describe how HyperZIP facilities have been implemented and discuss when they might be useful in improving the ‘performance’ of the PKZIP and PKUNZIP processing. For more information on the commands, please refer to Chapter 21. PKZIP Commands and Chapter 23. PKUNZIP Commands. Overview As the name suggests, HyperZip is designed to improve the perceived performance of PKZIP for MVS. The use of the word perceived is deliberate. When compressing or decompressing a file, the majority of the processing can not be avoided – for example, for a given compression method, there is a fixed amount of processing required to compress or decompress a file. HyperZip attempts to reduce perceived performance, (i.e. the elapsed time), using two methods: 1. Reducing the number of I/Os by storing work files in memory 2. Increasing the number of active compression or decompression tasks, so that more processing is performed in parallel. The effect that altering the HyperZip parameters will have will depend on a number of system dependent factors, the most important of which are: the number of processors available – if there is only one available then there is little opportunity to overlap multiple compression tasks the amount of storage available – if there is little, then reducing I/Os and using storage will have a negative effect on the performance the size of the files – small files will not gain so much the ‘mix’ of files being processed – a balanced mixture of files will facilitate overlap, compressing one large file removes the opportunity to overlap processing other processing that is being performed on the system. The following discusses the two HyperZip commands in more detail and describes the effects that use of the command will have to the key performance indicators; elapsed time, CPU used, I/O count and Storage used. The Recommendations section provides general Rules of Thumb regarding the usage of these commands. In addition, to these two commands HyperZip improves the performance of other aspects of PKZIP performance, especially where these relate to PDS processing T4ASI025-00-00 Performance 95 TASKS PKZIP 2.5 for MVS can use a separate subtask for each dataset being compressed. Therefore, if executing processor has multiple CPUs, having separate subtasks for each dataset will mean that compression of each dataset can be performed in parallel. The number of parallel compression tasks is specified using the TASKS command. As noted above, there is little to be gained in using the TASKS command in a single processor system. Note however that there is little cost in using this command. Using TASKS(n) on a multiprocessor system, should allow the overlap of compression tasks, reducing the elapsed time. This will have no effect on the overall CPU consumed, it will just be consumed in a shorter period. Note that there will be an increase in memory usage, caused by the additional ‘active’ processing, but this is typically not significant. When specifying the TASKS value, one should consider the number of processors that are actually available. A value that is the same as the number of available processors is generally optimal, specifying more will not reduce the elapsed time while specifying less will usually increase the elapsed time. The reduction in the elapsed time will depend principally on the number of processors and the potential for overlap. For example, processing three similar files on a three processor system using TASKS(3) should result in the elapsed time reducing by over 50%, but doing the same with one large and two small files will see a much smaller reduction in the elapsed time. Note: One way to determine if you have multiple processors is to use the ZIPCPUID utility. This lists the CPUids that it finds, so the number of entries indicates the number of processors available. If the HyperZIP license is not present or the TASKS command is not specified then the value defaults to 1. Members of the same PDS are compressed in the same subtask unless they are selected using individual file selections. CACHEMEMORY Cache memory is used in two ways 1. to ‘buffer’ data that is going to or from the Zip archive and this can reduce I/O activity to the archive. 2. to ‘buffer’ the temporary files used by PKZIP. 96 PKZIP for MVS: User Reference T4ASI025-00-00 In general, there is little gained from buffering the ZIP archive, however buffering the PKZIP temporary files can significantly improve performance. These temporary files are used by PKZIP to hold the compressed data, prior to adding it to the archive. Using cache memory can remove this write and subsequent read, reducing the time used processing the ‘temporary’ file (which is actually in memory). PKZIP divides the CACHEMEMORY equally between the compression tasks and the archive. If the amount of memory allocated to one of these processes (e.g. one compression task) is not sufficient to hold the data, then the excess data is spilled to a temporary file, on a Least Recently Used basis. When allocating cache memory, it is important to ensure that the CACHEMEMORY amount divided by (the TASKS value + 2) is large enough to hold the compressed data, otherwise much of the value of cache memory is lost. For example, if the compressed file was 1,000,000 bytes, then the appropriate command is -CACHEMEMORY(3000000). Assuming that CACHEMEMORY is big enough to hold the data, then the use of CACHEMEMORY can result in a 50% plus reduction in the number of I/Os (EXCPs) and a small reduction in the CPU used to write/reread these. BUT, instead of writing this data to disk, the processing keeps it in memory, which means that memory usage will increase. Whether this is an issue for an installation will depend on the availability of memory on the executing system. If memory is short then this could increase paging and the gain in the I/O reduction could be lost in the additional paging. Assuming there is sufficient storage, then elapsed time should decrease because of the reduction in I/Os. If the HyperZIP license is not present or the CACHEMEMORY command is not specified, then the value will default to 0, caching will not be performed, and PKZIP will rely on temporary files on disk. Recommendations Typically, the following results are seen (where better performance means shorter elapsed time): T4ASI025-00-00 On a multi-processor system, the best performance (i.e. the shortest elapsed time) is obtained by using both TASKS and CACHEMEMORY. Specifying TASKS greater than the number of processors does not improve performance. Using CACHEMEMORY on its own (i.e. with TASKS(1)) will have little effect on performance for large files. Large files are those whose compressed size will exceed the CACHEMEMORY allocation. CACHEMEMORY can significantly reduce the overhead and time involved in compressing a large number of small datasets, for example, members of a PDS. Performance 97 98 Large values of CACHEMEMORY can significantly effect other users of the system. For example, using a large value of CACHEMEMORY will typically mean that PKZIP processing will require a larger region. If PKZIP uses a very large region then there must be enough page data space to support a region of that size. A shortage of page data space can have a severe effect on an MVS system. It might be useful to discuss your requirements with an appropriate technical person. PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 14. Command Input This chapter describes how the user can pass commands to PKZIP for MVS. There are three ways that commands can be supplied to PKZIP for MVS: 1. Configuration File 2. PARM parameter 3. SYSIN (file). When processing commands, PKZIP for MVS will look for commands in the Configuration file first, then the PARM parameters and lastly the SYSIN records. When coding commands, note that the order of the commands in the input is generally not important, however: 1. If commands are repeated, or mutually exclusive commands are included in the input, the last command will be used. 2. The order of file selections may effect the order in which files are added to a ZIP archive or the order in which files are extracted from an archive. See also the -KEEPINORDER in Chapter 21. PKZIP Commands. Configuration File A configuration file is available to allow users to specify installation wide standards or defaults for PKZIP and PKUNZIP commands. These defaults can also be specified for individuals, application groups etc. The defaults are specified using commands that are placed in the configuration file in exactly the same way as they are placed in SYSIN. PKZIP or PKUNZIP JCL can specify a configuration file in two ways: 1. Directly using the ddname CONFIG – this described as the ‘local’ configuration file. 2. If there is no CONFIG ddname, ZIP processing will look for a ‘global’ configuration file with a fixed dataset name: PKZIP.CONFIG.ZIP for PKZIP, or PKZIP.CONFIG.UNZIP for PKUNZIP. If the required global file is found, it will be allocated with the ddname ZIPCFG. The CONFIG or ZIPCFG file is processed before any parameters contained in the PARM parameter or in the SYSIN dataset. In this file, only the first 72 characters of each line of the dataset are examined for commands. Multiple commands and/or file specifications may be placed on a single line (though this is not recommended). T4ASI025-00-00 Command Input 99 The configuration file is normally used to contain installation default commands which can be overridden, if necessary, by commands in the specific instance of PKZIP or PKUNZIP that is running. If neither a specified configuration dataset using CONFIG, nor the Global Configuration file is present, the program assumes that no configuration dataset is required and processes the PARM parameter and the SYSIN dataset using internal defaults for all parameters not specified. Note: If a ZIP or UNZIP job finds the Global Configuration file has been allocated exclusively to another task or user, the processing will attempt to access the configuration file every minute for 5 minutes before terminating. During this processing, messages will be issued to the Console and to the ZIP Output. PARM parameter Commands and file selections can be passed to PKZIP or PKUNZIP invoked using JCL via the PARM parameter on the EXEC statement. The PARM parameter can also used when invoking PKZIP for MVS processing from an application program as described in Chapter 15. Calling PKZIP from a Program. When printing the PARM option, PKZIP for MVS attempts to output each command on a separate line, as shown in the example below. When input via JCL, the PARM parameter is restricted to a maximum length of 100 characters (this is an MVS restriction not a PKZIP restriction). In addition, it is not possible to split the input over several lines because the commas used to denote continuation are interpreted by PKZIP as file selections. This effectively limits the number of characters still further, unless you use symbolic parameters as described below. The PARM parameter does allow the use of JCL symbolic parameters for command input to PKZIP. The procedure below demonstrates this idea. //TPROC PROC //ZIP EXEC PGM=PKZIP,REGION=2M,TIME=1440, // PARM='-ECHO &Y &Z' //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY // PEND //STEP2 EXEC TPROC, // Y=-ARCHIVE(OUTPUT.FILE.ZIP), // Z=-VIEW This step could give the following output: 100 PKZIP for MVS: User Reference T4ASI025-00-00 ZIP101I ZIP011I ZIP011I ZIP011I ZIP501I ZIP502I ZIP503I ZIP505I ZIP506I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEW Length Method Size Ratio Date Time CRC-32 Name ---------- ------- ---------- ----- ---------- ----- ----------1969 DeflatN 188 91% 04-04-19xx 11:19 4DA4CA28 MY/INPUT/DATA/SEQ ------------------- ----1969 188 91% PKZIP MVS 2.5 level x ending. SYSIN Typically, most commands are passed to PKZIP for MVS by means of the SYSIN dataset. When using SYSIN, only the first 72 characters of each line of the dataset are examined for commands. Multiple commands and/or file specifications may be placed on a single line (though this is not recommended). An example of the use of SYSIN follows: //ZIP EXEC PGM=PKZIP,REGION=2M,TIME=1440 //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(MY.NEW.ARCHIVE.ZIP) -ARCHUNIT(SYSDA) -ARCHPRIMARY(1) -ARCHSECONDARY(1) /* Alternatively the commands can be placed in a sequential dataset or PDS member and referenced via the SYSIN DD statement, an example follows: //ZIP //STEPLIB //SYSPRINT //SYSIN EXEC PGM=PKZIP,REGION=2M,TIME=1440 DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB DD SYSOUT=* DD DISP=SHR,DSN=T4ZIP.COMMANDS(COMPRESS) Here the PDS member T4ZIP.COMMANDS(COMPRESS) contains the commands required, for example: -ECHO -ARCHIVE(MY.NEW.ARCHIVE.ZIP) -ARCHUNIT(SYSDA) -ARCHPRIMARY(1) -ARCHSECONDARY(1) If SYSIN is not required, either specify the –NOSYSIN command (as a PARM) or include the JCL line //SYSIN DD DUMMY. If neither of these options is used, operating system messages may be issued stating that there is no DD statement for SYSIN. T4ASI025-00-00 Command Input 101 Command Continuation Characters As noted above, lines entered via SYSIN or Configuration file are limited to using the first 72 characters of the input record. For some commands, it can be useful to enter more than 72 characters. To enable this, PKZIP supports two command continuation characters, ‘+’ and ‘|’. These characters are used in the middle of a command parameter to indicate that more input for the command is to be found on the following card. To be correctly identified, there must be at least one space before the continuation character and there must be no other (non blank) characters after the continuation. The characters have slightly different meanings as shown: + The characters on the following card will be added to the current command, with all interleaving spaces except one removed. | The characters on the following card will be added to the current command, with all interleaving spaces removed. The use of these two characters is perhaps best shown by example. If the input cards contain the following: -HLQ(ARCHIVE.NAME, | MVS.NAME) then the associated command is: -HLQ(ARCHIVE.NAME,MVS.NAME) Alternatively, if the input cards contain the following: -ARCHVOL(VOL001 + VOL002) then the associated command is: -ARCHVOL(VOL001 VOL002) When using continuation characters note that: 102 Continuation characters are only supported in SYSIN and Configuration files. The continuation must be in the same input, i.e. it is not possible to continue a command from the Configuration file to the SYSIN file. It is not possible to continue a string that requires the use of “ (quote) characters. All strings surrounded with “ characters must be completed in the same input record. PKZIP for MVS: User Reference T4ASI025-00-00 Only command parameters (i.e. the values between the opening and closing brackets) can be split. It is not possible to split a command string (like -ARCHIVE), over multiple lines. It is also not possible to split a file selection over multiple lines. The number of continuation lines is limited by the maximum size of the parameter accepted by the command being continued. Note that there is a total maximum number of characters (including white space) of 256 for any command. Continuation lines will be output depending the current setting of the –ECHO parameter. The ‘|’ continuation character may be translated to the ‘¦’ character in certain countries. Comment Lines It is possible to document input commands using a comment line. Comment lines begin with a ‘*’ in column 1 as shown in the following examples: -ARCHVOL(VOL001 VOL002) * Spread the archive over two volumes -TEMPVOL(WORK01) * but only have the temporary files on one volume When using comment lines note that: T4ASI025-00-00 Comment lines are only supported in SYSIN and Configuration files. Comment lines will be output depending the current setting of the – ECHO parameter. Comment lines are not ‘continued’ using the continuation character. Command Input 103 Chapter 15. Calling PKZIP from a Program PKZIP (and PKUNZIP) can be invoked from another program if required. When developing a program to invoke PKZIP or PKUNZIP, note the following: PKZIP/PKUNZIP adheres to standard IBM linkage conventions Return codes are passed back to your program via register 15 Commands can be passed to PKZIP/PKUNZIP via SYSIN Commands can be passed to PKZIP/PKUNZIP via a parameter list The configuration file will be used if available SYSIN can be ignored by using the -NOSYSIN command Output is written to SYSPRINT. PKZIP for MVS is specifically designed to compress and decompress datasets. If you need to process a stream or block of data then you should use the PKZIP Data Compression Libraries (DCL). The DCL is designed specifically for inclusion into user written programs and offers the programmer the flexibility to process data from any source. The DCL is available on other platforms but it is not compatible with PKZIP version 2. Further information on the PKZIP Data Compression Libraries can be obtained from your supplier. Examples The following examples are given overleaf: Calling PKZIP from an Assembler program Calling PKZIP from a COBOL program. Resource Allocation and Deallocation When a batch process completes (with a 0 or non zero return and/or Abend), OS/390 will automatically free any resources held by that process. So resources that are not actually freed by the ZIP processing, will be freed by the operating system. However when ZIP is invoked via the API this does not happen. When invoked via the API (or using the ISPF interface described in Chapter 17. Using the ISPF Panel Interface) it is important that the ZIP processing return all resources that it acquires. The two most important of these are Storage and File Allocations (or Dynamic Allocations). T4ASI025-00-00 Calling PKZIP from a Program 105 Storage When repeatedly calling PKZIP or PKUNZIP from an application program, the use and freeing of storage by PKZIP/PKUNZIP processing may become significant. When the process completes with a return code of 0, the processing should have returned all storage that has been allocated by it. However in certain error circumstances (when the return code is non 0) and when the processing Abends in some way, storage may not be returned. Subsequent calls to PKZIP of PKUNZIP could see a variety of storage related problems, such as the ZIP Abend U008 or a system Abend such as S106. To reduce the impact of these problems, ZIP processing logs storage requests over a certain size (currently set to 2K). On termination, ZIP processing will attempt to free this storage even if an error or Abend has occurred. In most circumstances this should mean that the loss of storage is restricted to a minimal amount – typically less than 20K below and above the 16 MB ‘line’. However this may be a critical amount of storage, particularly if the processing is repeated frequently. If the invoked ZIP processing fails in anyway (giving return code greater than 0 or an Abend), then the invoking program should be aware that subsequent processing may fail. In general, it is recommended that the invocation of ZIP processing be stopped after a non zero return code or Abend. File Allocation All file allocations are logged by the ZIP processing, which will free the Allocation even if an error or Abend has occurred. However, it is recommended that the invocation of ZIP processing be stopped after a non zero return code or Abend, to ensure that all allocations are reset satisfactorily. 106 PKZIP for MVS: User Reference T4ASI025-00-00 Invoking PKZIP/PKUNZIP from an assembler program The following example shows how PKZIP can be invoked from an assembler program. Sample Assembler Code AMODE 31 RMODE 24 * ... LA ST R1,PARMLEN R1,PARMADDR MVC MVC PARMLEN,=H'49' Store length of parameters PARMCARD,=CL49'-ECHO -NOSYSIN -ARCHIVE(T4ZIP.IRF.PCP1.ZIP) -VIEW' WTO 'ABOUT TO CALL PKZIP' Note – modifies R1 LOAD LR LA BALR EP=PKZIP R15,R0 R1,PARMADDR R14,R15 Load PKZIP module R15 = Entry point address R1 = Address of parameter list address Call PKZIP WTO ... 'RETURNED FROM PKZIP' Note – modifies R1 A H CL100 Stores the address of the parameter list Halfword length Can be up to 65535 characters R1 = Address of parameter length & field Store pointer to parameter information * * * * * PARMADDR DS PARMLEN DS PARMCARD DS Notes To use PKZIP (or PKUNZIP if you are decompressing) from within your program you should first load the PKZIP (or PKUNZIP) module and then call it using a BALR instruction. Parameters can be passed to it via Register 1, see the diagram below for more information: GPR1 +--------+ + | | | +--------+ + Fullword +--------+ | | +--------+ Halfword 0 to 65535 bytes +-----+-----------------------------| Len | Parameters +-----+------------------------------ Specify the -NOSYSIN command if you are not planning to use SYSIN for command input. Note that problems can occur if PKZIP attempts to open the SYSIN dataset after it has already been opened by the calling program. PKZIP for MVS returns control in the same addressing mode in which it was invoked. To ensure that the addressing mode is correct, 24 bit programs should use BALR or BASR instructions rather than BASSM instruction when invoking PKZIP or PKUNZIP. T4ASI025-00-00 Calling PKZIP from a Program 107 Sample Sysprint ZIP101I ZIP501I ZIP502I ZIP503I ZIP505I ZIP506I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss Length Method Size Ratio Date Time CRC-32 Name ---------- ------- ---------- ----- ---------- ----- ----------411 DeflatN 145 65% 09-15-19xx 09:41 0D00410F T4ZIP/SYSTST/CON ------------------- ----411 145 65% PKZIP MVS 2.5 level x ending. Sample Job Log J E S 2 J O B 17.49.00 17.49.02 17.49.02 17.49.02 17.49.03 17.49.05 17.49.06 17.49.06 17.49.06 17.49.07 JOB07769 IRR010I USERID DG IS ASSIGNED TO THIS JOB. JOB07769 ICH70001I DG LAST ACCESS AT 17:47:10 ON WEDNESDAY, NOVE JOB07769 $HASP373 DGTEST STARTED - INIT A - CLASS A - SYS IPO1 JOB07769 IEF403I DGTEST - STARTED - TIME=17.49.02 JOB07769 +ENTERED PROG JOB07769 +EXITED PROG JOB07769 -DGTEST STPZIP ENDED - COND CODE 00 JOB07769 IEF404I DGTEST - ENDED - TIME=17.49.06 JOB07769 -DGTEST COMPLETED JOB07769 $HASP395 DGTEST ENDED 108 L O G PKZIP for MVS: User Reference T4ASI025-00-00 Invoking PKZIP/PKUNZIP from a COBOL program The following example shows how PKZIP can be invoked from a COBOL program. Sample COBOL Program IDENTIFICATION DIVISION. PROGRAM-ID. CAHPKZIP. AUTHOR. C.A HANDS. REMARKS. ****************************************************************** * CALL PKZIP ****************************************************************** * VERSION DATE WHO DESCRIPTION * * ------- -------- --- --------------------------------------- * * 1.0/0 18/03/97 CAH INITIAL VERSION * ****************************************************************** * ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 FILLER. 05 FILLER PIC X(8) VALUE 'CAHPKZIP'. 05 FILLER PIC X(21) VALUE '(C) TARGETFOUR – 19xx'. * 01 FILLER. 05 WS-PGM-NAME PIC X(8) VALUE SPACES. * 01 WS-PARM. 05 WS-PARM-LEN PIC S9(3) COMP VALUE +52. 05 WS-PARM-DATA PIC X(100) VALUE '-ECHO -NOSYSIN -ARCHIVE(CAH.ZIP.OPSYS) -VIEW '. * * PROCEDURE DIVISION. SKIP3 A00-MAINLINE SECTION. ***************************************************************** * CALL PKZIP PASSING THE REQUIRE PARAMETERS. * ***************************************************************** * DISPLAY 'START OF CAHPKZIP' UPON CONSOLE. MOVE 'PKZIP' TO WS-PGM-NAME. CALL WS-PGM-NAME USING WS-PARM. DISPLAY 'END OF CAHPKZIP' UPON CONSOLE STOP RUN. Notes Move PKZIP to WS-PGM-NAME for compression or PKUNZIP for decompression. The WS-PARM-DATA field can contain up to 65535 characters, and should be padded with spaces if required. WS-PARM-LEN should be set to the length of the input commands in WS-PARM-DATA. Specify the -NOSYSIN command if you are not planning to use SYSIN for command input. Note that problems can occur if PKZIP attempts to open the SYSIN dataset after the calling program has already opened it. T4ASI025-00-00 Calling PKZIP from a Program 109 Sample Sysprint ZIP101I ZIP010I ZIP501I ZIP502I ZIP503I ZIP505I ZIP506I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -NOSYSIN -ARCHIVE(CAH.ZIP.OPSYS) -VIEW Length Method Size Ratio Date Time CRC-32 Name ---------- ------- ---------- ----- ---------- ----- ----------1641 DeflatN 183 89% 02-26-19xx 12:05 5C57E219 T4ZIP/SYSTST/CON ------------------- ----1641 183 89% PKZIP MVS 2.5 level x ending. Sample Job Log J E S 2 J O B 11.58.13 11.58.16 11.58.16 11.58.16 11.58.19 11.58.23 11.58.23 11.58.23 11.58.23 11.58.23 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 JOB08851 110 L O G IRR010I USERID CAH IS ASSIGNED TO THIS JOB. ICH70001I CAH LAST ACCESS AT 11:56:44 ON WEDNESDAY, MAR $HASP373 CAHPKZIP STARTED - INIT L - CLASS L - SYS IPO1 IEF403I CAHPKZIP - STARTED - TIME=11.58.16 +START OF CAHPKZIP +END OF CAHPKZIP -CAHPKZIP CAHPKZIP ENDED - COND CODE 00 IEF404I CAHPKZIP - ENDED - TIME=11.58.23 -CAHPKZIP COMPLETED $HASP395 CAHPKZIP ENDED PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 16. Translation and Translation Tables This chapter discusses translation and Translation Tables as they are used in PKZIP for MVS. Translation is used in two places: 1. Translation of data so that it is in a suitable format for the target application. This translation is only performed for text files. 2. Translation of control information (such as the file name) so that it is a suitable format for the target platform. This translation is required for text and binary files. While it may be used for other purposes, the translation facilities provided with PKZIP for MVS are primarily intended to be used to translate between the EBCDIC and ASCII character sets. Note: PKZIP translation is designed to support single-byte character sets (SBCS). It does not support Double Byte Character sets (DBCS) or Unicode. Users who need to translate DBCS or Unicode files, must perform this processing prior to compressing files into an archive or after extracting files from an archive. Files processed in this way should be compressed using the -BINARY command. If an archive will only be used on an EBCDIC platform(s), then the files should be compressed as binary files. In this situation, data translation is an overhead that uses additional CPU resources. PKZIP Translation A ZIP archive can be transferred from one platform to another, and can be decompressed or modified by a copy of PKUNZIP or PKZIP which is running on that platform. The internal format of a ZIP archive is identical no matter which platform compressed the files that it contains. PKZIP for MVS achieves this by translating text files from EBCDIC to ASCII before compression, whilst PKUNZIP for MVS will translate text files from ASCII to EBCDIC after decompression. Control information, such as filenames, password information, and comments are also translated to and from EBCDIC. The translation(s) is(are) performed using a translation table which exists as a loadable module in your load library. When executed, PKZIP for MVS will use the default translation table called ASCII (defined when the product is installed) or one specified by command to perform this translation. T4ASI025-00-00 Translation Tables 111 Commands used for translation The –TEXT command should be used to force translation of the data, -BINARY should be used to ensure that there is no translation of the data. If neither has been specified, an initial portion of the input file is read and checked to determine if it contains Text or Binary data. The algorithm used to make this decision is the same as that used on other PKZIP platforms, however for some files the default decision may not correct so specifying –TEXT or –BINARY is recommended where possible. The -TRAN command specifies the translation table to be used for data in text files. This is used in PKZIP to specify the translation table used for converting text characters from EBCDIC to ASCII. It is used in PKUNZIP to specify the translation table used for converting text characters from ASCII to EBCDIC. The –FTRAN command specifies the translation table that is used for all the control information held in a ZIP archive, such as filenames, password information, and comments. This could be used in PKUNZIP, for instance, to make sure that files that were compressed on an MS-DOS platform are decompressed with filenames that did not contain characters that are illegal for MVS dataset names and member names, such as the “_” or “~” characters. It might be used on PKZIP to ensure that a password character is translated as the same hexadecimal string on all platforms. The –FTRAN and -TRAN translation tables may be different. For more information on these commands for PKZIP, refer to Chapter 21. PKZIP Commands; for more information on them for PKUNZIP, refer to Chapter 23. PKUNZIP Commands. If the supplied translation tables do not meet your needs then the source for the standard translation tables supplied with PKZIP are provided (see Defined Code pages later in this chapter). You may modify this as necessary to meet your needs, using the instructions in Modifying a translation table later in this chapter. Translation table processing The translation table consists of 2 sets of 256 bytes. The first set of 256 bytes is used for translating from data coded in the external MVS environment (typically the EBCDIC character set) to data coded for the ZIP archive (which is normally the ASCII character set). The second set of 256 bytes is used for translating from data coded for the ZIP archive (which is normally the ASCII character set) to data coded for the external MVS environment (typically the EBCDIC character set). For each set of 256 bytes, PKZIP uses the following procedure for translation (for this example, we assume that we are using the first set of 256 bytes for translating from EBCDIC data to ASCII data on compression). For each character to be translated, perform the following procedure: 112 PKZIP for MVS: User Reference T4ASI025-00-00 1. Take the byte to be translated as a numeric value. 2. Use this value as the offset (in bytes) in the translation table. 3. Replace the original byte with the byte value found at that offset within the translation table. The ASCII character set Characters 32 through 127 (x’20’ through x’7F’) are defined by the American Standard Code for Interchange of Information (ASCII). This 7 bit standard for character encoding accommodates all of the standard characters in the English alphabet and can be unambiguously (with a few exception such as the ,’|’, ‘[‘ and ‘]’ characters) translated to/from similar characters in the EBCDIC character for most commonly used code pages. Use of any other characters in text may make it difficult to exchange text information with users in other countries or using different code pages. Modifying a translation table In some circumstances, the default translation table may be insufficient for your needs. If this is so, you should create a new translation table to meet the requirements. The instructions below can be used to create a new version of the translation table. We strongly recommend that you try the process out on a very simple example first so that you fully understand the process involved. For example, try creating a translation table which converts EBCDIC "A" to ASCII "Z" and ASCII "Z" to EBCDIC "A". However, if you do this you must also modify the table so that EBCDIC "Z" is converted to ASCII "A" and ASCII "A" is converted to EBCDIC "Z". If you do not make this second set of changes then PKZIP will not know whether to convert an ASCII "A" to an EBCDIC "A" or "Z". Test your changes by rerunning the Installation Verification Procedure used at installation time with the -FTRAN command. It is vital that a 1-1 relationship is maintained across all the translations, otherwise the results of the compressions and decompressions would become unpredictable. If you get into difficulties try writing down the conversions you have made on paper i.e. in the example above we had: EBCDIC A A But Z above!) So change Z conflict) T4ASI025-00-00 ASCII A Z EBCDIC A A Z Z (gives a conflict with A Z (to remove the (before any changes) (after first change) Translation Tables 113 Procedure It is important that characters are modified in both the ASCII to EBCDIC and the EBCDIC to ASCII tables. You cannot change just one side of the conversion. In addition, please take retain of the structure of the table, and keep the format (spacing, line length etc.) exactly like the original table. 1. Edit the SOURCE library and create a new member (called, for example, MYASCII). Copy the source of the translation table you wish to modify (e.g. UKASCII or USASCII), into the new member. The new member can now be used for your own translation table source. 2. For each character that you wish to modify, change the corresponding hex character in both tables. The procedure for changing characters is explained below. For each character that is incorrect in the translation table, perform the following procedure. a. Find the EBCDIC value of the character that is to be replaced. b. Find the ASCII value of the character to which the EBCDIC character should be converted. c. Look through the first set of 256 bytes in the translation table source and examine the byte which is at the offset of the value of the EBCDIC character to be replaced. d. Take a note of the byte value at that offset. e. Replace the byte value with the ASCII value of the replacement character. f. Look through the second set of 256 bytes in the translation table source, and examine the byte which is at the offset of the ASCII character to be replaced. g. Take a note of the byte value at that offset. h. Replace the byte value with the EBCDIC value of the replacement character. i. For each of the values noted and replaced in the translation table, the appropriate character must be replaced with a suitable value, so that the table is symmetrical. In the A Z example above you would make the following changes (the USASCII table is used as a basis here): 114 PKZIP for MVS: User Reference T4ASI025-00-00 USASCII EBCDIC CSECT ... DC ... DC DC DC ... DC ... DC ... DC DC DC DC ... XL1'7B',XL1'5A',XL1'42',XL1'43' /*C0-CF*/ XL1'5C',XL1'F0',XL1'53',XL1'54' XL1'55',XL1'56',XL1'57',XL1'58' XL1'59',XL1'41',XL1'FD',XL1'F5' /*E0-EF*/ XL1'00',XL1'01',XL1'02',XL1'03' /*00-0F*/ XL1'7C',XL1'E9',XL1'C2',XL1'C3' /*40-4F*/ XL1'D7',XL1'D8',XL1'D9',XL1'E2' XL1'E3',XL1'E4',XL1'E5',XL1'E6' XL1'E7',XL1'E8',XL1'C1',XL1'BA' XL1'E0',XL1'BB',XL1'B0',XL1'6D' /*50-5F*/ 3. Assemble the translation table, using the JCL shown below, and link it into the load library containing PKZIP. Sample JCL is available in the member ASMTRAN in the CNTL library supplied with this product (see Appendix A. Installation Guide). 4. Quote the new translation table to PKZIP or PKUNZIP using the -TRAN or -FTRAN command as necessary. Example JCL for assembling a modified translation table, as explained above, follows. //<jobcard> //ASM EXEC PGM=IEV90, // PARM='DECK,NOOBJECT,LIST,BATCH' //SYSIN DD DISP=SHR,DSN=<Translation table source> //SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB //SYSUT1 DD UNIT=SYSDA,SPACE=(1700,(400,400)) //SYSPUNCH DD DSN=&&LOADSET,UNIT=SYSDA,DISP=(,PASS), // SPACE=(400,(100,100,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=400) //SYSPRINT DD SYSOUT=* //* //LKED EXEC PGM=IEWL,COND=(4,LT,ASM), // PARM='XREF,NCAL' //SYSLMOD DD DISP=SHR,DSN=<PKZIP load library>(<module name>) //SYSUT1 DD UNIT=SYSDA,DCB=BLKSIZE=1024, // SPACE=(1024,(200,20)) //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // JCL for assembling the translation table <job card> T4ASI025-00-00 should be replaced with the job details required for running this job, in accordance with your installation standards. Translation Tables 115 <Translation table source> should be replaced by the dataset name and prefix in accordance with your installation standards, or with the suggested dataset name provided in Contents of the PKZIP for MVS Libraries in Appendix A. Installation Guide. <PKZIP load library> should be replaced by the dataset name and prefix in accordance with your installation standards, or with the suggested dataset name provided in the PKZIP for MVS Supplied Libraries in Appendix A. Installation Guide. <module name> should be replaced by the module name which corresponds to the member name specified in <Translation table source> above. Code Pages When a (SBCS) text document is displayed or printed, each byte (8 bits) is translated to a displayable/printable character. This means that there are 256 possible bit-patterns or code points available to represent a character. The collection of all 256 code points and the corresponding individual character assignments are called a code page. It is the code page that determines which displayable character will be seen on the screen. So for example, on a DOS PC, the character displayed for the bit pattern x’F3’ may be one of: ≤ (greater than or equal to) when using the ‘Personal Computer’ code page (number 437) which is typically used in the US and North America. ¾ (the fraction 3/4) when using the ‘Personal Computer – Multilingual’ code page (number 850) which is typically used in the UK and Europe. In addition, it will be displayed as ó (lower case o with accent) by most PC Windows applications, using the ‘ISO/ANSI Multilingual’ code page (number 819). The same sort of differences can be seen when displaying files on a mainframe, for example the character x’4A’ will be displayed as: 116 [ (open square bracket) when using the ‘International #5’ code page (number 500). ¢ (cent symbol) when using ‘USA/Canada’ code page (number 037). PKZIP for MVS: User Reference T4ASI025-00-00 From this it should be clear that when transferring text documents from one system to another: The files may look different even when the data displayed is the same. The files may look the same, even when the data displayed is different. This makes the determination of the correct translation quite difficult even when the source and target platforms are defined. Euro To support the euro symbol, EBCDIC code pages on the mainframe have been changed so that the ‘¤’ currency symbol (x’9F’) would display the euro correctly. So the x’9F’ will look like a euro if the display is using one of the code pages that supports it (e.g. ‘US/Canada (euro)’ page 1140) or it will look like the currency symbol using a non euro supporting page. [Note that some code pages for Scandinavian countries use X’5A’ rather than x’9F’ for the euro.] On other platforms (notably the PC) new code pages have been created with the euro character using a number of code points including x’80’, X’88’ and X’A1’ (depending on the code page). This change is not compatible with the change made on the mainframe. For example, using the DOS ‘Personal Computer – Multilingual’ code page 850, x’A1’ was the ‘dot-less i’. When converting to EBCDIC, this character would normally be translated to x’55’. However if the PC is displaying the euro character (using ‘Personal Computer – Multilingual (euro)’ number 858 or a euro patched version of 850) then this should be translated to x’9F’. As the character to be used for the euro depends on the target platform and the code page that is in use on that platform, it is not possible to provide a generic translation table that supports the euro. In most cases: Mainframe files will use x’9F’, and PC based files, the euro will be processed on a system that uses x’80’ as the code point for the euro symbol. PKZIP for MVS uses these code points as a basis for the euro enabled translation tables supplied with the product. Note: T4ASI025-00-00 The euro symbol is ‘’ which will display as a ‘box’ if your system does not support the euro. As a picture, the euro looks like the following: Translation Tables 117 Defined Code pages The following table lists some of the more commonly used code pages: Mainframe code pages: US/Canada (037 without, 1140 with euro support) UK (285 without, 1146 with euro support). PC (DOS) code pages: Personal Computer (437), typically used in the US/Canada Personal Computer – Multilingual (850 without, 858 with euro support). The supplied translation tables The source for the translation tables supplied with PKZIP for MVS are included in the Source dataset (which should be created as part of the product installation). This section describes when they should be used. Typically, the translation tables have been designed to take characters as they would be displayed on the EBCDIC mainframe and convert these to a similar displayable character on a PC. LATIN1 This table is only intended for use when the ISO 8859 Part 1 (Latin No.1 without euro) character set is required – any other characters are converted to ‘?’. This table should only be used when there is a need to restrict the characters used. USASCII This table is intended for text files transferred between PCs using the (US) code page 437 and mainframe processing using the code page 037. USASCIIE This is a version of the USASCII table described above, changed to support the euro at ASCII code point x’80’ and EDCDIC code point x’9F’. Note that to maintain symmetry, this table converts the ASCII x’0F’ to the EBCDIC character x’68’ (Ç) and vice versa. UKASCII This table is intended for text files transferred between PCs using the Multi-lingual code page 850 and mainframe processing using the code page 285. 118 PKZIP for MVS: User Reference T4ASI025-00-00 UKASCIIE This is a version of the UKASCII table described above, changed to support the euro at ASCII code point x’80’ and EDCDIC code point x’9F’. Note that to maintain symmetry, this table converts the ASCII x’CF’ (currency symbol) to the EBCDIC character x’68’ (Ç) and vice versa. T4ASI025-00-00 Translation Tables 119 Part 4. Additional Facilities T4ASI025-00-00 Additional Facilities 121 Chapter 17. Using the ISPF Panel Interface This section describes how to use the ISPF panel interface. The interface enables the user to create and submit foreground or batch jobs interactively using PKZIP or PKUNZIP via TSO. The ISPF panel interface is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. Starting the Panel Interface Use these instructions if PKZIP processing has not been integrated into the standard ISPF panels. The TSO command PKSTART is used to start the PKZIP ISPF Interface. It accepts one parameter, which can be: S, if work datasets should be allocated using the TSO PREFIX U (or missing), if work datasets should be allocated using the TSO Userid. For example, to start the processing using the TSO PREFIX to define work datasets, the following command could be used: PKSTART S Note: The ‘S’ prefix option requires that the TSO PREFIX be used and be different for different users, to ensure that work datasets used during its operation are unique for each user. Starting the Panel Interface for the first time When starting the panel interface for the first time, the messages: Configuration not set up. Use Configuration Panel to set Defaults. will be displayed to remind the user to set up the PKZIP configuration. T4ASI025-00-00 Using the ISPF Panel Interface 123 Main Menu When the ISPF Interface has finished initialising, the following main panel menu will be displayed: ------------ PKZIP for MVS: Main Menu ----------------------- Panel Version 1.1 OPTION ===> C H L U V Z Configure Help License Unzip View Zip Specify defaults for PKZIP Help on using these Panels Product licensing Decompress Archived Data View contents of an Archive Compress Data Sets or Members X EXIT Exit PKZIP for MVS Panel Interface F3 to exit screen proceed F4 to return Option followed by Enter to From this Menu, the functions can be invoked by entering the letter associated with the function. The first thing that each user must do is set up his/her own configuration information. This is achieved by selecting option “C”. Configuration Panel This panel is used to configure default settings for PKZIP for MVS processing. ------------ PKZIP for MVS: Configuration --------------------Panel Version 1.1 OPTION ===> Load Library . . : PKZIP.V25x.LOADLIB Specify Configuration Files ZIP Processing . : UNZIP Processing : Specify Translation Table(s) Text File Data: File Names: Specify Allocation Information for temporary files Volume . . . . . : Unit: SYSDA SMS Class: Data: Man.: Stor.: Specify Job Card(s) //ZIPJOB JOB CLASS=A //* //* F3 to exit screen 124 Enter to save new settings PKZIP for MVS: User Reference T4ASI025-00-00 This screen is used to: Identify the Load Library to use for PKZIP, PKUNZIP and License utility jobs. Specify the installation or personal configuration files which will be used by PKZIP and PKUNZIP (typically used when there are standard settings which should be included when compressing or decompressing datasets). Specify the default Data Translation and File Name Translation tables. Specify the default allocation information, which PKUNZIP can use to create temporary datasets when viewing data within a ZIP archive . Specify the Job Cards to be added to the front of any generated JCL stream. When in this panel “enter” will update the configuration details. Return to the main menu by pressing “F3”. Note: The PKZIP and PKUNZIP configuration files specified here are not used when viewing archives or browsing files via the ISPF panel interface. The default settings specified will remain in place across TSO sessions until the next time they are changed using this panel. Using the Panels Once configured, processing is directly invoked from the Main Menu. The three panels that support compression (Option Z), decompression (Option U) and view (Option V), have several features in common. Batch, Foreground and Quiet mode Each of these screens provides the option to execute PKZIP or PKUNZIP jobs in Foreground or Batch mode. When running the in foreground, Quiet mode will only display PKZIP for MVS output when an error occurs. Extra Command Lines These are present to support extra commands, which are not directly supported on the panel(s). The standard PKZIP and PKUNZIP commands (as described elsewhere in the manual) can be coded. In addition, more than one command can be entered on each extra command line. T4ASI025-00-00 Using the ISPF Panel Interface 125 Compressing Data This function is accessed from option “Z” on the main menu. ------------ PKZIP for MVS: Compress Files ------------------ Panel Version 1.1 OPTION ===> Specify Archive details Archive Name : Volume . . . : SMS Class: Data: Unit: Man.: Stor.: Specify the files to be compressed File Selection : Function . . . : A (A - Add, F - Freshen, U - Update, D - Delete) More Selections: N (Y - Prompt for additional selections, N - None) Advanced Options : N (Y - Prompt for additional options, N - No) MODE . . . . . : F (F - Foreground, B - Batch, Q - Quiet) Extra Options . : . . . . . . . : F3 to cancel & exit screen archive Enter to process View to VIEW This panel contains all the usual options for compressing data. “Enter” is used to initiate processing of the panel. Further information for the ZIP process may be entered on two additional screens: 1. To use additional file selections, place a “Y” next to More Selections. This will invoke the Additional Files panel where (up to ten) further file selections can be entered. 2. To use any of the more advanced commands, place a “Y” against Advanced Options. This will invoke the PKZIP Advanced Options screen that supports some of the more sophisticated options of ZIP. Press “Enter” to process any input on the Additional Files or Advanced Options panels - use “F3” to cancel it. It is also possible to view the archive (if it exists) by typing “View” on the option line. This will display the standard VIEW output for the specified archive. 126 PKZIP for MVS: User Reference T4ASI025-00-00 Decompressing Data This function is accessed from option “U” on the main menu. ------------ PKZIP for MVS: Extract files ------------------- Panel Version 1.1 OPTION ===> Specify Archive from which files will be extracted Archive Name . : Test Archive Integrity only: N (Y - Yes, N - No) Specify File(s) to be extracted File Selection : Rename to . . . : Overwrite/Insert: N (O - Overwrite, I - Insert Member, N - None) More Selections : N (Y - Prompt for additional selections, N - Don't) Specify Allocation information for extracted files Volume . . . . : Unit: SMS Class: Data : Man.: Stor.: Advanced Options MODE . . . . . . Extra Options . . . . . . . . : N (Y - Prompt for Advanced Options, N - Don't) : F (F - Foreground, B - Batch, Q - Quiet) : : F3 to cancel & exit screen archive Enter to process View to VIEW This panel contains all the usual options for decompressing data, including: The Rename option supports renaming a file while it is being decompressed. While the default for PKUNZIP is not to decompress data into an existing dataset, the Overwrite option allows the user to overwrite existing datasets. The Insert option enables the user to decompress a file into a new PDS member of existing PDS. “Enter” is used to initiate processing of the panel. Further information for the UNZIP process may be entered on two additional screens: 1. To select more files for decompression, place a “Y” next to More Selections. This will invoke the Additional Files panel where (up to ten) further file selections can be entered. 2. To use any of the more advanced commands, place a “Y” against Advanced Options. This will invoke the PKUNZIP Advanced Options screen which supports some of the more sophisticated options of UNZIP. Press “Enter” to process any input on the Additional Files or Advanced Options panels - use “F3” to cancel it. It is also possible to view the archive by typing “View” on the option line. This will display the standard VIEW output for the specified archive. T4ASI025-00-00 Using the ISPF Panel Interface 127 Viewing Archives Archives can be viewed by selecting “V” from the main menu. ------------ PKZIP for MVS: View Archive ---------------------Panel Version 1.1 OPTION ===> Specify Archive Archive Name : Specify VIEW Type . . . Sort by . Size) Order . . Options . : V (V - View, D - Detail) . : (D - Date, N - Name, O - Offset, P - Percent, S . : (A - Ascending, D - Descending) MODE . . . . . : F (F - Foreground, B - Batch) Extra Options : . . . : F3 to cancel & exit screen Enter to process This panel is used to obtain a Standard or Detailed view of an archive and to sort the contents of the archive as required. See the -VIEW command and the –VIEW command DETAIL option in Chapter 23. PKUNZIP Commands, for more information about what these commands display. To view information for one or more selected files, input the file names using the Extra Options lines. Names of non MVS files should be enclosed in double quotes. Browsing Data in an Archive Having first done a view of an archive, it is then possible to view the data in a compressed file provided that it is a sequential dataset or a PDS member. The contents of encrypted files cannot be browsed. To browse a file, place a select code of “B” beside the name of the required file. PKZIP will be used to extract the file and use ISPF to browse the created dataset. Note: 128 PDS member datasets compressed with versions of PKZIP for MVS before Version 2.2 or with the -NOATTRIB command will be browsed as sequential files. PKZIP for MVS: User Reference T4ASI025-00-00 Product License Information Information relating to CPU ID and current product license details can be obtained by selecting “L” from the main menu. ------------ PKZIP for MVS: License Processing ---------------Panel Version 1.1 OPTION ===> View current License Details : (Y - Yes, N - No) Display CPU ID . . . . . . . : (Y - Yes, N - No) MODE . . . . . . . . . . . . : F (F - Foreground, B - Batch) F3 to exit screen Enter to process selection A “Y” is used to indicate which option is to be reported (only one will be processed). “Enter” will process the selection. A sample Licence Details report may look like this: T4ASI025-00-00 Using the ISPF Panel Interface 129 T4X101I T4X030I T4X080I T4X100I T4X080I T4X081I T4X081I T4X080I T4X082I T4X080I T4X084I T4X085I T4X088I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X087I T4X080I T4X090I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X080I T4X081I T4X080I T4X102I License Process: T4XPLIC MVS 4.0 level x, starting. Executing on CPU: 120F0573xxxx. * Processing Card: R * Report on contents of License Table ===================================== * Version: 0100, last updated on: 19xx0515, for: Evaluation User * Product: PKZMVS25, License Num: UNLICENSED . Start: 19xx0515, End: 19xx0614, Users: 32767. Functions: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY. - PKZIP Compression. - PKUNZIP Decompression. - PKZIP BPAM file handlers. - PKZIP BSAM file handlers. - PKZIP multi-tasking (de)compression. - PKZIP fast temporary file and archive handler. - PKZIP VSAM file handlers. - PKZIP magnetic tape/cartridge file handlers. - PKZIP ISPF panels. - PKZIP GigaZip. Licensed for: 12**0573xxxx, Matched. * CPU Table. CPU Number: 00, CPU Id: 120F0573xxxx. CPU Number: 01, CPU Id: Not Defined . CPU Number: 02, CPU Id: Not Defined . CPU Number: 03, CPU Id: Not Defined . CPU Number: 04, CPU Id: Not Defined . CPU Number: 05, CPU Id: Not Defined . CPU Number: 06, CPU Id: Not Defined . CPU Number: 07, CPU Id: Not Defined . CPU Number: 08, CPU Id: Not Defined . CPU Number: 09, CPU Id: Not Defined . CPU Number: 10, CPU Id: Not Defined . CPU Number: 11, CPU Id: Not Defined . CPU Number: 12, CPU Id: Not Defined . CPU Number: 13, CPU Id: Not Defined . CPU Number: 14, CPU Id: Not Defined . CPU Number: 15, CPU Id: Not Defined . * Finished reporting of License Table * License Process: T4XPLIC MVS 4.0 level x, ending. The licensed functions are listed in the T4X089I messages. A CPUID Report may look like the following example: CPU-ID PRINTING PROGRAM - T4XPLIC 4.0/x =========================================== 1 CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU 130 NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: NUM: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: 120F0573xxxx NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED NOT DEFINED PKZIP for MVS: User Reference T4ASI025-00-00 Exiting the Panel Interface Use “F3” to return to the previous panel. Use “F3” or “X” to exit from the panel interface main menu. Error Recovery If the ISPF panel interface processing is interrupted by a machine or power failure, or an unexpected processing error occurs, PKSTART may not initialise correctly the next time it is used. This can happen because the work datasets are allocated but not removed. To correct this, the user may need to run PKCLEAN to remove any temporary work files used by the panel interface that have been left on the system. Once PKCLEAN has removed these files, the panel interface can be restarted using PKSTART. If PKCLEAN processing has not been integrated into the standard ISPF panels, use the following instructions. Like the PKSTART command, PKCLEAN accepts one parameter, which can be: S, if work datasets should be allocated using the TSO PREFIX U (or missing), if work datasets should be allocated using the TSO Userid. The parameter used should be the same as that used by the last invocation of PKSTART. For example, to clean up processing using the TSO PREFIX to define work datasets, the following command could be used: PKCLEAN S Restrictions The TSO PREFIX is never used for datasets or file selections specified for PKZIP or PKUNZIP processing. It is difficult to use the TSO PREFIX in a way that is both consistent and usable for both file selections (i.e. when files are selected to be added to or extracted from an archive) and dataset specifications (e.g. archive names). Rather than confuse users, the ISPF interface does not use the PREFIX. To make this clearer, datasets are displayed with surrounding quotes (so that in normal TSO usage they would not have the PREFIX pre-pended). If users wish to add their PREFIX, they should add it in manually. To ensure that the ISPF interface was not overly complicated, it provides access to the most frequently used parts of PKZIP. There are some facilities that can’t be directly used via the ISPF interface. T4ASI025-00-00 Using the ISPF Panel Interface 131 For example, the ISPF interface does not support processing that requires JCL specification. This means it does not support magnetic cartridge or tape processing (for archives, input or output files) or GDG processing that is specified using the generation number (i.e. GDG(number)). However, it is possible to manually create the required JCL and commands using the batch option and editing the generated job. 132 PKZIP for MVS: User Reference T4ASI025-00-00 Part 5. GZIP (GNU zip) Processing T4ASI025-00-00 133 Chapter 18. An Introduction to GZIP (GNU zip) GZIP (GNU zip) is a generic term, which is typically used to mean a utility program (available on a number of platforms including UNIX and PC), that can be used like PKZIP to compress and extract data. This utility implements two ‘specifications’: RFC 1951: Deflate Compression, which documents the compression algorithm used by GZIP. RFC 1952: GZIP file format Specification, which documents the format of a file once it has been compressed using GZIP processing. The RFC process for propagating information, specifications and standards throughout the Internet community is documented at www.faqs.org/rfcs. Both these specifications are platform independent, therefore data compressed on one platform (e.g. UNIX) can be decompressed on another platform (e.g. MVS). This chapter reviews the GZIP specification, comparing it where appropriate to the PKZIP specifications. But first it answers the question – Why use a GZIP archive? Why use a GZIP archive? GZIP offers one significant advantage over PKZIP - its ability to handle large (> 4 Gigabyte - GB) file sizes. The PKZIP archive format (as currently specified) is restricted to processing uncompressed files that are less than 4 GB and can not create an archive containing a number of these smaller files, if the resultant archive is itself greater than 4 GB. Both these restrictions are a result of the information that is must be stored in 4 byte fields within the archive. By comparison the GZIP ‘archive’ format (see later) can process files of any size. This format does not try to maintain ‘index’ information for individual files and allows sizes to ‘wrap’ at the 4 GB and so does not suffer from this problem. However because of this, the GZIP ‘archive’ format does not provide a satisfactory ‘archive’ in the way that PKZIP does. This point is explained later. In general, the recommendation is: T4ASI025-00-00 For single large files, use GZIP. Large means those files that are currently or are likely to become more the 2 GB in size. In other circumstances, use PKZIP. An Introduction to GZIP 135 Deflate compression This compression algorithm is very similar to that used in PKZIP, to that extent that data compressed using the PKZIP algorithm can be extracted by the Deflate algorithm and vice-versa. For a more detailed discussion of data compression techniques and further information on the algorithms used by PKZIP, please refer to Appendix D. Characteristics of Data Compression. In addition, the reader is referred to the associated RFC 1951. GZIP file format GZIP uses slightly different terminology to that used by PKZIP as shown in the following table. In this section we shall use the GZIP terminology, however everywhere else in this document will use the PKZIP terminology. GZIP name PKZIP name Meaning Member File Compressed data set File Archive Collection of compressed data sets Typically when GZIP is used, each input file is converted to a separate output member. Some attributes of the input file (for example, its modification time stamp), may be retained as attributes of the output member. Additional information can be placed in the ‘header’ for the output (compressed) member. Using this format, each GZIP output member can retain information like the following: The name of the file. The date and time of the file. The CRC value prior to compression (see Cyclic Redundancy Check on page 4). The compression method used on the file. The uncompressed size of the file. In addition, GZIP members can also store platform specific information (for instance, DCB information on MVS). When decompressing a member from a GZIP member, this information may be used to create the decompressed file. 136 PKZIP for MVS: User Reference T4ASI025-00-00 The concept of an ‘archive’ is not really part of the GZIP processing. The GZIP file is just a series of members, which appear one after another in a file, with no additional information before, between or after them. This makes archive processing, in the way that is typically done for PKZIP (e.g. Viewing details for all the members in an archive (GZIP File)) problematic as it is not possible to determine where one member starts unless the previous member has been decompressed. A real world analogy, which might clarify the difference between a GZIP file and PKZIP archive, is provided by imagining this manual as an archive, with the various chapters as the files (members). In PKZIP format, this manual would include a Table of Contents, so that it is possible to find individual chapters directly. In GZIP format, there would be no Table of Contents, so the only way to find a chapter is to skip over each of the preceding chapters – in fact you won’t know what the chapters are called unless you read the whole manual! File contents A GZIP archive holds files internally in either Text or Binary format, both formats are compatible with other platforms supported by GZIP. By default, the information held in a GZIP archive is Binary. This means that data is placed in the archive as it is found in the input file. When transporting archives between machines that use different codes for text (e.g. EBCDIC to ASCII), the Binary format may not be appropriate. Specifying that these are TEXT will allow PKZIP on MVS to perform EBCDIC to ASCII conversion as required. Specifying TEXT may also be useful when PKUNZIP is used on MVS to extract data that has been compressed on an ASCII system. Further information describing the differences between these two formats is included in Chapter 5. ZIP Files, especially the section File formats on page 45. Note when reviewing this section that GZIP will not re-read the file to determine the type – if the user does not specify the type, then it is processed as Binary. This has implications for variable length TEXT files. PKZIP would process these and automatically convert them to ASCII Text, but GZIP processing will not do this. Cross Platform Compatibility A GZIP file can be transferred from one platform to another, and can be decompressed by GZIP running on that platform. The internal format of a GZIP file is identical no matter which platform compressed the files that it contains. T4ASI025-00-00 An Introduction to GZIP 137 Chapter 19. Processing GZIP Format Archives This section describes how to use PKZIP for MVS when processing GZIPi archives. PKZIP for MVS can be used to create and extract from GZIP format archives in much the same way as if can be used to create and extract information from a PKZIP archive. Most of the facilities that are available for PKZIP processing may also be used for GZIP processing Note however that there are a number of restrictions when using GZIP archives that are documented in the GZIP restrictions later in this Chapter. GZIP processing is a licensable option in PKZIP for MVS. More details on licensing can be found in Appendix B. Licensing Guide or directly from your PKZIP supplier. Creating GZIP archives PKZIP for MVS can be told to create a GZIP format archive, simply by coding the –GZIP command when using the PKZIP program. Specifying -GZIP tells PKZIP to create an archive in GZIP format rather than PKZIP format. Coding -GZIP has the following effects: Only one file may be selected for compression into the GZIP archive. This file will be written directly into the archive so there is no need to code -TEMP* commands to specify the temporary file to be used. The output archive must not exist – it is not possible to merge files into a GZIP archive. As a result, the –ADD command must be used (or allowed to default). In most other respects, processing looks identical to that used if the file was being output to a PKZIP archive. i The code used by PKZIP for MVS in extracting data from and creating GZIP archives has been developed independently of the original GNU zip code. It follows the standards specified in the two applicable RFCs, specifically RFC 1952: GZIP file format specification version 4.3 and RFC 1951: DEFLATE Compressed Data Format Specification version 1.3. T4ASI025-00-00 Processing GZIP Format Archives 139 File attributes When compressing files into a GZIP archive, PKZIP for MVS will store allocation information, such as dataset type, record length with the file in the GZIP archive. This information should be sufficient to recreate the file with the same attributes during UNZIP operations. File attributes are stored in the header portion of the GZIP archive. File Names File names used in GZIP archives must follow the GZIP conventions: Be in lower case – because MVS is a case insensitive operating system Use the ISO 8859-1 (Latin-1) character set. To ensure that file names created by PKZIP for MVS match these requirements, PKZIP for MVS processing will always verify the file name and convert upper to lower case and any unrecognised characters to ‘?’ (question mark). In addition PKZIP for MVS includes a LATIN1 translation table, suitable for use as the translation table for the FTRAN command, in both source and executable forms. Prior to this name conversion, GZIP processing uses the usual name conversion processing, so commands like NIA and PATH will alter the name used in the GZIP archive. Summary of changed PKZIP commands The following commands are normally used for PKZIP processing but have different use when creating GZIP archives. Detailed information for each of these commands is presented in General PKZIP commands on page 159. 140 Command Description -ATTRIB -ATTRIBCENTRAL -ATTRIBLOCAL All specify that file attributes should be stored in the header of the GZIP archive. -CACHEMEMORY Provides no advantage to GZIP processing. -DELETE Not Supported– job will fail if specified. -FILEPROCERR Not Applicable, only one file processed at a time. -FILESELERR Not Applicable, only one file processed at a time. -FRESHEN Not Supported – job will fail if specified. -FTRAN Note that File Names will always be converted to ensure that they match the ISO 8859-1 (LATIN-1) standard. PKZIP for MVS: User Reference T4ASI025-00-00 Command Description -GZIP Specifies that the output archive will be created in GZIP format. Mandatory for GZIP support. -METHOD Method STORE is not available for GZIP archives (GZIP standard does not support it). -NIA See FTRAN. -NIASEP See FTRAN. -TAPETODISK Not Applicable. -TASKS Only one task is used – regardless of what is coded. -TEMP* No TEMP commands need be coded – coded commands will be ignored. -UPDATE Not Supported – job will fail if specified. -VIEW Is only supported in PKZIP for GZIP archives if the GZIP command is also specified. Extracting GZIP files When UNZIPing GZIP data there is no need to specify the GZIP command as PKUNZIP will automatically detect that the input archive is in GZIP format and will process it accordingly. This has the following effect: Only the first file in the GZIP archive may be selected for decompression into the GZIP archive. In most other respects, processing is identical to that used if the file was being extracted from a PKZIP archive, with the following exceptions: T4ASI025-00-00 If there is no name associated with the input file, PKUNZIP will assume that the name is the archive name with the last qualifier (or member name if a PDS), being replaced with GZOUT. File size information is output after the file has been decompressed – this information is only available at that stage in the processing for GZIP archives. Depending on the input file, some file attributes that are normally available in a ZIP archive that has been created by PKZIP for MVS may be missing. For example, a tape file’s blocksize will not be available. Missing attributes must be coded as part of the decompression commands. Use the VIEWDETAIL command to determine attributes that are present. Processing GZIP Format Archives 141 File names used in GZIP archives must follow the GZIP conventions which can make it difficult to use the PKUNZIP ‘MVS Style’ file selection. As there is only one file in a GZIP archive, it should be necessary to specify a file selection – the default ‘**’ selection will extract the file. If it is necessary to specify the file name to be extracted from a GZIP archive, then the Unix style file name surrounded by “” characters should be used. Summary of changed PKUNZIP commands The following commands are normally used for PKUNZIP processing but have different use when extracting from GZIP archives. Detailed information for each of these commands is presented in General PKUNZIP commands on page 228. Command Description -CACHEMEMORY Provides no advantage to GZIP processing. -FILEPROCERR Not Applicable, only one file processed at a time. -FILESELERR Not Applicable, only one file processed at a time. -TAPETODISK Not Applicable. -TASKS Only one task is used – regardless of what is coded. -TEMP* A temporary archive will never be used. -VIEW Only the information available in the GZIP header will be displayed. For performance reasons, other information that may be available by reading to the end of the archive, will not be displayed. GZIP restrictions PKZIP for MVS processing of GZIP archives involves the following restrictions: 142 Only one file is supported per GZIP ‘archive’. When creating an archive, this means that only one file or one PDS member may be placed in the archive. When extracting from a GZIP archive, only the first file will be extracted - to use GZIP terminology, only the first member of a GZIP file containing multiple members will be processed. Note that this documentation uses the term ‘archive’, even though the archive contains only one file. If PKZIP for MVS is used to create an encrypted GZIP file, other platforms may not be able to decrypt the data. The encryption algorithm used by PKZIP for MVS in a GZIP file is similar to that used by PKZIP and is not supported as part of the specifications for GZIP. Compression processing will not merge or update compressed data from an existing archive – each GZIP archive is created from scratch. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 VIEW processing may not show all the details from the archive, because some information is not stored (or not stored in convenient locations) in the GZIP archive. For example, the compressed and uncompressed file sizes will typically be shown as 0. In addition, it is only possible to VIEW an archive using the PKZIP program if the – GZIP command is used – otherwise PKZIP will output a message indicating that the archive is not valid because it assumes the archive is in ZIP format. PKUNZIP will automatically detect the archive format used. File Names in input GZIP Files are restricted to 255 characters – any characters after 255 are ignored. File Names on output GZIP archives are restricted by the length of MVS file names and the supported number of characters that can be used to alter these (e.g. NIA command output is restricted to 80 characters). Comments in input GZIP Files are restricted to 255 characters – any characters after 255 are ignored. It is not possible to add a comment when creating GZIP archive. The code used by PKZIP for MVS follows the standards specified in the two applicable RFCs, specifically RFC 1952: GZIP file format specification version 4.3 and RFC 1951: DEFLATE Compressed Data Format Specification version 1.3. PKZIP for MVS should always be able to create a GZIP compatible compressed file and extract data from a GZIP compressed file where the GZIP utility matches these two specifications. When compressing, the input file is not removed. When decompressing, the input archive is not removed. The file name stored in the archive header created by PKZIP for MVS will typically contain ‘directories’ which relate to the qualifiers of the original MVS name. According to the GZIP specifications, the file name stored should be “the original name of the file being compressed, with any directory components removed”. However most GZIP utilities support directories and the default PKZIP for MVS processing will create ‘directories’ in the output file name. If it is important to suppress these directories, then the ZIP naming commands, particularly NOPATH and NIA, may be used to set an appropriate name. Note that it is not possible to create an archive using PKZIP for MVS that does not have the GZIP file name stored in the archive header. To match the GZIP specifications, the time stored in the archive header should be UTC (i.e. GMT). However the actual time inserted by PKZIP for MVS will depend on the TIMESTAMP command. If UTC is required then it should be specified. Note that it is not possible to create an archive without a time using PKZIP for MVS. There is no standard MVS method to set the creation date of a file. As a result, the time in the GZIP archive is ignored when creating an MVS output file. Processing GZIP Format Archives 143 Sample GZIP processing Compressing a dataset The following example shows how to compress a dataset into a GZIP archive. //ZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.GZIP)1 -ARCHUNIT(SYSDA)2 -GZIP3 MY.GZIPTEST.SEQ4 /* This step could give the following output: ZIP101I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss ZIP010I -ECHO ZIP010I -ARCHIVE(OUTPUT.FILE.GZIP) ZIP010I -ARCHUNIT(SYSDA) ZIP010I -GZIP ZIP010I MY.GZIPTEST.SEQ ZIP865I Processing file: MY.GZIPTEST.SEQ. ZIP453I Compressed file MY.GZIPTEST.SEQ as my/gziptest/seq (Deflated 92%).5 ZIP612I Compressed Size: 4261 Bytes (x000010A5), Decompressed Size: 47472 Bytes (x0000B970). 6 ZIP102I PKZIP MVS 2.5 level x ending. Notes In this case, the sequential dataset MY.GZIPTEST.SEQ is to be compressed into the new ZIP archive OUTPUT.FILE.GZIP, which is created on a SYSDA volume. Please refer to Part 6. Reference Section for more information on individual commands if required. 144 1. GZIP archives should not be pre-allocated, only PKZIP should be used to create archives. 2. You should tell PKZIP how to create the GZIP archive, the recommended minimum information is an volume name, unit name or a DFSMS storage class. By default GZIP archives are created as sequential datasets but, if required, you have full control over the type of archive created using the various -ARCH commands available. 3. This command tells PKZIP to create a GZIP archive. 4. You tell PKZIP what to compress using a ‘file selection’. Any command which does not begin with a "-" is considered to be a file selection. In this example we tell PKZIP to compress the sequential dataset MY.INPUT.DATA.SEQ. PKZIP for MVS: User Reference T4ASI025-00-00 5. To ensure cross platform compatibility, all MVS dataset names are converted to the standard GZIP format in lower case i.e. my/gziptest/seq. When you unzip the file, the conversion is reversed to recreate the original MVS name. 6. The compressed and uncompressed file sizes are displayed when compression is complete. Note that the values are given in hex as well as decimal – when the values become larger the decimal value will use a ‘unit’ such as KB, but the hex value will be the actual size. Viewing the contents of an archive The following example shows how to view the contents of a GZIP archive (created in the previous example), using PKZIP for MVS. //STPZIP EXEC PGM=PKUNZIP1,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.GZIP) -VIEW /* This step could give the following output: UNZIP101I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss UNZIP010I -ECHO UNZIP010I -ARCHIVE(OUTPUT.FILE.GZIP) UNZIP010I -VIEW UNZIP501I Length Method Size Ratio Date Time CRC-32 Name UNZIP502I ---------- ------- ---------- ----- ---------- ----- ----------UNZIP503I 0 DeflatN 0 0% 03-30-1999 20:16 00000000 my/gziptest/test2 UNZIP505I ------------------- ----UNZIP506I 0 0 0% UNZIP102I PKZIP MVS 2.5 level x ending. Notes 1. The -VIEW command is only available via the program PKUNZIP, or using the PKZIP program with the –GZIP command. 2. This example demonstrates a standard view of the archive. Much of the information that would be displayed for a ZIP archive is not available for a GZIP archive. For a full description of the information provided by the -VIEW command and the various options available please refer to Chapter 23. PKUNZIP Commands. T4ASI025-00-00 Processing GZIP Format Archives 145 -VIEWDETAIL One useful option is the -VIEWDETAIL command. It displays the full technical details, including any file attributes stored, for the archive. //STPZIP EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.GZIP) -VIEWDETAIL /* This step could give the following output: UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP507I UNZIP508I UNZIP509I UNZIP510I UNZIP511I UNZIP512I UNZIP513I UNZIP521I UNZIP515I UNZIP520I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP519I UNZIP501I UNZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(OUTPUT.FILE.ZIP) -VIEWDETAIL Filename: my/gziptest/seq File type: Binary Date and Time: 30-Mar-ccyy 10:16:48 Compression Method: DeflatN Compressed Size: 0 Uncompressed Size: 0 32 bit CRC value : 00000000 GZIP Archive created by: PKZIP: 2.51 under MVS Needed to extract: PKUNZIP: 2.0 File attributes GZIP Header: 1F8B080C30310137040F Volume serial(s): T4PRD1 Record length: 240 Block size: 3120 Record format: Variable Blocked ANSI Space allocation: Blocks Secondary quantity: 500 Primary quantity: 24 File Creation Date: 19xx0809 Last Reference Date: 19xx0329 Dataset organisation: Sequential ZIP Settings: 00000251 PKZIP MVS 2.5 level x ending. Note: The order in which attributes are displayed may vary. Decompressing a dataset The following example shows how to extract ("unzip") a dataset from a GZIP archive using PKZIP for MVS. //UNZIP EXEC PGM=PKUNZIP1,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.GZIP) -OUTVOL(NEWVOL)2 /* 146 PKZIP for MVS: User Reference T4ASI025-00-00 This step could give the following output: UNZIP101I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss UNZIP010I -ECHO UNZIP010I -ARCHIVE(OUTPUT.FILE.GZIP) UNZIP010I -OUTVOL(NEWVOL) UNZIP865I Processing file: my/gziptest/seq. UNZIP612I Compressed Size: 4261 Bytes (x000010A5), Decompressed Size: 47472 Bytes (x0000B970). UNZIP609I ZIP file my/gziptest/seq inflated to MVS file MY.GZIPTEST.SEQ UNZIP102I PKUNZIP MVS 2.5 level x ending. Notes 1. To extract files from an archive you must call the PKUNZIP program. 2. The extracted dataset is created according to the stored file attributes (if any) and the -OUT commands that override them. In this case, the dataset will be created on the volume NEWVOL. Information required to create the dataset which is not provided by the stored file attributes or overridden by the -OUT commands may be defaulted by PKUNZIP. Testing a GZIP archive The following example shows how to test the integrity of files contained within a GZIP archive using PKZIP for MVS. This is also one way to find out the compressed and uncompressed size of a file in a GZIP archive. //TEST EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(OUTPUT.FILE.GZIP) -TEST /* This step could give the following output: UNZIP101I PKUNZIP MVS 2.5 level UNZIP010I -ECHO UNZIP010I -ARCHIVE(OUTPUT.FILE.GZIP) UNZIP010I -TEST UNZIP612I Compressed Size: 4261 Bytes (x0000B970). UNZIP608I File my/gziptest/seq tested UNZIP102I PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss (x000010A5), Decompressed Size: 47472 Bytes ok. x ending. Notes When processing the –TEST command, PKUNZIP will perform all the actions which would normally occur during an -EXTRACT command, except that no data is actually extracted or written to a file. The validity of the data is confirmed by checking it against the stored CRC value (see Cyclic Redundancy Check in Chapter 1. An Introduction to PKZIP, for more details). T4ASI025-00-00 Processing GZIP Format Archives 147 Part 6. Reference Section T4ASI025-00-00 149 Chapter 20. Introduction to PKZIP Commands The Commands part of this manual provides detailed guidance on the parameters accepted by PKZIP for MVS. Commands for the PKZIP program are described in Chapter 21. PKZIP Commands. Commands for the PKUNZIP program are described Chapter 23. PKUNZIP Commands. T4ASI025-00-00 Introduction to PKZIP Commands 151 Chapter 21. PKZIP Commands Commands given to the PKZIP program are described in detail throughout this chapter with a summary of the available commands given below. PKZIP can perform various actions according to one of the following commands: [ -ADD | -DELETE | -FRESHEN | -UPDATE | -VIEW ] Each of the actions requires a ZIP archive to process so the -ARCHIVE(<ZIP dataset name>) command must always be specified. -ADD is the default action if none of the above actions are specified. The -ADD function compresses MVS datasets into a specified ZIP archive. For details of how to specify commands for processing by PKZIP (e.g. SYSIN, PARM parameter) please refer to Chapter 14. Command Input. File Selections Where a "-" character is placed in front of a sequence of characters, this is taken to be a command for processing by PKZIP. If no "-" character is found at the start of a sequence of characters, the characters are taken to be the name of a file for addition to, or update in, a ZIP archive. This string of characters in the command input, not preceded by a "-" character, is known as a "file selection". If no file selection is specified then PKZIP will assume that there are no files to be added or updated, and will output an error message. VSAM commands There are a large number of commands available specifically to create VSAM archives, they are summarised and described in detail Chapter 22. VSAM Specific PKZIP Commands. Licensing Separate ‘file handler’ licenses are required to process sequential, PDS, VSAM files and magnetic tape/cartridge files. These licenses also apply to the archives created. For example, the VSAM file handler license is required to read VSAM ZIP files and to create a VSAM archive. See Appendix B. Licensing Guide for more details. T4ASI025-00-00 PKZIP Commands 153 Summary of available PKZIP commands The following commands are available in this release of PKZIP. They are listed in the order in which they are described fully later in the chapter. 154 Command Description <dataset name> Defines the name of a member that should be added to, updated in, or deleted from the compressed ZIP archive. Wildcards can be used to specify generic names. -ADD Used to add files that are not already present in the ZIP archive. This is the default action for the PKZIP program. -ALIASMEMBER Specifies that Alias entries found in a PDS will be saved as attributes of their associated member. -ARCHBLKSIZ Specifies the block size to be used for a new or updated ZIP archive. -ARCHDCLASS Specifies the DFSMS data class to be used for a new or updated ZIP archive. -ARCHDIRBLKS Specifies the number of directory blocks to be used for a new ZIP archive. -ARCHDSORG Specifies the dataset organisation to be used for a new or updated ZIP archive -ARCHINDD Specifies the DD name that references a ZIP archive to be read in by PKZIP. -ARCHIVE Specifies the ZIP archive that the PKZIP program should use. This is a mandatory command for the PKZIP Program. -ARCHLRL Specifies the logical record length to be used for a new or updated ZIP archive. -ARCHMCLASS Specifies the DFSMS management class to be used for a new or updated ZIP archive. -ARCHNORLSE Specifies that free space should not be released when the ZIP archive is deallocated. -ARCHOUTDD Specifies the DD name that references a ZIP archive to be written out by PKZIP. -ARCHPRIMARY Specifies the number of space units to be used in the primary partition of a new or updated ZIP archive. -ARCHRLSE Specifies that free space should be released when the ZIP archive is deallocated. -ARCHSCLASS Specifies the DFSMS storage class to be used for a new or updated ZIP archive. -ARCHSECONDARY Specifies the number of space units to be used in the secondary partition of a new or updated ZIP archive. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 -ARCHSPACE Specifies how space is to be allocated for a new or updated ZIP archive. -ARCHTYPE Specifies the record format of a new or updated ZIP archive. -ARCHUNIT Specifies the unit to be used for allocation of a new or updated ZIP archive. -ARCHVOL Specifies the volume(s) onto which a new or updated ZIP archive should be placed. -ATTRIB Specifies that file attributes should be stored for datasets in the zip archive, in both the Central and Local Directories. -ATTRIBCENTRAL Specifies that file attributes should be stored for datasets in the zip archive, in both the Central Directory only. -ATTRIBLOCAL Specifies that file attributes should be stored for datasets in the zip archive, in both the Local Directory only. -BINARY Specifies that files selected for compression are binary files, and that no translation should be performed on these files. -CACHEMEMORY Specifies the amount of memory to be assigned to PKZIP's internal caching mechanisms. -DELETE Specifies that selected files are to be deleted from the old ZIP archive. -DELIM Specifies a delimiter to be used at the end of each text record when it is being translated from EBCDIC to ASCII. -ECHO Specifies that a copy of PKZIP commands should be output to the message dataset. -FILEPROCERR Indicates whether file processing errors should terminate PKZIP processing. -FRESHEN Specifies that selected files are to be updated in the old ZIP archive. -FTRAN Specifies the translation table to be used for translating file names, comments and control data between the character set used in the ZIP archive, and that used in the external environment. -GZIP Specifies that the output archive will be created in GZIP format. -INDD Specifies a DD statement that identifies a dataset that PKZIP should attempt to compress. -KEEPINORDER Specifies that files in a new or updated ZIP archive must be in the order specified by the user. PKZIP Commands 155 156 -METHOD Specifies the compression method that the PKZIP program should use for adding new files to a ZIP archive. -NIA Used to convert an MVS dataset name to an appropriate ZIP file name. -NIASEP Specifies a single character to be used as the ‘level’ indicator for ZIP file name. -NOALIASMEMBER Specifies that Alias entries found in a PDS will be ignored. -NOATTRIB Specifies that file attributes should not be stored for datasets compressed into the zip archive. -NOECHO Suppresses command output. -NOKEEPINORDER Specifies that files in a new or updated ZIP archive do not need to be kept in the order specified. -NOPATH Specifies that only the last component of the dataset component hierarchy should be used when converting a filename between MVS format and ZIP archive format. -NORECURSE Stores all files which have only dataset components the same as those specified by the user's file selections. -NOSYSIN Requests that PKZIP does not use the SYSIN dataset for commands. -NOVSAM Specifies that VSAM files should be ignored when selecting files for compression. -PASSWORD Specifies that the files selected for addition to the ZIP archive are to be encrypted using the given password. -PATH Specifies that the full dataset component hierarchy should be used when converting a filename between MVS format and ZIP archive format. -PCP Specifies that if the given filename matches the ZIP file name for a dataset being compressed then the ZIP file name is replaced with the new specified ZIP file name. -RECURSE Store all files that have their first dataset components the same as those specified by the user selection parameters. -STRIP Specifies a character to be stripped from the end of records before they are compressed. -TAPETODISK Specifies that Cartridge based archives should be copied to a temporary disk file for processing. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 -TASKS Specifies the number of subtasks used to compress datasets. -TEMPBLKSIZ Specifies the block size to be used for a temporary ZIP dataset. -TEMPDCLASS Specifies the DFSMS data class to be used for a temporary ZIP dataset. -TEMPPRIMARY Specifies the number of space units to be used in the primary partition of a temporary ZIP dataset. -TEMPSCLASS Specifies the DFSMS storage class to be used for a temporary ZIP dataset. -TEMPSECONDARY Specifies the number of space units to be used in the secondary partition of a temporary ZIP dataset. -TEMPSPACE Specifies how space is to be allocated for a temporary ZIP dataset. -TEMPTYPE Specifies the record format for a temporary ZIP dataset. -TEMPUNIT Specifies the unit to be used for allocation of a temporary ZIP dataset. -TEMPVOL Specifies the volume onto which a temporary ZIP dataset should be placed. -TERM Specifies a terminator to be used at the end of a text file when it is being translated from EBCDIC to ASCII. -TEXT Specifies that files selected for compression are text files, and should be translated from EBCDIC to ASCII before compression. -TIMESTAMP Specifies which of the available MVS date/time options will be used to set the timestamp associated with the file in the archive. -TRAN Specifies the translation table to be used for translating data between the character set to be used in the external environment and the character set to be used in the ZIP archive. -UPDATE Used to update files that are already in the ZIP archive or to add files that are not already present in the ZIP archive. -VIEW Output details of the files selected from the ZIP archive to the SYSPRINT dataset. -ZDW Specifies that ZDW (used for containing record lengths on compression) are to be included in the ZIP archive. PKZIP Commands 157 -ZIPCUR 158 Specifies a PDS dataset from which PKZIP can obtain members to match user selection parameters that do not match any other dataset. PKZIP for MVS: User Reference T4ASI025-00-00 General PKZIP commands <dataset name> This command, which is identified by not having a "-" character at the start, is used to identify a dataset, a set of datasets, or a set of PDS members, which are to be compressed into, or deleted from, the specified ZIP archive. The processing that is to be performed on the selected files is determined by the other commands which are input, or defaulted. The dataset name can be specified with or without the path names to be stored in the ZIP archive, and may be specified in either MVS format, or in MS-DOS and UNIX formats. In addition, wildcard characters can be included to identify multiple datasets and/or members. File extensions, as used in MS-DOS and UNIX systems, cannot be used to identify or distinguish datasets or members. Note that the file and path name are stored in the ZIP archive in UNIX format, to maintain compatibility with ZIP files on other platforms. Use of the VIEW command to examine the contents of the ZIP archive will show the UNIX form of the file and path name. However, if the file is extracted, using PKUNZIP, it can be identified using the MVS format of the dataset name, and there will be no change to the contents. Multiple <dataset name> commands may be specified when using PKZIP. The format of the <dataset name> command is described in the section below. If no datasets are identified by this command, PKZIP will assume that there are no files to add or view, and will output a warning message. MVS format filenames The following is the main syntax for specifying a dataset or file name for compression into a ZIP archive. [<dataset component>][.<dataset component>][...][(member1[,member2]..)] This syntax specifies a general dataset, with an indefinite number of levels of component. Where this dataset identifies a PDS, one or more members may also be specified. Any dataset component or member name may have wildcards as part of its contents. Three wildcards are supported: ? is used to identify any single character. This wildcard DOES NOT span levels of dataset component (see below) T4ASI025-00-00 PKZIP Commands 159 * is used to identify a sequence of zero or more characters to be matched. This wildcard DOES NOT span levels of dataset component (see below) ** is used to identify a sequence of zero or more characters to be matched. This wildcard CAN span levels of dataset component (see below) Note that the * and ? wildcards cannot span dataset components whereas the ** wildcard can span dataset components. For example TJB.* would find TJB.SET1 but would not find TJB.SET1.ITEM1 Whereas TJB.** would find both TJB.SET1 TJB.SET1.ITEM1 The * and ** wildcards provide the user with extra flexibility for finding datasets. For example: TJB.*.SOURCE would find TJB.BASE25.SOURCE but not TJB.BASE25.UPDATED.SOURCE Whereas: TJB.**.SOURCE would find both TJB.BASE25.SOURCE TJB.BASE25.UPDATED.SOURCE Note: 160 Wildcards in the highest level of dataset component are not supported, i.e. T*B.DATA would not be a valid file selection. When a single component or member name is used to identify a file, the ZIPCUR, if present, will be used to identify a PDS from which that file should be compressed as a member. If ZIPCUR is not present then the component will be interpreted as a single high level qualifier. PKZIP for MVS: User Reference T4ASI025-00-00 File selection can take a considerable amount of time, especially when wild cards are used early in the dataset specification. Being more specific will shorten file selection time. MS-DOS and UNIX format filenames In addition to the main MVS syntax, the following syntax is also supported. This format is supported to provide a way to delete entries from the ZIP archive and may also be used to select files to VIEW, but it should not be used when adding files to an archive. “[pathname][/pathname]...[/pathname][/filename]” Note that the “/” path separators may also be specified using the “\” character, to make it compatible with MS-DOS filenames. For PKZIP for MVS, the same wildcard characters are available for MVS as for MSDOS and UNIX. Default dataset name If no <dataset name> is input to PKZIP a default value of * is used. The wildcard * is invalid as a high level qualifier (see restrictions above) therefore to use this default, the -ZIPCUR command must be specified to identify the PDS dataset for selection. -ADD command The -ADD command is used to specify that the datasets selected by the <dataset name> command(s) should be added to a ZIP archive. This is the default command for the PKZIP program. If a file with the same name already exists within the ZIP archive then the new dataset cannot be added. The -UPDATE command described later in this chapter explains how to modify existing files within the ZIP archive. Selected datasets are compressed using the compression method specified by the -METHOD command or by the default compression method. They are then inserted into the specified ZIP archive. By default, if no other command options are in force, the files will be identified within the ZIP archive as if the -PATH command had been specified. Note that if an -ADD command (specific or defaulted) is used to create a new ZIP archive, it is recommended that an -ARCHVOL command, -ARCHUNIT command or DFSMS related command be used to specify the allocation of the ZIP archive. This enables PKZIP to create a new ZIP archive correctly, as described in the Old and New ZIP archives section of Chapter 10. ZIP Archives. The –ADD command creates a new Zip Archive, so requires that either the -ARCHIVE command or the –ARCHOUTDD command be specified. T4ASI025-00-00 PKZIP Commands 161 -ALIASMEMBER The -ALIASMEMBER command is used to indicate that Alias entries that exist for PDS members selected should be used to create Alias attributes in the output archive. These attributes may be used by PKUNZIP processing to create Alias entries when the member is extracted (assuming it is extracted to a PDS). See also –NOALIASMEMBER. -ARCHBLKSIZ The -ARCHBLKSIZ command is used to specify the block size to be used for a new or updated ZIP archive. The full syntax for this command is: -ARCHBLKSIZ(<block size>) where <block size> is the block size to be used for the new or updated ZIP archive. If this command is not specified, the new or updated ZIP archive defaults to a block size of 6160 bytes or –ARCHLRL if specified. Note that PKZIP and PKUNZIP performance is affected by the dataset block size, and a large block size may improve their performance. Note: The default is not used when the associated SMS command (-ARCHDCLASS) is specified. See –ARCHTYPE for additional information. A value of 0 can be used to allow the system to set the block size for PDS or Sequential archive. However for record format U (Undefined) archives (defined by specifying or defaulting to ARCHTYPE(U)), the system may not set a block size, which will cause an error when ZIP attempts to process the archive. A value of 0 should not be used with format U archives. -ARCHDCLASS The -ARCHDCLASS command is used to specify the DFSMS data class to be used for a new or updated ZIP archive. The full syntax for this command is: -ARCHDCLASS(<data class>) where <data class > is the DFSMS data class to be used for placing the new or updated ZIP archive. 162 PKZIP for MVS: User Reference T4ASI025-00-00 If this command is not specified, no data class is used for placing the new or updated ZIP archive. If the new ZIP archive is being created as a member of an existing PDS, the non-DFSMS allocation command should specify the volume or unit on which the PDS is allocated, while the PKZIP DFSMS allocation command should give the class under which the PDS has been placed. -ARCHDIRBLKS The -ARCHDIRBLKS command is used to specify the number of directory blocks to be used for a new ZIP archive. The full syntax for this command is: -ARCHDIRBLKS(<dirblks>) where <dirblks> is the number of directory blocks to be used for creating the new ZIP archive. This command should only be used in conjunction with an -ARCHIVE command that specifies a PDS member which results in the creation of a new PDS e.g. -ARCHIVE(MY.NEW.PDS(ARCH01)) -ARCHDIRBLKS(10) If this command is not specified then the new archive created will be allocated with 10 directory blocks. Note: T4ASI025-00-00 The default is not used when the associated SMS command (-ARCHDCLASS) is specified. PKZIP Commands 163 -ARCHDSORG The -ARCHDSORG command is used to specify the dataset organisation of a new or updated ZIP archive. The full syntax for this command is: -ARCHDSORG(PO|PS|VS) where the dataset organisation to be used for the new or updated ZIP archive is specified by one of the following parameters: PO PDS member archive. PS Sequential archive. VS VSAM archive. This command is optional for Sequential and PDS member archives because PKZIP can determine the dataset organisation from the format of the archive name (as specified in the –ARCHIVE command). The VSAM (VS) option should be specified for a new or updated VSAM archive as PKZIP cannot distinguish between Sequential and VSAM dataset names. -ARCHINDD The -ARCHINDD command is used to identify the DD statement which specifies the ZIP archive to be read in by PKZIP. The full syntax for this command is: -ARCHINDD(<ddname>) where <ddname> refers to a DD statement in this job step. For example, to view an existing archive on Tape: //VIEW EXEC PGM=PKZIP,REGION=2M //SYSPRINT DD SYSOUT=* //INPUT DD DSN=MY.ARCHIVE.ZIP, // UNIT=CART,DISP=SHR, // DCB=(RECFM=U,LRECL=6160,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL,EXPDT=99365),VOL=SER=ARCH01 //SYSIN DD * -ECHO –ARCHINDD(INPUT) -VIEW /* This command is typically used for GDG and Tape processing. Full details of this processing can found in Chapter 6. Processing Sequential Files and Chapter 9. Processing Magnetic Tapes. Note: 164 It is not possible to use the same dataset or DD for both – ARCHOUTDD and –ARCHINDD. PKZIP for MVS: User Reference T4ASI025-00-00 This command should not be used in combination with the – ARCHIVE command. -ARCHIVE The -ARCHIVE command is used to specify the ZIP archive to be manipulated by the PKZIP program. The full syntax for this command is: -ARCHIVE(<ZIP dataset name>) where <ZIP dataset name> is the full dataset name (including PDS member name if required) of the ZIP archive. There is no default value for the -ARCHIVE command, and it must always be specified. Where a ZIP archive has been created by transfer from another platform, the dataset must be created on MVS as a sequential dataset or PDS member with either, type U, type F or type FB records. It may improve the performance of PKZIP considerably if this dataset has a large block size (4000 bytes or larger). If the ZIP archive already exists, PKZIP will update the ZIP archive with any changes that are specified, such as new or updated compressed files. Note that PKZIP actually replaces the ZIP archive with a new dataset with the same name. If the ZIP archive does not exist, PKZIP will create a new ZIP archive with the name specified. If the ZIP archive does not exist and it is to be the first member of a new PDS, the -ARCHDIRBLKS command (or default value) can be used to specify the number of directory blocks to be allocated. Note: T4ASI025-00-00 PKZIP for MVS may use a number of temporary datasets whilst it is processing. By default, they are allocated in the same way as the new ZIP archive. These datasets may be as large as the total ZIP archive so sufficient space should be available for these temporary datasets in addition to that allocated for the ZIP archive. The -TEMP commands may be used to specifically allocate the temporary datasets in a different manner to the new ZIP archive. For more information on Temporary datasets see Temporary datasets in Chapter 10. ZIP Archives. This command should not be used in combination with the – ARCHINDD or -ARCHOUTDD commands. PKZIP Commands 165 PKZIP processing will perform a SYSTEM ENQ using this name as the Resource (minor) Name and PKZIP as the Queue (major) name. This ENQ will prevent other PKZIP tasks in the same system from using the archive while this task is updating. It will also prevent UNZIP tasks in the same system attempting to read the archive. If required, the scope of this ENQ should be changed to SYSTEMS using GRS RNL (or similar) processing. When an existing ZIP archive is being updated, allocation attributes of the dataset are not used to define the new archive, instead -ARCH* commands or their defaults will be used. -ARCHLRL The -ARCHLRL command is used to specify the logical record length to be used for a new or updated ZIP archive. The full syntax for this command is: -ARCHLRL(<logical record length>) where <logical record length > is the logical record length to be used for the new or updated ZIP archive. If this command is not specified, the new or updated ZIP archive defaults to a logical record length of 0 for –ARCHTYPE(U) sequential archives or as specified by the block size (-ARCHBLKSIZ command) otherwise. Note: If you use this command please ensure that a suitable block size is used for the archive. Block size can be specified using the -ARCHBLKSIZ command. See also –ARCHTYPE for additional information. The default is not used when the associated SMS command (-ARCHDCLASS) is specified. -ARCHMCLASS The -ARCHMCLASS command is used to specify the DFSMS management class to be used for a new or updated ZIP archive. The full syntax for this command is: -ARCHMCLASS(<management class>) where <management class > is the DFSMS management class to be used for placing the new or updated ZIP archive. If this command is not specified, no management class is used for placing the new or updated ZIP archive. 166 PKZIP for MVS: User Reference T4ASI025-00-00 If the new ZIP archive is being created as a member of an existing PDS, the non-DFSMS allocation command should specify the volume or unit on which the PDS is allocated, while the PKZIP DFSMS allocation command should give the class under which the PDS has been placed. -ARCHNORLSE The -ARCHNORLSE command is used to specify that, when deallocated, free space should not be released for a ZIP archive. -ARCHRLSE is the default for archives created as sequential datasets. -ARCHNORLSE is the default for archives created as PDS members (it is assumed that the extra space may be required by other members of the PDS). -ARCHOUTDD The -ARCHOUTDD command is used to identify the DD statement that specifies the ZIP archive to be written out by PKZIP. The full syntax for this command is: -ARCHOUTDD(<ddname>) where <ddname> refers to a DD statement in this job step. For example, to create a new archive: //ZIP EXEC PGM=PKZIP,REGION=2M //SYSPRINT DD SYSOUT=* //OUTPUT DD DSN=MY.ARCHIVE.ZIP, // UNIT=CART,DISP=NEW, // DCB=(RECFM=U,LRECL=6160,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL,EXPDT=99365),VOL=SER=ARCH01 //SYSIN DD * -ECHO –ARCHOUTDD(OUTPUT) MY.DATASET.TO.COMPRESS /* This command is typically used for GDG and Tape processing. Full details of this processing can found in Chapter 6. Processing Sequential Files and Chapter 9. Processing Magnetic Tapes. Note: T4ASI025-00-00 PKZIP processing will open the specified file for output, write the extracted data and then close the file. The actual effect on the defined dataset may depend on the DISP parameter. For example, DISP=OLD will cause the dataset to be overwritten. Note however that it is not possible to extend an archive in this way, so DISP=MOD should not be used. It is not possible to use the same dataset or DD for both – ARCHOUTDD and –ARCHINDD. PKZIP Commands 167 Attributes of the output dataset, for example the DCB information, must be specified on the DD. The associated –ARCH* commands will be ignored. JCL facilities such as the use of references to previous DD statements or existing datasets in the DCB statement can assist in this specification. This command should not be used in combination with the – ARCHIVE command. If the archive is not updated (e.g. no file selections match), the input archive (specified by ARCHINDD) will be copied to the output dataset. If there is no input archive, the dataset will not be updated. If an error occurs during the processing, PKZIP may not complete the archive, however it can not delete it as the status of the archive after the ZIP job completes is determined by the DISP= DD parameter. If the ZIP processing does not complete successfully, then the output dataset should not be used. -ARCHPRIMARY The -ARCHPRIMARY command is used to specify the number of data units to be used in the primary extent of a new or updated ZIP archive. The full syntax for this command is: -ARCHPRIMARY(<data units>) where <data units> is the number of data units to be used in the primary extent of the new or updated ZIP archive. If this command is not specified, the new or updated ZIP archive defaults to a primary extent of 100 data units. By default, PKZIP will use tracks as the data units; this may be changed by use of the -ARCHSPACE command. When creating a sequential archive, PKZIP will automatically release primary data units that are not used. Note: 168 The default is not used when the associated SMS command (-ARCHDCLASS) is specified. PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHRLSE The -ARCHRLSE command is used to specify that, when deallocated, free space should be released for a ZIP archive. This command helps maximise the amount of space saved when compressing data. -ARCHRLSE is the default for archives created as sequential datasets. -ARCHNORLSE is the default for archives created as PDS members (it is assumed that the extra space may be required by other members of the PDS). -ARCHSCLASS The -ARCHSCLASS command is used to specify the DFSMS storage class to be used for a new or updated ZIP archive. The full syntax for this command is: -ARCHSCLASS(<storage class>) where <storage class > is the DFSMS storage class to be used for placing the new or updated ZIP archive. If this command is not specified, no storage class is used for placing the new or updated ZIP archive. If the new ZIP archive is being created as a member of an existing PDS, the non-DFSMS allocation command should specify the volume or unit on which the PDS is allocated, while the PKZIP DFSMS allocation command should give the class under which the PDS has been placed. -ARCHSECONDARY The -ARCHSECONDARY command is used to specify the number of data units to be used in the secondary extent of a new or updated ZIP archive. The full syntax for this command is: -ARCHSECONDARY(<data units>) where <data units> is the number of data units to be used in the secondary extent of the new or updated ZIP archive. <data units> may not be specified as 0. If this command is not specified, the new or updated ZIP archive defaults to a secondary extent of 100 data units. By default, PKZIP will use tracks as the data units; this may be changed by use of the -ARCHSPACE command. T4ASI025-00-00 PKZIP Commands 169 Note: The default is not used when the associated SMS command (-ARCHDCLASS) is specified. -ARCHSPACE The -ARCHSPACE command is used to specify the type of data units to be used for allocating a new or updated ZIP archive. The full syntax for this command is: -ARCHSPACE(TRK|CYL|BLK) where the type of data unit to be used for allocating the new or updated ZIP archive is specified by one of the following parameters: TRK The ZIP archive is to be allocated by tracks. This is the default value assigned for the type of data unit if -ARCHSPACE is not specified. CYL The ZIP archive is to be allocated by cylinders. BLK The ZIP archive is to be allocated by blocks; the block size is taken from the -ARCHBLKSIZ command. By default, both the primary and secondary extents are allocated at a size of 100 of these data units. This default can be overridden using the -ARCHPRIMARY or -ARCHSECONDARY commands. Note: The default is not used when the associated SMS command (-ARCHDCLASS) is specified. -ARCHTYPE The -ARCHTYPE command is used to specify the record format of records within a new or updated ZIP archive. The full syntax for this command is: -ARCHTYPE(U|F|FB) where the record format to be used for allocating the new or updated ZIP archive is specified by one of the following parameters: 170 U to specify Undefined records. This is the default. F to specify Fixed records. FB to specify Fixed Block records. FBS to specify Fixed Block Standard records. PKZIP for MVS: User Reference T4ASI025-00-00 If this command is not specified, the new ZIP archive is allocated with an Undefined record format. Note: The default is not used when the associated SMS command (-ARCHDCLASS) is specified. The use of –ARCHLRL and –ARCHBLKSIZ depends on the type specified. If U is specified, that the –ARCHLRL value will be ignored. If F is specified, then –ARCHBLKSIZ will be ignored. -ARCHUNIT The -ARCHUNIT command is used to specify the generic unit on which a new or updated ZIP archive is to be allocated. The full syntax for this command is: -ARCHUNIT(<unit name>) where <unit name> is the generic unit name on which the new or updated ZIP archive is to be allocated. If the new ZIP archive is being created as a member of an existing PDS, the non-DFSMS allocation command should specify the volume or unit on which the PDS is allocated, while the PKZIP DFSMS allocation command should give the class under which the PDS has been placed. If this command is not specified and a UNIT is required, then the installation default UNIT (typically SYSALLDA) is used. -ARCHVOL The -ARCHVOL command is used to specify the volume(s) on which a new or updated ZIP archive is to be allocated. The full syntax for this command is: -ARCHVOL(<volume name>[ <volume name>…]) where <volume name> identify the volume(s) on which the new or updated ZIP archive is to be allocated. Up to 31 volumes can be specified, separated by blanks. If the new ZIP archive is being created as a member of a new PDS, only the first volume specified will be used. T4ASI025-00-00 PKZIP Commands 171 Note: For a VSAM archive, this command is used to specify volumes at the Cluster Level. -ATTRIB The -ATTRIB command is used to specify that file attributes should be stored for datasets compressed into a ZIP archive, in both the Central and Local Directories. This is the default setting. See also –ATTRIBCENTRAL, -ATTRIBLOCAL and –NOATTRIB commands. -ATTRIBCENTRAL The -ATTRIBCENTRAL command is used to specify that file attributes should be stored for datasets compressed into a ZIP archive, in the Central Directory. Using this, PKZIP will store file attributes for datasets compressed into a ZIP archive in the Central Directory. The stored file attributes can be used by PKUNZIP on the MVS platform to reconstruct the dataset during extraction, in addition the file attributes can be overridden by the PKUNZIP -OUT commands. Other products on other platforms may also use these attributes. See also –ATTRIB, -ATTRIBLOCAL and –NOATTRIB commands. Note: Use this option only when the platform that will process the archive correctly processes attributes that are located only in the Central Directory. -ATTRIBLOCAL The -ATTRIBLOCAL command is used to specify that file attributes should be stored for datasets compressed into a ZIP archive, in the Local Directory. Attributes stored in the Local directory are not available for PKUNZIP on the MVS platform. However other products on other platforms may use them. See also –ATTRIB, -ATTRIBCENTRAL and –NOATTRIB commands. 172 PKZIP for MVS: User Reference T4ASI025-00-00 Note: Use this option only when the platform that will process the archive correctly processes attributes that are located only in the Local Directory. For example, for PKZIP for MVS this is equivalent to setting –NOATTRIB. -BINARY This command is used to determine the way in which a selected file is compressed. If this command is used, the file will be compressed as a binary file. If neither this command nor the -TEXT command is specified, PKZIP will read a portion of the selected file to determine its most likely file type, and will compress it by the method selected. This determination will affect performance, hence it is recommended that either the BINARY or the TEXT command is specified if you know the file types. You can find the result of this determination by examining the final ZIP archive using the -VIEWDETAIL command (See the -VIEW command section of Chapter 21. PKUNZIP Commands for more details). A binary file is stored in exactly the same way as it is stored in the MVS dataset, except that there are no delimiters between records. If it is not a fixed record length file, difficulties may be encountered when extracting this file on MVS, as the record lengths may differ from the original. In this case it is recommended that you use the -ZDW command (See the -ZDW command section later in this chapter). -CACHEMEMORY This command requires the HyperZIP license, please refer to Appendix B. Licensing Guide for more details. This command is used to specify the amount of memory to be assigned to PKZIP's internal caching mechanisms. Increasing the value of -CACHEMEMORY will increase the amount of virtual memory used by PKZIP and may reduce the use of disk based (slower) temporary files. A large -CACHEMEMORY value should reduce the elapsed time for compression processes. PKZIP may use multiple caches to perform its processing, so the amount of memory used may vary according to the number and types of files being processed. The full syntax for this command is: -CACHEMEMORY(<bytes>) where <bytes> specifies the total number of bytes to be assigned to the caches used in PKZIP. For example, to specify 0.50Mb: -CACHEMEMORY(500000) T4ASI025-00-00 PKZIP Commands 173 The minimum cache size recommended is 64000, the maximum value is 231-1. Generally, compressing larger files will benefit from a larger -CACHEMEMORY value. If the -CACHEMEMORY command is not specified or the HyperZIP license is not present then the command value will default to 0 and caching will not be performed. Additional information describing -CACHEMEMORY is documented in Chapter 13. Performance. Warning: A large -CACHEMEMORY value, for example 100000000, will cause PKZIP to use a large amount of virtual memory. If a large value is coded and large files are being compressed then it is vitally important that your site has sufficient storage and/or Page Datasets to support PKZIP's virtual memory requests. A shortage of storage and/or Page Datasets can have a severe effect on an MVS system so discuss your requirements with the appropriate technical support people before trying this option with a large value. -DELETE command The -DELETE command is used to specify that the files within the ZIP archive that have been selected by the <dataset name> command(s) should be deleted from the old ZIP archive. This command may not be used if there is no old ZIP archive. The –DELETE command reads the old Zip Archive and creates a new Zip Archive, so requires that either the -ARCHIVE command or both the -ARCHINDD and -ARCHOUTDD commands be specified. -DELIM The -DELIM command is used when compressing a file as text. The command specifies a delimiter to be suffixed to each record (except for the last) when a file is being compressed. The last record in the file is suffixed by a file terminator as defined by the -TERM command. The -DELIM command is ignored when a file is compressed as binary. The full syntax for this command is: -DELIM(<delimiter characters>) where <delimiter characters> specifies the character(s) to be added to the end of each text file record (except for the last) that is compressed. 0-4 <delimiter characters> may be specified, each character must take one of the following values: CR 174 An ASCII carriage return character (hexadecimal 0D) is to be included in the delimiter for each record that is compressed. PKZIP for MVS: User Reference T4ASI025-00-00 CZ An ASCII Ctrl-Z character (hexadecimal 1A) is to be included in the delimiter for each record that is compressed. LF An ASCII line feed character (hexadecimal 0A) is to be included in the delimiter for each record that is compressed. Any combination of these characters may be used up to a limit of 4 characters. Note: If no -DELIM command is specified when compressing a text file, PKZIP will use a default delimiter of CRLF at the end of each text file record. The usual delimiter used for transfers to MS-DOS systems is CRLF, and the usual delimiter used for transfers to UNIX systems is LF. To create records in the compressed file without any delimiters, use the syntax -DELIM(). The same –DELIM command that was used on the original compression should be used when extracting a file using PKUNZIP for MVS. The default processing in PKUNZIP for MVS searches for delimiters in text files to determine the record boundaries, by looking for CR, LF and Ctrl-Z characters. Expected combinations are documented for the PKUNZIP -DELIM command, other combinations may not process correctly. For example, if a text file on MVS is compressed with a -DELIM(CRLFLF) command, and then decompressed using the default options for PKUNZIP for MVS, it will decompress as if there is a extra line between each line of the original file. -ECHO The -ECHO command is used to display commands input to PKZIP on the output message dataset. When this command is used, PKZIP will copy the command line which contains the -ECHO command and all subsequent command lines (from the configuration file, PARM or SYSIN) to the output message dataset. By default, the –ECHO facility is activated. Thus, the –ECHO command need only be used if the –NOECHO command has been used to suppress the output of preceding commands. In this circumstance, the command line which contains the -ECHO command may be processed before the line is displayed, so any errors in this line may be output before the line is displayed. See also –NOECHO. T4ASI025-00-00 PKZIP Commands 175 -FILEPROCERR The -FILEPROCERR option is used to specify whether processing errors will terminate PKZIP processing, or if the processing will attempt to continue. PKZIP can process a number of files the most important of which are the input files and the temporary archives that these files can be compressed into. If an I/O related problem occurs with one of these files, PKZIP has the option of: continuing with other files, but not processing the file which had the error stopping the processing. These options are specified as follows: -FILEPROCERR(TERMINATE|TOLERATE) TERMINATE Stop processing if an error is detected. TOLERATE Allow processing to continue with other files after a file error. Note: The TOLERATE option should be used with caution. When file errors are TOLERATEd, the PKZIP job will complete with an error return code and messages indicating the problem. If all selected files receive errors, then PKZIP may create an empty archive with this option specified. This command is distinguished from -FILESELERR because this sort of error occurs after the file reading begins. -FILESELERR The -FILESELERR option is used to specify whether selection errors will terminate PKZIP processing, or if the processing will attempt to continue selecting other files. Selection is the first phase of PKZIP processing, where the files that have been specified are selected and checked to verify that it is possible for PKZIP to read these input files. If PKZIP detects a problem in this process (e.g. file exists but is already OPEN to another user), then PKZIP has the option of: continuing with other files, but not processing the file which had the error stopping the processing. These options are specified as follows: 176 PKZIP for MVS: User Reference T4ASI025-00-00 -FILESELERR(COMPAT|TERMINATE|TOLERATE[,WARNONBUSY]) COMPAT Process in the same way as PKZIP 2.2 for MVS and before. TERMINATE Stop processing if an error is detected. TOLERATE Allow processing to continue with other files after a file selection error. WARNONBUSY Report ‘busy’ files as a warning and skip them rather than reporting them as an error. If this option is not specified, busy files are processed as specified by the preceding option, however it has no effect if specified with COMPAT. Note: The COMPAT option is the default as this replicates previous levels and so make upgrading easier. However it is not recommended, as COMPAT will ignore some datasets, without warning. TOLERATE is the recommended option as this will continue processing but will indicate which datasets that were not processed, despite matching the PKZIP file selection. When file errors are TOLERATEd, the PKZIP job will complete with an error return code and messages indicating the problem with the selected file. This command is distinguished from -FILEPROCERR because a selection error occurs before the file reading begins. -FRESHEN command The -FRESHEN command is used to update files which are already in the ZIP archive. When this command is used, PKZIP will compare the contents of the old ZIP archive with the files that have been selected for compression by the <dataset name> command. If a file already exists in the ZIP archive and the MVS file is available for compression, PKZIP will replace the file in the ZIP archive. Note: T4ASI025-00-00 This behaviour is different to that of some other versions of PKZIP, where the -FRESHEN command will only update a file if the timestamp held for the selected file in the ZIP archive is earlier than that of the dataset or PDS member matched on MVS. Not all datasets or PDS members on MVS have date or timestamps, so the behaviour of PKZIP for MVS has been altered to that described above. PKZIP Commands 177 The –FRESHEN command reads the old Zip Archive and creates a new Zip Archive, so requires that either the -ARCHIVE command or both the -ARCHINDD and -ARCHOUTDD commands be specified. -FTRAN The -FTRAN (File TRANslation) command is used to specify a translation table for use with filenames, comments, and similar control information in a ZIP archive. The full syntax for this command is: -FTRAN(<translation table>) where <translation table> is the name of a loadable translation table. This translation table may either be supplied, or may be created by yourself, as described in the Modifying a translation table section of Chapter 16. Translation and Translation Tables. This command is likely to be used where the filenames or comments that would be created by using PKZIP for MVS using the standard translation tables would contain characters which would be indecipherable, or filenames containing illegal names on the target platform. See Chapter 16. Translation and Translation Tables for further discussion of how translation tables are used. If this command is not specified, the default translation table, ASCII, is used. -GZIP The -GZIP command is used to indicate that the output archive will be created in GZIP format, rather than PKZIP format. Further information on the effects of coding this command is given in Part 5. GZIP (GNU zip) Processing. Note especially the information presented in Chapter 19. Processing GZIP Format Archives which describes the effects and restrictions of coding this command. -INDD Each -INDD command is used to specify a DD statement which identifies a dataset that PKZIP should attempt to compress. If the DDname specified identifies a PDS then one or more members can be specified for compression (if no members are specified then all members in the PDS will be selected). If the DDname specifies a member of a PDS, then only that member will be selected. The -INDD command can be used alone or in addition to other normal file selections (see <dataset name> command). Multiple –INDD commands can be used. 178 PKZIP for MVS: User Reference T4ASI025-00-00 The full syntax of this command is: -INDD(<ddname>[,member1][,member2][…,memberN]) Where <ddname> refers to a DD statement in this job step. Examples of -INDD To compress a sequential dataset: //ZIPSTEP EXEC PGM=PKZIP,REGION=2M //SYSPRINT DD SYSOUT=* //INPUT DD DISP=SHR,DSN=DATASET.TO.ZIP.UP.SEQ //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -ARCHUNIT(SYSDA) -INDD(INPUT) /* To compress an entire PDS: //ZIPSTEP EXEC PGM=PKZIP,REGION=2M //SYSPRINT DD SYSOUT=* //INPUT DD DISP=SHR,DSN=DATASET.TO.ZIP.UP.PDS //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -ARCHUNIT(SYSDA) -INDD(INPUT) /* To compress some PDS members: //ZIPSTEP EXEC PGM=PKZIP,REGION=2M //SYSPRINT DD SYSOUT=* //INPUT DD DISP=SHR,DSN=DATASET.TO.ZIP.UP.PDS //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -ARCHUNIT(SYSDA) -INDD(INPUT,ASMCODE,COBSRCE,JCL*) /* See also <dataset name> command. -KEEPINORDER The -KEEPINORDER command is used to specify that files in a new or updated ZIP archive must be in the order that they were selected by the file selection commands that were input. By default, PKZIP may order the files in a ZIP archive in such a way that they will be compressed in the shortest possible time. However, this means that they may not necessarily appear in the ZIP archive in the order specified. If it is necessary for them to appear in this order, this command may be input, and the files will be compressed in the specified order, although this compression may be somewhat slower. See also the -NOKEEPINORDER command. T4ASI025-00-00 PKZIP Commands 179 -METHOD The -METHOD command is used to specify the amount and speed of compression that is required for any files that are updated in the compressed ZIP archive. The full syntax for this command is: -METHOD(MAXIMUM|NORMAL|FAST|SUPERFAST|STORE) where the compression method to be used is specified by one of the following values, each of which is described in more detail later in this section: MAXIMUM Maximum possible compression. NORMAL Normal compression. This is the default. FAST Fast compression. SUPERFAST Extremely fast compression. STORE No compression. You can choose speed, high compression or a balance between the two. The default method provides good compression at a reasonable speed. Note that if PKZIP attempts to compress a file, and the resulting file is larger than the original, it will use the STORE method on that file. However, this is slower than specifying the STORE method directly, as PKZIP must first attempt to compress the file. MAXIMUM method This method provides the maximum compression, but will also take the longest time. NORMAL method This is the default compression method (if the -METHOD command is not specified) which provides good compression at a reasonable speed. FAST method This is a faster compression method which also provides good compression. SUPERFAST method This is the fastest compression method, but will compress the files by the least amount. 180 PKZIP for MVS: User Reference T4ASI025-00-00 STORE method This method can be used to specify that no compression is required. This is typically the case when archiving files that have already been compressed in some way. By specifying no compression, PKZIP will store the files directly rather than first attempting to compress them. -NIA The -NIA command (Name In Archive) command is used define the first part of the process used to convert an MVS file name to the appropriate ZIP file name. A number of –NIA commands, each with wild cards can be used, to create a generic conversion for the input MVS files. The –NIA command is specified in the following way: -NIA(<MVS name>,<Archive name>) Where: <MVS name> specifies the associated MVS file name. This can be a maximum of 54 characters long and should match MVS dataset naming standards. To assist with matching a number of wild characters can be specified – these make the matching more generic and provide indications for the substitution characters that can be used when creating the output ZIP file name. The wild character that can be specified is: ‘*’ – to match any number (0 or more) of characters (regardless of qualifiers). Note that specifying adjacent wild characters has no value and is marked as an error. <Archive name> defines the output file name to be associated with MVS files that match the <MVS name>. This value can be up to 80 characters long and may specify as many substitution characters as were specified for the <MVS name>. Substitution characters may be either the wild (‘*’) character or the ignore (‘+’) character. These character are matched in order of appearance with a wild character in the <MVS name>. The substitution characters that can be specified are: ‘*’ (wild character): Each wild character in the <Archive name> will be replaced with the actual characters that match the equivalent wild character from the original input MVS file name. ‘+’ (ignore character): Each ignore character in the <Archive name> will be removed and the matching wild character from the original input MVS file name will be ignored. Blanks are not supported within the <MVS name> or the <Archive name>. Matching brackets (i.e. a pair of ‘(‘ and ‘)’) may be used, unmatching brackets will give a syntax error. T4ASI025-00-00 PKZIP Commands 181 The following tables give examples of the input file name, -NIA parameters and the resultant name. The first table shows examples where the –NIA command has resulted in reasonable archive names, the second table shows examples where the inappropriate use of an NIA command can result in a badly formed archive name. MVS File Name NIA Archive Name ZIP.SEQ.FILE ZIP.SEQ.FILE,NEW/DAT NEW/DAT ZIP.SEQ.FILE ZIP.SEQ.FILE,NEW.EXT NEW.EXT ZIP.PDS(MEM1) ZIP.PDS(MEM9) ZIP.PDS(*),NEW/LIB/* NEW/LIB/MEM1 NEW/LIB/MEM9 ZIP.PDS(MMM) *.*(MMM), */*.TXT ZIP/PDS.TXT ZIP.PDS(MMM) *.*(*),*/*/*.TXT ZIP/PDS/MMM.TXT ZIP.PDS(MMM) *.PDS(*),*/*/DATA ZIP/MMM/DATA ZIP.PDS(MMM) *(*),+*.TXT MMM.TXT ZIP.SEQ.FILE *.*.FILE,*.* ZIP.SEQ ZIP.SEQ.FILE *.*.FILE,+*.TXT SEQ.TXT MVS File Name NIA Badly formed Archive Name ZIP.PDS(MMM) *,*.TXT ZIP.PDS(MMM).TXT ZIP.PDS(MMM) ZI*, PD*.TXT PDP.PDS(MMM).TXT -NIA commands are searched in order of input (i.e. the first one entered is checked first) until a match is found. For example, if the sequential dataset: T4ZIP.SOURCE.TEXT was compressed with the following NIA commands specified: -NIA(*.SOURC.*,*/*) -NIA(*.SOURCE.*,*/*.SRC) -NIA(*.TEXT,*/TXT) the resultant file would match the second –NIA specification and give the output file name of: T4ZIP/TEXT.SRC 182 PKZIP for MVS: User Reference T4ASI025-00-00 If no –NIA commands are specified, or the input file name does not match any of the specified commands, the conversion is done as though the following commands had been specified: * Following command matches for all PDS members -NIA(*(*),*.*) * Following command matches all datasets -NIA(*,*) In addition, when no NIA command is specified, the NOPATH and NIASEP commands may affect the default output name. For example, the default processing for a number of datasets is shown in the following table. In these cases, NOPATH has not been used and the NIASEP value specified (or defaulted) is ‘/’. MVS File Name Default NIA used Archive Name ZIP.FILE(MEM) *(*),*.* ZIP/FILE/MEM ZIP.FILE.SEQ *,* ZIP/FILE/SEQ If a VSAM cluster is being processed, the same NIA conversion (i.e. using the same NIA command) will be attempted on the DATA and INDEX component names that are stored as attributes of the file in the archive. The command may be changed in two ways If the NIA “MVS name” used does not finish with a wild character, then additional “.*” characters are added to each of the names. To ensure that the generated name is still valid, the output DATA or INDEX name will use the ‘.’ separator rather than ‘/’, even if ‘/’ is coded in the NIA command. This processing should ensure that the typical DATA and INDEX names (which are usually the file name followed by “.DATA” or “.INDEX” or ”.INDX”) will be converted in a consistent way to the original file. Note that it is not possible to use a different NIA command for the DATA and/or INDEX names – these will only use the same conversion as the cluster name (if this matches). The DATA and INDEX component names are retained in EBCDIC (i.e. no file translation is performed on these names) and they are not checked for validity by PKZIP. Note: T4ASI025-00-00 Names created using the –NIA command are not checked for validity. The number of -NIA commands that can be used is restricted only by the amount of storage used by these commands. Typically each will use in the order of 256 bytes. PKZIP Commands 183 The number of wild characters that can be specified is limited by the number that can be specified in the <MVS name> (i.e. the MVS file name). As adjacent ‘*’ characters are not supported, this effectively limits the number to 28. Specifying more wild characters in the archive name than the MVS name is not supported and will give and incorrect command format error. Extra wild characters in the MVS name are ignored. It is possible to create a null archive name via incorrect use of the wild characters. For example, the command NIA(*,+) will not generate an archive name. Where possible, these will be detected when the commands are checked and the processing will be stopped. If the null archive name is detected after the checking of the NIA command (i.e. when it actually used), the ZIP compression will ignore the NIA command and continue as though that NIA command had not been matched. For example, the command NIA(A*BC.LOAD*,**) will work satisfactorily for AABC.LOADLIB (generating the name ALIB, but will generate a null name for the dataset ABC.LOAD. If this was the only NIA command and no other archive name commands had been used, then the archive name for the MVS dataset ABC.LOAD would be ABC/LOAD. Example using a number of NIA commands The following output shows a number of NIA commands being used when creating an archive containing the following files: ZIPREG.V251.CNTL(LICREP) ZIPREG.INPUT ZIPREG.ESDSTEXT ZIPREG.KSDSTEXT ZIPREG.TEST38.PDS(*) 184 PKZIP for MVS: User Reference T4ASI025-00-00 ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP010I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP102I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(CAH.ZIPREG.EH69.ZIP1) -NIA(ZIPREG.V251.*(LICREP),*.TXT) -NIA(ZIPREG.IN*,*) -NIA(ZIPREG.E*,+NEW.TXT) -NIA(ZIPRE*.K*,+*.TXT) -NIA(ZIPREG.TEST38.PDS(ARCHD*),NEW*.TXT) -NIA(ZIPREG.TEST38.PDS(ARCHC*),+OLD/TYPEC) -NIA(ZIPREG.TEST38.PDS(ARCHR*),EH69*/FILE) -NIA(ZIPREG.TEST38.PDS(*),EH69/*/REST) ZIPREG.V251.CNTL(LICREP) ZIPREG.INPUT ZIPREG.ESDSTEXT ZIPREG.KSDSTEXT ZIPREG.TEST38.PDS(*) Compressed file ZIPREG.V251.CNTL(LICREP) as CNTL.TXT (Deflated 75%). Compressed file ZIPREG.INPUT as PUT (Deflated 87%). Compressed file ZIPREG.ESDSTEXT as NEW.TXT (Deflated 97%). Compressed file ZIPREG.KSDSTEXT as SDSTEXT.TXT (Deflated 99%). Compressed file ZIPREG.TEST38.PDS(ARCHCICS) as OLD/TYPEC (Deflated 88%). Compressed file ZIPREG.TEST38.PDS(ARCHDCM) as NEWCM.TXT (Deflated 78%). Compressed file ZIPREG.TEST38.PDS(ARCHDSG) as NEWSG.TXT (Deflated 81%). Compressed file ZIPREG.TEST38.PDS(ARCHD2BK) as NEW2BK.TXT (Deflated 79%). Compressed file ZIPREG.TEST38.PDS(ARCHD2CP) as NEW2CP.TXT (Deflated 78%). Compressed file ZIPREG.TEST38.PDS(ARCHJOB) as EH69/ARCHJOB/REST (Deflated 89%). Compressed file ZIPREG.TEST38.PDS(ARCHJOB3) as EH69/ARCHJOB3/REST (Deflated 80%). Compressed file ZIPREG.TEST38.PDS(ARCHREST) as EH69EST/FILE (Deflated 78%). Compressed file ZIPREG.TEST38.PDS(ARCHRSM) as EH69SM/FILE (Deflated 83%). Compressed file ZIPREG.TEST38.PDS(ARCHRST4) as EH69ST4/FILE (Deflated 80%). Compressed file ZIPREG.TEST38.PDS(ARCHT4Z) as EH69/ARCHT4Z/REST (Deflated 79%). Compressed file ZIPREG.TEST38.PDS(ARCH9712) as EH69/ARCH9712/REST (Deflated 84%). PKZIP MVS 2.5 level x ending. -NIASEP The -NIASEP command (Name In Archive SEParator) is used to specify a single character that will be used as the separator for names that are stored in the archive. This processing takes the MVS File Name and substitutes the ‘.’ in the name with the separator character. (In fact, the objective of the processing is to create an appropriate ASCII file name, so the character specified actually replaces the ASCII ‘.’ in the archive file name.) The full syntax for the command is: -NIASEP(<separator character>) where <separator character> specifies the character to be used as a level separator for the file names in the archive. T4ASI025-00-00 PKZIP Commands 185 The separator character may be specified by one of the following methods: EBCDIC character A single EBCDIC character value. This value is translated (using the FTRAN table) to ASCII prior to substitution. X’Hex character’ A single hexadecimal character, which is not translated prior to being used. This option allows the user to directly specify the ASCII character. If the NIASEP command is not specified then the default value of X’2F’ (ASCII ‘/’) is used. With this value, each hierarchical level in the MVS File Name becomes a ‘directory’. Examples of the MVS File Name and the resultant Archive name are given below: MVS File Name NIASEP used Archive Name ZIP.BBB(CCC) <not specified> ZIP/BBB/CCC ZIP.BBB.CCC ? ZIP?BBB?CCC Note: The NIASEP command will not be used if a matching NIA command has been coded or if the NOPATH command has been specified. -NOALIASMEMBER The -NOALIASMEMBER command is used to indicate that Alias entries that exist for PDS members selected should be ignored. This is the default setting. See also –ALIASMEMBER. -NOATTRIB The -NOATTRIB command is used to specify that file attributes should not be stored for datasets compressed into a ZIP archive. If a ZIP archive is being updated, and a file within the archive contains file attributes for PKZIP for MVS, then these attributes will not be placed in the resulting ZIP archive, whether the file was updated or not. File attributes for other platforms will be retained within an updated ZIP archive, whether the file was updated or not. 186 PKZIP for MVS: User Reference T4ASI025-00-00 This may be an appropriate setting to use when the generated archive will be transferred to a platform that does not support the MVS file attributes. However the overhead of the attributes is relatively small and they can be of value should there be a problem, so in general this setting is not recommended. See also –ATTRIB, –ATTRIBCENTRAL and -ATTRIBLOCAL commands. -NOECHO The -NOECHO command is used to suppress commands input to PKZIP from the output message dataset. When this command is used, PKZIP will stop outputting the command lines to the output message dataset. Note that the command line which contains the -NOECHO command may be processed before the line is displayed, so this line may be output. See also -ECHO. -NOKEEPINORDER The -NOKEEPINORDER command is used to specify that files in a new or updated ZIP archive do not need to be in the order that they were selected by the file selection commands that were input. By default, PKZIP will order the files in a ZIP archive in such a way that they will be compressed in the shortest available time. However, this means that they may not necessarily appear in the ZIP archive in the order specified. This command may be input to confirm that the files need not be kept in order. See also the -KEEPINORDER command. -NOPATH The -NOPATH command is used to specify that only the last component of the dataset hierarchy should be used when converting a filename between MVS format and ZIP archive format. For example the PDS member: T4ZIP.BASE25.SOURCE(MEM1) would be stored in the ZIP archive as: MEM1 Similarly the sequential dataset: T4ASI025-00-00 PKZIP Commands 187 T4ZIP.MY.DATA would be stored in the ZIP archive as: DATA If this command is not specified, the default is -PATH. Note: The NOPATH command will not be used if a matching NIA command has been coded. -NORECURSE The -NORECURSE command is used to specify that only dataset components specified in the user's file selection should be considered for matching with any given dataset. This is the default option for PKZIP. For example the selection string: T4ZIP.BASE25(*) with the -NORECURSE command set would only find members in the following dataset: T4ZIP.BASE25 and not the following, for example: T4ZIP.BASE25.SOURCE T4ZIP.BASE25.TEXT See also the -RECURSE command. -NOSYSIN If the -NOSYSIN command is given on the PARM parameter or in the Configuration file, then the SYSIN dataset is not opened for commands. If the NOSYSIN command is given within the SYSIN dataset, then it will have no effect. The -NOSYSIN command is useful when calling PKZIP from another program because it ensures that PKZIP will not interfere with the SYSIN passed to the calling program. See Chapter 15. Calling PKZIP from a Program for more details. -NOVSAM If a file selection, which contains a wildcard, matches a VSAM file then the VSAM file is ignored if the -NOVSAM command has been specified. 188 PKZIP for MVS: User Reference T4ASI025-00-00 If a file selection, which does not contain a wildcard, matches a VSAM file then the VSAM file is selected regardless of whether the -NOVSAM command was specified or not. -PASSWORD This command can be used to encrypt the selected datasets into a ZIP archive. The full syntax for this command is: -PASSWORD(<password>) where <password> is the password that is to be used for decrypting the files. The password is case sensitive, meaning that "Secret", "secret" and "SECRET" are all different passwords. This should be noted, especially where the password is being input from JCL, to ensure that the JCL/editor options do not capitalise, and hence invalidate, the password. The maximum allowable password length is 64 characters. The selected files are encrypted before they are added to the ZIP archive - they will be unreadable except by extraction with the correct password. Note that a ZIP archive may contain files encrypted under several different passwords. Passwords should be held securely, and not forgotten. If a password is lost, the data cannot be decrypted or extracted by any known means - the password is not stored in the ZIP archive in any form. -PATH The -PATH command is used to specify that the full dataset component hierarchy should be used when converting a filename between MVS format and ZIP archive format. This is the default option for PKZIP. For example, the PDS member: T4ZIP.BASE25.SOURCE(MEM1) would be stored in the ZIP archive as: T4ZIP/BASE25/SOURCE/MEM1 Similarly the sequential dataset: T4ZIP.MY.DATA would be stored in the ZIP archive as: T4ZIP/MY/DATA See also -NOPATH. T4ASI025-00-00 PKZIP Commands 189 -PCP The command is used to specify that if the given filename (<old name>) matches exactly the ZIP file name for a dataset being compressed then the ZIP file name for that dataset should be replaced entirely by a new specified ZIP file name (<new name>). Only one -PCP command may be specified within the same call to PKZIP. The full syntax for this command is: -PCP(<old name>,<new name>) Where <old name> can be up to 54 characters as follows: <dataset component>[.<dataset component>]...[.<dataset component>][(<member>)] and <new name> can be up to 80 characters as follows: [<pathname>][/<pathname>]...[/]<filename>[.<extension>] where '/' and '\' are interchangeable. For example the member of the partitioned dataset: T4ZIP.BASE25.TEXT(MEM1) could be compressed to a ZIP file as: ASIZIP/BASE26/M1.TXT by using the following -PCP command: -PCP(T4ZIP.BASE25.TEXT(MEM1),ASIZIP\BASE26\M1.TXT) Similarly the sequential dataset: T4ZIP.SOURCE.TEXT could be compressed to a ZIP file as: ASIZIP/NEW/SOURCE.TXT by using the following -PCP command: -PCP(T4ZIP.SOURCE.TEXT,ASIZIP/NEW/SOURCE.TXT) 190 PKZIP for MVS: User Reference T4ASI025-00-00 Also the sequential dataset: T4ZIP.SOURCE.FILE could be compressed to a ZIP file as: ASIZIP/NEW/SOURCE/FILE by using the following -PCP command: -PCP(T4ZIP.SOURCE.FILE,ASIZIP/NEW/SOURCE/FILE) Note: The functionality that is provided by this command is provided more effectively using the NIA command. This command will be removed in a future release. Please replace PCP commands with NIA commands. The –PCP command does not support the use of ‘wild cards’. The exact name must be specified. When using this command, use the ‘/’ character to separate qualifiers in the new name. Only use the ‘.’ character when an extension name is required. -RECURSE The RECURSE command is used to specify whether dataset components beyond those specified should be considered for matching with any given user selection. For example, the selection string: T4ZIP.BASE25(*) with the -RECURSE command set would find members in the following datasets: T4ZIP.BASE25 T4ZIP.BASE25.SOURCE T4ZIP.BASE25.TEXT T4ZIP.BASE25.TEXT.OLD etc. If this command is not specified, the default is -NORECURSE. See also -NORECURSE. T4ASI025-00-00 PKZIP Commands 191 Note: Coding RECURSE is functionally identical to coding a second selection with the original file name terminated with ‘.**’. So using NORECURSE, the example above could have been coded as two selections; “T4ZIP.BASE25(*)” and “T4ZIP.BASE25.**(*)”. Typically, the multiple selection specification is clearer than the use of RECURSE so using multiple selections is recommended. -STRIP The -STRIP command is used to specify a single character that must be stripped from the end of each record before it is compressed. If there are multiple occurrences of the specified character at the end of a record, each occurrence will be removed. The full syntax for the command is: -STRIP(<strip character>) where <strip character> specifies the character to be stripped from the end of every record. The strip character may be specified by one of the following methods: None If no strip character is specified, but the STRIP command is input, PKZIP will strip space characters, X’40’, from the end of every record before compression. EBCDIC character A single EBCDIC literal character value may be input. This will be stripped from the end of each record before compression. X’Hex character’ A single hexadecimal character may be input - this will be stripped from the end of each record before compression. If the STRIP command is not specified, no characters are stripped before a file is compressed. Note that this command modifies the data and, therefore, should be used with extreme caution. -TAPETODISK This command is used to determine whether or not a temporary archive (i.e. disk archive) may be used to maintain a copy of an input archive. This option is significant where that archive is based on a sequential device that can support ZIP processing but where there may be significant operator involvement (i.e. 3480 or 3490 cartridge devices). PKZIP for MVS will always attempt to create a disk archive for 3420 tape devices. 192 PKZIP for MVS: User Reference T4ASI025-00-00 If this command is specified when PKZIP is reading a cartridge based archive, the ZIP processing will attempt to copy the input archive to a temporary dataset (allocating this dataset using the TEMP* commands that are specified or defaulted). When PKZIP is reading a ‘round tape’ (3420) tape based archive, a temporary dataset will always be used, even if this command has not been specified. If the allocated temporary space is insufficient, then the processing will revert to direct Tape processing, with the consequent impact on Tape handling and potentially slower processing. Note: When using this option, it may also be useful to code the JCL parameter FREE=CLOSE on the DD associated with the input archive. Using this, the tape drive will be made available for other processing once the copy has been completed. If FREE=CLOSE is not specified, then the tape must remain mounted while the ZIP processing is progressing. -TASKS This command requires the HyperZIP license, please refer to Appendix B. Licensing Guide for more details. PKZIP can use a separate subtask for each dataset being processed. If the executing processor has multiple CPUs (engines), then using subtasks in this way enables the compression of each dataset to be performed in parallel. The -TASKS command specifies the number of subtasks used to compress files, so on a multiple CPU system compressing many datasets, increasing the TASKS value could decrease the elapsed time. The full syntax for this command is: -TASKS(<number>) where <number> is the maximum number of subtasks to be used by PKZIP to compress datasets. The -TASKS command is useful for machines with multiple CPUs. The command is valid on single CPU machines but the effect on performance is not defined. The optimal number of tasks will depend on factors such as the type of datasets being processed, but in general it is unlikely that specifying a value greater than twice the available number of processors will improve performance. If the HyperZIP license is not present or the -TASKS command is not specified then the value defaults to 1. Additional information describing -TASKS is documented in Chapter 13. Performance. T4ASI025-00-00 PKZIP Commands 193 Note: Members of the same PDS are compressed in the same subtask unless they are selected using separate file selections. -TEMPBLKSIZ The -TEMPBLKSIZ command is used to specify the block size to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPBLKSIZ(<block size>) where <block size> is the block size to be used for the temporary ZIP dataset. If this command is not specified or is set to 0, the block size associated with the temporary ZIP dataset will be calculated so that the archive is allocated with ½ track blocking. Note that PKZIP performance is affected by the dataset block size, and a large block size may improve its performance. -TEMPDCLASS The -TEMPDCLASS command is used to specify the DFSMS data class to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPDCLASS(<data class>) where <data class > is the DFSMS data class to be used for placing the temporary ZIP dataset. If this command is not specified, the data class is set as has been specified or defaulted for the new ZIP archive. -TEMPPRIMARY The -TEMPPRIMARY command is used to specify the number of data units to be used on the primary extent of a temporary ZIP dataset. The full syntax for this command is: -TEMPPRIMARY(<data units>) where <data units> is the number of data units to be used in the primary extent of the temporary ZIP dataset. If this command is not specified, primary extent is set as has been specified or defaulted for the new ZIP archive. 194 PKZIP for MVS: User Reference T4ASI025-00-00 -TEMPSCLASS The -TEMPSCLASS command is used to specify the DFSMS storage class to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPSCLASS(<storage class>) where <storage class > is the DFSMS storage class to be used for placing the temporary ZIP dataset. If this command is not specified, the storage class is set as has been specified or defaulted for the new ZIP archive. -TEMPSECONDARY The -TEMPSECONDARY command is used to specify the number of data units to be used on the secondary extent of a temporary ZIP dataset. The full syntax for this command is: -TEMPSECONDARY(<data units>) where <data units> is the number of data units to be used in the secondary extent of the temporary ZIP dataset. <data units> may not be specified as 0. If this command is not specified, the secondary extent size is set as has been specified or defaulted for the new ZIP archive. -TEMPSPACE The -TEMPSPACE command is used to specify the type of data units to be used for allocating a temporary ZIP dataset. The full syntax for this command is: -TEMPSPACE(TRK|CYL|BLK) where the type of data unit to be used for allocating the temporary ZIP dataset is specified by one of the following parameters: T4ASI025-00-00 TRK The ZIP Temporary dataset is to be allocated by tracks. CYL The ZIP Temporary dataset is to be allocated by cylinders. BLK The ZIP Temporary dataset is to be allocated by blocks; the block size is taken from the -TEMPBLKSIZ command. PKZIP Commands 195 If this command is not specified, the temporary ZIP dataset is allocated by the same method as has been specified or defaulted for the new ZIP archive. -TEMPTYPE The -TEMPTYPE command is used to specify the record format of records within a temporary ZIP dataset. The full syntax for this command is: -TEMPTYPE(U|F|FB) where <record format> may take the following values: U to specify undefined records – the default value. F to specify fixed records. FB to specify fixed block records. If this command is not specified, the temporary dataset is allocated with an undefined record format. -TEMPUNIT The -TEMPUNIT command is used to specify the generic unit on which a temporary ZIP dataset is to be allocated. The full syntax for this command is: -TEMPUNIT(<unit name>) where <unit name> is the generic unit name on which the temporary ZIP dataset is to be allocated. If this command is not specified, the unit is set as has been specified or defaulted for the new ZIP archive. -TEMPVOL The -TEMPVOL command is used to specify the volume on which a temporary ZIP dataset is to be allocated. The full syntax for this command is: -TEMPVOL(<volume name> [<volume name>…]) where <volume name> identify the volume(s) on which the temporary ZIP dataset is to be allocated. Up to 31 volumes can be specified, separated by blanks. 196 PKZIP for MVS: User Reference T4ASI025-00-00 If this command is not specified, the volume specification is set as has been specified or defaulted for the new ZIP archive. -TERM The -TERM command is used to specify a terminator (of between 0 and 4 characters) to be suffixed to the last record of a file, when compressing a text file. The -TERM command is ignored when a file is being compressed as binary. The full syntax for this command is: -TERM(<terminator characters>) where <terminator characters> specifies the character(s) to be added to the end of a text file that is compressed. Each of the 0-4 <terminator characters> may have one of the following values: CR An ASCII carriage return character (hexadecimal 0D) is to be included in the terminator for a text file that is compressed. LF An ASCII line feed character (hexadecimal 0A) is to be included in the terminator for a text file that is compressed. CZ An ASCII Ctrl-Z character (hexadecimal 1A) is to be included in the terminator for a text file that is compressed. Any combination of these characters may be used up to a limit of 4 characters. Note: T4ASI025-00-00 If no –TERM command is specified when compressing a text file, PKZIP will use a default terminator of CRLFCZ at the end of each text file. The usual terminator used for transfers to MS-DOS systems is CRLFCZ, and the usual terminator used for transfers to UNIX systems is LF. To create a compressed file without any terminator, use the syntax -TERM(). The same –TERM() command that was used on the original compression should be used when extracting a file using PKUNZIP for MVS. To ensure that this processes correctly, the –DELIM() value must not contained in the -TERM() value – see documentation for the PKUNZIP –TERM() command for more information. PKZIP Commands 197 If decompressing a file using PKUNZIP for MVS that was compressed with both the -DELIM() and -TERM() commands, then remember to use the both the -DELIM() and -TERM() commands and to decompress the file to a fixed record length dataset. -TEXT This command is used to determine the way in which a selected file is compressed. If this command is used, the file will be compressed as a text file. If neither this command nor the -BINARY or -ZDW commands is specified, PKZIP will read a portion of the selected file to determine its most likely file type, and will compress it by the method selected. This determination will affect performance, hence it is recommended that either the -BINARY or the -TEXT command is specified if you know the file types. You can find the result of this determination by examining the final ZIP archive using the -VIEWDETAIL command (See the -VIEW command section of Chapter 21. PKUNZIP Commands for more details). A text file is stored as an ASCII data stream with embedded record delimiters, as determined by the -DELIM and -TERM commands (or their defaults). PKZIP will translate the text file from EBCDIC to ASCII using the translation table determined by the -TRAN command (or its default). The defaults are compatible with text files compressed on other platforms, and also means that this ZIP archive can be uncompressed on another platform. -TIMESTAMP This command is used to specify which of the available MVS date/time options, will be used to set the timestamp associated with the ZIP file in the archive. The timestamp associated with a file in the ZIP archive can be seen using the -VIEW command. When creating a ZIP archive, the PKZIP user has three possible dates/times that could be used to set this ZIP file timestamp: 198 The creation date of the MVS dataset. Note that not all files have creation dates and that the Creation date does not have an associated time, as standard MVS systems do not retain this information. When this option is chosen, the time of 00:00:00 will be used. The current system local time at the time the ZIP processing was started. The system Local time is typically set by specifying an offset (that reflects the Time Zone) from the UTC or GMT time (see next). Whether this is different to UTC time will depend on the way the system has been set up. PKZIP for MVS: User Reference T4ASI025-00-00 The Universal Time Co-ordinated (UTC) time, which is also known as Greenwich Mean Time (GMT) at the time the ZIP processing was started. This is the same time regardless of where you are in the world. Whether this is different to Local time will depend on the way the system has been set up. The -TIMESTAMP command allows the ZIP user to specify which if these options will be used. The full syntax for this command is: -TIMESTAMP(CREATE|CREATEUTC|LOCAL|UTC) CREATE The dataset’s Creation Date will be used (with a time of 00:00:00). If this is not available, then the LOCAL time will be used (see later for the meaning of LOCAL time). Note that for PDS members, the timestamp used is that of the dataset, not the individual member. CREATEUTC The dataset’s Creation Date will be used as noted for the CREATE option. If this is not available, then the UTC time will be used (see later for the meaning of UTC time). LOCAL The system (local) time will be used, where local time includes any time zone differences from the UTC (or GMT) time. UTC The UTC (GMT) time as set on the system will be used, which is usually set as the time at Greenwich, England – i.e. it ignores any time zone differences. Note: The LOCAL and UTC times used are set when the ZIP processing starts and will be the same for all files added to the archive. -TRAN The -TRAN command is used to specify a translation table for use with translating data from the character set used in the external MVS environment (usually the EBCDIC character set) to the character set used within the ZIP archive (normally the ASCII character set) for a text file in a ZIP archive. The full syntax for this command is: -TRAN(<translation table>) where <translation table> is the name of a loadable translation table. This translation table may either be supplied, or may be created by yourself, as described in Modifying a translation table section of Chapter 16. Translation and Translation Tables. T4ASI025-00-00 PKZIP Commands 199 This command is likely to be used where the default translation table does not provide the correct translation for your data, e.g. where the data is being sent to a country with a different language. If the default translation table is always incorrect at your installation, it is worthwhile replacing the default translation table with one which is correct for your installation. See Chapter 16. Translation and Translation Tables for further discussion of how translation tables are used. If this command is not specified, the default translation table, ASCII, is used. -UPDATE command The -UPDATE command is used to update files which are already in the ZIP archive or to add files which are not already present in the ZIP archive. When this command is used, PKZIP will compare the contents of the old ZIP archive with the files that have been selected for compression. If a file already exists in the ZIP archive, PKZIP will determine if the file is selected for compression and also if the file exists as a sequential dataset, PDS member or VSAM dataset. If so, it will replace the file in the ZIP archive with the compressed sequential dataset, PDS member or VSAM dataset. If a selected file is not already present in the ZIP archive, PKZIP will add the compressed sequential dataset, PDS member or VSAM dataset. The –UPDATE command reads the old Zip Archive and creates a new Zip Archive, so requires that either the -ARCHIVE command or both the -ARCHINDD and -ARCHOUTDD commands be specified. -VIEW command This command will output information about the selected files contained in the ZIP archive using messages onto the SYSPRINT dataset. The command is identical to that for the PKUNZIP program. Refer to the -VIEW command in Chapter 21 PKUNZIP Commands for full details of how this command should be used. The –VIEW commands reads an existing Zip Archive, so requires that either the -ARCHIVE command or the –ARCHINDD command to be specified. -ZDW The -ZDW (ZIP Description Word) command is designed for compressing and decompressing binary datasets that have variable record lengths. The -ZDW command forces PKZIP to store record lengths as it compresses a binary file. The stored record lengths allow PKUNZIP to decompress the file whilst preserving the original record lengths. 200 PKZIP for MVS: User Reference T4ASI025-00-00 If you specify the -ZDW command then you should also specify the -BINARY command. If you compress a file with -BINARY -ZDW then you should also decompress it with -BINARY -ZDW. The -ZDW command is not required when compressing a text dataset on MVS. When compressing text, PKZIP by default places the CRLF delimiter at the end of each record thus ensuring the proper length on decompression. The -ZDW command was written specifically for IBM mainframe users (MVS, VM, VSE) and may not be supported on other platforms yet. If your target platform does not support the -ZDW command then it may not be possible to preserve variable record lengths of a binary file, in these cases the file should be compressed with just the -BINARY command before transfer. -ZIPCUR The -ZIPCUR (ZIP CURrent) command is used to specify a PDS dataset from which PKZIP can obtain members to match user selection parameters that do not match any other dataset. -ZIPCUR may only be used to specify PDS datasets. The full syntax for this command is: -ZIPCUR(<dataset component><.dataset component><...><.dataset component>) For example, the selection string: FRED With the command: -ZIPCUR(T4ZIP.BASE25.NAMES) Is equivalent to specifying the file selection: T4ZIP.BASE25.NAMES(FRED) T4ASI025-00-00 PKZIP Commands 201 Chapter 22. VSAM Specific PKZIP Commands This section describes the commands available for creating new VSAM ZIP archives. For more details on many of these commands, please refer to the DEFINE CLUSTER command in the IBM manual Access Method Services. The VSAM file handler license is required to read and write VSAM ZIP archives, see Appendix B. Licensing Guide for more details. General Syntax for creating a VSAM archive Cluster Level -ARCHIVE(entryname) -ARCHDSORG(VS) -ARCHVOL(volser) [-ARCHBUFSPACE(size)] [-ARCHCATALOG(catalog[/password)] [-ARCHCISZ(size)] [-ARCHEEXT(entrypoint)] [-ARCHERASE|-ARCHNOERASE] [-ARCHFILE(ddname)] [-ARCHFREECI(CI-percent) [-ARCHFREECA(CA-percent)]] [-ARCHOWNER(owner)] [-ARCHRECORDSIZE(average maximum)] [-ARCHREUSE|-ARCHNOREUSE] [-ARCHSHR(crossregion[ crosssystem])] [-ARCHSPACE(TRK|CYL|REC|MB|KB)] [-ARCHSPANNED|-ARCHNONSPANNED] [-ARCHTO(date)|-ARCHFOR(days)] [-ARCHWRITECHK|-ARCHNOWRITECHK] Data Level [-ARCHDATACISZ(size)] [-ARCHDATAEEXT(entrypoint)] [-ARCHDATAFILE(ddname)] [-ARCHDATANAME(name)] [-ARCHDATAORD|-ARCHDATANORD] [-ARCHDATAOWNER(owner)] [-ARCHDATAPRI(primary)] [-ARCHDATARUS|-ARCHDATANRUS] [-ARCHDATASEC(secondary)] [-ARCHDATASHR(crossregion[ crosssystem])] [-ARCHDATASPACE(TRK|CYL|REC|MB|KB)] [-ARCHDATAVOL(volser [volser])] [-ARCHDATAWCK|-ARCHDATANWCK] T4ASI025-00-00 VSAM Specific PKZIP Commands 203 Summary of VSAM cluster level commands The following commands are available in this release of PKZIP and are specific to VSAM archives only. 204 Command Description -ARCHBUFSPACE Specifies the Bufferspace parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHCATALOG Specifies the Catalog parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHCISZ Specifies the Controlintervalsize parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHEEXT Specifies the Exceptionexit parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHERASE Specifies the Erase parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHFILE Specifies the File parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHFOR Specifies the For parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHFREECA Specifies the ca-percent attribute of the Freespace parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHFREECI Specifies the ci-percent attribute of the Freespace parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHNOERASE Specifies the Noerase parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHNONSPANNED Specifies the Nonspanned parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHNOREUSE Specifies the Noreuse parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHNOWRITECHK Specifies the Nowritecheck parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHOWNER Specifies the Owner parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHRECORDSIZE Specifies the average and maximum lengths of the data records in a new or updated ZIP archive. -ARCHREUSE Specifies the Reuse parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHSHR Specifies the Shareoptions parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHSPACE Specifies how space is to be allocated for a new or updated ZIP archive. -ARCHSPANNED Specifies the Spanned parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHTO Specifies the To parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. -ARCHWRITECHK Specifies the Writecheck parameter of the IDCAMS Define Cluster command used to create a new or updated ZIP archive. Summary of VSAM data level commands The following commands are specific to the data component of VSAM archives only. T4ASI025-00-00 Command Description -ARCHDATACISZ Specifies the Controlintervalsize parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAEEXT Specifies the Exceptionexit parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAFILE Specifies the File parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATANAME Specifies the Name parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATANORD Specifies the Unordered parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATANRUS Specifies the Noreuse parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. VSAM Specific PKZIP Commands 205 206 -ARCHDATANWCK Specifies the Nowritecheck parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAORD Specifies the Ordered parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAOWNER Specifies the Owner parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAPRI Specifies the primary space allocation used in the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATARUS Specifies the Reuse parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATASEC Specifies the secondary space allocation used in the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATASHR Specifies the Shareoptions parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATASPACE Specifies the space allocation type used in the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAVOL Specifies the Volumes parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. -ARCHDATAWCK Specifies the Writecheck parameter of the IDCAMS Define Cluster command used to create the data component of a new or updated ZIP archive. PKZIP for MVS: User Reference T4ASI025-00-00 VSAM Cluster Level commands The following commands are used when specifying the cluster level attributes of the VSAM dataset to be created. -ARCHBUFSPACE The -ARCHBUFSPACE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the BUFFERSPACE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHBUFSPACE(<size>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHCATALOG The -ARCHCATALOG command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the CATALOG clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHCATALOG(<catalog>[/password]) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHCISZ The -ARCHCISZ command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the CONTROLINTERVALSIZE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHCISZ(<size>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKZIP Commands 207 -ARCHEEXT The -ARCHEEXT command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the EXCEPTIONEXIT clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHEEXT(<entrypoint>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHERASE The -ARCHERASE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the ERASE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHERASE If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHFILE The -ARCHFILE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the FILE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHFILE(<ddname>) If this command is specified then a suitable DD statement should also be specified in the JCL. For more details, please refer to the FILE clause of the IDCAMS DEFINE CLUSTER command in the IBM manual Access Method Services. 208 PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHFOR The -ARCHFOR command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the FOR clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHFOR(<days>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Problems may occur if you try to update a VSAM ZIP archive created with the -ARCHFOR command. To update a ZIP archive, PKZIP first generates a new ZIP archive and then deletes the old ZIP archive. If the -ARCHFOR command was used to generate the original ZIP archive then the delete process may fail as the retention period for the VSAM ZIP archive may not have been satisfied. -ARCHFREECA The -ARCHFREECA command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the CA-percent attribute of the FREESPACE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHFREECA(<CA-percent>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHFREECI The -ARCHFREECI command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the CI-percent attribute of the FREESPACE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHFREECI(<CI-percent>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKZIP Commands 209 -ARCHNOERASE The -ARCHNOERASE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NOERASE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHNOERASE If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHNONSPANNED The -ARCHNONSPANNED command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NONSPANNED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHNONSPANNED If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHNOREUSE The -ARCHNOREUSE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NOREUSE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHNOREUSE If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHNOWRITECHK The -ARCHNOWRITECHK command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NOWRITECHECK clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHNOWRITECHK If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 210 PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHOWNER The -ARCHOWNER command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the OWNER clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHOWNER(<owner>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHRECORDSIZE The -ARCHRECORDSIZE command is used to specify the average and maximum lengths, in bytes, of the data records in a new or updated VSAM ZIP archive. The full syntax for the command is: -ARCHRECORDSIZE(average maximum) where average specifies the average length, in bytes, of each data record and maximum specifies the maximum length, in bytes, of any data record In fact average and maximum have the same meanings and restrictions as in the RECORDSIZE clause of the IDCAMS DEFINE CLUSTER command. If this command is not specified then PKZIP will default to (4000 4000). Note: T4ASI025-00-00 It is recommended that the average and maximum record lengths be specified as the same value, because PKZIP processing typically writes full length records. As PKZIP and PKUNZIP performance can be affected by the record size specifying a large value may improve performance. VSAM Specific PKZIP Commands 211 -ARCHREUSE The -ARCHREUSE command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the REUSE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHREUSE If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHSHR The -ARCHSHR command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the SHAREOPTIONS clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHSHR(<crossregion>[<crosssystem>]) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHSPACE The -ARCHSPACE command is used to specify the type of data units to be used (at the cluster level) for allocating a new Zip archive. The full syntax for this command is: -ARCHSPACE(TRK|CYL|REC|MB|KB) where the type of data unit to be used for allocating the new archive is specified by one of the following parameters: TRK The archive is to be allocated by tracks. This is the default value assigned for the type of data unit if -ARCHSPACE is not specified. CYL The archive is to be allocated by cylinders. REC The archive is to be allocated by records. MB The archive is to be allocated by megabytes. This option may only be used with ICF catalogs. KB The archive is to be allocated by kilobytes. This option may only be used with ICF catalogs. By default, both the primary and secondary extents are allocated at a size of 100 of these data units. The -ARCHPRIMARY or -ARCHSECONDARY commands can be used to change this value. 212 PKZIP for MVS: User Reference T4ASI025-00-00 Note: The -ARCHDATASPACE command provides the ability to specify the allocation parameter for the Data component of the VSAM cluster. If -ARCHDATASPACE is specified, then the value specified or defaulted in a previous -ARCHSPACE command will be ignored, so no cluster level allocation will be defined for the file to be created. -ARCHSPANNED The -ARCHSPANNED command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the SPANNED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHSPANNED If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHTO The -ARCHTO command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the TO clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHTO(<date>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Problems may occur if you try to update a VSAM ZIP archive created with the -ARCHTO command. To update a ZIP archive, PKZIP first generates a new ZIP archive and then deletes the old ZIP archive. If the -ARCHTO command was used to generate the original ZIP archive then the delete process may fail as the retention period for the VSAM ZIP archive may not have been satisfied. T4ASI025-00-00 VSAM Specific PKZIP Commands 213 -ARCHWRITECHK The -ARCHWRITECHK command is used to help create a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the ARCHWRITECHECK clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHWRITECHK If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 214 PKZIP for MVS: User Reference T4ASI025-00-00 VSAM Data Level commands These commands provide the ability to specify options for the Data component of the VSAM cluster to be defined. These options are similar to the options that can be specified at the cluster level using the –ARCH commands listed in the previous section. Given that these options have similar results, it is advisable to consistently use either cluster level or data level commands. As some cluster level commands are common to both VSAM and non VSAM processing, with the same meaning, using cluster level commands could make PKZIP easier to use. In general, unless there is good reason, Data level commands should not be used. -ARCHDATACISZ The -ARCHDATACISZ command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the CONTROLINTERVALSIZE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATACISZ(<size>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATAEEXT The -ARCHDATAEEXT command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the EXCEPTIONEXIT clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAEEXT(<mname>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKZIP Commands 215 -ARCHDATAFILE The -ARCHDATAFILE command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the FILE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAFILE(<ddname>) If this command is specified then a suitable DD statement should also be specified in the JCL. For more details, please refer to the FILE clause of the IDCAMS DEFINE CLUSTER command in the IBM manual Access Method Services. -ARCHDATANAME The -ARCHDATANAME command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NAME clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATANAME(<name>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATANORD The -ARCHDATANORD command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the UNORDERED clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATANORD If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 216 PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHDATANRUS The -ARCHDATANRUS command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NOREUSE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATANRUS If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATANWCK The -ARCHDATANWCK command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the NOWRITECHECK clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATANWCK If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATAORD The -ARCHDATAORD command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the ORDERED clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAORD If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKZIP Commands 217 -ARCHDATAOWNER The -ARCHDATAOWNER command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the OWNER clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAOWNER(<ownerid>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATAPRI The -ARCHDATAPRI command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the primary attribute of the space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAPRI(<primary>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: This value will only be used if the –ARCHDATASPACE command has also been specified. -ARCHDATARUS The -ARCHDATARUS command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the REUSE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATARUS If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 218 PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHDATASEC The -ARCHDATASEC command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the secondary attribute of the space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATASEC(<secondary>) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: This value will only be used if both the –ARCHDATASPACE and -ARCHDATAPRI commands have also been specified. -ARCHDATASHR The -ARCHDATASHR command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the SHAREOPTIONS clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATASHR(<crossregion>[ crosssystem]) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATASPACE The -ARCHDATASPACE command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the associated space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for this command is: -ARCHDATASPACE(TRK|CYL|REC|MB|KB) where the type of data unit to be used for allocating the data component of the new archive is specified by one of the following parameters: TRK T4ASI025-00-00 The Data component is to be allocated by tracks. This is the default value assigned for the type of data unit if -ARCHSPACE is not specified. VSAM Specific PKZIP Commands 219 CYL The Data component is to be allocated by cylinders. REC The Data component is to be allocated by records. MB The Data component is to be allocated by megabytes. This option may only be used with ICF catalogs. KB The Data component is to be allocated by kilobytes. This option may only be used with ICF catalogs. There is no default for this command – it is only used if specified. Additionally, there is no default value for the primary and secondary extents of the Data component. If this command is used, -ARCHDATAPRI and -ARCHDATASEC commands must be used to set primary and secondary extent values. Note: The -ARCHSPACE command provides the ability to specify the allocation parameter at the cluster level of the VSAM cluster. If – ARCHSPACE is specified, then the value specified or defaulted in any preceding –ARCHDATASPACE command will be ignored, so no data level allocation will be defined for the file to be created and the data level allocation may be defaulted by the IDCAMS DEFINE CLUSTER command. -ARCHDATAVOL The -ARCHDATAVOL command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the VOLUMES clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAVOL(<volser>[ volser...]) If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Up to 31 <volser> volume identifiers may be specified. 220 PKZIP for MVS: User Reference T4ASI025-00-00 -ARCHDATAWCK The -ARCHDATAWCK command is used to help create the data component of a new or updated VSAM ZIP archive. It has the same meaning and restrictions as the WRITECHECK clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -ARCHDATAWCK If this command is not specified, then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKZIP Commands 221 Chapter 23. PKUNZIP Commands Commands given to the PKUNZIP program are described in detail throughout this chapter with a summary of the available commands given first. PKUNZIP can perform various actions according to one of the following commands: [ -EXTRACT | -TEST | -VIEW ] Each of the actions requires a ZIP archive to process so the -ARCHIVE(<ZIP dataset name>) command must always be specified. -EXTRACT is the default action if none of the above actions are specified. The -EXTRACT function extracts and decompresses files from the specified ZIP archive. For details of how to specify commands for processing by PKUNZIP (e.g. SYSIN, PARM parameter) please refer to Chapter 14. Command Input. File Selections Where a "-" character is placed in front of a sequence of characters, this is taken to be a command for processing by PKUNZIP. If no "-" character is found at the start of a sequence of characters, the characters are taken to be the name of a file for extraction from a ZIP archive. This string of characters in the command input, not preceded by a "-" character, is known as a "file selection". If no file selection is specified then PKUNZIP will attempt to extract all the files from the ZIP archive. VSAM commands There are a large number of commands available specifically to extract new VSAM datasets, they are summarised and described in Chapter 24. VSAM Specific PKUNZIP Commands. Licensing Separate ‘file handler’ licenses are required to process sequential, PDS, VSAM and magnetic tape/cartridge files. These licenses also apply to the archives created. For example, the VSAM file handler license is required to write VSAM ZIP files and to read a VSAM archive. See Appendix B. Licensing Guide for more details. T4ASI025-00-00 PKUNZIP Commands 223 Summary of general PKUNZIP commands The following commands are available in this release of PKUNZIP. 224 Command Description <dataset name> Defines the name of a dataset which should be extracted from the ZIP archive. Wildcards can be used to define several datasets. -ALIASMEMBER Specifies that PDS Alias attributes found in the archive will be used to create Alias entries in the PDS directory. -ARCHINDD Specifies the DD name which references a ZIP archive to be read in by PKUNZIP. -ARCHIVE Specifies the ZIP archive which the PKUNZIP program should examine or use for selecting files to extract. This is a required command for the PKUNZIP program. -BINARY Specifies that files selected for extraction are binary files, and that no translation should be performed on these files. -CACHEMEMORY Specifies the amount of memory to be assigned to PKZIP's internal caching mechanisms. -CNVEXT Specifies how extracted files whose filenames include file extensions should be treated. -DELIM Specifies the delimiter characters that separate each text record. -ECHO Specifies that a copy of PKUNZIP commands should be output to the message dataset. -EXTRACT Specifies that the selected files are to be extracted from a ZIP archive. This is the default action for the PKUNZIP program. - FILEPROCERR Indicates whether file processing errors should terminate PKZIP processing. -FTRAN Specifies the translation table to be used for translating file names, comments and control data between the character set used in the ZIP archive, and that used in the external environment. -HIERARCHY Specifies that the full dataset component hierarchy should be used when converting a filename between ZIP archive format and MVS format. This is the default option for PKUNZIP. -HLQ Specifies that the given high level components of the dataset name should be replaced with a new set of high level components during extraction. -INSERTMEMBER Specifies that files can be added to an existing PDS during extraction. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 -MAKEPDS Specifies that ZIP files should be extracted as PDS members. -MAKESEQ Specifies that ZIP files should be extracted as Sequential datasets. -MAKEVSAM Specifies that ZIP files should be extracted as VSAM files. -NOALIASMEMBER Specifies that Alias attributes found in the archive (for PDS members) will be ignored. -NOATTRIB Specifies that the stored file attributes should not be used when creating a new extracted dataset. -NOCRLF Specifies that extracted text files without internal delimiters are formatted using the record size of the dataset into which the file is being extracted. -NOHIERARCHY Specifies that only the last component of the dataset component hierarchy should be used when converting a filename between ZIP archive format and MVS format. -NOSYSIN Requests that PKUNZIP does not use the SYSIN dataset for commands. -OUTBLKSIZ Specifies the block size to be used for a dataset created by decompression. -OUTDCLASS Specifies the DFSMS data class to be used for a dataset created by decompression. -OUTDD Specifies a DD name which references the dataset to which ZIP files should be extracted. -OUTDIRBLKS Specifies the number of directory blocks to be used for a new extracted PDS. -OUTLRL Specifies the logical record length to be used for a dataset created by decompression. -OUTMCLASS Specifies the DFSMS management class to be used for a dataset created by decompression. -OUTNORLSE Specifies that free space should not be released when extracted datasets are deallocated. -OUTPRIMARY Specifies the number of space units to be used in the primary partition of a dataset created by decompression. -OUTRLSE Specifies that free space should be released when extracted datasets are deallocated. -OUTSCLASS Specifies the DFSMS storage class to be used for a dataset created by decompression. -OUTSECONDARY Specifies the number of space units to be used in the secondary partition of a dataset created by decompression. -OUTSPACE Specifies how space is to be allocated for a dataset created by decompression. PKUNZIP Commands 225 226 -OUTTYPE Specifies the record format for a dataset created by decompression. -OUTUNIT Specifies the unit to be used for allocation of a dataset created by decompression. -OUTVOL Specifies the volume onto which a dataset created by decompression should be placed. -OVERWRITE Specifies that if an extracted dataset or file has the same name as an existing dataset then the existing dataset can be overwritten. -PAD Specifies a character to be used for padding records decompressed into a fixed length record dataset. -PASSWORD Specifies a password to be used for extracting encrypted files from the specified archive. -TAPETODISK Specifies that Cartridge based archives should be copied to a temporary disk file for processing. -TEMPBLKSIZ Specifies the block size to be used for a temporary ZIP dataset. -TEMPDCLASS Specifies the DFSMS data class to be used for a temporary ZIP dataset. -TEMPPRIMARY Specifies the number of space units to be used in the primary partition of a temporary ZIP dataset. -TEMPSCLASS Specifies the DFSMS storage class to be used for a temporary ZIP dataset. -TEMPSECONDARY Specifies the number of space units to be used in the secondary partition of a temporary ZIP dataset. -TEMPSPACE Specifies how space is to be allocated for a temporary ZIP dataset. -TEMPTYPE Specifies the record format for a temporary ZIP dataset. -TEMPUNIT Specifies the unit to be used for allocation of a temporary ZIP dataset. -TEMPVOL Specifies the volume onto which a temporary ZIP dataset should be placed. -TERM Specifies the terminator characters to be removed from the end of file. -TEST Test the specified datasets within the ZIP archive for integrity. -TEXT Specifies that files selected for extraction are text files, and should be translated from the internal character set to the external character set, after decompression, using the translation table specified or defaulted. -TRAN Specifies the translation table to be used for translating data between the character set to be used in the external environment and the character set to be used in the ZIP archive. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 -VIEW Output details of the files selected from the ZIP archive to the SYSPRINT dataset. -ZDW Specifies that files selected for extraction contain ZDWs to be used for specifying record lengths on decompression. -ZIPCUR Specifies a PDS dataset to which PKUNZIP can extract members when no path is stored in the ZIP archive or when the path has been dropped by the – NOHIERARCHY command. PKUNZIP Commands 227 General PKUNZIP commands <dataset name> This command, which is identified by not having a "-" character at the start, is used to identify a file, or set of files, within the ZIP archive. The processing that is to be performed on the selected files is determined by the other commands which are input, or defaulted. The dataset name can be specified with or without the path names stored in the ZIP archive, and may be specified in either MVS format, or in MS-DOS and UNIX formats. In addition, wildcard characters can be included to identify multiple files. File extensions, as used in MS-DOS and UNIX systems, can also be used to specify files within the archive, but are not necessarily used as part of the name of the extracted file as an MVS dataset. Note that file and path names are stored in a ZIP archive in UNIX format. The processing described below will attempt to match the dataset name specified in the parameters with the stored file and path names in UNIX format. MVS format filenames The following is the main syntax for specifying a dataset or file name for decompression from a ZIP archive. [<dataset component>][.<dataset component>][...][(member1)] This syntax specifies a general dataset, with an indefinite number of levels of component. Where this dataset identifies a PDS, one or more members may also be specified. Any dataset component or member name may have wildcards as part of its contents. Three wildcards are supported: ? is used to identify any single character. This wildcard DOES NOT span levels of dataset component (see below) * is used to identify a sequence of zero or more characters to be matched. This wildcard DOES NOT span levels of dataset component (see below) ** is used to identify a sequence of zero or more characters to be matched. This wildcard CAN span levels of dataset component (see below) Note that the * and ? wildcards cannot span dataset components whereas the ** wildcard can span dataset components. For example TJB.* would find the ZIP file TJB/SET1 228 PKZIP for MVS: User Reference T4ASI025-00-00 but would not find TJB/SET1/ITEM1 Whereas TJB.** would find both ZIP files TJB/SET1 TJB/SET1/ITEM1 The * and ** wildcards provide the user with extra flexibility for finding datasets. For example TJB.*.SOURCE would find the ZIP file TJB/BASE25/SOURCE but not TJB/BASE25/UPDATED/SOURCE Whereas TJB.**.SOURCE would find both ZIP files TJB/BASE25/SOURCE TJB/BASE25/UPDATED/SOURCE Should only a single component or member name be used to identify a file, the ZIPCUR statement, if present, will be used to identify a PDS to which that file should be extracted as a member. If ZIPCUR is not present then the component will be interpreted as a single high level qualifier. MS-DOS and UNIX format filenames In addition to the main MVS syntax, the following syntax is also supported. This may help the user when decompressing a ZIP archive from another platform. “[pathname][/pathname]...[/]filename[.ext]” Note that the “/” path separators may also be specified using the “\” character, to make it compatible with MS-DOS filenames. When converting the filenames to MVS format, the path separators are interpreted as “.” characters. The lowest component (which may be the filename or extension name, depending on the CNVEXT setting), may be specified to be a PDS member by using the MAKEPDS command. For PKZIP for MVS, the same wildcard characters are available for MVS as for MSDOS and UNIX. T4ASI025-00-00 PKUNZIP Commands 229 Default dataset names If no <dataset name> is input to PKUNZIP a default value of ** is used. The ** file selection will select all files within the archive. -ALIASMEMBER The -ALIASMEMBER command is used to indicate that Alias attributes that exist for PDS members being recreated should be used to create Alias entries in the directory. See also –NOALIASMEMBER. -ARCHINDD The -ARCHINDD command is used to specify the ZIP archive to be read in by PKUNZIP. The full syntax for this command is: -ARCHINDD(<ddname>) where <ddname> refers to a DD statement in this job step. For example, to view an existing archive on Tape: //VIEW EXEC PGM=PKUNZIP,REGION=2M //SYSPRINT DD SYSOUT=* //INPUT DD DSN=MY.ARCHIVE.ZIP, // UNIT=CART,DISP=SHR, // DCB=(RECFM=U,LRECL=6160,BLKSIZE=6160,DSORG=PS), // LABEL=(1,NL,EXPDT=99365),VOL=SER=ARCH01 //SYSIN DD * -ECHO –ARCHINDD(INPUT) -VIEW /* This command is typically used for GDG and Tape processing. Full details of this processing can found in Chapter 6. Processing Sequential Files and Chapter 9. Processing Magnetic Tapes. -ARCHIVE The -ARCHIVE command is used to specify the ZIP archive to be examined by the PKUNZIP program for files to extract or view. The full syntax for this command is: -ARCHIVE(<ZIP dataset name>) where <ZIP dataset name> is the full MVS name of the sequential dataset, PDS member or VSAM dataset for the ZIP archive. 230 PKZIP for MVS: User Reference T4ASI025-00-00 There is no default value for the -ARCHIVE command, and it must always be specified, unless the ZIP archive is specified using the – ARCHINDD command. Note: PKUNZIP processing will perform a SYSTEM ENQ using this name as the Resource (minor) Name and PKZIP as the Queue (major) name. This ENQ will prevent PKZIP tasks in the same system from using the archive while this task is reading it. If required, the scope of this ENQ should be changed to SYSTEMS using GRS RNL (or similar) processing. -ATTRIB The -ATTRIB command is used to specify that the stored file attributes for a ZIP file should be used when creating a new extracted dataset. This is the default setting. Using this, PKUNZIP will extract the stored file attributes for a ZIP file (if they exist) to create a new extracted dataset. File attributes that are suitable for this use are stored by PKZIP for MVS processing and other products (e.g. PKZIP for VM). If no attributes are retained in the archive, or some attributes are missing, the required dataset attributes should be specified using -OUT commands. See also –NOATTRIB. -BINARY This command is used to determine how a selected file is extracted. If this command is used, PKUNZIP will translate the extracted file as a binary file. If neither this command nor the -TEXT command is used, the file will be translated as the type of file by which it is marked in the file information (refer to the -VIEW command later in this chapter, under the DETAIL option, for more details of this). If a file is marked as a binary file, it will be extracted as if this command were given. A binary file is stored in a ZIP archive as a stream of binary characters, without record delimiters. When a file is decompressed using the -BINARY command, PKUNZIP will perform no translation on the contents. It will extract the file's records to the output file using the maximum record size defined for the output file. If the last record does not completely fill a record in a fixed record length file, it is expanded with binary zero characters. -CACHEMEMORY This command requires the HyperZIP license, please refer to Appendix B. Licensing Guide for more details. T4ASI025-00-00 PKUNZIP Commands 231 This command is used to specify the amount of memory to be assigned to PKUNZIP's internal caching mechanisms. Increasing the value of -CACHEMEMORY will increase the amount of virtual memory used by PKUNZIP and may reduce the I/O activity to the archive. A large -CACHEMEMORY value should reduce the elapsed time for decompression processes. PKUNZIP may use multiple caches to perform its processing, so the amount of memory used may vary according to the number and types of files being processed. The full syntax for this command is: -CACHEMEMORY(<bytes>) where <bytes> specifies the total number of bytes to be assigned to the caches used in PKUNZIP. For example, use the following statement to specify 0.50Mb: -CACHEMEMORY(500000) The minimum cache size recommended is 64000, the maximum value is 231-1. Generally, decompressing larger files will benefit from a larger -CACHEMEMORY value. If the -CACHEMEMORY command is not specified or the performance license is not present, then the command value will default to 0 and caching will not be performed. Additional information describing -CACHEMEMORY is documented in Chapter 13. Performance. Warning: A large -CACHEMEMORY value, for example 100000000, will cause PKUNZIP to use a large amount of virtual memory. If a large value is coded and large files are being decompressed then it is vitally important that your site has sufficient storage and/or Page Datasets to support PKUNZIP's virtual memory requests. A shortage of storage and/or Page Datasets can have a severe effect on an MVS system so discuss your requirements with the appropriate technical support people before trying this option with a large value. -CNVEXT The -CNVEXT (Convert Extension) command is used to specify how to translate filenames which have file extensions when a file is extracted from a ZIP archive. The full syntax for this command is: -CNVEXT(DROP|SUFFIX|NAMEFILE) where the extension conversion to be used for converting filename extensions is specified by one of the following parameters: 232 PKZIP for MVS: User Reference T4ASI025-00-00 DROP The file extension is dropped, so that the last dataset component (the member name if extracting to a PDS) created is just the last component of the filename held in the ZIP archive. This is the default value for the -CNVEXT command. SUFFIX The file extension is suffixed to the last component of the filename held in the ZIP archive to form the last dataset component (the member name if extracting to a PDS). If this name is more than 8 characters long, it is truncated to 8 characters. NAMEFILE The file extension is used as the last dataset component (the member name if extracting to a PDS). If no file extension exists, the last component of the filename held in the ZIP archive is used. If no -CNVEXT command is specified when extracting a file, PKUNZIP will use the default conversion method of DROP on each file. -DELIM The -DELIM command is used when decompressing a file as text. The command specifies a delimiter that terminates each record (except for the last) when a file is being decompressed. This delimiter is removed from the data and the preceding characters are processed as one record. The last record in the file is suffixed by a file terminator as defined by the -TERM command. The -DELIM command is ignored when a file is decompressed as binary. The full syntax for this command is: -DELIM(<delimiter characters>) where <delimiter characters> specifies the character(s) that indicate the end of each text file record (except for the last) that is decompressed. 0-4 <delimiter characters> may be specified, each character must take one of the following values: CR The record delimiter includes the ASCII carriage return character (hexadecimal 0D). CZ The record delimiter includes the ASCII Ctrl-Z character (hexadecimal 1A). LF The record delimiter includes the ASCII line feed character (hexadecimal 0A). Any combination of these characters may be used up to a limit of 4 characters. T4ASI025-00-00 PKUNZIP Commands 233 Note: If no -DELIM command and no –TERM command are specified when decompressing a text file, PKUNZIP will search for a range of delimiters and terminators, which should correctly process files from most system. The default processing should be used unless the data is known to contain characters that are not handled correctly by the default processing. The default values that PKUNZIP will search if both –DELIM and – TERM are not specified are: DELIM values of CRLFCZ, LFCRCZ, CRLF, LFCR, CRCZ, LFCZ, CR and LF. TERM default values as specified in the –TERM command. If either a DELIM or TERM command is specified, then the character(s) specified or defaulted by both commands will be used in the search process. If a –TERM command is specified but no –DELIM command is specified, then the default delimiter is CRLF. The usual delimiter used for transfers from MS-DOS systems is CRLF, and the usual delimiter used for transfers to UNIX systems is LF. To ensure that the output is correct, the same –DELIM command that was used on the original compression should be used when decompressing a file created by PKZIP for MVS. -ECHO The -ECHO command is used to display commands input to PKUNZIP on the output message dataset. When this command is used, PKUNZIP will copy the command line that contains the -ECHO command and all subsequent command lines (from the configuration file, PARM or SYSIN) to the output message dataset. By default, the –ECHO facility is activated. Thus, the –ECHO command need only be used if the –NOECHO command has been used to suppress the output of preceding commands. In this circumstance, the command line that contains the -ECHO command may be processed before the line is displayed, so any errors in this line may be output before the line is displayed. See also –NOECHO. 234 PKZIP for MVS: User Reference T4ASI025-00-00 -EXTRACT command The -EXTRACT command is used to specify that the files specified by the <dataset name> command should be extracted from the ZIP archive. This is the default command for the PKUNZIP program, i.e. if no other commands are specified, an -EXTRACT operation will be performed. Files which are extracted are decompressed using the method by which they were compressed, unless this is specifically overridden by use of the -BINARY, -TEXT or -ZDW commands. They are then written, by default, to sequential datasets, the names of which are determined by the processing options in force, together with the filenames held in the ZIP archive. If there is no stored pathname, an extracted file is written to a PDS member within the current dataset, determined by the ZIPCUR command. The member name is the same as that of the filename under which the file is stored in the ZIP archive, as modified by the -CNVEXT command. When extracting to an existing PDS you must specify -INSERTMEMBER to add or -OVERWRITE to update members within that PDS. The -HLQ and –MAKE* commands can also be used for changing the name and the type of dataset to which an extracted file is written. The –EXTRACT commands reads an existing Zip Archive, so requires that either the –ARCHIVE command or the –ARCHINDD command be specified. -FILEPROCERR The -FILEPROCERR option is used to specify whether processing errors will terminate PKUNZIP processing, or if the processing will attempt to continue. PKUNZIP can process a number of files the most important of which are the output files. If an I/O related problem occurs (e.g. file full) with one of these files, PKUNZIP has the option of: continuing with other files, but not processing the file which had the error stopping the processing. These options are specified as follows: -FILEPROCERR(TERMINATE|TOLERATE) T4ASI025-00-00 TERMINATE Stop processing if an error is detected. TOLERATE Allow processing to continue with other files after a file error. PKUNZIP Commands 235 Note: When file errors are TOLERATEd, the PKUNZIP job will complete with an error return code and messages indicating the problem. This command is distinguished from -FILESELERR because this sort of error occurs after the file extraction begins. -FILESELERR The -FILESELERR option is used to specify whether selection errors will terminate PKUNZIP processing, or if the processing will attempt to continue selecting other files. Selection is the first phase of PKUNZIP processing, where the files that have been selected are checked to verify that it is possible for PKUNZIP to process these files. If PKUNZIP detects a problem in this process (e.g. file exists and -OVERWRITE has not been specified), then PKUNZIP has the option of: continuing with other files, but not processing the file which had the error stopping the processing. These options are specified as follows: -FILESELERR(TERMINATE|TOLERATE) TERMINATE Stop processing if an error is detected. TOLERATE Allow processing to continue with other files after a file error. This is the default specification. Note: 236 When file errors are TOLERATEd, the PKUNZIP job will complete with an error return code and messages indicating any files that had a problem during selection. This command is distinguished from -FILEPROCERR because a file selection error occurs before the file extraction begins. PKZIP for MVS: User Reference T4ASI025-00-00 -FTRAN The -FTRAN (File TRANslation) command is used to specify a translation table for use with filenames, comments, and similar control information in a ZIP archive. The full syntax for this command is: -FTRAN(<translation table>) where <translation table> is the name of a loadable translation table. This translation table may either be supplied, or may be created by yourself, as described in the Modifying a translation table section of Chapter 16. Translation and Translation Tables. This command is likely to be used where the filenames or comments that would be created by using PKUNZIP for MVS using the standard translation tables would contain characters which would be indecipherable, or files with filenames that are illegal on MVS systems. See Chapter 16. Translation and Translation Tables for further discussion of how translation tables are used. If this command is not specified, the default translation table, ASCII, is used. -HIERARCHY The -HIERARCHY command is used to specify that the full dataset component hierarchy should be used when converting a filename between ZIP archive format and MVS format. This is the default option for PKUNZIP. For example the ZIP file: T4ZIP/BASE25/SOURCE/MEM1 could be extracted to a PDS member: T4ZIP.BASE25.SOURCE(MEM1) Similarly the ZIP file: T4ZIP/MY/DATA could be extracted to a sequential dataset: T4ZIP.MY.DATA See also -NOHIERARCHY. T4ASI025-00-00 PKUNZIP Commands 237 -HLQ The -HLQ (High Level Qualifier) command allows users to rename files as the files are extracted from an archive. The command is used to specify that the given high level components of the dataset name should be replaced with a new set of high level components during extraction. A number of –HLQ commands, each with wild cards can be used, to create a generic conversion for the input archive files. The various formats for this command are: -HLQ(<ZIP file hlq>,<MVS hlq>) -HLQ(,<MVS hlq>) -HLQ(<ZIP file hlq>,) -HLQ(**,<MVS name>) Where <ZIP file hlq> defines the high-level qualifier characters of the input ZIP file name that are to be substituted by the <MVS hlq>. This value can be up to 80 characters long and may specify wild characters to assist in the matching. The wild characters that can be specified are: ‘*’ – to match any number of characters (within one high level qualifier). ‘?’ – to match any single characters (except a ‘/’ qualifier separator). <MVS hlq> specifies an MVS High Level Qualifier that will be used to create the MVS file name. This can be a maximum of 54 characters long and should match MVS dataset naming standards. <MVS name> specifies the associated MVS file name. This can be a maximum of 54 characters long and should match MVS dataset naming standards. As shown above, either <ZIP file hlq> or <MVS hlq> (but not both) can be left blank (see examples below). This allows partial or full dataset components to be added or removed from an existing ZIP file name. As shown above, ‘**’ can be specified as the first parameter of the –HLQ command. This allows the entire ZIP file name to be replaced “blind” i.e. without needing to know the original ZIP file name (see examples below). Note: 238 In previous versions of PKZIP for MVS, the ‘/’ character was used to separate the two parameters. This character is still supported, but the ‘,’ is recommended as this is consistent with other commands and removes confusion about the use of the ‘/’ character in the Zip file name. PKZIP for MVS: User Reference T4ASI025-00-00 The HLQ command is not recommended when using – NOHIERARCHY, -OUTDD or –ZIPCUR commands, as these commands can also change the output dataset name used, in potentially conflicting ways. The HLQ command is processed after the -CNVEXT command has been used. For example, the -CNVEXT command may cause the removal of the ‘extension’ in the ZIP file name, in which case the extension is not available for matching and should not be used when specifying the <ZIP file hlq>. Operation The –HLQ processing for each ZIP archive file selected for extraction proceeds as follows: The input –HLQ commands are searched in the order specified until a match is found with the beginning of the ZIP archive file name and the <ZIP file hlq>. The matched portions of the ZIP archive file name are replaced with the <MVS hlq> (or <MVS name> when ‘**’ is specified as the <ZIP file hlq>) to create the MVS name to be used. Examples of HLQ Using -HLQ(<old name>,<new name>) Use both the old and new name to replace (part of) the archive file name’s high level qualifier. T4ASI025-00-00 Archive File Name HLQ Output File Name T4ZIP/SRCE/TEXT (T4ZIP,ASIZIP) ASIZIP.SRCE.TEXT T4ZIP/LONGNAME (T4ZIP.LONG,ASIZIP.) ASIZIP.NAME T4ZIP/SRCE/TEXT (*,NEWHLQ) NEWHLQ.SRCE.TEXT T4ZIP/BTEXT/CAHX (T4ZIP.?TEXT.,NEW.) NEW.CAHX PKUNZIP Commands 239 Example of blank new name A blank new name is used to suppress part of the original high level qualifier. Archive File Name HLQ Output File Name T4ZIP/SRCE/TEXT (T4,) ZIP.SRCE.TEXT Examples of blank old name A blank old name is typically used when you want to add a new prefix (high level qualifier) to the original file name, but can be used add additional characters to the existing High Level Qualifier. Archive File Name HLQ Output File Name T4ZIP/SRCE/TEXT (,OLD.) OLD.T4ZIP.SRCE.TEXT T4ZIP/SRCE/TEXT (,NEW) NEWT4ZIP.SRCE.TEXT Note: In this case, since the old name was blank, this -HLQ will match all files. Any -HLQ commands subsequently entered will not be used to convert any extracted file names. Example of ** as an old name An ‘**’ specified as the old name is typically used when you want to rename the archive file, regardless of its current name. Archive File Name HLQ Output File Name T4ZIP/SRCE/TEXT (**,NEW.FILE.NAME) NEW.FILE.NAME When using ** it is recommended that you extract only one file from the archive, otherwise PKUNZIP will extract the first file and then attempt to overwrite it with any subsequently selected files. For example to rename ASIZIP.FIRST using the ** specify: -ARCHIVE(ASIZIP.TRIAL.ZIP) -OUTUNIT(SYSDA) ASIZIP.FIRST -HLQ(**/NEW.FILE.NAME) 240 PKZIP for MVS: User Reference T4ASI025-00-00 Note: In this case, this -HLQ will match all files. Any –HLQ commands subsequently entered will not be used to convert any extracted file names. Example using a number of HLQ commands The following output shows a number of HLQ commands being used when extracting from an archive which contains the following files: ZIPREG/EH70/BTEXT ZIPREG/EH69/ATEXT ZIPREG/EH71/SEQ ZIPREG/VB.TXT ZIPREG/EH70/PDS/ARCHCICS ZIPREG/BTEXT/CAHX UNZIP101I PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss UNZIP010I -ECHO UNZIP010I -ARCHIVE(ZIPREG.EH70.ZIP3) UNZIP010I -HLQ(ZIPREG.EH6*.,EH69TEXT.) UNZIP010I -HLQ(*.EH70.,ZIPREG.EH70.OUT3.) UNZIP010I -HLQ(ZIPREG.VB,ZIPEG.EH70.OUT4) UNZIP010I -HLQ(ZIPREG.?TEXT.,ZIPREG.EH70.OUT2.) UNZIP010I -HLQ(*,NEW.ZIPREG) UNZIP609I ZIP file ZIPREG/EH70/BTEXT inflated to MVS file ZIPREG.EH70.OUT3.BTEXT UNZIP609I ZIP file ZIPREG/EH69/ATEXT inflated to MVS file EH69TEXT.ATEXT UNZIP609I ZIP file ZIPREG/EH71/SEQ inflated to MVS file NEW.ZIPREG.EH71.SEQ UNZIP609I ZIP file ZIPREG/VB.TXT inflated to MVS file ZIPEG.EH70.OUT4 UNZIP609I ZIP file ZIPREG/EH70/PDS/ARCHCICS inflated to MVS file ZIPREG.EH70.OUT3.PDS(ARCHCICS) UNZIP609I ZIP file ZIPREG/EH70/PDS/ARCHDCM inflated to MVS file ZIPREG.EH70.OUT3.PDS(ARCHDCM) UNZIP609I ZIP file ZIPREG/BTEXT/CAHX inflated to MVS file ZIPREG.EH70.OUT2.CAHX UNZIP102I PKZIP MVS 2.5 level x ending. -INSERTMEMBER The –INSERTMEMBER command is used to specify that an extracted file can be added to a PDS as a new member. By default, when extracting to an existing PDS, PKUNZIP will not add or update members. To add a new member you must specify the – INSERTMEMBER command, to update an existing member you must specify the –OVERWRITE command. -MAKEPDS The -MAKEPDS command is used to specify that the ZIP file should be extracted as a member of a PDS. The -MAKEPDS command will override any stored file attributes which imply that the ZIP file is not a member of PDS (e.g. DSORG=PS). When MAKEPDS is used, the lowest component of a dataset name is interpreted as a PDS member name rather than as the lowest component of a sequential dataset name. T4ASI025-00-00 PKUNZIP Commands 241 For example the ZIP file: T4ZIP/BASE25/SOURCE/MEM1 could be extracted to a sequential dataset: T4ZIP.BASE25.SOURCE.MEM1 but when -MAKEPDS is specified the ZIP file would be extracted to the PDS member: T4ZIP.BASE25.SOURCE(MEM1) Please note that when extracting to an existing PDS you must specify -INSERTMEMBER or -OVERWRITE to add or update members within that PDS. This command requires the PKZIP PDS File Handler License, see Appendix B. Licensing Guide for more details. Note: Only one of -MAKEPDS, -MAKESEQ or –MAKEVSAM can be used in an execution of PKUNZIP. -MAKESEQ The -MAKESEQ command is used to specify that the ZIP file should be extracted as a sequential file. The -MAKESEQ command will override any stored file attributes which imply that the ZIP file is not sequential (e.g. DSORG=PO). If no file attributes are stored for the ZIP file then PKUNZIP will attempt to unzip the file to a sequential dataset. This command requires the PKZIP Sequential File Handler License, see Appendix B. Licensing Guide for more details. Note: Only one of -MAKEPDS, -MAKESEQ or –MAKEVSAM can be used in an execution of PKUNZIP. -MAKEVSAM The -MAKEVSAM command is used to specify that the ZIP file should be extracted as a VSAM file. The -MAKEVSAM command will override any stored file attributes which imply that the ZIP file is not VSAM (e.g. DSORG=PO). This command requires the PKZIP VSAM File Handler License, see Appendix B. Licensing Guide for more details. 242 PKZIP for MVS: User Reference T4ASI025-00-00 Note: Only one of -MAKEPDS, -MAKESEQ or –MAKEVSAM can be used in an execution of PKUNZIP. -NOALIASMEMBER The -NOALIASMEMBER command is used to indicate that Alias attributes that exist for PDS members extracted should be ignored. This is the default setting. See also –ALIASMEMBER. -NOATTRIB The -NOATTRIB command is used to specify that the stored file attributes for a ZIP file should not be used when creating a new extracted dataset. By default, PKUNZIP will use the stored file attributes for a ZIP file to create a new extracted dataset. The required dataset attributes should be specified using -OUT commands when the -NOATTRIB command is specified. See also –ATTRIB. -NOCRLF The -NOCRLF command can be used when a text file is being extracted from a ZIP archive (see the -TEXT command section later in this chapter for more details of extracting text files). It is used to inform PKUNZIP that the selected files do not have any internal CR/LF/CZ characters as record delimiters or terminators. When this command is used, PKUNZIP will use the maximum record length of the dataset into which each file is extracted to determine the record lengths that are output. If the last record does not completely fill a record in a fixed record length file, it is expanded with EBCDIC space characters (hexadecimal 40). By default this command is not specified. Note: T4ASI025-00-00 Specifying this command is functionally equivalent to specifying -DELIM() and -TERM(). Either will work but the specification of DELIM and TERM is recommended and in a future release this command may be removed. PKUNZIP Commands 243 -NOECHO The -NOECHO command is used to suppress commands input to PKZIP from the output message dataset. When this command is used, PKUNZIP will stop outputting the command lines to the output message dataset. Note that the command line that contains the -NOECHO command may not be processed before the line is displayed, so this line may be output. See also -ECHO. -NOHIERARCHY The -NOHIERARCHY command is used to specify that only the last component of the dataset name should be used when converting a filename between ZIP archive format and MVS format. In general another command such as -ZIPCUR would be used also to specify the final location of an extracted file. For example, where -ZIPCUR specifies: NEWZIP.ASM the ZIP file: T4ZIP/BASE25/SOURCE/MEM1 would be extracted to the PDS member: NEWZIP.ASM(MEM1) Please note that when extracting to an existing PDS you must specify -INSERTMEMBER to add or -OVERWRITE to update members within that PDS. -HIERARCHY is the default option for PKUNZIP. See also -HIERARCHY, -OVERWRITE. -NOSYSIN If the -NOSYSIN command is given on the PARM parameter or in the Configuration File, then the SYSIN dataset is not opened for commands. If the NOSYSIN command is given within the SYSIN dataset, then it will have no effect. The -NOSYSIN command is useful when calling PKUNZIP from another program because it ensures that PKUNZIP will not interfere with the SYSIN passed to the calling program. See Chapter 15. Calling PKZIP from a Program for more details. 244 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTBLKSIZ The -OUTBLKSIZ command is used to specify the block size to be used for a new extracted dataset. The full syntax for this command is: -OUTBLKSIZ(<block size>) where <block size> is the block size to be used for the new extracted dataset. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the new extracted dataset defaults to a block size of 6160 bytes. Note: The default is not used when the associated SMS command (-OUTDCLASS) is specified. This command or the associated attribute stored in the archive will be ignored for output files with an unblocked record format. The value 0 may be specified to allow the system to determine an appropriate block size for PDS or Sequential files, but this value should not be used for record format U (OUTTYPE(U)) files, as the system may not set an appropriate block size for this type of file. -OUTDCLASS The -OUTDCLASS command is used to specify the DFSMS data class to be used for a new extracted dataset. The full syntax for this command is: -OUTDCLASS(<data class>) where <data class > is the DFSMS data class to be used for placing the new extracted dataset. If this command is not specified, no data class is used for placing the new extracted dataset. When a new extracted dataset is being created, an -OUTVOL, -OUTUNIT, -OUTDD, -OUTDCLASS, -OUTMCLASS or –OUTSCLASS command should be used to specify the placement of the extracted dataset. T4ASI025-00-00 PKUNZIP Commands 245 -OUTDD The -OUTDD command is used to specify a DD statement which identifies a dataset to which PKZIP should attempt to extract ZIP files to. The -OUTDD command must be used in conjunction with normal file selections (see <dataset name> command) as the -OUTDD command does not select files. The full syntax of this command is: -OUTDD(<ddname>) where <ddname> refers to a DD statement in the job step that is executing PKUNZIP. Note: Only one –OUTDD command can be specified at a time. When using the –OUTDD command, many other UNZIP commands are redundant. These redundant commands include the following: Command Rational -HLQ -OUTDD command tells PKUNZIP exactly where the data should go – the specified DD will name the output file. However the -HLQ might have some effect on the member name of a PDS -OUTLRL, -OUTBLKSIZE, -OUTTYPE These DCB attributes must be specified on the identified DD. -OUTRLSE -OUTNORLSE The identified DD statement will determine whether the dataset is allocated with RLSE. -CNVEXT As with -HLQ, the specified DD will name the output file. Decompressing a single sequential dataset In these examples we have a ZIP file called MY/SEQ/DATASET in the ZIP archive ARCHIVE.DATASET.ZIP. To decompress a single ZIP file to a sequential dataset that already exists: //SEQUNZIP EXEC PGM=PKUNZIP,REGION=2M //SYSPRINT DD SYSOUT=* //OLDSEQ DD DISP=OLD,DSN=DATASET.SEQ //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -OUTDD(OLDSEQ) "MY/SEQ/DATASET" /* 246 PKZIP for MVS: User Reference T4ASI025-00-00 To decompress a single ZIP file to a new sequential dataset: //SEQUNZIP EXEC PGM=PKUNZIP,REGION=2M //SYSPRINT DD SYSOUT=* //NEWSEQ DD DSN=NEW.DATASET.SEQ, // DISP=(NEW,CATLG,DELETE), // DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=6160), // SPACE=(TRK,(1,1)),UNIT=SYSDA,VOL=SER=TSTVOL //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -OUTDD(NEWSEQ) "MY/SEQ/DATASET" /* Note: When using -OUTDD to extract a file to a sequential dataset, PKUNZIP assumes that the -OVERWRITE command has been specified. PKUNZIP processing will open the specified file for output, write the extracted data and then close the file. The actual effect on the defined dataset may depend on the DISP parameter. For example, DISP=MOD may append the extracted data to the file, while DISP=OLD will cause any existing data to be overwritten. If multiple files are selected for extraction, the same points apply, i.e. the DISP parameter in the JCL will control whether or not previously extracted data is overwritten or newly extracted data is appended to the existing file. Attributes of the output dataset, for example the DCB information, must be specified on the DD. JCL facilities such as the use of references to previous DD statements or existing datasets in the DCB statement can assist in this specification. Decompressing members to a PDS In these examples we have ZIP files called MY/MEMBERS/DATA1, MY/MEMBERS/DATA2 etc. in the ZIP archive ARCHIVE.DATASET.ZIP. To decompress members to a PDS, that already exists: //PDSUNZIP EXEC PGM=PKUNZIP,REGION=2M //SYSPRINT DD SYSOUT=* //OLDPDS DD DISP=SHR,DSN=DATASET.PDS //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -OUTDD(OLDPDS) "MY/MEMBERS/*" /* T4ASI025-00-00 PKUNZIP Commands 247 To decompress members to a new PDS: //PDSUNZIP EXEC PGM=PKUNZIP,REGION=2M //SYSPRINT DD SYSOUT=* //NEWPDS DD DSN=NEW.DATASET.PDS, // DISP=(NEW,CATLG,CATLG), // DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=6160), // SPACE=(TRK,(1,1,10)),UNIT=SYSDA,VOL=SER=TSTVOL //SYSIN DD * -ECHO -ARCHIVE(ARCHIVE.DATASET.ZIP) -OUTDD(NEWPDS) "MY/MEMBERS/*" /* Note: When using –OUTDD to extract files as members of a PDS, PKUNZIP assumes that the -INSERTMEMBER and – NOHIERARCHY commands have been specified. -OUTDIRBLKS The -OUTDIRBLKS command is used to specify the number of directory blocks to be used for a new PDS. The full syntax for this command is: -OUTDIRBLKS(<dirblks>) where <dirblks> is the number of directory blocks to be used for creating the new PDS. This command should only be used when extracting ZIP files to members of a new PDS. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute then any PDS created by PKUNZIP will be allocated with 10 directory blocks. Note: 248 The default is not used when the associated SMS command (-OUTDCLASS) is specified. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTLRL The -OUTLRL command is used to specify the logical record length to be used for a new extracted dataset. The full syntax for this command is: -OUTLRL(<record length>) where <record length> is the logical record length to be used for the new extracted dataset. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the new extracted dataset is allocated with a logical record length of 80. Note: The default is not used when the associated SMS command (-OUTDCLASS) is specified. This command or the associated attribute stored in the archive will be ignored for output files with an Undefined record format. -OUTMCLASS The -OUTMCLASS command is used to specify the DFSMS management class to be used for a new extracted dataset. The full syntax for this command is: -OUTMCLASS(<management class>) where <management class > is the DFSMS management class to be used for placing the new extracted dataset. If this command is not specified, no management class is used for placing the new extracted dataset. When a new extracted dataset is being created, an -OUTVOL, -OUTUNIT, -OUTDD, -OUTDCLASS, -OUTMCLASS or –OUTSCLASS command should be used to specify the placement of the extracted dataset. T4ASI025-00-00 PKUNZIP Commands 249 -OUTNORLSE The -OUTNORLSE command is used to specify that, when deallocated, free space should not be released for an extracted dataset. -OUTRLSE is the default for extracted sequential datasets, whereas -OUTNORLSE is the default for extracted PDS members (it is assumed that the extra space may be required by other members of the PDS). -OUTPRIMARY The -OUTPRIMARY command is used to specify the number of data units to be used on the primary extent of a new extracted dataset. The full syntax for this command is: -OUTPRIMARY(<data units>) where <data units> is the number of data units to be used in the primary extent of the new extracted dataset. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the new extracted dataset defaults to a primary extent of 100 data units. See –OUTSPACE for the definition of the data unit. Note: 250 The default is not used when the associated SMS command (-OUTDCLASS) is specified. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTRLSE The -OUTRLSE command is used to specify that, when deallocated, free space should be released for an extracted dataset. This command helps save space when decompressing data. -OUTRLSE is the default for extracted sequential datasets, whereas -OUTNORLSE is the default for extracted PDS members (it is assumed that the extra space may be required by other members of the PDS). -OUTSCLASS The -OUTSCLASS command is used to specify the DFSMS storage class to be used for a new extracted dataset. The full syntax for this command is: -OUTSCLASS(<storage class>) where <storage class > is the DFSMS storage class to be used for placing the new extracted dataset. If this command is not specified, no storage class is used for placing the new extracted dataset. When a new extracted dataset is being created, an -OUTVOL, -OUTUNIT, -OUTDD, -OUTDCLASS, -OUTMCLASS or –OUTSCLASS command should be used to specify the placement of the extracted dataset. -OUTSECONDARY The -OUTSECONDARY command is used to specify the number of data units to be used on the secondary extent of a new extracted dataset. The full syntax for this command is: -OUTSECONDARY(<data units>) where <data units> is the number of data units to be used in the secondary extent of the new extracted dataset. <data units> may not be specified as 0. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the new extracted dataset defaults to a secondary extent of 100 data units. See – OUTSPACE for the definition of the data unit. T4ASI025-00-00 PKUNZIP Commands 251 Note: The default is not used when the associated SMS command (-OUTDCLASS) is specified. -OUTSPACE The -OUTSPACE command is used to specify the type of data units to be used for allocating a new extracted dataset. The full syntax for this command is: -OUTSPACE(TRK|CYL|BLK) where the type of data unit to be used for allocating the new extracted dataset is specified by one of the following parameters: TRK The extracted dataset is to be allocated by tracks. CYL The extracted dataset is to be allocated by cylinders. BLK The extracted dataset is to be allocated by blocks; the average block size is taken from the -OUTBLKSIZ command. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the new extracted dataset is allocated in tracks (TRK option). By default, both the primary and secondary extents are allocated at a size of 100 of these data units. This default can be changed by using the -OUTPRIMARY or -OUTSECONDARY commands. Note: 252 The default is not used when the associated SMS command (-OUTDCLASS) is specified. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTTYPE The -OUTTYPE command is used to specify the record format of records within a new extracted dataset. The full syntax for this command is: -OUTTYPE(U|F|FA|FB|FBA|FBM|FBS|FM|V|VA|VB|VBA|VBM|VM) where the record format to be used for allocating the new extracted dataset is specified by one of the following parameters: U Undefined records. F Fixed records. V Variable records. .B Records will be Blocked – if not specified processing assumes one record per block. .A or ..A The record(s) contain ISO/ANSI device control characters. .M or ..M The record(s) contain Machine code control characters. FBS Fixed Block Standard – i.e. no short blocks. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute, the extracted dataset is allocated with a fixed blocked (FB) record format. For further information on the meanings of the supported settings, see information on the RECFM parameter in the JCL Reference manual. Note: T4ASI025-00-00 The default is not used when the associated SMS command (-OUTDCLASS) is specified. The use of –OUTLRL and –OUTBLKSIZ depends on the type specified. If U is specified, then the –OUTLRL value will be ignored. If an unblocked format is specified, then –OUTBLKSIZ will be ignored. PKUNZIP Commands 253 -OUTUNIT The -OUTUNIT command is used to specify the generic unit on which a new extracted non VSAM dataset is to be allocated. The full syntax for this command is: -OUTUNIT(<unit name>) where <unit name> is the generic unit name on which the new extracted dataset is to be allocated. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified, there is no associated stored attribute and a UNIT is required, then the installation default UNIT (typically SYSALLDA) is used. Note: For non VSAM datasets, the volume information in the archive will be ignored if the –OUTUNIT command is specified. -OUTVOL The -OUTVOL command is used to specify the volume on which a new extracted dataset is to be allocated. The full syntax for this command is: -OUTVOL(<volume name>[ <volume name> …]) where <volume name> is the volume name on which the new extracted dataset is to be allocated. Up to 31 volumes can be specified, separated by blanks. If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If this command is not specified and there is no associated stored attribute there is no associated default. Note: 254 For non VSAM datasets, the volume information in the archive will be ignored if the –OUTUNIT command is specified. For a VSAM file, this command is used to specify volumes at the Cluster Level. PKZIP for MVS: User Reference T4ASI025-00-00 -OVERWRITE Specifies that if an extracted dataset or file has the same name as an existing dataset then the existing dataset should be overwritten. By default, when extracting to an existing PDS, PKUNZIP will not add or update members. To add a new member you must specify the – INSERTMEMBER command, to update an existing member you must specify the –OVERWRITE command. -PAD The -PAD command is used to specify a single (EBCDIC) character that may be used to pad out the end of each record after it is decompressed. This is used by PKUNZIP when a file is being decompressed to a dataset with a fixed record length, and the records are shorter than the required record length. The full syntax for the command is: -PAD(<pad character>) where <pad character> specifies the character to be used for padding the end of every record. The pad character may be specified by one of the following methods: None If no pad character is specified, but the PAD command is used, PKUNZIP will assume space (X’40’) characters. EBCDIC character A single EBCDIC character value. X’Hex character’ A single hexadecimal character. If the PAD command is not specified but records must be padded, PKUNZIP will use a space character if a TEXT decompression is being performed or a null character (X’00’) if a BINARY decompression is being performed. T4ASI025-00-00 PKUNZIP Commands 255 -PASSWORD This command can be used to decrypt the selected files in a ZIP archive. The full syntax for this command is: -PASSWORD(<password>) where <password> is the password that is to be used for decrypting the files. The password is case sensitive, meaning that "Secret", "secret" and "SECRET" are all different passwords. This should be noted, especially where the password is being input from JCL, to ensure that the JCL/editor options do not capitalise, and hence invalidate, the password. This is mostly of concern when you are transferring ZIP files between MVS and MS-DOS or UNIX, where passwords are commonly lower case. If the files selected for extraction are not encrypted, they will be extracted as normal if this command is specified. If any of the selected files are encrypted with a different password, they will not be extracted, but a warning message will be output. Note that a ZIP archive may contain files encrypted under several different passwords, in which case each set of files with a different password must be extracted separately. -TAPETODISK This command is used to determine whether or not a temporary archive (i.e. disk archive) may be used to maintain a copy of an input archive. This option is significant where that archive is based on a sequential device that can support ZIP processing but there may be significant operator involvement (i.e. 3480 or 3490 cartridge device). PKZIP for MVS will always attempt to create a disk archive for 3420 tape devices. If this command is specified when PKUNZIP is reading a cartridge based archive, the ZIP processing will attempt to copy the input archive to a temporary dataset (allocating this dataset using the TEMP* commands that are specified or defaulted). When PKZIP is reading a ‘round tape’ (3420) tape based archive, a temporary dataset will always be used, even if this command has not been specified. If the allocated temporary space is insufficient, then the processing will revert to direct Tape processing, with the consequent impact on tape handling and potentially slower processing. Note: 256 When using this option, it may also be useful to code the JCL parameter FREE=CLOSE on the DD associated with the input archive. Using this, the tape drive will be made available for other processing once the copy has been completed. If FREE=CLOSE is not specified, then the tape must remain mounted while the UNZIP processing is progressing. PKZIP for MVS: User Reference T4ASI025-00-00 -TEMPBLKSIZ The -TEMPBLKSIZ command is used to specify the block size to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPBLKSIZ(<block size>) where <block size> is the block size to be used for the temporary ZIP dataset. If this command is not specified, the temporary ZIP dataset defaults to the block size of 20000 bytes if the archive is being cached, or ½ track blocking if not. Note that PKUNZIP performance may be affected by the dataset block size, and a large block size should improve performance. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPDCLASS The -TEMPDCLASS command is used to specify the DFSMS data class to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPDCLASS(<data class>) where <data class > is the DFSMS data class to be used for placing the temporary ZIP dataset. If this command is not specified, no data class is used for the temporary ZIP dataset. Note: T4ASI025-00-00 A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). PKUNZIP Commands 257 -TEMPPRIMARY The -TEMPPRIMARY command is used to specify the number of data units to be used on the primary extent of a temporary ZIP dataset. The full syntax for this command is: -TEMPPRIMARY(<data units>) where <data units> is the number of data units to be used in the primary extent of the temporary ZIP dataset. If this command is not specified, primary extent is defaulted to 100 data units. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPSCLASS The -TEMPSCLASS command is used to specify the DFSMS storage class to be used for a temporary ZIP dataset. The full syntax for this command is: -TEMPSCLASS(<storage class>) where <storage class > is the DFSMS storage class to be used for placing the temporary ZIP dataset. If this command is not specified, no management class is used for the temporary ZIP dataset. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPSECONDARY The -TEMPSECONDARY command is used to specify the number of data units to be used on the secondary extent of a temporary ZIP dataset. The full syntax for this command is: -TEMPSECONDARY(<data units>) where <data units> is the number of data units to be used in the secondary extent of the temporary ZIP dataset. <data units> may not be specified as 0. 258 PKZIP for MVS: User Reference T4ASI025-00-00 If this command is not specified, the secondary extent size is defaulted to 100 data units. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPSPACE The -TEMPSPACE command is used to specify the type of data units to be used for allocating a temporary ZIP dataset. The full syntax for this command is: -TEMPSPACE(TRK|CYL|BLK) where the type of data unit to be used for allocating the temporary ZIP dataset is specified by one of the following parameters: TRK The ZIP temporary dataset is to be allocated by tracks. This is the default value assigned for the type of data unit if -TEMPSPACE is not specified. CYL The ZIP temporary dataset is to be allocated by cylinders. BLK The ZIP temporary dataset is to be allocated by blocks; the block size is taken from the -TEMPBLKSIZ command. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPTYPE The -TEMPTYPE command is used to specify the record format of records within a temporary ZIP dataset. The full syntax for this command is: -TEMPTYPE(U|F|FB) where <record format> may take the following values: T4ASI025-00-00 U to specify undefined records. This is the default. F to specify fixed records. FB to specify fixed block records. PKUNZIP Commands 259 Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPUNIT The -TEMPUNIT command is used to specify the generic unit on which a temporary ZIP dataset is to be allocated. The full syntax for this command is: -TEMPUNIT(<unit name>) where <unit name> is the generic unit name on which the temporary ZIP dataset is to be allocated. If this command is not specified and a UNIT is required, then the installation default UNIT (typically SYSALLDA) is used. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TEMPVOL The -TEMPVOL command is used to specify the volume on which a temporary ZIP dataset is to be allocated. The full syntax for this command is: -TEMPVOL(<volume name>[ <volume name> …]) where <volume name> is the volume name on which the temporary ZIP dataset is to be allocated. Up to 31 volumes can be specified, separated by blanks. If this command is not specified, no specific volume is assigned to the ZIP temporary dataset. Note: A temporary ZIP dataset is only used to assist performance when PKUNZIP is processing a ‘sequential’ archive (e.g. a Tape). -TERM The -TERM command is used to specify a terminator (of between 0 and 4 characters) that has been suffixed to the last record of a file and should be ignored, when decompressing a text file. The -TERM command is ignored when a file is being decompressed as binary. 260 PKZIP for MVS: User Reference T4ASI025-00-00 The full syntax for this command is: -TERM(<terminator characters>) where <terminator characters> specifies the character(s) to be ignored at the end of a text file. Each of the 0-4 <terminator characters> may have one of the following values: CR The file terminator includes an ASCII carriage return character (hexadecimal 0D). LF The file terminator includes an ASCII line feed character (hexadecimal 0A). CZ The file terminator includes an ASCII Ctrl-Z character (hexadecimal 1A). Any combination of these characters may be used up to a limit of 4 characters. Note: T4ASI025-00-00 If no -DELIM command and no –TERM command are specified when decompressing a text file, PKUNZIP will search for a range of delimiters and terminators, which should correctly process files from most system. This default processing should be used unless the data is known to contain characters that are not handled correctly by the default processing. The default values that PKUNZIP will search for if both –DELIM and –TERM are not specified are: DELIM default values as specified in the –DELIM command. TERM values of CR, CZ or LF. Any of the DELIM values may also be used as File Terminators if they occur at the end of the file. If either a DELIM or TERM command is specified, then the character(s) specified or defaulted by both commands will be used in the search process. If a –DELIM() command is specified but no –TERM() command is specified, then the default terminator is CRLFCZ. The usual terminator used for transfers from MS-DOS systems is CRLFCZ, and the usual terminator used for transfers from UNIX systems is LF. PKUNZIP Commands 261 To ensure that the output is correct, the same –TERM() command that was used on the original compression should be used when decompressing a file created. In addition, this value must not contain the -DELIM() value. This restriction is a result of the processing checking for -DELIM() characters before checking for the –TERM() characters. So, for example, if the DELIM value is CRLF, TERM values of CFLFCZ or CZCRLF will not process correctly. CRLFCZ will generate an additional record containing the translation of CZ (x’1A’). CZCRLF will add an additional byte containing the translation of CZ (x’1A’), to the last record of the file. If the terminator specified (or defaulted) is not matched by the last character(s) in the extracted file, then the bytes up to the end of the decompressed data will be written. No warning message is given. TEST command The -TEST command is used to test the integrity of files within the ZIP archive, to ensure that they are valid and have not been corrupted. PKUNZIP will perform all the actions which would normally be taken during an -EXTRACT command, except that no data is actually extracted or written to a file. The data is extracted and checked against the stored CRC to ensure its integrity. For each file that is successfully checked, its validity is confirmed with a message to the SYSPRINT dataset. The –TEST commands reads an existing Zip Archive, so requires that either the -ARCHIVE command or the –ARCHINDD command be specified. -TEXT This command is used to determine the way in which a selected file is extracted. If this command is used, PKUNZIP will translate the extracted file as a text file. If neither this command nor the -BINARY command is used, the file will be translated as the type of file by which it is marked in the file information (Refer to the -VIEW command later in this chapter, under the DETAIL option, for more details of this). If such a file is marked as a text file, it will be extracted as if this command had been given. A text file is stored in a ZIP archive as a stream of ASCII characters, with embedded delimiters. Delimiters are normally stored as ASCII CR/LF sequences if the file was compressed under MS-DOS, AS/400 or MVS, or as an ASCII LF character if it was compressed under a UNIX style system. Details of record delimiters used by PKZIP for MVS are given in the -DELIM command section of Chapter 21. PKZIP Commands. 262 PKZIP for MVS: User Reference T4ASI025-00-00 When a file is decompressed using the -TEXT command, PKUNZIP will translate the ASCII characters to EBCDIC characters using the specified or defaulted translation table. It will extract the file's records to the output file using the delimiters as record boundaries (the delimiters themselves are not output). If the output file has a fixed record length, PKUNZIP will truncate records if they are too long and will expand them with EBCDIC space characters (hexadecimal 40) if they are too short. If a compressed text file does not have any internal delimiters, the -NOCRLF command should be used to inform PKUNZIP that the maximum record length in the output file should be used instead of the record delimiters. -TRAN The -TRAN command is used to specify a translation table for use when extracting text files from a ZIP archive. The full syntax for this command is: -TRAN(<translation table>) where <translation table> is the name of a loadable translation table which is used for translating the data within the extracted text files from the internal, normally ASCII character set to the external, normally EBCDIC, character set. This translation table may either be supplied with the PKUNZIP program, or may be created by yourself, as described in the Modifying a translation table section of Chapter 16. Translation and Translation Tables. If this command is not specified, the default translation table, ASCII, is used. -VIEW command This command will output information about the selected files contained in the ZIP archive onto the SYSPRINT dataset. The full syntax for this command is: -VIEW[option1][option2]... where: [option1], [option2], etc. can be any of the valid options for this command. These valid options are listed later in this section. Note Please note that there should be no space between -VIEW and the option. If present the option will be interpreted as a file specification (see below). -VIEW SIZE T4ASI025-00-00 is incorrect, view will only display the file named ‘size’ PKUNZIP Commands 263 -VIEWSIZE is correct, view will display all files sorted by size The –VIEW commands reads an existing Zip Archive, so requires that either the -ARCHIVE command or the –ARCHINDD command be specified. Options In its simplest form, where just the -VIEW command is given, without any options, an output similar to the following is displayed on the screen. UNZIP501I Length Method Size Ratio Date UNZIP502I --------- ------- ---------- --- ---------UNZIP503I 3578 DeflatN 956 74% 07-30-19xx UNZIP503I 1614 DeflatN 431 74% 09-07-19xx UNZIP503I 2970 DeflatN 801 74% 09-08-19xx UNZIP503I 2521 DeflatN 726 72% 09-07-19xx UNZIP503I 1941 DeflatN 531 73% 09-08-19xx UNZIP503I 11933 DeflatN 2459 80% 09-14-19xx UNZIP503I 1667 DeflatN 442 74% 09-07-19xx UNZIP503I 3083 DeflatN 955 70% 09-13-19xx UNZIP503I 3983 DeflatN 976 76% 09-08-19xx UNZIP503I 4105 DeflatN 1054 75% 09-08-19xx UNZIP503I 4031 DeflatN 940 77% 09-10-19xx UNZIP503I 3020 DeflatN 955 69% 09-10-19xx UNZIP503I 4625 DeflatN 1184 75% 09-08-19xx UNZIP503I 2970 DeflatN 813 73% 09-08-19xx UNZIP503I 4031 DeflatN 953 77% 09-10-19xx UNZIP503I 1957 DeflatN 549 72% 09-08-19xx UNZIP503I 4511 DeflatN 1109 76% 09-08-1897 UNZIP503I 1541 DeflatN 436 72% 09-03-19xx UNZIP505I ------------------ ---UNZIP506I 64081 16270 75% Time ----11:55 17:23 15:11 08:59 14:57 17:39 10:18 16:39 14:59 14:58 09:56 08:40 14:36 14:57 09:23 11:12 14:35 12:07 CRC-32 -------8B9A1E80 3DD08201 73951335 0F2EA477 AA588493 7266FE37 B4306683 BC889589 23F32729 D49BF956 AC3FE911 67821F88 654A3470 BA227472 8BE2ACE9 649EC958 48616AE6 E7AC2AA9 * * * * * * * Name ---NUMCHK.MAC BSBLBPTR.MAC LINTEL.MAC BSAMDEF.MAC LINTELH.MAC PARSEC.ASM BSBLKDEF.MAC ZIPWORK.MAC LMEMCPY.MAC LMEMSET.MAC GASCII.MAC ZIPWORK.BAK LMEMSET.BAK LINTEL.BAK GASCII.BAK LINTELH.BAK LMEMCPY.BAK BSBLBPTR.BAK This is a standard, unsorted display of the contents of a ZIP archive. The columns displayed consist of: 264 Length The original (uncompressed) size of the file. Note that this may differ slightly from the physical MVS size, due to the inclusion of imbedded record delimiters used to convert the file to PKZIP format. Refer to Chapter 5. ZIP Files, for more information. Method The type of compression routine that has been used to compress this file. Valid values are as follows: Stored This file has been stored without any compression. Shrunk This file has been shrunk by PKZIP version 1. Reducen (where n is 1 to 4) This file has been reduced by PKZIP version 1. Implode This file has been imploded by PKZIP version 1. DeflatN This file has been compressed by PKZIP version 2 using the Normal method. DeflatX This file has been compressed by PKZIP version 2 using the Maximum method. PKZIP for MVS: User Reference T4ASI025-00-00 DeflatF This file has been compressed by PKZIP version 2 using the Fast method. DeflatS This file has been compressed by PKZIP version 2 using the Superfast method. Size The current (compressed) size of the file. Ratio The percentage reduction in the file size as a result of this compression. Date The date of the file, as stored in the ZIP archive. Note that, for an MVS file, this is the date as specified by the TIMESTAMP command used when the file was compressed. Time The time of the file, as stored in the ZIP archive. Note that, for an MVS file, this is the time as defined by the TIMESTAMP command used when the file was compressed. CRC-32 The CRC value of the file, as calculated by the CRC-32 routine. If the file has been encrypted in the ZIP archive, an asterisk character (*) suffix is applied to the CRC value. Name The name of the file, as stored in the ZIP archive. The details, or order, of the information displayed using the -VIEW command may be modified by specifying various options. These options are appended to the -VIEW command, with no delimiters (as shown in the example given after the descriptions), and are described below. Any of these options may be specified together. Note however that, if more than one option that modifies the order of the displayed files is specified, i.e. DATE, NAME, OFFSET, PERCENT or SIZE (REVERSE is an exception) only the last option is satisfied (e.g. -VIEWDATEPERCENT will only sort by percent). BRIEF option This option is used to give only brief details of the files which are selected for display. This display will not give details of the file's CRC or its encryption status. DATE option This option is used to display the selected files in ascending order of the file's date and time, as stored in the ZIP archive. NAME option This option is used to display the selected files in ascending order of filename, as stored in the ZIP archive. OFFSET option This option is used to display the selected files in the order of offset in which they are stored within the ZIP archive. This is the default order in which files are displayed if no other ordering option is used. T4ASI025-00-00 PKUNZIP Commands 265 PERCENT option This option is used to display the selected files in ascending order of compression percentage. SIZE option This option is used to display the files in ascending order of uncompressed file size. REVERSE option This option can be used to reverse the order in which files are displayed it can be used in conjunction with any other ordering option. COMMENT option This option is used to display any file comment that is attached to a particular file, on a separate line following the file's details. DETAIL option This option is used to give full technical details of the file in a multi-line display. The output format is as follows: UNZIP507I UNZIP508I UNZIP509I UNZIP510I UNZIP511I UNZIP512I UNZIP513I UNZIP514I UNZIP515I Filename: NUMCHK.MAC File type: Text Date and Time: 30-Jul-19xx 11:55:26 Compression Method: DeflatN Compressed Size: 956 Uncompressed Size: 3578 32 bit CRC value: 8B9A1E80 Created by: PKZIP: 2.0 under MS-DOS Needed to extract: PKUNZIP: 2.0 The values and meaning of the fields are as in the normal display version, with the exception of the following additional fields: The file type is a judgement made by PKZIP during compression based on either the -TEXT/-BINARY command or on the contents of the file if neither command is input (See the -TEXT section on earlier in this chapter for more details). File type In addition, the file will be marked "encrypted" if it has been stored as an encrypted file. The file type shows the translation of the file that will be made when it is extracted by PKUNZIP if the explicit -TEXT/-BINARY commands are not input. Created by This gives the version of PKZIP and the operating system under which this file was compressed. Needed to extract This gives the minimum version level of PKUNZIP required to extract this file. Following these lines, the output will include details of any file attributes that are stored in the archive. 266 PKZIP for MVS: User Reference T4ASI025-00-00 Note: The order in which file attributes are displayed may vary. Example As an example, the command: -VIEWNAMEREVERSE may be given. This command will give a normal display of files within the ZIP archive, in order of filename (in descending alphabetical order). For the original example given at the start of this section, the output would be as follows: UNZIP501I Length Method Size Ratio Date Time CRC-32 Name UNZIP502I ---------- ------- ---------- ----- ---------- ----- ----------UNZIP503I 3083 DeflatN 955 70% 09-13-19xx 16:39 BC889589 ZIPWORK.MAC UNZIP503I 3020 DeflatN 955 69% 09-10-19xx 08:40 67821F88 * ZIPWORK.BAK UNZIP503I 11933 DeflatN 2459 80% 09-14-19xx 17:39 7266FE37 PARSEC.ASM UNZIP503I 3578 DeflatN 956 74% 07-30-19xx 11:55 8B9A1E80 NUMCHK.MAC UNZIP503I 4105 DeflatN 1054 75% 09-08-19xx 14:58 D49BF956 LMEMSET.MAC UNZIP503I 4625 DeflatN 1184 75% 09-08-19xx 14:36 654A3470 * LMEMSET.BAK UNZIP503I 3983 DeflatN 976 76% 09-08-19xx 14:59 23F32729 LMEMCPY.MAC UNZIP503I 4511 DeflatN 1109 76% 09-08-19xx 14:35 48616AE6 * LMEMCPY.BAK UNZIP503I 2970 DeflatN 801 74% 09-08-19xx 15:11 73951335 LINTEL.MAC UNZIP503I 2970 DeflatN 813 73% 09-08-19xx 14:57 BA227472 * LINTEL.BAK UNZIP503I 1941 DeflatN 531 73% 09-08-19xx 14:57 AA588493 LINTELH.MAC UNZIP503I 1957 DeflatN 549 72% 09-08-19xx 11:12 649EC958 * LINTELH.BAK UNZIP503I 4031 DeflatN 940 77% 09-10-19xx 09:56 AC3FE911 GASCII.MAC UNZIP503I 4031 DeflatN 953 77% 09-10-19xx 09:23 8BE2ACE9 * GASCII.BAK UNZIP503I 1667 DeflatN 442 74% 09-07-19xx 10:18 B4306683 BSBLKDEF.MAC UNZIP503I 1614 DeflatN 431 74% 09-07-19xx 17:23 3DD08201 BSBLBPTR.MAC UNZIP503I 1541 DeflatN 436 72% 09-03-19xx 12:07 E7AC2AA9 * BSBLBPTR.BAK UNZIP503I 2521 DeflatN 726 72% 09-07-19xx 08:59 0F2EA477 BSAMDEF.MAC UNZIP505I ------------------- ----UNZIP506I 64081 16270 75% -ZDW The -ZDW (ZIP Descriptor Word) command is designed for compressing and decompressing binary datasets that have variable record lengths. The -ZDW command when used with PKZIP forces the compression processing to store record lengths as it compresses a binary file. The – ZDW command when used with PKUNZIP forces the decompression processing to extract the stored values, allowing PKUNZIP to decompress the file whilst preserving the original record lengths. If you specify the -ZDW command then you should also specify the -BINARY command. If a file was compressed with -BINARY -ZDW then you should decompress it with -BINARY -ZDW. The -ZDW command is not required when compressing a text dataset on MVS. When compressing text, PKZIP by default places the ASCII CR/LF delimiter at the end of each record thus ensuring the proper length on decompression (see Chapter 5. ZIP Files for more details). T4ASI025-00-00 PKUNZIP Commands 267 The -ZDW command was written specifically for IBM mainframe users (MVS, VM, VSE) and may not be supported on other platforms yet. If the target platform does not support the -ZDW command, then it may not be possible to preserve variable record lengths of a binary file, in these cases the file should be compressed with just the -BINARY command before transfer. Note: Use of this command when the file being extracted has not been created using –ZDW, may cause unpredictable results, because the decompression processing will incorrectly extract a record length from data that does not contain this length. -ZIPCUR The -ZIPCUR (ZIP CURrent) command is used to specify a PDS to which PKUNZIP can extract files when no path is stored in the ZIP archive or when the path has been dropped by the -NOHIERARCHY command. The full syntax for this command is: -ZIPCUR(<dataset component><.dataset component><...><.dataset component>) For example, the ZIP file: FRED with the command: -ZIPCUR(T4ZIP.BASE25.NAMES) will be extracted as the PDS member: T4ZIP.BASE25.NAMES(FRED) 268 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 24. VSAM Specific PKUNZIP Commands This chapter describes the commands available for creating new extracted VSAM datasets. For more details on many of these commands, please refer to the DEFINE CLUSTER command in the IBM manual Access Method Services. The VSAM file handler license is required to read and write VSAM files, see Appendix B. Licensing Guide for more details. General Syntax for creating an extracted VSAM dataset Cluster Level [-MAKEVSAM] [-PADVSAM|-NOPADVSAM] [-OUTATTR(INDEXED|NONINDEXED|NUMBERED)] [-OUTBUFSPACE(size)] [-OUTCATALOG(catalog[/password)] [-OUTCISZ(size)] [-OUTDUPLICATES(FAIL|IGNORE)] [-OUTEEXT(entrypoint)] [-OUTERASE|-OUTNOERASE] [-OUTFILE(ddname)] [-OUTFREECI(CI-percent) [-OUTFREECA(CA-percent)]] [-OUTIMBED|-OUTNOIMBED] [-OUTKEYS(length offset)] [-OUTOWNER(owner)] [-OUTPRIMARY(primary)] [-OUTRECORDSIZE(average maximum)] [-OUTREPLICATE|-OUTNOREPLICATE] [-OUTREUSE|-OUTNOREUSE] [-OUTSECONDARY(secondary)] [-OUTSHR(crossregion[ crosssystem])] [-OUTSPACE(TRK|CYL|REC|MB|KB)] [-OUTSPANNED|-OUTNONSPANNED] [-OUTSPEED|-OUTRECOVERY] [-OUTTO(date)|-OUTFOR(days)] [-OUTVOL(volser)] [-OUTWRITECHK|-OUTNOWRITECHK] Data Level [-OUTDATACISZ(size)] [-OUTDATAEEXT(entrypoint)] [-OUTDATAFILE(ddname)] [-OUTDATAORD|-OUTDATANORD] [-OUTDATAOWNER(owner)] [-OUTDATAPRI(primary)] [-OUTDATARUS|-OUTDATANRUS] [-OUTDATASEC(secondary)] [-OUTDATASHR(crossregion[ crosssystem])] [-OUTDATASPACE(TRK|CYL|REC|MB|KB)] [-OUTDATAVOL(volser[ volser])] [-OUTDATAWCK|-OUTDATANWCK] T4ASI025-00-00 VSAM Specific PKUNZIP Commands 269 Index Level [-OUTINDXCISZ(size)] [-OUTINDXEEXT(entrypoint)] [-OUTINDXFILE(ddname)] [-OUTINDXORD|-OUTINDXNORD] [-OUTINDXOWNER(owner)] [-OUTINDXPRI(primary)] [-OUTINDXRUS|-OUTINDXNRUS] [-OUTINDXSEC(secondary)] [-OUTINDXSHR(crossregion[ crosssystem])] [-OUTINDXSPACE(TRK|CYL|REC|MB|KB)] [-OUTINDXVOL(volser[ volser])] [-OUTINDXWCK|-OUTINDXNWCK] 270 PKZIP for MVS: User Reference T4ASI025-00-00 Summary of VSAM cluster level commands The following commands are available in this release of PKUNZIP and are specific to VSAM files only. T4ASI025-00-00 Command Description -MAKEVSAM Specifies that the dataset should be extracted to a new VSAM file. Please refer to general PKUNZIP commands. -NOPADVSAM VSAM records should not be padded to the maximum record length. -PADVSAM VSAM records should be padded to the maximum record length. -OUTSPACE How space is to be allocated for a new, extracted VSAM dataset. -OUTPRIMARY Specifies the number of space units to be used in the primary partition for a new, extracted VSAM dataset. -OUTSECONDARY Specifies the number of space units to be used in the secondary partition for a new, extracted VSAM dataset. -OUTVOL Specifies the volume onto which a new, extracted VSAM dataset is created. Please refer to general PKUNZIP commands. -OUTATTR Specifies the VSAM file type of a new, extracted dataset. -OUTBUFSPACE Specifies the Bufferspace parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTCATALOG Specifies the Catalog parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTCISZ Specifies the Controlintervalsize parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTDUPLICATES Specifies whether duplicate keys should ignored when decompressing a file to a KSDS. -OUTEEXT Specifies the Exceptionexit parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTERASE Specifies the Erase parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTFILE Specifies the File parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. VSAM Specific PKUNZIP Commands 271 272 -OUTFOR Specifies the For parameter of the IDCAMS Define Cluster command used to create a new extracted VSAM dataset. -OUTFREECA Specifies the ca-percent attribute of the Freespace parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTFREECI Specifies the ci-percent attribute of the Freespace parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTIMBED Specifies the Imbed parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTKEYS Specifies the VSAM key fields in an extracted VSAM KSDS. -OUTNOERASE Specifies the Noerase parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTNOIMBED Specifies the Noimbed parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTNONSPANNED Specifies the Nonspanned parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTNOREPLICATE Specifies the Noreplicate parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTNOREUSE Specifies the Noreuse parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTNOWRITECHK Specifies the Nowritecheck parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTOWNER Specifies the Owner parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTRECORDSIZE Specify record lengths of VSAM datasets created by decompression. -OUTRECOVERY Specifies the Recovery parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTREPLICATE Specifies the Replicate parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTREUSE Specifies the Reuse parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTSHR Specifies the Shareoptions parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTSPANNED Specifies the Spanned parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTSPEED Specifies the Speed parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTTO Specifies the To parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. -OUTWRITECHK Specifies the Writecheck parameter of the IDCAMS Define Cluster command used to create a new, extracted VSAM dataset. Summary of VSAM data level commands The following commands are specific to the data component of VSAM files only. T4ASI025-00-00 Command Description -OUTDATACISZ Specifies the Controlintervalsize parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAEEXT Specifies the Exceptionexit parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAFILE Specifies the File parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATANORD Specifies the Unordered parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATANRUS Specifies the Noreuse parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATANWCK Specifies the Nowritecheck parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAORD Specifies the Ordered parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAOWNER Specifies the Owner parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. VSAM Specific PKUNZIP Commands 273 -OUTDATAPRI Specifies the primary space allocation used in the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATARUS Specifies the Reuse parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATASEC Specifies the secondary space allocation used in the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATASHR Specifies the Shareoptions parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATASPACE Specifies the space allocation type used in the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAVOL Specifies the Volumes parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. -OUTDATAWCK Specifies the Writecheck parameter of the IDCAMS Define Cluster command used to create the data component of a new, extracted VSAM dataset. Summary of VSAM index level commands The following commands are specific to the index component of VSAM files only. 274 Command Description -OUTINDXCISZ Specifies the Controlintervalsize parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXEEXT Specifies the Exceptionexit parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXFILE Specifies the File parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXNORD Specifies the Unordered parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXNRUS Specifies the Noreuse parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXNWCK Specifies the Nowritecheck parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. PKZIP for MVS: User Reference T4ASI025-00-00 T4ASI025-00-00 -OUTINDXORD Specifies the Ordered parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXOWNER Specifies the Owner parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXPRI Specifies the primary space allocation used in the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXRUS Specifies the Reuse parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXSEC Specifies the secondary space allocation used in the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXSHR Specifies the Shareoptions parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXSPACE Specifies the space allocation type used in the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXVOL Specifies the Volumes parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. -OUTINDXWCK Specifies the Writecheck parameter of the IDCAMS Define Cluster command used to create the index component of a new, extracted VSAM dataset. VSAM Specific PKUNZIP Commands 275 VSAM Cluster Level commands The following commands are used when specifying the cluster level attributes of the VSAM dataset to be created. Only commands that are new or changed from those used in general PKUNZIP operations are detailed in this section. Note that most file attributes associated with a VSAM file are retained in the archive as attributes of the Data and Index components. As a result, there are no default values from the archive for most of the cluster level – OUT VSAM commands. For example, there is no cluster level allocation information stored in the archive for VSAM files - allocation information required is retained as an attribute of the Data (and if appropriate, Index) component(s) of the cluster. -NOPADVSAM The –NOPADVSAM command is used to specify that PKUNZIP should not pad variable length records. The full syntax for the command is: -NOPADVSAM This is the default option. -PADVSAM The -PADVSAM is used to specify that PKUNZIP should pad variable length records with the supplied or default PAD character, to the length specified as the Average and the Maximum in the -OUTRECORDSIZE. The full syntax for the command is: -PADVSAM Note: 276 Padding will only occur if –PADVSAM is specified and the Average and Maximum record lengths, as specified in the -OUTRECORDSIZE are the same. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTATTR The -OUTATTR command is used to specify the VSAM file type of a new extracted dataset. The full syntax for the command is: -OUTATTR(<file type>) where <file type> is the type of VSAM file to be allocated for the new extracted dataset, and may take one of the following values: NONINDEXED The extracted dataset is allocated as an entry-sequenced VSAM file. INDEXED The extracted dataset is allocated as a key-sequenced VSAM file. NUMBERED The extracted dataset is allocated as a relative record VSAM file. If this command is not specified, the new extracted dataset is allocated using the type of file stored in the file attributes. This command will override any VSAM file type stored in the file attributes. -OUTBUFSPACE The -OUTBUFSPACE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the BUFFERSPACE clause of the IDCAMS DEFINE CLUSTER command: The full syntax for the command is: -OUTBUFSPACE(<size>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 277 -OUTCATALOG The -OUTCATALOG command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the CATALOG clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTCATALOG(<catname>[/password]) If this command is not specified, there is no default. When extracting VSAM datasets, the catalog information in the archive is ignored. Standard installation conventions should correctly catalog the dataset. -OUTCISZ The -OUTCISZ command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the CONTROLINTERVALSIZE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTCISZ(<size>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDUPLICATES The -OUTDUPLICATES command is used to specify whether duplicate keys should ignored when decompressing a file to a KSDS. The full syntax for the command is: -OUTDUPLICATES(FAIL|IGNORE) If this command is not specified processing will be aborted when a duplicate key is encountered. 278 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTEEXT The -OUTEEXT command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the EXCEPTIONEXIT clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTEEXT(<entrypoint>) If specified, this command will override the data stored in the file attributes. This information is not stored in the file attributes. If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: See Restrictions for PKZIP Version 2.5 for MVS on page 21 for additional information about this command. -OUTERASE The -OUTERASE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the ERASE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTERASE If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTFILE The -OUTFILE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the FILE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTFILE(<ddname>) There is no default for this command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 279 If this command is specified then a suitable DD statement should also be specified in the JCL. Please refer to the FILE clause of the IDCAMS DEFINE CLUSTER command in the IBM manual Access Method Services for more details. -OUTFOR The -OUTFOR command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the FOR clause of the IDCAMS DEFINE CLUSTER command: The full syntax for the command is. -OUTFOR(<days>) If specified, this command will override the data stored in the file attributes. This information is not stored in the file attributes. If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTFREECA The -OUTFREECA command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the CApercent attribute of the FREESPACE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTFREECA(<CA-percent>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 280 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTFREECI The -OUTFREECI command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the CIpercent attribute of the FREESPACE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTFREECI(<CI-percent>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTIMBED The -OUTIMBED command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the IMBED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTIMBED If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 281 -OUTKEYS The -OUTKEYS command is used to specify information about the key fields of records in a new extracted VSAM key-sequenced dataset. The full syntax for the command is: -OUTKEYS(length offset) where length specifies the length of the key-field in bytes (between 1 and 255) and offset specifies the offset of the key from the beginning of the data record, in bytes. In fact length and offset have the same meanings as in the KEYS clause of the IDCAMS DEFINE CLUSTER command. This command is ignored when entry-sequenced or relative record VSAM datasets are being created. If this command is not specified, the key field information is taken from the file attributes stored in the ZIP archive. This command will override the data stored in the file attributes if it is specified. -OUTNOERASE The -OUTNOERASE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NOERASE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNOERASE If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 282 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTNOIMBED The -OUTNOIMBED command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NOIMBED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNOIMBED If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTNONSPANNED The -OUTNONSPANNED command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NONSPANNED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNONSPANNED If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTNOREPLICATE The -OUTNOREPLICATE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NOREPLICATE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNOREPLICATE If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 283 -OUTNOREUSE The -OUTNOREUSE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NOREUSE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNOREUSE If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTNOWRITECHK The -OUTNOWRITECHK command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the NOWRITECHECK clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTNOWRITECHK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTOWNER The -OUTOWNER command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the OWNER clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTOWNER(<owner>) This information is not stored in the file attributes, however the equivalent DATA and INDEX level information is. Note: 284 See Restrictions for PKZIP Version 2.5 for MVS on page 21 for additional information about this command. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTPRIMARY The -OUTPRIMARY command is used to specify the number of data units to be used on the primary extent of a new extracted dataset. The full syntax for this command is: -OUTPRIMARY(<data units>) where <data units> is the number of data units to be used in the primary extent of the new extracted dataset. This value will only be used if the –OUTSPACE command has also been used. If the –OUTSPACE command has been used and no value is coded, the new extracted dataset defaults to a primary extent of 100 data units. See –OUTSPACE for the definition of the data unit. -OUTRECORDSIZE The -OUTRECORDSIZE command is used to specify the average and maximum lengths, in bytes, of the data records in a new extracted VSAM dataset. The full syntax for the command is: -OUTRECORDSIZE(average maximum) where average specifies the average length, in bytes, of each data record and maximum specifies the maximum length, in bytes, of any data record In fact average and maximum have the same meanings and restrictions as in the RECORDSIZE clause of the IDCAMS DEFINE CLUSTER command: If this command is not specified, the record size information is taken from the file attributes stored in the ZIP archive. This command will override the data stored in the file attributes if it is specified. -OUTRECOVERY The -OUTRECOVERY command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the RECOVERY clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTRECOVERY If specified, this command will override the data stored in the file attributes. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 285 If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTREPLICATE The -OUTREPLICATE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the REPLICATE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTREPLICATE If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTREUSE The -OUTREUSE command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the REUSE clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTREUSE If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTSECONDARY The -OUTSECONDARY command is used to specify the number of data units to be used on the secondary extent of a new extracted dataset. The full syntax for this command is: -OUTSECONDARY(<data units>) where <data units> is the number of data units to be used in the secondary extent of the new extracted dataset. <data units> may not be specified as 0. 286 PKZIP for MVS: User Reference T4ASI025-00-00 This value will only be used if the –OUTSPACE command has also been used. If the –OUTSPACE command has been used and no value is coded, the new extracted dataset defaults to a secondary extent of 100 data units. See –OUTSPACE for the definition of the data unit. -OUTSHR The -OUTSHR command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the SHAREOPTIONS clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTSHR(<crossregion>[ crosssystem>]) If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTSPACE The -OUTSPACE command is used to specify the type of data units to be used (at the cluster level) for allocating a new extracted dataset. The full syntax for this command is: -OUTSPACE(TRK|CYL|REC|MB|KB) where the type of data unit to be used for allocating the new extracted dataset is specified by one of the following parameters: TRK The extracted dataset is to be allocated by tracks. This is the default value assigned for the type of data unit if -OUTSPACE is not specified. CYL The extracted dataset is to be allocated by cylinders. REC The extracted dataset is to be allocated by records. MB The extracted dataset is to be allocated by megabytes. This option may only be used with ICF catalogs. KB The extracted dataset is to be allocated by kilobytes. This option may only be used with ICF catalogs. By default, both the primary and secondary extents are allocated at a size of 100 of these data units. The -OUTPRIMARY or -OUTSECONDARY commands can be used to change this value. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 287 Note: -OUTDATASPACE and -OUTINDXSPACE provide the ability to specify the allocation parameter for the Data and Index component of the VSAM cluster. If either –OUTDATASPACE or – OUTINDXSPACE parameters are specified, then the value specified or defaulted in a preceding –OUTSPACE command will be ignored, so no cluster level allocation will be defined for the file to be created. -OUTSPANNED The -OUTSPANNED command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the SPANNED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTSPANNED If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTSPEED The -OUTSPEED command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the SPEED clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTSPEED If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 288 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTTO The -OUTTO command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the TO clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTTO(<date>) If specified, this command will override the data stored in the file attributes. This information is not stored in the file attributes. If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTWRITECHK The -OUTWRITECHK command is used to help create a new extracted VSAM dataset. It has the same meaning and restrictions as the OUTWRITECHECK clause of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTWRITECHK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 289 VSAM Data Level commands These commands provide the ability to specify options for the Data component of the VSAM cluster to be defined. Some of these options are similar to the options that can be specified at the cluster level using the –OUT commands listed in the Cluster Level section previously. Given that these options have similar results, the recommendation is to use cluster level commands where possible. -OUTDATACISZ The -OUTDATACISZ command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the CONTROLINTERVALSIZE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATACISZ(<size>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATAEEXT The -OUTDATAEEXT command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the EXCEPTIONEXIT clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAEEXT(<mname>) If specified, this command will override the data stored in the file attributes. This information is not stored in the file attributes. If this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 290 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTDATAFILE The -OUTDATAFILE command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the FILE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAFILE(<ddname>) There is no default for this command. If this command is specified then a suitable DD statement should also be specified in the JCL. Please refer to the FILE clause of the IDCAMS DEFINE CLUSTER command in the IBM manual Access Method Services for more details. -OUTDATANORD The -OUTDATANORD command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the UNORDERED clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATANORD If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATANRUS The -OUTDATANRUS command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the NOREUSE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATANRUS If specified, this command will override the data stored in the file attributes. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 291 If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATANWCK The -OUTDATANWCK command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the NOWRITECHECK clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATANWCK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATAORD The -OUTDATAORD command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the ORDERED clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAORD If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 292 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTDATAOWNER The -OUTDATAOWNER command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the OWNER clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAOWNER(<ownerid>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATAPRI The -OUTDATAPRI command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the primary attribute of the space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAPRI(<primary>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: T4ASI025-00-00 This value is only used if –OUTDATASPACE has been coded or defaulted. VSAM Specific PKUNZIP Commands 293 -OUTDATARUS The -OUTDATARUS command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the REUSE clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATARUS If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATASEC The -OUTDATASEC command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the secondary attribute of the space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATASEC(<secondary>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: 294 This value is only used if both –OUTDATASPACE and -OUTDATAPRI commands have been coded or defaulted. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTDATASHR The -OUTDATASHR command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the SHAREOPTIONS clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATASHR(<crossregion>[ crosssystem]) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATASPACE The -OUTDATASPACE command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the associated space clauses as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for this command is: -OUTDATASPACE(TRK|CYL|REC|MB|KB) where the type of data unit to be used for allocating the data component of the new extracted dataset is specified by one of the following parameters: TRK The Data component is to be allocated by tracks. CYL The Data component is to be allocated by cylinders. REC The Data component is to be allocated by records. MB The Data component is to be allocated by megabytes. This option may only be used with ICF catalogs. KB The Data component is to be allocated by kilobytes. This option may only be used with ICF catalogs. If this command is not specified, the default information is taken from the file attributes stored in the ZIP archive. If this attribute is not included in the stored file attributes then there is no default for this command. In this circumstance, there is no default value for the primary and secondary extents of the Data component, so if this command is used, -OUTDATAPRI and -OUTDATASEC commands must be used to set primary and secondary extent values. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 295 Note: The -OUTSPACE command provides the ability to specify the allocation parameter at the cluster level of the VSAM cluster. If -OUTSPACE is specified, then the value specified or defaulted in any preceding -OUTDATASPACE command will be ignored, so no data level allocation will be defined for the file to be created and the data level allocation may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATAVOL The -OUTDATAVOL command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the VOLUMES clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAVOL(<volser>[ <volser> …]) If specified, this command will override the data stored in the file attributes. Up to 31 volumes can be specified, separated by blanks. If neither this command nor –OUTVOL is specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTDATAWCK The -OUTDATAWCK command is used to help create the data component of a new extracted VSAM dataset. It has the same meaning and restrictions as the WRITECHECK clause as specified in the DATA portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTDATAWCK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. 296 PKZIP for MVS: User Reference T4ASI025-00-00 VSAM Index Level commands These commands provide the ability to specify options for the Index component of the VSAM cluster to be defined. Some of these options are similar to the options that can be specified at the cluster level using the –OUT commands listed in the Cluster Level section previously. Given that these options have similar results, the recommendation is to use cluster level commands where possible. Note that VSAM Index Level commands will only be used when creating new Key Sequenced (KSDS) files, for example, when the –OUTATTR command specifies INDEXED. -OUTINDXCISZ The -OUTINDXCISZ command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the CONTROLINTERVALSIZE clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXCISZ(<size>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXEEXT The -OUTINDXEEXT command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the EXCEPTIONEXIT clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXEEXT(<entrypoint>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 297 -OUTINDXFILE The -OUTINDXFILE command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the FILE clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXFILE(<ddname>) There is no default for this command. If this command is specified then a suitable DD statement should also be specified in the JCL. Please refer to the FILE clause of the IDCAMS DEFINE CLUSTER command in the IBM manual Access Method Services for more details. -OUTINDXNORD The -OUTINDXNORD command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the UNORDERED clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXNORD If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXNRUS The -OUTINDXNRUS command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the NOREUSE clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXNRUS If specified, this command will override the data stored in the file attributes. 298 PKZIP for MVS: User Reference T4ASI025-00-00 If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXNWCK The -OUTINDXNWCK command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the NOWRITECHECK clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXNWCK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXORD The -OUTINDXORD command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the ORDERED clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXORD If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 299 -OUTINDXOWNER The -OUTINDXOWNER command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the OWNER clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXOWNER(<ownerid>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXPRI The -OUTINDXPRI command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the primary attribute of the space clauses as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXPRI(<primary>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: 300 This value is only used if –OUTINDXSPACE has been coded or defaulted. PKZIP for MVS: User Reference T4ASI025-00-00 -OUTINDXRUS The -OUTINDXRUS command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the REUSE clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXRUS If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXSEC The -OUTINDXSEC command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the secondary attribute of the space clauses as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXSEC(<secondary>) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. Note: T4ASI025-00-00 This value is only used if both -OUTINDXSPACE and -OUTINDXPRI commands have been coded or defaulted. VSAM Specific PKUNZIP Commands 301 -OUTINDXSHR The -OUTINDXSHR command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the SHAREOPTIONS clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXSHR(<crossregion>[ crosssystem]) If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXSPACE The -OUTINDXSPACE command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the associated space clauses as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for this command is: -OUTINDXSPACE(TRK|CYL|REC|MB|KB) where the type of data unit to be used for allocating the index component of the new extracted dataset is specified by one of the following parameters: TRK The Index component is to be allocated by tracks. CYL The Index component is to be allocated by cylinders. REC The Index component is to be allocated by records. MB The Index component is to be allocated by megabytes. This option may only be used with ICF catalogs. KB The Index component is to be allocated by kilobytes. This option may only be used with ICF catalogs. If this command is not specified, the default information is taken from the file attributes stored in the ZIP archive. If this attribute is not included in the stored file attributes then there is no default for this command. In this circumstance, there is no default value for the primary and secondary extents of the Index component, so if this command is used, -OUTINDXPRI and -OUTINDXSEC commands must be used to set primary and secondary extent values. 302 PKZIP for MVS: User Reference T4ASI025-00-00 Note: The -OUTSPACE command provides the ability to specify the allocation parameter at the cluster level of the VSAM cluster. If – OUTSPACE is specified, then the value specified or defaulted in any preceding –OUTINDXSPACE command will be ignored, so no index level allocation will be defined for the file to be created and the index level allocation may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXVOL The -OUTINDXVOL command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the VOLUMES clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXVOL(<volser>[ <volser> …]) If specified, this command will override the data stored in the file attributes. Up to 31 volumes can be specified, separated by blanks. If neither this command nor the –OUTVOL command is specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. -OUTINDXWCK The -OUTINDXWCK command is used to help create the index component of a new extracted VSAM dataset. It has the same meaning and restrictions as the WRITECHECK clause as specified in the INDEX portion of the IDCAMS DEFINE CLUSTER command. The full syntax for the command is: -OUTINDXWCK If specified, this command will override the data stored in the file attributes. If this command is not specified, the relevant information is taken from the file attributes stored in the ZIP archive. If the file attribute is not stored and this command is not specified then the value may be defaulted by the IDCAMS DEFINE CLUSTER command. T4ASI025-00-00 VSAM Specific PKUNZIP Commands 303 Chapter 25. What To Do If You Have a Problem If you have any inquiries to make regarding PKZIP for MVS or if you experience any problems with it that you are unable to solve, please contact your local distributor, ASi or Targetfour who will be glad to offer any support you may need. Problems with PKZIP generally fall into one of two categories: 1. Problems getting the product to do what you want it to do 2. Problems where the product fails in some way while processing your request. Appropriate actions in these two cases are documented in the next two sections of this chapter. If the solution to the problem requires updating the product in some way, this update will generally be supplied in the form of a Patch Notes. These Patch Notes and the process to use when applying a patch note are described in later sections of this chapter. Problems can occur that require additional information, particularly trace details, to be supplied to assist in problem resolution. The final section of this chapter describes how to obtain the trace information that may be requested. Problems using the product If you have any problems using PKZIP for MVS, the first reference is of course, this manual. It is intended to fully describe both the product and how to use the product. In particular, the introductory chapters (such as Chapter 7. Processing PDS Members on page 57) are intended to provide examples and explanation that should cover the majority of the uses of the product. If this manual does not provide you with sufficient information, then please contact your support representative, indicating exactly what you are trying to achieve and the difficulties you have had. They will be pleased to help you and will use the information to update the manual. If difficulties are experienced when using PKZIP or PKUNZIP it is often worth viewing the contents of the ZIP archive referenced by the job. Try to compare the ZIP file names contained in the archive with the datasets you are trying to compress or extract to (bearing in mind any commands which may modify the names in question). Run a PKUNZIP -TEST on the archive to check the ZIP file’s integrity. T4ASI025-00-00 What to do if you have a problem 305 Failures using the product The headings below describe some of the typical failures that might be encountered and what to do in the event of such a problem. Dynalloc Errors If PKZIP for MVS outputs a Dynamic Allocation (SVC99) error code then you should look this code up in the IBM manual that is appropriate to your level of the Operating System. If you do not have access to this manual then contact IBM or your supplier for more details. Typical errors include: Invalid output dataset name due to; spaces, lower case or special characters in the output dataset name, or incorrect use of the -HLQ command Incorrect volume or unit names specified. User Abends In some situations PKZIP may produce a User Abend in response to an error. User Abends are identified by a WTO (Write To Operator) message which is produced by PKZIP or PKUNZIP. Examples include: PKZIP ABEND U0004 PKUNZIP ABEND U0008 If you experience a User Abend then please refer to Chapter 27. User Abend Codes for more information. System Abends System Abends such as SB37, S001 etc are usually accompanied by a system message. For example: IEC030I B37-04,IFG0032,MYJOB,MYSTEP,MYFILE,416,TAPE11 System abends can often be attributed to the DASD resources allocated for a dataset, for example, a lack of disk space or too few directory blocks for a PDS will cause problems. Look up the system message and abend code in the IBM System Messages manual. You may find that increasing the primary and secondary allocations for the failing dataset or changing the volume on which the dataset resides may cure the problem. If the problem cannot be fixed then report it to your supplier. Program Abends A program abend is identified by an IEA995I system message where the System Completion Code is 0Cx. For example: 306 PKZIP for MVS: User Reference T4ASI025-00-00 IEA995I SYMPTOM DUMP OUTPUT SYSTEM COMPLETION CODE=0C4 REASON CODE=00000010 TIME=15.42.57 SEQ=03234 CPU=0000 ASID=0023 PSW AT TIME OF ERROR 078D1000 8002DCA4 ILC 6 INTC 10 ACTIVE LOAD MODULE ADDRESS=0002A000 OFFSET=00003CA4 NAME=ZFSUDF00 DATA AT PSW 0002DC9E - CB045832 0018D77F 30003000 GPR 0-3 0001EA84 014004CD 0001A15B 5ED20140 GPR 4-7 0001EA84 00000080 0001EAFE 00003FFF GPR 8-11 0001E9FC 0001EA19 000186A0 00007BF4 GPR 12-15 0002D200 0001E9A8 000000FF FE50F0D1 END OF SYMPTOM DUMP In the unlikely event that you receive a program Abend you should obtain an up-to-date copy of the patch notes to see if there are any patches which can be applied to solve the problem. The patch notes are available from your supplier, or the ASi or Targetfour web sites. Further information on the Patch Process is supplied later in this chapter. If no patch is available to correct the problem then you should report the Abend to your supplier immediately, so that a fix can be found. When reporting the problem you should supply: A copy of the IEA995I message in its entirety. A copy of the SYSPRINT output, ensuring that –NOECHO has not been used so that all the commands used are visible. A -VIEWDETAIL of the archive being processed. Full dataset information (e.g. DCB) for the files and archives being processed. The DUMP output from the failing program. Dumps are obtained by inserting a //SYSUDUMP DD SYSOUT=* (or similar) statement into the JCL. Dumps may also be obtained using a //SYSABEND DD SYSOUT=* or similar statement, however the SYSABEND dumps contain more MVS control information that is seldom needed to diagnose a ZIP problem. Machine readable dumps created using SYSMDUMP are not as useful and should only be supplied as a last resort. The best way to pass this information to support personnel is to create sequential dataset(s) containing this output, then use PKZIP for MVS to compress the output for transmission. Even though (with the exception of SYSMDUMP) this is text data, the output should be compressed using the -BINARY and -ZDW commands. The sequential files used for this output (with the exception of SYSMDUMP) should be variable length with a logical record length of 137 bytes. Finally, it is possible that changing the commands in use or the files being processed will enable you to circumvent the problem. Even if this is the case, please report the abend so that it can be fixed for the ongoing improvement of the product. T4ASI025-00-00 What to do if you have a problem 307 Patch Notes As noted above fixes can be issued to correct problems found with a specific level of the PKZIP software. In addition, the Patch Notes can contain recent information and additional documentation that might assist with a problem. Regardless of your problem, it may be worthwhile to obtain the latest level of patch notes. In addition, it is recommended that the patch notes be reviewed from time to time and new maintenance be applied to ensure that your PKZIP processing continues to be problem free. Documentation on the process of applying patches and reporting on these is included in the Patch Notes. The Patch Notes Document is available from your supplier, the ASi web site, the Targetfour web site, or the Targetfour Help Desk (contact information can be found on the inside front cover). The Patch Process Patches to PKZIP for MVS are typically applied using the IBM utility AMASPZAP. The patches are supplied in the form of sample JCL and actual control cards for that utility and are applied by executing the JCL in a batch job. Patches should always receive the return code of 0 – any non zero return codes should be investigated. When applying patches, we recommend that the user take a copy of the library prior to the patch being applied. This will provide a convenient way to remove the patches, should a problem occur with the patching process. In addition to patching the actual affected modules, patches for this level of PKZIP for MVS also update a ‘patch table’, which can be quickly used to determine which patches have been applied. See Printing the applied patches - ZIPPATCH later for more information. Patches also include a checksum which should ensure that patches are input as expected. Printing the applied patches - ZIPPATCH The ZIPPATCH program will normally be requested by support staff to determine the level of patches installed on the system. To execute this program, use JCL similar to the following, changing the STEPLIB to match the installation Load Library for PKZIP. This JCL is supplied in member ZIPPATCH of the Installation Control Library. //ZIPPATCH EXEC PGM=ZIPPATCH //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //* When executed, the program will output information to SYSPRINT like the following: 308 PKZIP for MVS: User Reference T4ASI025-00-00 ZIPP100I: ZIPPATCH 2.5/x ZIPP101I: Patch Table Entries: ZIPP110I: , , 2, , ZIPP199I: ZIPPATCH 2.5/x starting. 4, , ending. 6, , 8, . The output above indicates that this system has patches 2, 4, 6 and 8 applied. T4ASI025-00-00 What to do if you have a problem 309 Messages from ZIPPATCH processing The format of the messages produced by ZIPPATCH is as follows: ZIPPnnns < - Message Text -> where: nnn is the message number. s is the severity. The possible values are: E I 100 Error Information Severity: Information Message Text: ZIPPATCH version starting. Explanation: The indicated level of ZIPPATCH processing is starting. Action: None. 101 Severity: Information Message Text: Patch Table Entries: Explanation: Following lines indicate which patches have been applied. Action: None. 110 Severity: Information Message Text: … Explanation: Each line indicates up to 10 patch numbers for patches that have been applied. Action: None. 199 Severity: Information Message Text: ZIPPATCH version ending. Explanation: The indicated level of ZIPPATCH processing is terminating. Action: None. 310 PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP for MVS Trace facilities In certain circumstances, when directed by support personnel, it may necessary to obtain trace information to assist in resolving a problem. This section describes how to do this, and what should be done to pass this information back to the support team. There are two different trace mechanisms used by PKZIP for MVS. These are selected using the following commands: -TRACE command. -DG (Debug) command. Information for each of these commands is presented in the following sections. Tracing has the capability of producing a significant amount of output and will severely impact the performance of any PKZIP for MVS processing. It should not be used except when directed to do so by support personnel. -TRACE command The -TRACE command can be used to trace all compression/decompression processing for example, the command processing. Tracing can be performed at a number of levels and can be output with a variety of additional data. The exact level and additional data is specified by parameters to the TRACE command. The support personnel requesting the trace information will specify the exact parameters required. An example of a Trace command is: -TRACE(LEVEL 3) The trace output will be displayed along with other ZIP output in the SYSPRINT DD. An example of the Trace output is as follows: TRACE: 17:41:34.777136 04/08/1999 TCB:006DE570 TSKS1000 TRACE: Task starting... ZIPDTASK TRACE: 17:41:34.852029 04/08/1999 TCB:006CAD80 DCM0100 TRACE: DTASK task starting This output contains only text characters. The best way to pass this information to support personnel is to create a sequential dataset containing this output (support personnel will probably ask for all the output so this will be included anyway), then use PKZIP for MVS to compress the output for transmission. Even though this is text data, the output should be compressed using the –BINARY and –ZDW commands. The sequential file used for this output should be variable length with a logical record length of 137 bytes. T4ASI025-00-00 What to do if you have a problem 311 If it is not possible to compress the data on the mainframe, then this output may be transferred to a PC using ASCII and CRLF conversion. Note that this output must be kept separate from the -DG command output, which must be treated as binary data as explained below. -DG command The -DG command provides detailed trace information for file related processing, for example, the I/O activity to datasets. To specify this trace use the following command: -DG -DG trace output is written to one of a number of special DD statements, with different parts of the processing outputting trace information to different DDs. The DD statements used are listed in the following JCL example. //PRTFILEU //PRTFILEZ //PRTFILE1 //PRTFILE2 //PRTFILE3 //PRTFILE4 //PRTFILE5 //PRTFILE6 DD DD DD DD DD DD DD DD SYSOUT=* SYSOUT=* SYSOUT=* SYSOUT=* SYSOUT=* SYSOUT=* SYSOUT=* SYSOUT=* These DDs must be added to the JCL associated with any PKZIP for MVS execution that uses the –DG command. Specifying the -DG command without including these DD statements can result in a number of unpredictable Abends. The data output to each of these DD’s will look like the following: MAINFSU2 MAINGEN* MAINTERM MAINUZ2X \ `M Ö D Ö 0 !y !y !y Ö Ö Ö 8 8 8 * * * ¬ ¬ MH MH } { { … … … … This data includes both binary and text data as can be seen when the preceding lines are displayed in hexadecimal: MAINFSU2 `M 0 … DCCDCEEF0000007D80F2000000000000000000000000000000000000000000000000000000000000 41956242000400940208000000000000000000000000000000000000000000000000000000000000 -----------------------------------------------------------------------------MAINGEN* Ö !y Ö 8 * ¬ MH { … DCCDCCD500B000E3005A00E3000100EF00E5000000000000805F00E580DC00E700E700EC00000000 4195755C020002C400A802C4000D02D802EC00000000000000FE02E8054802A802A802B000000000 -----------------------------------------------------------------------------MAINTERM \ D !y Ö 8 * ¬ MH … DCCDECDD804E001C005A00E3000100EF00E5000000000000805F00E580DC00E700E7000000000000 41953594081000D400A802C4000D02D802EC00000000000000FE02E8054802A802A8000000000000 -----------------------------------------------------------------------------MAINUZ2X Ö !y Ö 8 * } { … DCCDEEFE00B000E3005A00E3000100EF00E5000000000000008600E5802D00E100E100EC00000000 41954927020002C400A802C4000D02D802EC00000000000004D402E8034002B002B002B000000000 312 PKZIP for MVS: User Reference T4ASI025-00-00 The best way to pass this information to support personnel is to create sequential datasets containing this output, then use PKZIP for MVS to compress the datasets for transmission. This output should be compressed with the -BINARY and -ZDW commands. The sequential files used for this output should be variable length with a logical record length of 137 bytes. If it is not possible to compress the data on the mainframe, then this output may be transferred to a PC using the binary option (do not convert the data to ASCII or append CRLFs). However this method removes the record structure of the trace information and may potentially translate some of the data, so is not recommended. T4ASI025-00-00 What to do if you have a problem 313 Chapter 26. PKZIP and PKUNZIP Messages This chapter gives details of the standard messages produced by PKZIP and PKUNZIP. All the messages detailed in this section are written to SYSPRINT. Most messages are the same in both PKZIP and PKUNZIP; where there is a difference, this is noted in the explanation for the message. Where the details of the message refer to PKZIP or PKUNZIP, it should also be taken to refer to the other program. Messages from the ZIPPATCH program are described in the section Messages from ZIPPATCH processing in Chapter 25. What To Do If You Have a Problem. Messages from the ZIPPLIC licensing program are described in Chapter 28. Licensing Messages. Message format The format of the messages produced by both PKZIP and PKUNZIP is as follows: prefixnnns < - Message Text -> where: prefix is a prefix indicated from which program the message originated. The possible values are: ZIP UNZIP for the PKZIP program for the PKUNZIP program nnn is the message number. s is the severity. The possible values are: F E W I Fatal Error Warning Information The messages produced by the PKZIP and PKUNZIP programs are described in the following section, listed in order of message number. Details of messages produced by PKZIP and PKUNZIP 010 Severity: Information Message Text: command line output Explanation: Command line input from SYSIN. Action: None. T4ASI025-00-00 PKZIP and PKUNZIP Messages 315 011 Severity: Information Message Text: command line output Explanation: Command line input from PARM. Action: None. 012 Severity: Information Message Text: command line output Explanation: Command line input from the configuration file. Action: None. 020 Severity: Error Message Text: PKZIP does not have an installed licence (Product product). Explanation: PKZIP has not been licensed (correctly). This may indicate incorrect installation. See Licensing in Appendix A. Installation Guide and Appendix B. Licensing Guide for details of the PKZIP licensing utility. PKZIP will perform no further processing for the current file. Action: Contact your supplier for new licence details. 021 Severity: Error Message Text: PKZIP licence has expired (Product product). Explanation: The PKZIP licence has expired. This may indicate incorrect installation. See Licensing in Appendix A. Installation Guide and Appendix B. Licensing Guide for details of the PKZIP licensing utility. PKZIP will perform no further processing for the current file. Action: Contact your supplier for new licence details. 022 Severity: Error Message Text: PKZIP is licensed for a different CPU (Product product). Explanation: PKZIP is not licensed for the CPU on which it is currently running. This may indicate incorrect installation. See Licensing in Appendix A. Installation Guide and Appendix B. Licensing Guide for details of the PKZIP licensing utility. PKZIP will perform no further processing for the current file. Action: Contact your supplier for new licence details. 316 PKZIP for MVS: User Reference T4ASI025-00-00 023 Severity: Warning Message Text: PKZIP licence will expire in number days for Product product. Explanation: number is the number of days before the licence expires. PKZIP’s license will expire in the specified time period. This message will start to appear about 4 weeks before the current licence expires - contact your supplier for details of a new licence. See Licensing in Appendix A. Installation Guide and Appendix B. Licensing Guide for details of the PKZIP licensing utility. Action: Contact your supplier for new licence details. 025 Severity: Error Message Text: Licence has not started on this processor for product product. Explanation: The product is authorised for use on this processor starting at a later date. Action: Contact your supplier for new licence details, if the current starting date is not appropriate. 026 Severity: Error Message Text: Error processing the PKZIP Licensing database. Explanation: The Licensing database associated with PKZIP has been found to be corrupt or missing. The product will no longer function completely. Action: Restore your product files from a backup or re-install the product. Reapply the License updates. Contact your supplier for additional information. 091 Severity: Error Message Text: Subtask taskid terminated unexpectedly - review Job Log and preceding messages for further information. Explanation: The indicated subtask has terminated without completing its processing. A system problem or other unexpected error has been detected. Action: Review the Job Log and output for other messages which describe the problem. Rectify the indicated error and rerun the job. T4ASI025-00-00 PKZIP and PKUNZIP Messages 317 092 Severity: Error Message Text: File processing not completed due to error: fileid. Explanation: The file has not been completely processed, due to errors during the processing of this or previous files. Action: Review the Job Log and output for other messages which describe the problem. Rectify the indicated error and rerun the job. 099 Severity: Information Message Text: Output Archive successfully created/updated. Explanation: Processing to create the output archive has completed and it should be available for further processing. Preceding messages will indicate file(s) that were not placed in the archive because of errors in selection or processing. Action: Use the messages to determine the file(s) that were not correctly placed in the archive. Correct the errors and re-run as appropriate 101 Severity: Information Message Text: program version patch patch starting: date-time. Explanation: PKZIP/PKUNZIP processing is starting. The version and patch level (highest applied patch) in use is displayed. Action: None. 102 Severity: Information Message Text: program version ending. Explanation: PKZIP/PKUNZIP processing is ending. The version used is displayed. Action: None 104 Severity: Error Message Text: ARCHIVE, ARCHINDD and/or ARCHOUTDD missing. Explanation: There is insufficient information to determine the target or input archives. Processing is not possible. Action: Specify the ARCHIVE, ARCHINDD and/or ARCHOUTDD command(s) and rerun the processing. 318 PKZIP for MVS: User Reference T4ASI025-00-00 106 Severity: Error Message Text: ARCHIVE file ziparch could not be opened. Explanation: ziparch is the dataset name of the ZIP archive. The file has been specified in the ARCHIVE command. However, PKZIP can’t find or can’t open this file. Action: Specify an existing and accessible file. 107 Severity: Error Message Text: No licence for ISPF panels found. Explanation: The ISPF licence was not found in the licence database, although PKZIP was called from an ISPF panel. Action: Supply an ISPF licence and rerun the program. 108 Severity: Error Message Text: GZIP compression processing will not update an existing archive. Explanation: An input archive has been specified which is only supported for -VIEW processing. GZIP compression processing can only be used to create new archives. Delete the input archive and/or do not use ARCHINDD for GZIP compression processing. Action: Correct and re-run this processing. 109 Severity: Warning Message Text: Archive starts with XXXXXXXXx, which is not a valid archive identifier. Explanation: The first few characters of the archive have been checked for the GZIP/ZIP archive identifier characters and these have not been found. Either the file is not an archive or it has not been correctly created/transmitted. Action: Check that the archive identified has been correctly specified and created (for example, has been transferred as a Binary file). 120 Severity: Error Message Text: Unable to extract ZIP file zipfile, output dataset already exists. T4ASI025-00-00 PKZIP and PKUNZIP Messages 319 Explanation: zipfile is the ZIP file name that PKUNZIP is attempting to extract. PKUNZIP has been requested to extract the specified ZIP file. However, the dataset to which the ZIP file would be extracted already exists, and would be overwritten if the ZIP file was extracted. PKUNZIP will not overwrite datasets or members unless the -OVERWRITE command is specified. Action: Specify the correct file for extraction from the ZIP archive. Modify the intended destination for the ZIP file by using the -HLQ command or -NOHIERARCHY and -ZIPCUR commands. Alternatively specify the -OVERWRITE command if the dataset should be overwritten by the extracted file. 121 Severity: Warning Message Text: Unable to determine file type for dataset dset, DYNALLOC error code Xerrcode Explanation: dset is the dataset name that is being examined errcode is the error code returned by DYNALLOC PKZIP/PKUNZIP cannot determine the file type for the specified dataset whilst examining the files for compression/decompression. The DYNALLOC macro has returned the specified error code. The specified dataset will not be compressed, although other files that have been specified will be. Action: Determine the error, using the error code provided, and rerun the program. Note that some file types may not be able to be determined using PKZIP/PKUNZIP. 122 Severity: Error Message Text: Invalid file specification supplied: filespec Explanation: filespec is the name that has been supplied. The file specification that has been supplied is invalid and cannot be processed by PKZIP/PKUNZIP. Action: Correct the specification and rerun the program. 123 Severity: Error Message Text: ZIPCUR DD statement does not refer to a PDS Explanation: The -ZIPCUR command or DD statement has been specified to PKZIP/PKUNZIP but it does not specify a dataset which is a PDS. Action: Specify a PDS in the -ZIPCUR command, or remove the -ZIPCUR command and rerun the program. 320 PKZIP for MVS: User Reference T4ASI025-00-00 124 Severity: Error Message Text: Output dataset name has zero length: zipfile Explanation: zipfile is the ZIP file that PKUNZIP is attempting to extract. The output dataset name constructed by PKUNZIP has zero length. The dataset name is created from the ZIP file name and modified according to various PKUNZIP commands such as -HLQ, -ZIPCUR, -MAKEPDS. Action: Review the original ZIP file name with respect to the PKUNZIP commands that have been specified (for example the combination of -NOHIERARCHY and -MAKEPDS could result in a member name but no associated PDS name). Correct the commands and re-run the job. 125 Severity: Error Message Text: Output dataset name too long: zipfile Explanation: zipfile is the ZIP file that PKUNZIP is attempting to extract. The output dataset name constructed by PKUNZIP is not a valid MVS dataset name. The dataset name is created from the ZIP file name and modified according to various PKUNZIP commands such as -HLQ, -ZIPCUR and -MAKEPDS. Action: Review the original ZIP file name with respect to the PKUNZIP commands that have been specified (for example did the -HLQ command or -ZIPCUR command substitute too many characters?). Correct the commands and re-run the job. 126 Severity: Error Message Text: No output dataset name created: zipfile Explanation: zipfile is the ZIP file that PKUNZIP is attempting to extract. PKUNZIP was unable to construct an output dataset name for the given ZIP file name. Action: Review the original ZIP file name with respect to the PKUNZIP commands that have been specified. Correct the commands and re-run the job. If problems persist then contact your supplier for assistance. T4ASI025-00-00 PKZIP and PKUNZIP Messages 321 127 Severity: Error Message Text: Output member name too long: zipfile Explanation: zipfile is the ZIP file that PKUNZIP is attempting to extract. The output member name constructed by PKUNZIP is not a valid MVS member name. The member name is created from the last component of the ZIP file name and modified according to various PKUNZIP commands such as -HLQ and -CNVEXT. Action: Review the original ZIP file name with respect to the PKUNZIP commands that have been specified. Correct the commands and re-run the job. 128 Severity: Error Message Text: Output member name contains path: zipfile Explanation: zipfile is the ZIP file that PKUNZIP is attempting to extract. The output member name constructed by PKUNZIP is not a valid MVS member name. The member name created will vary according to the various PKUNZIP commands specified (e.g. -HLQ, -MAKEPDS, -CNVEXT). Action: Review the original ZIP file name with respect to the PKUNZIP commands that have been specified. Correct the commands and re-run the job. If problems persist then contact your supplier for assistance. 129 Severity: Warning Message Text: No files matched/available for file selection selection Explanation: selection is the selection that PKZIP is attempting to match with real files, or that PKUNZIP is attempting to match with the ZIP archive. No files can be matched with the specified selection, or any that were matched could not be processed. Note that other selections may be valid, in which case those selections will be actioned. Action: Review the selections that have been specified and ensure that they are correct. If necessary, correct the commands and re-run the job. 322 PKZIP for MVS: User Reference T4ASI025-00-00 180 Severity: Error Message Text: Unable to allocate configuration dataset to DD name ddname, DYNALLOC error code errcode, name dataset. Explanation: ddname is the ddname that ZIP was trying to allocate. errcode is the return code generated by the DYNALLOC (SVC99) macro. This message is output by ZIP when it is unable to allocate a configuration dataset. Action: Ensure that the configuration dataset is correctly specified and allocated. Note that the problem may be with the default name (in which case the DD name will be ZIPCFG rather than CONFIG) 181 Severity: Error Message Text: Unable to open configuration file with DD name ddname, return code errcode Explanation: ddname is the ddname for the dataset being opened. errcode is the return code from the OPEN macro. This message is output by PKZIP when it is unable to open the default or specifically allocated configuration file Action: Ensure that the configuration file is correctly allocated and specified. Examine the return code to determine, and correct, the exact problem. If the problem is with the default name the DD name will be ZIPCFG rather than CONFIG. 190 Severity: Message Text: Explanation: Refer to Patch Notes for explanation of message. Action: Refer to Patch Notes. 191 Severity: Message Text: Explanation: Refer to Patch Notes for explanation of message. Action: Refer to Patch Notes. 192 Severity: Message Text: Explanation: Refer to Patch Notes for explanation of message. Action: Refer to Patch Notes. T4ASI025-00-00 PKZIP and PKUNZIP Messages 323 193 Severity: Message Text: Explanation: Refer to Patch Notes for explanation of message. Action: Refer to Patch Notes. 194 Severity: Message Text: Explanation: Refer to Patch Notes for explanation of message. Action: Refer to Patch Notes. 201 Severity: Error Message Text: Parameter "-" found with no qualifier. Explanation: A command prefix has been found, but there is no subsequent command to be processed. Action: Correct the parameter. 202 Severity: Error Message Text: Processing command command is invalid. Explanation: command is the command that has been input to PKZIP/PKUNZIP. The specified command is not recognised by this version of PKZIP. Action: Correct the parameter. 203 Severity: Error Message Text: Viewing parameter parameter is unknown. Explanation: parameter is the parameter input to PKZIP/PKUNZIP. The specified parameter to the View command is not recognised by this version of PKZIP. Action: Correct the parameter. 324 PKZIP for MVS: User Reference T4ASI025-00-00 204 Severity: Error Message Text: Password supplied is too long: password Explanation: password is the password that has been recognised by PKZIP/PKUNZIP. The specified password is longer than the maximum allowed length of 64 characters. Action: Correct the password. 205 Severity: Error Message Text: Incorrect password format supplied: password Explanation: password is the password that has been recognised by PKZIP/PKUNZIP. The specified password is in an unrecognised format. Action: Correct the password. 206 Severity: Error Message Text: No password supplied: password Explanation: password is the password that has been recognised by PKZIP/PKUNZIP. The -PASSWORD command has been input, but no actual password has been supplied. Action: Correct the password command to include the actual password. 207 Severity: Error Message Text: Command beginning: Command is too long - discarded. Explanation: Command is the start of the input command detected in the input. The command has been continued for too many characters. It has been discarded. Action: Correct the command or shorten it by removing white space (for example blank characters). 208 Severity: Error Message Text: Command has not been completed (Input file: file). Explanation: A command was detected in the input file. Further input is required but there are no more records in the input file. Action: Complete the command in the input file. T4ASI025-00-00 PKZIP and PKUNZIP Messages 325 211 Severity: Error Message Text: MS-DOS file specification filespec is incorrectly delimited. Explanation: filespec is the filename that has been recognised by PKZIP/PKUNZIP. The filename specified has a delimiter which indicates that it is being presented in MS-DOS format, but no end of filename delimiter has been found. Action: Correct the parameter. 212 Severity: Error Message Text: METHOD option parameter is unknown. Explanation: parameter is the METHOD parameter that has been input. The specified parameter to the -METHOD command is not recognised by this version of PKZIP. Action: Correct the parameter. 213 Severity: Error Message Text: ARCHIVE dataset name supplied is too long: dataset name Explanation: dataset name is the dataset name that has been input. The specified dataset name supplied with the -ARCHIVE command is longer than the maximum allowed length of 44 characters. Action: Correct the dataset name. 214 Severity: Error Message Text: Incorrect ARCHIVE dsname format supplied: dataset name Explanation: dataset name is the dataset name that has been input. The dataset name specified by the -ARCHIVE command is not in a recognisable format. Action: Correct the dataset name. 326 PKZIP for MVS: User Reference T4ASI025-00-00 215 Severity: Error Message Text: No ARCHIVE dsname supplied: dataset name Explanation: dataset name is the dataset name that has been input. The dataset name supplied with the -ARCHIVE command is not present. Action: Supply a dataset name with the -ARCHIVE command. 216 Severity: Error Message Text: command volume name supplied is too long: volume name Explanation: volume name is the volume name that has been input. The specified volume name supplied with the command is longer than the maximum allowed length of 6 characters. Action: Correct the volume name. 217 Severity: Error Message Text: Incorrect command volume format supplied: volume name Explanation: volume name is the volume name that has been input. The volume name specified by the command is not in a recognisable format. Action: Correct the volume name. 218 Severity: Error Message Text: Command: command volume count exceeded. Explanation: More than 31 volumes have been specified. Action: Reduce the number of volumes specified to a maximum of 31. 219 Severity: Error Message Text: TRAN table name supplied is too long: table name Explanation: table name is the module name that has been input. The translation table name supplied with the -TRAN command is longer than the 8 character maximum. Action: Correct the translation table name. T4ASI025-00-00 PKZIP and PKUNZIP Messages 327 220 Severity: Error Message Text: Incorrect TRAN table name format supplied: table name Explanation: table name is the module name that has been input. The translation table name specified by the -TRAN command is not in a recognisable format. Action: Correct the translation table name. 221 Severity: Error Message Text: No TRAN table name supplied: table name Explanation: table name is the module name that has been input. The translation table name supplied with the -TRAN command is not present. Action: Supply a translation table name with the -TRAN command. 222 Severity: Error Message Text: FTRAN table name supplied is too long: table name Explanation: table name is the module name that has been input. The translation table name supplied with the -FTRAN command is longer than the 8 character maximum. Action: Correct the translation table name. 223 Severity: Error Message Text: Incorrect FTRAN table name format supplied: table name Explanation: table name is the module name that has been input. The translation table name specified by the -FTRAN command is not in a recognisable format. Action: Correct the translation table name. 224 Severity: Error Message Text: No FTRAN table name supplied: table name Explanation: table name is the module name that has been input. The translation table name supplied with the -FTRAN command is not present. Action: Supply a translation table name with the -FTRAN command. 328 PKZIP for MVS: User Reference T4ASI025-00-00 225 Severity: Error Message Text: Delimiter too long: delimiter Explanation: delimiter is the delimiter that has been input. The record delimiter supplied with the -DELIM command is longer than the maximum 4 characters. Action: Modify the delimiter supplied. 226 Severity: Error Message Text: Unknown delimiter supplied: delimiter Explanation: delimiter is the delimiter that has been input. The delimiter supplied with the -DELIM command is invalid or has invalid contents. Action: Correct the supplied delimiter. 227 Severity: Error Message Text: Incorrect delimiter string format supplied: delimiter Explanation: delimiter is the delimiter that has been input. The delimiter string supplied with the -DELIM command has an incorrect format Action: Correct the supplied delimiter. 228 Severity: Error Message Text: No delimiter string supplied: delimiter Explanation: delimiter is the delimiter that has been input. No valid delimiter string has been supplied with the -DELIM command. Action: Correct the supplied delimiter. 229 Severity: Error Message Text: Terminator too long: terminator Explanation: terminator is the terminator that has been input. The file terminator supplied with the -TERM command is longer than the maximum 4 characters. Action: Modify the terminator supplied. T4ASI025-00-00 PKZIP and PKUNZIP Messages 329 230 Severity: Error Message Text: Unknown terminator supplied: terminator Explanation: terminator is the terminator that has been input. The file terminator supplied with the -TERM command is invalid or has invalid contents. Action: Correct the supplied terminator. 231 Severity: Error Message Text: Incorrect terminator string format supplied: terminator Explanation: terminator is the terminator that has been input. The file terminator string supplied with the -TERM command has an incorrect format. Action: Correct the supplied terminator. 232 Severity: Error Message Text: No terminator string supplied: terminator Explanation: terminator is the terminator that has been input. No valid file terminator string has been supplied with the -TERM command. Action: Correct the supplied terminator. 233 Severity: Error Message Text: CNVEXT parameter parameter is unknown. Explanation: parameter is the parameter specified to the command. The parameter supplied to the -CNVEXT command is invalid. Action: Correct the supplied CNVEXT parameter. 234 Severity: Error Message Text: ARCHUNIT unit reference supplied is too long: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -ARCHUNIT command is longer than the maximum of 8 characters. Action: Correct the unit name. 330 PKZIP for MVS: User Reference T4ASI025-00-00 235 Severity: Error Message Text: Incorrect ARCHUNIT unit format supplied: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -ARCHUNIT command has an incorrect format. Action: Correct the unit name. 236 Severity: Error Message Text: No ARCHUNIT unit supplied: unit name Explanation: unit name is the unit name specified. No unit name has been supplied with the -ARCHUNIT command. Action: Supply a unit name. 237 Severity: Error Message Text: command value supplied is too small: number Explanation: number is the value specified. The number specified is too small – check the details for the command to determine the minimum supported value. Action: Correct the number supplied. 238 Severity: Error Message Text: command value supplied is too large: number Explanation: number is the value specified. The number specified is too large – check the details for the command to determine the maximum supported value. Action: Correct the number supplied. 239 Severity: Error Message Text: command value supplied is not numeric: value Explanation: value is the value specified. This value contains non-numeric characters. Action: Correct the value supplied. T4ASI025-00-00 PKZIP and PKUNZIP Messages 331 240 Severity: Information Message Text: Command: command is obsolete and should be removed. Explanation: The command used is no longer supported but is still accepted to maintain command compatibility. Action: The command should be removed. 241 Severity: Information Message Text: Command: command has been replaced with newcommand. Refer to the manual for further information. Explanation: The command used is still supported to maintain compatibility but should be replaced with the updated command. Action: Refer to the manual, starting with the Changes Section, to determine how to replace the command. 246 Severity: Error Message Text: ARCHSPACE parameter parameter is unknown. Explanation: parameter is the parameter specified. The specified parameter to the -ARCHSPACE command is not a valid parameter. Action: Correct the parameter. 247 Severity: Error Message Text: ARCHSCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The storage class name supplied with the -ARCHSCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 248 Severity: Error Message Text: Incorrect ARCHSCLASS class format supplied: class name Explanation: class name is the class name specified. The storage class name supplied with the -ARCHSCLASS command has an incorrect format. Action: Correct the class name. 332 PKZIP for MVS: User Reference T4ASI025-00-00 249 Severity: Error Message Text: No ARCHSCLASS class supplied: class name Explanation: class name is the class name specified. No storage class name has been supplied with the -ARCHSCLASS command. Action: Supply a class name. 250 Severity: Error Message Text: ARCHMCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The management class name supplied with the -ARCHMCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 251 Severity: Error Message Text: Incorrect ARCHMCLASS class format supplied: class name Explanation: class name is the class name specified. The management class name supplied with the -ARCHMCLASS command has an incorrect format. Action: Correct the class name. 252 Severity: Error Message Text: No ARCHMCLASS class supplied: class name Explanation: class name is the class name specified. No management class name has been supplied with the ARCHMCLASS command. Action: Supply a class name. T4ASI025-00-00 PKZIP and PKUNZIP Messages 333 253 Severity: Error Message Text: ARCHDCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The data class name supplied with the -ARCHDCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 254 Severity: Error Message Text: Incorrect ARCHDCLASS class format supplied: class name Explanation: class name is the class name specified. The data class name supplied with the -ARCHDCLASS command has an incorrect format. Action: Correct the class name. 255 Severity: Error Message Text: No ARCHDCLASS class supplied: class name Explanation: class name is the class name specified. No data class name has been supplied with the -ARCHDCLASS command. Action: Supply a class name. 256 Severity: Error Message Text: ZIPCUR dataset name supplied is too long: dataset name Explanation: dataset name is the dataset name specified. The dataset name supplied to the ZIPCUR command is longer than the maximum allowed dataset name. Action: Supply a correct dataset name. 334 PKZIP for MVS: User Reference T4ASI025-00-00 257 Severity: Error Message Text: Incorrect ZIPCUR dsname format supplied: dataset name Explanation: dataset name is the dataset name specified. The dataset name supplied with the -ZIPCUR command has an incorrect format. Action: Correct the dataset name. 258 Severity: Error Message Text: No ZIPCUR dsname supplied: dataset name Explanation: dataset name is the dataset name specified. No dataset name has been supplied with the -ZIPCUR command. Action: Supply a dataset name. 259 Severity: Error Message Text: TASKS parameter supplied is invalid: number Explanation: number is the parameter specified. The parameter supplied to the -TASKS command is invalid (too low or too high in value). Action: Supply a valid -TASKS parameter. 260 Severity: Error Message Text: Incorrect TASKS parameter format supplied: number Explanation: number is the parameter specified. The parameter supplied to the -TASKS command has an incorrect format. Action: Supply a valid -TASKS parameter. 261 Severity: Error Message Text: No TASKS parameter supplied: number Explanation: number is the parameter specified. No parameter has been supplied with the -TASKS command. Action: Supply a valid -TASKS parameter. T4ASI025-00-00 PKZIP and PKUNZIP Messages 335 262 Severity: Error Message Text: FILESELECTOR name has the wrong length: name Explanation: name is the module name specified. The module name supplied with the -FILESELECTOR command is longer than the maximum of 8 characters. Action: Correct the module name. 263 Severity: Error Message Text: Incorrect FILESELECTOR name format supplied: name Explanation: name is the module name specified. The module name supplied with the -FILESELECTOR command has an incorrect format. Action: Correct the module name. 264 Severity: Error Message Text: No FILESELECTOR name supplied: name Explanation: name is the module name specified. No module name has been supplied with the -FILESELECTOR command. Action: Correct the module name. 265 Severity: Error Message Text: MEMORY parameter supplied is invalid: memory Explanation: memory is the parameter specified. The parameter supplied to the -MEMORY command is invalid (too low or too high in value). Action: Supply a valid -MEMORY parameter. 266 Severity: Error Message Text: Incorrect MEMORY parameter format supplied: memory Explanation: memory is the parameter specified. The parameter supplied to the -MEMORY command has an incorrect format. Action: Supply a valid -MEMORY parameter. 336 PKZIP for MVS: User Reference T4ASI025-00-00 267 Severity: Error Message Text: No MEMORY parameter supplied: memory Explanation: memory is the parameter specified. No parameter has been supplied with the -MEMORY command. Action: Supply a valid -MEMORY parameter. 271 Severity: Error Message Text: TEMPUNIT unit reference supplied is too long: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -TEMPUNIT command is longer than the maximum of 8 characters. Action: Correct the unit name. 272 Severity: Error Message Text: Incorrect TEMPUNIT unit format supplied: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -TEMPUNIT command has an incorrect format. Action: Correct the unit name. 273 Severity: Error Message Text: No TEMPUNIT unit supplied: unit name Explanation: unit name is the unit name specified. No unit name has been supplied with the -TEMPUNIT command. Action: Supply a unit name. 283 Severity: Error Message Text: No TEMPSPACE parameter is unknown: parameter Explanation: parameter is the parameter specified. The parameter supplied with the -TEMPSPACE command is not one of the known valid options. Action: Supply a valid parameter. T4ASI025-00-00 PKZIP and PKUNZIP Messages 337 284 Severity: Error Message Text: TEMPSCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The storage class name supplied with the -TEMPSCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 285 Severity: Error Message Text: Incorrect TEMPSCLASS class format supplied: class name Explanation: class name is the class name specified. The storage class name supplied with the -TEMPSCLASS command has an incorrect format. Action: Correct the class name. 286 Severity: Error Message Text: No TEMPSCLASS class supplied: class name Explanation: class name is the class name specified. No storage class name has been supplied with the -TEMPSCLASS command. Action: Supply a class name. 287 Severity: Error Message Text: TEMPMCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The management class name supplied with the -TEMPMCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 338 PKZIP for MVS: User Reference T4ASI025-00-00 288 Severity: Error Message Text: Incorrect TEMPMCLASS class format supplied: class name Explanation: class name is the class name specified. The management class name supplied with the -TEMPMCLASS command has an incorrect format. Action: Correct the class name. 289 Severity: Error Message Text: No TEMPMCLASS class supplied: class name Explanation: class name is the class name specified. No management class name has been supplied with the TEMPMCLASS command. Action: Supply a class name. 290 Severity: Error Message Text: TEMPDCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The data class name supplied with the -TEMPDCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 291 Severity: Error Message Text: Incorrect TEMPDCLASS class format supplied: class name Explanation: class name is the class name specified. The data class name supplied with the -TEMPDCLASS command has an incorrect format. Action: Correct the class name. T4ASI025-00-00 PKZIP and PKUNZIP Messages 339 292 Severity: Error Message Text: No TEMPDCLASS class supplied: class name Explanation: class name is the class name specified. No data class name has been supplied with the -TEMPDCLASS command. Action: Supply a class name. 293 Severity: Error Message Text: Command: command format incorrect - check brackets. Explanation: The required opening or closing brackets are missing. Action: Supply the required brackets. 296 Severity: Error Message Text: ARCHTYPE parameter parameter is unknown Explanation: parameter is the parameter specified. The parameter supplied to the -ARCHTYPE command is unknown. Action: Correct the option. 297 Severity: Error Message Text: TEMPTYPE parameter parameter is unknown Explanation: parameter is the parameter specified. The parameter supplied to the -TEMPTYPE command is unknown. Action: Correct the option. 340 PKZIP for MVS: User Reference T4ASI025-00-00 300 Severity: Error Message Text: OUTUNIT unit reference supplied is too long: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -OUTUNIT command is longer than the maximum of 8 characters. Action: Correct the unit name. 301 Severity: Error Message Text: Incorrect OUTUNIT unit format supplied: unit name Explanation: unit name is the unit name specified. The unit name supplied with the -OUTUNIT command has an incorrect format. Action: Correct the unit name. 302 Severity: Error Message Text: No OUTUNIT unit supplied: unit name Explanation: unit name is the unit name specified. No unit name has been supplied with the -OUTUNIT command. Action: Supply a unit name. 312 Severity: Error Message Text: No OUTSPACE parameter is unknown: parameter Explanation: parameter is the parameter specified. The parameter supplied with the -OUTSPACE command is not one of the known valid options. Action: Supply a valid parameter. 313 Severity: Error Message Text: OUTSCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The storage class name supplied with the -OUTSCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. T4ASI025-00-00 PKZIP and PKUNZIP Messages 341 314 Severity: Error Message Text: Incorrect OUTSCLASS class format supplied: class name Explanation: class name is the class name specified. The storage class name supplied with the -OUTSCLASS command has an incorrect format. Action: Correct the class name. 315 Severity: Error Message Text: No OUTSCLASS class supplied: class name Explanation: No storage class name has been supplied with the -OUTSCLASS command. Action: Supply a class name. 316 Severity: Error Message Text: OUTMCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The management class name supplied with the -OUTMCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 317 Severity: Error Message Text: Incorrect OUTMCLASS class format supplied: class name Explanation: class name is the class name specified. The management class name supplied with the -OUTMCLASS command has an incorrect format. Action: Correct the class name. 318 Severity: Error Message Text: No OUTMCLASS class supplied: class name Explanation: class name is the class name specified. No management class name has been supplied with the -OUTMCLASS command. Action: Supply a class name. 342 PKZIP for MVS: User Reference T4ASI025-00-00 319 Severity: Error Message Text: OUTDCLASS class reference supplied is too long: class name Explanation: class name is the class name specified. The data class name supplied with the -OUTDCLASS command is longer than the maximum of 8 characters. Action: Correct the class name. 320 Severity: Error Message Text: Incorrect OUTDCLASS class format supplied: class name Explanation: class name is the class name specified. The data class name supplied with the -OUTDCLASS command has an incorrect format. Action: Correct the class name. 321 Severity: Error Message Text: No OUTDCLASS class supplied: class name Explanation: class name is the class name specified. No data class name has been supplied with the -OUTDCLASS command. Action: Supply a class name. 325 Severity: Error Message Text: OUTTYPE parameter parameter is unknown Explanation: parameter is the parameter specified. The specified parameter supplied to the -OUTTYPE command is unknown. Action: Correct the option. T4ASI025-00-00 PKZIP and PKUNZIP Messages 343 329 Severity: Error Message Text: command value supplied has an invalid format: value Explanation: value is the value specified. The parameter supplied to the command is invalid. Action: Supply a valid parameter. 330 Severity: Error Message Text: command command supplied is too long: value Explanation: value is the value specified. The parameter supplied with the command is longer than the maximum allowed. Action: Correct the parameter. 331 Severity: Error Message Text: Command parameter parameter is unknown Explanation: parameter is the parameter specified. The specified parameter supplied to the command is not supported. Action: Correct the parameter. 339 Severity: Error Message Text: TEMPDIRBLKS size supplied is invalid: dirblks Explanation: dirblks is the size specified. The size supplied to the -TEMPDIRBLKS command is invalid (too low or too high in value). Action: Supply a valid -TEMPDIRBLKS parameter. 340 Severity: Error Message Text: Incorrect TEMPDIRBLKS size format supplied: dirblks Explanation: The parameter supplied with the -TEMPDIRBLKS command has an incorrect format. Action: Correct the parameter. 344 PKZIP for MVS: User Reference T4ASI025-00-00 341 Severity: Error Message Text: No TEMPDIRBLKS record size supplied: dirblks Explanation: dirblks is the size specified. No parameter has been supplied with the -TEMPDIRBLKS command. Action: Supply a parameter. 342 Severity: Error Message Text: OUTATTR parameter is invalid: attrib Explanation: attrib is the parameter specified. The parameter supplied with the -OUTATTR command is not one of the valid options Action: Refer to the command reference in this manual and supply a valid parameter. 343 Severity: Error Message Text: OUTKEYS parameter is invalid: keys Explanation: keys is the parameter specified. The parameter supplied with the -OUTKEYS command is not valid. Action: Refer to the command reference in this manual and supply a valid parameter. 344 Severity: Error Message Text: OUTRECORDSIZE parameter is invalid: size Explanation: size is the parameter specified. The parameter supplied with the -OUTRECORDSIZE command is not valid. Action: Refer to the command reference in this manual and supply a valid parameter. T4ASI025-00-00 PKZIP and PKUNZIP Messages 345 350 Severity: Warning Message Text: No updates to make to ARCHINDD - copying to ARCHOUTDD. Explanation: No file selections were matched for processing on the input archive specified by ARCHINDD. ARCHINDD will be copied to ARCHOUTDD. Action: No action required if the fact that no selections matched is acceptable. Otherwise correct and re-run the step. 351 Severity: Error Message Text: No updates to make to ZIP archive Explanation: PKZIP has not found any changes to make to the specified ZIP archive with the commands and files selected. Action: Ensure that the correct parameters have been given to PKZIP, and that the correct files for addition or update have been selected. 352 Severity: Information Message Text: Deleted file file name from ZIP archive Explanation: file name is the ZIP archive name for the file. The specified file has been deleted from the ZIP archive as a result of the -DELETE command. Action: None. 360 Severity: Error Message Text: Incorrect command format supplied: command Explanation: command is the command specified. The specified parameter supplied to the command has an invalid format. Action: Correct the parameter 361 Severity: Error Message Text: Incorrect length in command: command Explanation: command is the command specified. The specified parameter supplied to the command has an incorrect length. Action: Correct the parameter. 346 PKZIP for MVS: User Reference T4ASI025-00-00 365 Severity: Warning Message Text: NIA command processing error for file file, NIA(..,…). Explanation: file is the input file. The NIA command matches this file but the generated output name is invalid - probably too small. The NIA command is ignored for this file. Action: Correct the NIA command if required and re-run. 370 Severity: Error Message Text: No volume attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the volume and no -OUTVOL command was supplied. Action: Specify an -OUTVOL command and re-run the job. 371 Severity: Error Message Text: No VSAM file type attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the VSAM file type and no -OUTATTR command was supplied. Action: Specify an -OUTATTR command and re-run the job. 372 Severity: Error Message Text: No VSAM recordsize attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the VSAM recordsize and no -OUTRECORDSIZE command was supplied. Action: Specify an -OUTRECORDSIZE command and re-run the job. T4ASI025-00-00 PKZIP and PKUNZIP Messages 347 373 Severity: Error Message Text: No VSAM keys attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the VSAM keys parameter and no -OUTKEYS command was supplied. Action: Specify an -OUTKEYS command and re-run the job. 374 Severity: Error Message Text: No space allocation attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the space allocation and no -OUTSPACE command was supplied. Action: Specify an -OUTSPACE command and re-run the job. 375 Severity: Error Message Text: No primary allocation attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case no attribute was stored for the primary allocation and no -OUTPRIMARY command was supplied. Action: Specify an -OUTPRIMARY command and re-run the job. 376 Severity: Error Message Text: No secondary allocation attribute for file dataset Explanation: dataset is the name of the dataset being created. PKUNZIP was attempting to create a dataset using the stored attributes and the -OUT commands. In this case no attribute was stored for the secondary allocation and no -OUTSECONDARY command was supplied. Action: Specify an -OUTSECONDARY command and re-run the job. 348 PKZIP for MVS: User Reference T4ASI025-00-00 380 Severity: Error Message Text: Command value supplied is too long: value Explanation: value is the value that has been input. The value specified by the current command is not in a recognisable format. Action: Check the syntax of the command in the User Reference. Correct the command and retry. 381 Severity: Error Message Text: Incorrect command format supplied: value Explanation: value is the value that has been input. The value specified by the current command is not in a recognisable format. Action: Check the syntax of the command in the User Reference. Correct the command and retry. 382 Severity: Error Message Text: No value supplied for command: value Explanation: value is the value that has been input. No value was supplied for the current command. Action: Check the syntax of the command in the User Reference. Correct the command and retry. 383 Severity: Error Message Text: No licence available to process command value Explanation: value is the command that has been input. The specified command requires a licence that is not available.' Action: Correct the command or obtain a suitable licence from your supplier. T4ASI025-00-00 PKZIP and PKUNZIP Messages 349 390 Severity: Error Message Text: Define cluster failed for file file Explanation: file is the name of the dataset being created. PKUNZIP was attempting to create a dataset using stored attributes and the -OUT commands. In this case the IDCAMS DEFINE CLUSTER function failed. Action: Check and correct the -OUT commands specified and re-run the job. 391 Severity: Information Message Text: The following IDCAMS messages were issued: Explanation: An error was encountered when calling IDCAMS. The diagnostic messages issued by IDCAMS follow. Action: Look up the IDCAMS messages in the appropriate IBM manual and correct and re-run the job. 392 Severity: Information Message Text: message text Explanation: An error was encountered when calling IDCAMS. The diagnostic messages issued by IDCAMS are given in the text of this message. Action: Look up the IDCAMS messages in the appropriate IBM manual and correct and re-run the job. 402 Severity: Error Message Text: ARCHIVE file is too small for an archive Explanation: PKZIP has determined that the archive specified in the -ARCHIVE command is too small to be a ZIP/GZIP archive dataset. The archive may be empty. Action: Ensure that the correct archive dataset has been specified and that this file contains an archive. 350 PKZIP for MVS: User Reference T4ASI025-00-00 403 Severity: Error Message Text: ZIP archive file has an invalid format for a ZIP file: reason Explanation: PKZIP has determined that the specified archive can not be processed - a reason for this decision will be indicated by the text after the message. Action: Ensure that the correct archive has been specified and that PKZIP has access to it. Check that the archive is in a format that can be processed, noting the record format and volume allocation. 404 Severity: Error Message Text: ZIP archive file has an invalid format for a ZIP file. Explanation: PKZIP has determined that there is corruption within the main ZIP directory for the ZIP archive specified by the -ARCHIVE command. Some files within the archive may be recoverable. Action: Ensure that the correct archive has been specified and that PKZIP has access to it. If the file has been transferred from another platform please check that it was transferred as binary. A valid ZIP archive starts with the hex value x’504B’ therefore browsing the archive in hex can provide a quick visual check that the transfer was successful.' 405 Severity: Information Message Text: ZIP comment: comment Explanation: comment is the comment found in the ZIP archive. The ZIP archive specified by the -ARCHIVE command contains a ZIP file comment. It is displayed using this message when the archive is first opened. Action: None 406 Severity: Error Message Text: Unable to decompress file attributes for file Explanation: file is a file for which PKZIP is attempting to decompress the file attributes, but this operation has failed. No file attributes from the ZIP archive will be used. Action: If file attributes are required, determine the reason for their failure to decompress and retry the operation. 407 Severity: Warning Message Text: Error whilst compressing file attributes for file, file attributes will be saved without compression T4ASI025-00-00 PKZIP and PKUNZIP Messages 351 Explanation: file is a file for which PKZIP is attempting to compress the file attributes, but this operation has failed. The file attributes from the ZIP archive will be saved without compression. Action: If file attributes are required, determine the reason for their failure to decompress and retry the operation. 408 Severity: Error Message Text: GZIP archive file has an invalid format for a GZIP file. Explanation: PKZIP has determined that there is corruption within a GZIP header for the GZIP archive specified. Action: Ensure that the correct archive has been specified and that PKZIP has access to it. If the file has been transferred from another platform please check that it was transferred as binary. A valid GZIP archive starts with the hex value x’1F8B’ therefore browsing the archive in hex can provide a quick visual check that the transfer was successful.' 409 Severity: Information Message Text: GZIP file comment: comment Explanation: comment is the comment found in the GZIP archive. A file within the specified GZIP archive contains this comment. Action: None 453 Severity: Information Message Text: Compressed dataset name as filename (compressionmethod percentage). Explanation: This message is output by PKZIP when a file has been successfully compressed. The message shows the dataset that was compressed, the name used in the ZIP archive, the compression method used and the amount of compression achieved. This message is output by PKZIP when a file has been successfully compressed as a result of the -ADD command. Action: None. 352 PKZIP for MVS: User Reference T4ASI025-00-00 459 Severity: Information Message Text: Updated dataset name as filename (compressionmethod percentage). Explanation: This message is output by PKZIP when a file has been successfully compressed. The message shows the dataset that was compressed, the name used in the ZIP archive, the compression method used and the amount of compression achieved. This message is output by PKZIP when a file has been successfully compressed as a result of the -UPDATE or -FRESHEN commands. Action: None. 460 Severity: Error Message Text: Temporary file too small when compressing file compression abandoned Explanation:. This message is output when a temporary file used for compressing a file is too small to contain the compressed file Action: Rerun the compression, using larger values for the -CACHEMEMORY or -TEMP commands to allow sufficient space for the compressed file.' 501 Severity: Information Message Text: View files heading Explanation: This message is output by the -VIEW or -VIEWBRIEF commands as a heading before the main file display. Action: None. 502 Severity: Information Message Text: View files heading Explanation: This message is output by the -VIEW or -VIEWBRIEF commands as a heading before the main file display. Action: None. 503 Severity: Information Message Text: View files files entry Explanation: This message is output by the -VIEW or -VIEWBRIEF commands to display details of an individual file stored in the ZIP archive. See -VIEW command for more information. Action: None. T4ASI025-00-00 PKZIP and PKUNZIP Messages 353 504 Severity: Information Message Text: Comment: comment Explanation: This message is output if the -VIEWCOMMENT command has been specified. It contains the file comment associated with the current file being displayed. Action: None. 505 Severity: Information Message Text: View files total heading Explanation: This message is output by the -VIEW or -VIEWBRIEF commands as a heading before the total information about the files selected from the ZIP archive are output. Action: None. 506 Severity: Information Message Text: View files totals Explanation: This message is output by the -VIEW or -VIEWBRIEF commands at the end of displaying all files to display totals for the compressed and uncompressed file sizes, together with the overall compression percentage, for the files selected for display. Action: None. 507 Severity: Information Message Text: Filename: name Explanation: This message is output by the -VIEWDETAIL command to give the full filename of the current file being displayed. Action: None. 508 Severity: Information Message Text: File type: type Explanation: This message is output by the -VIEWDETAIL command. It is a judgement made by PKZIP during compression based on the contents of the file unless the –TEXT or –BINARY commands were specified during compression. It can be either "Text" or "Binary". In addition, the string "Encrypted" will be output if this file is held in an encrypted format, and the string "ZDW" will be output if the file has a ZDW format. Action: None. 354 PKZIP for MVS: User Reference T4ASI025-00-00 509 Severity: Information Message Text: Date and Time: timestamp Explanation: This message is output by the -VIEWDETAIL command. It contains the date and time of the file as it would appear on a directory listing in the original system. Action: None. 510 Severity: Information Message Text: Compression Method: method Explanation: This message is output by the -VIEWDETAIL command. It shows the compression routine that has been used to store this file in the ZIP archive. Action: None. 511 Severity: Information Message Text: Compressed Size: size Explanation: This message is output by the -VIEWDETAIL command. It shows the current (compressed) size of the file. Action: None. 512 Severity: Information Message Text: Uncompressed Size: size Explanation: This message is output by the -VIEWDETAIL command. It shows the original (non-compressed) size of the file. Action: None. 513 Severity: Information Message Text: 32 bit CRC value : value Explanation: This message is output by the -VIEWDETAIL command. It shows the value of the file as calculated by the CRC-32 routines. Action: None. T4ASI025-00-00 PKZIP and PKUNZIP Messages 355 514 Severity: Information Message Text: Created by: version under system Explanation: This message is output by the -VIEWDETAIL command. It shows the version of PKZIP that was used to create the compressed file, and the operating system that was in use when the file was created. Action: None. 515 Severity: Information Message Text: Needed to extract: version Explanation: This message is output by the -VIEWDETAIL command. It shows the minimum version of PKUNZIP that is required to extract the file. Action: None. 516 Severity: Information Message Text: Comment: comment Explanation: This message is output by the -VIEWDETAIL command. It shows the file comment associated with the file, if there is one. Action: None. 517 Severity: Warning Message Text: No files selected for viewing. Explanation: This message is output when a -VIEW command has been input, but no files have been selected by the filename commands that have been input. Action: Correct the filename specifications to ensure that details of the required files have been input. 518 Severity: Warning Message Text: Unknown file attribute: attribute Explanation: This message is output when a -VIEWDETAIL command has been requested and an attribute found in the ZIP archive is not recognised. If the ZIP archive was created on a different platform, then the unrecognised attribute is probably specific to that platform. Action: Contact support for more information. 356 PKZIP for MVS: User Reference T4ASI025-00-00 519 Severity: Information Message Text: message text Explanation: This message is output when a -VIEWDETAIL command has been requested. It is used to format the output to make it more readable. Action: No action required. 520 Severity: Information Message Text: File attributes Explanation: This message is output when a -VIEWDETAIL command has been requested. It is used to format the output to make it more readable. Action: No action required. 521 Severity: Information Message Text: GZIP archive created by: version under system Explanation: This message is output by the -VIEWDETAIL command. It shows the version of PKZIP that was used to create the compressed file, and the operating system that was in use when the file was created. Action: None. 599 Severity: Warning Message Text: Attribute mismatch for file file - command: command, attribute: attribute. Explanation: File file is being decompressed. The command command has been specified, but the attributes for the file indicate that when compressed it had a different setting. Action: Ensure that the specified file has been correctly compressed and that it is valid to specify the indicated command. T4ASI025-00-00 PKZIP and PKUNZIP Messages 357 600 Severity: Warning Message Text: ZDW command used for archive file file, which was not compressed using ZDW. Explanation: File file is being decompressed The specified file has been compressed without the ZDW option specified, but is being extracted with that option specified. Results are unpredictable because it is unclear if the input file matches the internal ZDW file format. Action: Ensure that the specified file has been correctly compressed and that it is valid to specify ZDW for the file. 601 Severity: Warning Message Text: PKUNZIP version version needed to extract file name Explanation: version is the version of PKUNZIP required. name is the ZIP name of the file to be extracted. The specified file has been compressed with a method which is not included in this version of PKZIP. A version of PKZIP of at least the specified level is required to decompress the file. Note that this message may also be output if the ZIP archive has been incorrectly transferred onto MVS, since the ZIP archive directory may then be corrupt. Action: Contact your supplier for details of a version of PKUNZIP which will extract the specified file. 602 Severity: Warning Message Text: Unknown compression method for file name Explanation: name is the ZIP name of the file specified. The specified file has been compressed with a method which is not recognised by this version of PKUNZIP. This may indicate that the file has been compressed with a very old version of PKZIP, or that the specified file's details have become corrupt in the ZIP archive. Action: Ensure that the specified file has been correctly compressed with a current version of PKZIP. 358 PKZIP for MVS: User Reference T4ASI025-00-00 603 Severity: Warning Message Text: Expanding not supported in this version (file name). Explanation: name is the ZIP name of the specified file. The specified file has been compressed using the Expand method of compression. This method is no longer used in the current family of PKZIP products, and is not supported in this version of PKZIP for MVS. Action: Ensure that the specified file has been correctly compressed with a current version of PKZIP. 604 Severity: Information Message Text: Skipping encrypted file name Explanation: name is the ZIP name of the specified file. The specified file was encrypted when it was compressed. However, no -PASSWORD command has been input, so the specified file cannot be decrypted. PKUNZIP will ignore this file. Action: If the specified file is required, the correct password must be input to PKUNZIP. 605 Severity: Error Message Text: Inconsistent local header for file name Explanation: name is the ZIP name of the specified file. The details of the file kept together with the compressed file itself do not match with those kept in the main directory for the ZIP archive. PKUNZIP will stop processing the file. Action: Ensure that an uncorrupted copy of the ZIP archive is obtained. 607 Severity: Error Message Text: File name fails CRC check. Explanation: The specified file has been extracted from the ZIP archive, but the contents do not match the stored CRC for the file. The file contents are likely to be corrupt. This is also possible, on occasions, if an incorrect password has been given. Action: Obtain an uncorrupted copy of the ZIP archive. T4ASI025-00-00 PKZIP and PKUNZIP Messages 359 608 Severity: Information Message Text: File name tested ok. Explanation: name is the ZIP name of the specified file. The -TEST command has been specified, and the selected file has been tested without errors. Action: None. 609 Severity: Information Message Text: ZIP file zipfilename method to MVS file MVSdatasetname Explanation: zipfilename is the ZIP name of the specified file. method is the method used for decompression. MVSdatasetname is the MVS dataset name for the extracted file. The selected file has been extracted correctly from the ZIP archive and written to the specified MVS dataset. The compression method given has been used to extract the file. Action: None 610 Severity: Error Message Text: No files selected for extraction Explanation: The file selection has been processed, but no matching files can be found within the ZIP archive. Action: Select files which exist within the ZIP archive and rerun the program. 611 Severity: Error Message Text: Incorrect password given for file name Explanation: name is the ZIP name of the specified file. The selected file has been encrypted in the ZIP archive, and a password has been input. However, the password is not the one which was used to encrypt the file. PKUNZIP will skip the specified file, and will not extract it. Action: Correct the password if the specified file is to be extracted. 360 PKZIP for MVS: User Reference T4ASI025-00-00 612 Severity: Information Message Text: Compressed Size: nnn, Decompressed Size: mmm. Explanation: The GZIP processing has completed - the figures supplied indicate how many bytes of compressed and uncompressed data was processing. Note that these figures do not include any overhead such as headers. Action: None. 613 Severity: Error Message Text: Decompressed size does not match value from archive: mmm. Explanation: The decompression has been completed. The previous message (612) has output the bytes written. This figure differs from the value (mmm) in the file. Action: Check that the archive is valid – attempt to recreate it if appropriate. Check that the output dataset is as expected. 614 Severity: Warning Message Text: Non null/blank data starting with XXx found after file in archive. Explanation: The decompression has been completed, but following bytes in the archive are not null or blank, indicating additional data that has not been processed. Action: Check that the archive is valid – attempt to recreate it if appropriate. Check that the output dataset is as expected. 615 Severity: Error Message Text: Selection has resulted in multiple files to compress to GZIP archive - this is not supported. Explanation: The file selections entered have resulted in ZIP processing selecting more than 1 file to add to the GZIP archive, but only one is supported. Action: Change the selection so that only 1 file will be selected for one GZIP archive. Rerun the processing. T4ASI025-00-00 PKZIP and PKUNZIP Messages 361 616 Severity: Error Message Text: GZIP/METHOD(STORE) combination not supported. Explanation: The commands entered have indicated that file(s) should be STOREd in a GZIP archive, which the GZIP format does not support. Action: Change the commands to use a ZIP archive or a different compression method. 710 Severity: Error Message Text: Invalid shrunk file found. Explanation: The current file has been compressed using the Shrink compression method. However, the file contents of the file have been found to be invalid for this method. Action: Obtain an uncorrupted copy of the ZIP archive. 720 Severity: Error Message Text: Invalid IPP table found in file. Explanation: The current file has been compressed with the Deflate compression method. However, PKUNZIP has encountered an invalid compression table in the file. Action: Obtain an uncorrupted copy of the ZIP archive. 721 Severity: Error Message Text: Invalid IPP table found in file. Explanation: The current file has been compressed with the Deflate compression method. However, PKUNZIP has encountered an invalid compression table in the file. Action: Obtain an uncorrupted copy of the ZIP archive. 722 Severity: Error Message Text: Invalid block type found in file. Explanation: The current file has been compressed with the Deflate compression method. However, PKUNZIP has encountered an invalid block type in the file. Action: Obtain an uncorrupted copy of the ZIP archive. 362 PKZIP for MVS: User Reference T4ASI025-00-00 730 Severity: Error Message Text: File has bad table. Explanation: The current file has been compressed with the Implode compression method. However, PKUNZIP has encountered an invalid compression table in the file. Action: Obtain an uncorrupted copy of the ZIP archive. 731 Severity: Error Message Text: File has bad table. Explanation: The current file has been compressed with the Implode compression method. However, PKUNZIP has encountered an invalid compression table in the file. Action: Obtain an uncorrupted copy of the ZIP archive. 796 Severity: Warning Message Text: Record(s) in file have been truncated. Explanation: The record length of the output file is shorter than the length of one or more records in the archive. The records that exceeded the output record length have been truncated. Action: Ensure that the record length of the output file is the desired length. Note that this length could be specified in a variety of places including the file itself (if it already existed) and the OUTLRL command. 799 Severity: Error Message Text: Invalid ZDW detected: ZDW, file processing terminated. Explanation: This message indicates that the ZDW value extracted from the file is not valid on this system - it is not possible to create a record with this length. Note that the ZDW value is displayed in hexadecimal. Action: Either the ZDW value found is not valid on this system or the ZDW operand has been specified incorrectly. Re-run the command without specifying the ZDW operand. If this is not successful then the file cannot be decompressed on this operating system. 865 Severity: Information Message Text: Processing file: file name. Explanation: PKZIP/PKUNZIP has begun processing the file indicated. Action: No action required. T4ASI025-00-00 PKZIP and PKUNZIP Messages 363 871 Severity: Error Message Text: Unable to allocate temporary dataset to DD name ddname, DYNALLOC error code code Explanation: ddname is the DD name being used. code is the DYNALLOC error code that was returned. This message is output by PKZIP when it is unable to allocate a temporary dataset before a file has been compressed. The return code is that generated by the DYNALLOC macro. Action: Ensure that there is sufficient space on the volume containing the ZIP archive, or specified by the -ARCHVOL or -ARCHUNIT commands. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. 872 Severity: Error Message Text: Unable to allocate IDCAMS dataset to DD name ddname, DYNALLOC error code code Explanation: ddname is the DD name being used. code is the DYNALLOC error code that was returned. This message is output by PKZIP when it is unable to allocate a temporary dataset when trying to rename the final ZIP archive to its correct name. The return code is that generated by the DYNALLOC macro. Action: Ensure that there is sufficient space on the volume containing the ZIP archive, or specified by the -ARCHVOL or -ARCHUNIT commands. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. 873 Severity: Error Message Text: Error processing macro. Code: code, Process: process. Explanation: The information returned from the macro macro was not as expected for processing by PKZIP. The data returned is output as code, process is an indication of the processing that attempted to use the information from the macro. Action: This is an internal processing problem with PKZIP. Contact your supplier, retaining all the output from the failing PKZIP processing. 364 PKZIP for MVS: User Reference T4ASI025-00-00 876 Severity: Error Message Text: Unable to deallocate and delete ZIP dataset from DD name ddname, DYNALLOC error code code Explanation: ddname is the DD name being used. code is the DYNALLOC error code that was returned. This message is output by PKZIP when it is attempting to deallocate or delete a temporary ZIP dataset or the original ZIP archive. The return code is that generated by the DYNALLOC macro. Action: Ensure that the ZIP archive is specified correctly by the-ARCHIVE command, and that the -ARCHVOL or -ARCHUNIT commands, if present, are correct. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. The new ZIP archive may also have a temporary file name, with the original ZIP archive having been deleted. 877 Severity: Error Message Text: Error writing to RNOUTPUT temporary dataset for rename function. Explanation: This message is output by PKZIP when it is attempting to rename a temporary ZIP dataset to the original ZIP archive name. However, it is unable to write to a temporary dataset containing the commands. Action: Ensure that the ZIP archive is specified correctly by the -ARCHIVE command, and that the -ARCHVOL or -ARCHUNIT commands, if present, are correct. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. The new ZIP archive may also have a temporary file name, with the original ZIP archive having been deleted. 878 Severity: Error Message Text: IDCAMS error whilst renaming ZIP dataset from temp name to dataset name. Return code code T4ASI025-00-00 PKZIP and PKUNZIP Messages 365 Explanation: temp name is the temporary dataset name which is currently being used. dataset name is the dataset name to which it was being renamed. code is the returned code from the IDCAMS program. This message is output by PKZIP when it is attempting to rename a temporary ZIP dataset to the original ZIP archive name. IDCAMS has returned the specified error code instead of renaming the file. Action: Ensure that the ZIP archive is specified correctly by the -ARCHIVE command, and that the -ARCHVOL or -ARCHUNIT commands, if present, are correct. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. The new ZIP archive may also have a temporary file name, with the original ZIP archive having been deleted. 879 Severity: Error Message Text: Unable to allocate ZIP archive archive, DYNALLOC error code dyncode, info code infocode Explanation: archive is the dataset name which was being allocated. dyncode is the DYNALLOC error code returned. infocode is the DYNALLOC information code returned. This message is output by PKZIP when it is unable to allocate the original ZIP archive before a file has been compressed. The return code is that generated by the DYNALLOC macro. Action: Ensure that the -ARCHIVE command specifies a correctly formatted ZIP archive. Examine the return code to determine, and correct, the exact problem. 880 Severity: Error Message Text: Unable to open ZIP archive archive, open return code code Explanation: archive is the name of the dataset name being opened. code is the return code from the OPEN macro. This message is output by PKZIP when it is unable to open the original ZIP archive before a file has been compressed. The return code is that generated by the OPEN macro. Action: Ensure that the -ARCHIVE command specifies a correctly formatted ZIP archive. Examine the return code to determine, and correct, the exact problem. 366 PKZIP for MVS: User Reference T4ASI025-00-00 881 Severity: Error Message Text: ZIP archive archive is of an unsupported type Explanation: archive is the name of the dataset name which is being examined. This message is output by PKZIP when it has allocated the original ZIP archive, but has found that it is of a record type that is not supported by PKZIP. Action: Ensure that the -ARCHIVE command specifies a correctly formatted ZIP archive of a supported record type. 882 Severity: Error Message Text: Unable to close dataset name, close return code code Explanation: dataset name is the dataset name of the file being closed. code is the return code from the CLOSE macro. This message is output by PKZIP when it is unable to close a temporary or final ZIP archive file. The return code is that generated by the CLOSE macro. Action: Ensure that the -ARCHIVE command specifies a correctly formatted ZIP archive. Examine the return code to determine, and correct, the exact problem. It may be found that temporary ZIP datasets, with a final dataset component name of ZIPnnnnn, have been created and have not been deleted. The new ZIP archive may also have a temporary file name, with the original ZIP archive having been deleted. 883 Severity: Error Message Text: Error reading dataset. Unable to find block with offset offset, length length Explanation: dataset is the dataset name of the file being read. offset is the offset within the file which is being read. length is the length of data being read from the file. This message is output by PKZIP when it is unable to find the specified block within a ZIP archive or a temporary file. Action: Ensure that the -ARCHIVE command specifies a correctly formatted ZIP archive. This error may indicate that the ZIP archive has become corrupted. T4ASI025-00-00 PKZIP and PKUNZIP Messages 367 889 Severity: Error Message Text: Error inserting cache entry: response code Explanation: code is response code returned by the cache manager when inserting data into the cache. Action: Ensure that there is sufficient memory for the cache manager, by increasing the -CACHEMEMORY command. This error may also be output as a result of an underlying file problem, which will invoke other error messages. 890 Severity: Error Message Text: Error retrieving cache entry for offset offset: response code Explanation: code is response code returned by the cache manager when retrieving data from the cache. Offset is the offset within the logical file that is being read. Action: Ensure that there is sufficient memory for the cache manager, by increasing the -CACHEMEMORY command. This error may also be output as a result of an underlying file problem, which will invoke other error messages. 891 Severity: Error Message Text: Unable to open ZIP archive - too few resources allocated Explanation: PKZIP has attempted to open the old ZIP archive, but has been unable to read all of the archive into temporary storage. The file handler does not support positioning for an archive on this storage medium, so data with in the archive cannot be accessed. Action: Ensure that there are sufficient temporary archive resources allocated to hold all of this ZIP archive, or move it to a medium which is supported by a file handler which supports positioning on a file. 892 Severity: Warning Message Text: ZIP archive opened using direct file processing, may be slow Explanation: PKZIP has attempted to open the old ZIP archive, but has been unable to read all of the archive into temporary storage. However, the file handler can find data on the ZIP archive only using a slow positioning method, so processing the data may be slow. Action: Ensure that there are sufficient temporary archive resources allocated to hold all of this ZIP archive, or move it to a medium which is supported by a file handler which supports positioning on a file. 368 PKZIP for MVS: User Reference T4ASI025-00-00 893 Severity: Error Message Text: ZIP archive cannot read using this file handler Explanation: PKZIP has attempted to read part of a ZIP archive, but has found that it cannot position correctly. This is probably a problem within the file handler. Action: Contact support for a corrected file handler. As a temporary solution, copy the archive to a dataset of a type that is supported. 894 Severity: Warning Message Text: ZIP archive cannot be renamed to its final name (finalname), it has been named newname. File handler does not support renaming Explanation: PKZIP has attempted to rename the ZIP archive to its final required name, but this is not supported by the file handler. Action: Consider allocating the ZIP archive to a medium which has a file handler which supports renaming. Otherwise, delete the old ZIP archive and rename the new ZIP archive by hand. 895 Severity: Error Message Text: Unable to select ZIP archive name for creation Explanation: PKZIP has attempted to select the ZIP archive to create, but it cannot be selected. Action: Check that all parameters for creating a ZIP archive have been correctly specified. 901 Severity: Error Message Text: Unable to allocate file name, DYNALLOC error code code Explanation: name is the name of the dataset being allocated. code is the error code returned from DYNALLOC. PKUNZIP has been attempting to allocate the specified external dataset or member. However, an error has occurred, and the DYNALLOC macro has returned the specified hexadecimal error code. Action: Ensure that the specified dataset exists, and that there is sufficient space for all the data to be output, if it is being opened for output. T4ASI025-00-00 PKZIP and PKUNZIP Messages 369 902 Severity: Error Message Text: Unable to deallocate file name, DYNALLOC error code code Explanation: name is the name of the dataset being deallocated. code is the error code returned from DYNALLOC. PKUNZIP has been attempting to deallocate the specified external dataset or member. However, an error has occurred, and the DYNALLOC macro has returned the specified hexadecimal error code. Action: Ensure that the specified dataset exists, and that there is sufficient space for all the data to be output, if it is being opened for output. 903 Severity: Error Message Text: Error deleting file name Explanation: name is the name of the dataset being deleted. PKUNZIP was attempting to delete the specified dataset or member when an error occurred. The problem is described in more detail by the IDCAMS messages which follow this message. Action: Refer to the IDCAMS messages for more information. 904 Severity: Error Message Text: No DCB attributes for file name Explanation: name is the name of the dataset being opened. PKZIP was attempting to open the specified dataset for input but the required DCB attributes were not available to the program. Action: If using the -INDD or -ARCHINDD commands then try specifying the DCB information on the DD statement. 905 Severity: Error Message Text: Close error, option=option, r15=value, file=name Explanation: value is the value of register 15 on return from the CLOSE macro. name is the name of the dataset being closed. PKZIP was attempting to close the dataset when the specified error occurred. Action: Look the error code up in the appropriate IBM manual. 370 PKZIP for MVS: User Reference T4ASI025-00-00 906 Severity: Error Message Text: Cache manager error, r15=value, file=name Explanation: value is the value of register 15 on return from the cache manager. name is the name of the dataset being processed. Action: Contact your supplier for more information. 907 Severity: Error Message Text: No cache available, file=name Explanation: name is the name of the dataset being processed. Action: Contact your supplier for more information. 908 Severity: Error Message Text: Stow failed, r15=xvalue15, r0=xvalue0, member=member, file=name Explanation: value15 is the value of register 15 on return from the STOW macro. value0 is the value of register 0 on return from the STOW macro. member is the name of the member being STOWed. PKZIP was attempting to STOW the dataset when the specified error occurred. Action: Look the error code up in the appropriate IBM manual. 909 Severity: Error Message Text: Internal processing error occurred at location Explanation: location is a location in the PKZIP code. PKZIP encountered an unexpected situation which prevented processing from continuing. Action: Contact your supplier for more information. 910 Severity: Error Message Text: Point failed, r15=xvalue, file=file Explanation: value is the value of register 15 on return from the POINT macro. file is the name of the dataset being processed. PKZIP was attempting a POINT on the dataset when the specified error occurred. T4ASI025-00-00 PKZIP and PKUNZIP Messages 371 Action: Look the error code up in the appropriate IBM manual. 911 Severity: Error Message Text: T4IDCAMS error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from T4IDCAMS. file is the name of the dataset being processed. PKZIP was attempting to use IDCAMS when the specified error occurred. Action: Contact your supplier for more information. 912 Severity: Error Message Text: T4IDCDEL error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from T4IDCDEL. file is the name of the dataset being processed. PKZIP was attempting to use IDCAMS when the specified error occurred. Action: Contact your supplier for more information. 913 Severity: Error Message Text: GENCB error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from the GENCB macro. file is the name of the dataset being processed. PKZIP was attempting to use the GENCB macro when the specified error occurred. Action: Contact your supplier for more information. 914 Severity: Error Message Text: SHOWCB error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from the SHOWCB macro. file is the name of the dataset being processed. PKZIP was attempting to use the SHOWCB macro when the specified error occurred. Action: Contact your supplier for more information. 915 Severity: Error Message Text: OPEN error, file=file 372 PKZIP for MVS: User Reference T4ASI025-00-00 Explanation: file is the name of the dataset being opened. PKZIP was attempting to open the file when the specified error occurred. Action: Contact your supplier for more information. 916 Severity: Error Message Text: MODCB error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from the MODCB macro. file is the name of the dataset being processed. PKZIP was attempting to use the MODCB macro when the specified error occurred. Action: Contact your supplier for more information. 917 Severity: Error Message Text: Open error, r15=xvalue, file=file Explanation: value is the value of register 15 on return from the OPEN macro. file is the name of the dataset being processed. PKZIP was attempting to open the dataset when the specified error occurred. Action: Look the error code up in the appropriate IBM manual. 918 Severity: Error Message Text: Zero length INDD name Explanation: No DDNAME was specified in the -INDD command Action: Specify a DDNAME in the -INDD command. 919 Severity: Error Message Text: INDD not licensed for this file type Explanation: You are not licensed to process the type of dataset referenced by the -INDD command. Action: Correct the -INDD command or contact your supplier for more information. T4ASI025-00-00 PKZIP and PKUNZIP Messages 373 920 Severity: Error Message Text: Write error, code=xerrcode, r15=xvalue, file=file Explanation: errcode is the error code returned from the PUT macro. value is the value of register 15 on return from the PUT macro. file is the name of the dataset being processed. PKUNZIP was attempting to write a record to the specified VSAM dataset. However, an error has occurred and the PUT macro has returned the specified hexadecimal error code. Action: Look the error code up in the appropriate IBM manual. VSAM Macro Return and Reason Codes are documented in the Macro Instructions for Data Sets manual. 921 Severity: Error Message Text: Open error xerrcode, r15=xvalue, file=file Explanation: errcode is the error code returned from the OPEN macro. value is the value of register 15 on return from the OPEN macro. file is the name of the dataset being processed. PKUNZIP was attempting to open the specified dataset. However, an error has occurred, and the OPEN macro may have issued error messages to the log. Action: Find the error messages in the log and look the error code up in the appropriate IBM manual. VSAM Macro Return and Reason Codes are documented in the Macro Instructions for Data Sets manual. 922 Severity: Warning Message Text: Ignoring duplicate key=key file=name Explanation: key is the key being processed (max 37 chrs). name is the name of the dataset being written. PKUNZIP was attempting to write to the specified dataset when a duplicate key was encountered. The record was ignored and processing continued. Action: Refer to the -OUTDUPLICATES commands. 374 PKZIP for MVS: User Reference T4ASI025-00-00 923 Severity: Error Message Text: Duplicate key found=key, aborting file=name Explanation: key is the key being processed (max 37 chrs). name is the name of the dataset being written. PKUNZIP was attempting to write to the specified dataset when a duplicate key was encountered. Processing for the dataset was aborted. Action: Refer to the -OUTDUPLICATES commands. 924 Severity: Error Message Text: Read error, code=xerrcode, r15=xvalue, file=file Explanation: errcode is the error code returned from the GET macro. value is the value of register 15 on return from the GET macro. file is the name of the dataset being processed. PKZIP was attempting to read a record from the specified VSAM dataset. However, an error has occurred and the GET macro has returned the specified hexadecimal error code. Action: Look the error code up in the appropriate IBM manual. VSAM Macro Return and Reason Codes are documented in the Macro Instructions for Data Sets manual. 925 Severity: Error Message Text: macro error, r15=xvalue, file=file Explanation: macro is the macro that returned the error. value is the value of register 15 on return from the macro. file is the name of the dataset being processed. Action: Attempt to determine why the dataset could not be processed. Check for relevant JES messages in the job output. Correct the problem and retry. 926 Severity: Error Message Text: Dynalloc error s99code, info s99info, for DD ddname Explanation: s99code is the return code returned by dynalloc. s99info is the reason code returned. ddname is the DDNAME being allocated. PKZIP failed to allocate the specified ddname Action: Attempt to determine why the dataset could not be processed. Check for relevant JES messages in the job output. Correct the problem and retry. T4ASI025-00-00 PKZIP and PKUNZIP Messages 375 927 Severity: Error Message Text: Deallocate error s99code, info s99info, for DD ddname Explanation: s99code is the return code returned by dynalloc. s99info is the reason code returned. ddname is the DDNAME being allocated. PKZIP failed to allocate the specified ddname Action: Attempt to determine why the dataset could not be processed. Check for relevant JES messages in the job output. Correct the problem and retry. 928 Severity: Error Message Text: MAKEPDS not valid when overwriting a VSAM file Explanation: You specified -MAKEPDS when attempting to overwrite a VSAM file. Action: Remove the -MAKEPDS command or unzip the file to a different name. 929 Severity: Warning Message Text: Module nodule name may not be executable when extracted, module attributes: attributes. Explanation: The selected load module uses attributes, such as OVERLAY segments, that are not directly supported by PKZIP. The extracted module may not be useful. The attributes displayed can be interpreted using PDS2ATR in IHAPDS, alternatively browse the PDS. Action: Test to make sure the module can be used. If not, preprocess the member in some way (e.g. using TSO transmit) to allow it to be compressed. 930 Severity: Warning Message Text: Unable to extract ZIP file file Explanation: file is the ZIP file name that PKUNZIP is attempting to extract. PKUNZIP has been requested to extract the specified ZIP file. However, the dataset to which the ZIP file would be extracted already exists, and would be overwritten if the ZIP file was extracted. PKUNZIP will not overwrite datasets or members unless the -OVERWRITE command is specified. Action: Specify the correct file for extraction from the ZIP archive. Modify the intended destination for the ZIP file by using the -HLQ command or -NOHIERARCHY commands. Alternatively specify the -OVERWRITE command if the dataset is to be overwritten by the extracted file. 376 PKZIP for MVS: User Reference T4ASI025-00-00 931 Severity: Warning Message Text: Output dataset=file member=member already exists or -INSERTMEMBER not specified. Explanation: file is the ZIP file name that PKUNZIP is attempting to extract. PKUNZIP has been requested to extract the specified member. However, either the member already exists (and would be overwritten) and – OVERWRITE has not been specified or the member does not exist and INSERTMEMBER has not been specified. Action: Specify the correct file for extraction from the ZIP archive. Modify the intended destination for the ZIP file by using the -HLQ command or -NOHIERARCHY commands and -ZIPCUR commands. Alternatively specify the -OVERWRITE command if the member should be overwritten by the extracted file, or -INSERTMEMBER if the member does not exist.' 932 Severity: Warning Message Text: Archive name <file> has been converted to <MVS name>, which is not a valid MVS name - file ignored. Explanation: file is the ZIP file name that PKUNZIP is attempting to extract. PKUNZIP has been requested to extract the specified ZIP file. However, the name of the file did not resolve to a valid MVS dataset name. Action: Specify the correct file for extraction from the ZIP archive. Modify the intended destination for the ZIP file by using the -HLQ command. Ensure that any other name conversion commands (like -PATH) are specified correctly. 933 Severity: Error Message Text: Unsupported attribute: attrib value: Xflag for file file Explanation: The attribute attrib value flag has been found for the file. file is the file that PKZIP was attempting to process. PKZIP cannot process this type of file. Action: Contact your supplier for more information. T4ASI025-00-00 PKZIP and PKUNZIP Messages 377 934 Severity: Error Message Text: Output dataset=file already exists. Explanation: file is the file that PKUNZIP was attempting to process. PKUNZIP has been requested to extract the specified ZIP file. However, the dataset to which the ZIP file would be extracted already exists, and would be overwritten if the ZIP file was extracted. PKUNZIP will not overwrite datasets or members unless the OVERWRITE command is specified. Action: Specify the correct file for extraction from the ZIP archive. Modify the intended destination for the ZIP file by using the -HLQ command. 935 Severity: Error Message Text: ARCHINDD and ARCHOUTDD only support sequential files:filetype:file Explanation: filetype is the file type that PKZIP was attempting to process. file is the file that PKZIP was attempting to process. PKZIP cannot process this type of file. Action: Contact your supplier for more information. 936 Severity: Error Message Text: I/O error READING file:file member:member Explanation: file is the file that PKZIP was attempting to process. member is the member name being processed, if any. PKZIP’s SYNAD routine was driven. PKZIP cannot process this file. Action: Contact your supplier for more information. 937 Severity: Error Message Text: DCB abend:code WRITING file:file member:member Explanation: code is the system completion code encountered. file is the file that PKZIP was attempting to process. member is the member name being processed, if any. PKZIP’s DCB ABEND exit was driven. PKZIP cannot process this file. Action: Look up the system completion (abend) code and attempt to determine and correct the problem. Contact support for more information. 378 PKZIP for MVS: User Reference T4ASI025-00-00 938 Severity: Error Message Text: More than 16383 files selected - PKZIP limit exceeded. Explanation: A PKZIP archive cannot contain more than 16383 files. Your file selection has selected more files than PKZIP can process. Action: Modify your file selection to select fewer files. 939 Severity: Error Message Text: No members found for file:file Explanation: file is the file that PKZIP was attempting to process. PKZIP was asked to process a PDS but did not find any members in the PDS. PKZIP cannot process this dataset. Action: Contact your supplier for more information. 940 Severity: Warning Message Text: licence licence required to process file file Explanation: To process the file specified by file, a licence of type licence is required. No such licence has been found Action: Purchase a licence of the required type if this file is to be processed 941 Severity: Error Message Text: Invalid combination of characteristics for file file Explanation: .The file identified cannot be defined using the combination of file attributes that have been defined, defaulted or specified, as the combination is not supported Action: Change at least one of the file specifications using the associated command, so that the combination is valid. The attributes causing the failure will be output in the following message(s). 942 Severity: Warning Message Text: Attribute attribute value value Explanation: This message identifies attributes of files that (in combination) are not valid. The associated file is identified in a preceding message. The value has been specified by a command, extracted from an archive, or defaulted. Action: Change at least one of the file specifications using the associated command, so that the combination is valid. Refer to the associated file documentation for details of valid combinations. T4ASI025-00-00 PKZIP and PKUNZIP Messages 379 943 Severity: Error Message Text: Variable Explanation: This message indicates an error in the processing as described in the text of the message. Action: Review the message output and determine the appropriate corrective action. If this is unclear, refer to your supplier. 944 Severity: Warning Message Text: Member name extracted from file too long – shortened to member. Explanation: The UNZIP processing has converted the file name for use as an MVS dataset and has detected that the converted member name is > 8 characters. The member name has been shortened to member. Action: Check that the chosen name is valid. If not change the processing commands (such as -CNVEXT or -HLQ) to create a valid member name. 945 Severity: Error Message Text: Unable to select file name, function error code code. Explanation: name is the name of the file being selected. code is the error code returned from function. File selection for this file is not possible - the function and code should indicate why not. Action: Determine whether or not the indicated file should have been processed. If so, then investigate the error code, correct as appropriate and rerun the job. The only function that uses this message is DYNALLOC, so the code specified will be an error from Dynamic Allocation. 946 Severity: Error Message Text: File Selection Process terminated due to error(s) Explanation: File selection processing has stopped because there have been selection error(s) and the specification requested stopping on file selection errors. Action: Investigate and resolve previously identified errors, and/or check the specification of -FILESELERR. Once corrected, rerun the step. 380 PKZIP for MVS: User Reference T4ASI025-00-00 947 Severity: Information Message Text: Alias Entry: alias, created for member: member. Explanation: An Alias entry has been created for the indicated member of the library being extracted. Action: No action required if Alias entries are expected. If not, use the -NOALIASMEMBER command to suppress creation of Alias entries. 948 Severity: Error Message Text: Input file file too big, exceeds 4GB limit. Explanation: The specified input file is too big to be placed in a ZIP archive. Processing this file will be terminated. Action: Determine another method to process the file, for example, by splitting it into two parts or by using GZIP processing. 949 Severity: Warning Message Text: Archive file may exceed 4GB limit - compression terminated. Explanation: The archive being created may exceed 4GB in size which is the architectural limit for a ZIP archive. ZIP processing has been terminated. Archive may be useful. Action: Determine another method to process the input file(s) for example, by splitting it (them) into two parts. The archive created may be useful - use the VIEW command and output from the failing ZIP process to determine files that have and have not been added correctly. 950 Severity: Error Message Text: Archive file too big, exceeds 4GB limit. Explanation: The archive being created/read exceeds 4GB in size, which is the architectural limit for a ZIP archive. Action: For PKZIP, determine another method to process the input file(s) for example, by splitting it (them) into two parts if creating the archive. If reading the archive, recreate it with less data. T4ASI025-00-00 PKZIP and PKUNZIP Messages 381 951 Severity: Warning Message Text: Archive entry archive_entry ignored, reason text Explanation: The archive being processed contains the file archive_entry which is not going to be processed as indicated by reason text. Action: Review why the entry is not going to be processed and check the entry using the VIEW command. Correct as appropriate. 952 Severity: Information Message Text: Statistic: Statistics Explanation: This message is used in response to the -STATISTICS command to output statistics at the completion of ZIP processing. Action: None. 953 Severity: Error Message Text: Unable to select file name, function error code code, file is in use. Explanation: name is the name of the dateset being selected. code is the error code returned from function. File selection for this file is not possible - the function and code should indicate why not, but the processing suspects the file is busy. Action: Determine whether or not the indicated file should have been processed. If so, then investigate why it was not accessible. Investigate changing the FILESELERR options to stop the processing when a busy file is detected. 954 Severity: Warning Message Text: Unable to determine member name for file filename, the character ? has been used. Explanation: Filename is the name of the dataset being selected. This dataset is a PDS, but no member name was defined. The member name ? has been used. Action: This problem is usually a result of coding inappropriate name conversion parameters, for example HLQ, ZIPCUR and CNVEXT commands. Check these commands and the output dataset defined in this message. 382 PKZIP for MVS: User Reference T4ASI025-00-00 955 Severity: Information Message Text: Configuration file in use, waiting for access. File: Filename. Explanation: This message appears on the Console and the ZIP output. The indicated file is currently busy. This message is repeated until the file is released or the wait count is exceeded. Action: Determine who/what is holding the configuration file and release it. If necessary, use the CONFIG JCL DD to stop the processing using the Global Configuration File. 956 Severity: Error Message Text: Member name Memname selected, but output file Filename is not a PDS. Explanation: The ZIP file selected is intended to be output as a member of a PDS, but the selected output file exists and is not a PDS. Action: Determine whether the name conversion parameters (such as ZIPCUR and CNVEXT) are intended to create a member as has happened. Change these commands to reference an appropriate type of dataset and re-run. 957 Severity: Error Message Text: File: file-name does not exist. Explanation: The file identified (which could be a DD) does not exist or ZIP processing can not find it. Action: Determine whether the file exists and how the ZIP processing could get access to the dataset. Make changes to support this and rerun. T4ASI025-00-00 PKZIP and PKUNZIP Messages 383 Chapter 27. User Abend Codes During normal operation PKZIP should not abend. In a few exceptional circumstances though (e.g. when the system prevents standard functions from being performed) PKZIP may terminate with a user abend code. This chapter gives details of the possible user abend codes produced by PKZIP and PKUNZIP. The user abend codes detailed in this section are typically accompanied by a WTO message which will appear near to the top of the JES job log. Most messages are the same in both PKZIP and PKUNZIP; where there is a difference, this is noted in the explanation for the message. WTO Message format The format of the WTO messages produced by both PKZIP and PKUNZIP is as follows: prefix ABEND Unnnn < - Optional Message Text -> where: prefix is a prefix indicated from which program the message originated. The possible values are: PKZIP applies to both PKZIP and PKUNZIP ZIP for the PKZIP program UNZIP for the PKUNZIP program nnnn is the user abend code. Any additional message text will be described in the following section, listed against the individual abend code. JES Message format The following JES message will normally accompany the WTO message: IEF450I jobname stepname ABEND=S000 Unnnn Reason=xxxxxxxx where: T4ASI025-00-00 jobname is the job name associated with this invocation of PKZIP. stepname PKZIP. is the step name associated with this invocation of nnnn is the user abend code. User Abend Codes 385 xxxxxxxx is the reason code associated with this abend (typically the return code from the failing system function). Details of WTO messages produced by PKZIP and PKUNZIP U0004 Message Text: PKZIP ABEND U0004 Explanation: The system was unable to release an area of storage as requested by PKZIP. PKZIP will perform no further processing. Action: Contact your supplier, describing the events leading up to the error. Provide details of the WTO message and the IEF450I message which accompanies it. Retain the dump, the original JCL and the ZIP archive used for possible debugging purposes. U0008 Message Text: PKZIP ABEND U0008 Explanation: The system was unable to allocate an area of storage requested by PKZIP. PKZIP will perform no further processing. Action: Try re-running the job with a larger region size e.g. in the JCL specify: //stepname EXEC PGM=PKZIP,REGION=4M where: K M specifies 1024 byte units specifies 1024 * 1024 byte units If increasing the region size does not cure the problem then contact your supplier, describing the events leading up to the error. Provide details of the WTO message and the IEF450I message which accompanies it. Retain the dump, the original JCL and the ZIP archive used for possible debugging purposes. U0028 Message Text: PKZIP ABEND U0028 Explanation: A PKZIP or PKUNZIP Subtask has not completed properly. Previous messages should indicate the problem and the failing Subtask. Action: Investigate the previous messages and attempt to correct them. If the problem persists then contact your supplier, describing the events leading up to the error. Provide details of the WTO message and the IEF450I message which accompanies it. Retain the dump, the original JCL and the ZIP archive used for possible debugging purposes. 386 PKZIP for MVS: User Reference T4ASI025-00-00 Chapter 28. Licensing Messages This chapter gives details of the standard messages produced by the Licensing System. All the messages detailed in this section are written to SYSPRINT by the ZIPPLIC licensing program. Message format The format of the messages produced by the Licensing System is as follows: T4Xnnns < - Message Text -> where: nnn is the message number. s is the severity. The possible values are: E W I Error Warning Information The messages produced are described in the following section, listed in order of message number. Details of messages If you see a message number that is not included in this document, then use your normal support procedures to receive an explanation. 001 Severity: Error Message Text: Invalid input control record Explanation: License processing has detected an error on the input statement. Action: Check that the input statement matches the information supplied and (in the case of Initialisation, Report or Verification statements) the format specified in this document. Correct and retry. T4ASI025-00-00 Licensing Messages 387 002 Severity: Error Message Text: Product Initialisation not supported Explanation: An attempt was made to initialise the Product, however the only way to initialise this product is to obtain control statements from an authorised Distributor or Targetfour. Action: Obtain control statements from an authorised Distributor or Targetfour. 011 Severity: Error Message Text: Error on SYSIN file. Explanation: An error occurred while attempting to read control records from SYSIN. All processing is abandoned and the program terminates with a condition code 4 and no further processing is performed. Action: Check that the SYSIN file has been correctly specified and rerun the program. If the error continues call for support. 012 Severity: Error Message Text: Error on SYSPRINT file Explanation: An error occurred when trying to write output to the SYSPRINT file. Action: Correct the problem with SYSPRINT and retry. 013 Severity: Error Message Text: Error on getmain in update Explanation: An error occurred while attempting to obtain storage to be used when the License Database is physically updated. All processing is abandoned and the program terminates with a condition code 12. Action: Ensure that there is enough virtual storage available and rerun the program. If the error continues call for support. 015 Severity: Error Message Text: Eof on pds library Explanation: While processing the library in which ZIPPLIC resides, an End of File condition was raised. This potentially indicates that the library is corrupt. Action: Check that the load library has been correctly specified and rerun the program. If the error continues call for support. 388 PKZIP for MVS: User Reference T4ASI025-00-00 016 Severity: Error Message Text: Synad error on pds library Explanation: An error has occurred during processing on the load library on which ZIPPLIC resides. All processing is abandoned and the program terminates with a condition code 20. Action: Check that the load library has been correctly specified and rerun the program. If the error continues call for support. 017 Severity: Error Message Text: Product already installed on the system Explanation: The Product being Added or Initialised is already present. Action: Run a Report to determine the status of the Product on the system. Obtain corrected control statements in the light of this information. 025 Severity: Information Message Text: Product verified successfully' Explanation: The Product can be successfully used on the indicated CPU. Action: None. 026 Severity: Error Message Text: Product not installed Explanation: The Product to be verified is not installed. Action: Ensure that the correct Product identifier has been given on the Verification statement, correct and retry. Contact support for a License Update to install the Product. 029 Severity: Error Message Text: Product has expired Explanation: Verification has reported that the Product has expired. Action: Obtain an update to allow the use of the Product. 030 Severity: Information Message Text: Executing on CPU: %1. Explanation: This message displays the first processor on the system in which the License Processing is being performed. Action: None. T4ASI025-00-00 Licensing Messages 389 039 Severity: Information Message Text: Product: %1, %2 successfully Explanation: The indicated update (%2) for the Product entry %1 has been made. Action: None. 040 Severity: Error Message Text: Unable to determine CPU serial number. Explanation: License processing has been unable to determine the CPU ID associated with the currently executing processor. All license processing will fail. Action: Retry the process to confirm there was not a temporary problem. If not, contact support. 041 Severity: Error Message Text: License Table has already been initialised. Explanation: The License Database can only be initialised once. Action: Contact support for an update to allow the processing required. 052 Severity: Error Message Text: Todays Date does not match PARM date. Explanation: The Short Term License utility was invoked on a date that does not match that supplied on the PARM option. Action: Verify that the PARM has been input correctly. If so, either rerun on the correct date or obtain a new parameter for sue from your supplier. 053 Severity: Error Message Text: Parameter not recognised or not valid. Explanation: The Short Term License utility was invoked with an invalid or missing parameter. Action: Obtain the parameter for use from your supplier. Verify that it has been input correctly so that the utility may use it. 054 Severity: Error Message Text: Open failed. LICOUT file error. Explanation: The Short Term License utility was attempting to write license output control statements to the LICOUT dataset but this processing failed. Action: Verify that the appropriate JCL or control statements have been used to specify the LICOUT dataset correctly. Re-run the generation. 390 PKZIP for MVS: User Reference T4ASI025-00-00 055 Severity: Error Message Text: Open failed. Dataset: %1, Member: %2, Code: %3. Explanation: The Update processing attempted to open the indicated dataset %1, looking for member %2, but received the error %3. Action: Verify that the member is in the library. Ensure that the STEPLIB dataset correctly identifies the Targetfour Product library (and ONLY this library). 056 Severity: Error Message Text: Too many input statements received. Explanation: License Update processing can only process a certain number of statements at once. At present this limit is 60 statements. Action: Contact support and request that they supply the update as a number of updates, each with fewer statements. 057 Severity: Error Message Text: Not authorised to run on this CPU Explanation: The Product is installed but cannot be executed on the indicated CPU. Action: If it is essential to run the Product on that CPU, obtain an update to authorise this. 058 Severity: Error Message Text: Dataset: %1 block size less than move length. Explanation: The Update processing attempted to update a license database but the record size of dataset %1 was less than the length of record to be updated. Action: Ensure that the product has been installed as documented, especially noting the block sizes of the target datasets. Contact support. 059 Severity: Error Message Text: Error loading License Table. Explanation: The License Database could not be loaded. Action: Ensure the procedures defined for updating the License Database have been followed correctly. Retry. Contact support for further information. T4ASI025-00-00 Licensing Messages 391 060 Severity: Error Message Text: Extension limit reached, extension not allowed. Explanation: The extension requested cannot be installed as the limit on the number of extensions has been reached. Action: Obtain an update to the license Database to allow further extensions. 061 Severity: Information Message Text: License may be extended again. Explanation: There are only a restricted number of times that a license may be extended. This message indicates that there is at least one more time that a license in this database may be extended. Action: None. 062 Severity: Warning Message Text: No further extensions are possible. Explanation: No Product licenses in this License Database may be extended again. Action: If you believe that another extension is likely to be requested, contact support for an update to the table to allow this. 069 Severity: Error Message Text: Requested Function is not authorised. Explanation: The function requested by the verify process is not authorised on the indicated CPU. Action: If this function is essential, obtain an update to allow it. 071 Severity: Error Message Text: CPU Entry already exists. Explanation: Add or initialise processing is attempting to add a CPU ID that already exists. The update is terminated. Action: Obtain a corrected update statement. 072 Severity: Error Message Text: Product Entry already exists. Explanation: Add or initialise processing is attempting to add a Product that already exists. The update is terminated. Action: Obtain a corrected update statement. 392 PKZIP for MVS: User Reference T4ASI025-00-00 073 Severity: Error Message Text: CPU Entry does not exist. Explanation: Delete processing is attempting to remove a CPU ID that does not exist. The update is terminated. Action: Obtain a corrected update statement. 074 Severity: Error Message Text: Product Entry does not exist. Explanation: Delete processing is attempting to remove a Product that does not exist. The update is terminated. Action: Obtain a corrected update statement. 075 Severity: Error Message Text: Invalid entry found in table - processing terminated. Explanation: A corrupted entry has been found in the database. Updates are not allowed until this entry has been fixed. Action: Print a report of the License Database. Pass this to support for an update to correct the corruption. 076 Severity: Error Message Text: License Table has not been initialised Explanation: License Table has not been initialised. Action: Initialise the license as documented in the Installation procedure. 080 Severity: Information Message Text: * Explanation: This is a ‘spacer’ line to improve the readability of the output. Action: None 081 Severity: Information Message Text: %1' Explanation: Information message, as formatted by the License Process. Action: None. 082 Severity: Information Message Text: Version: %1, last updated on: %2, for: %3 Explanation: This message displays information about the License Database, for the customer %3. Action: None. T4ASI025-00-00 Licensing Messages 393 083 Severity: Warning Message Text: License Table has not been initialised. Explanation: There are no Product/CPU entries in the License Database, meaning it cannot be used to license any Product. Action: Obtain an update to license the Product, or initialise the database for a Product that is being installed. 084 Severity: Information Message Text: Product: %1, License Num: %2. Explanation: The indicated Product has been found in the License Database. Action: None, assuming this Product is expected. If not, contact support to obtain control statements to delete this entry. 085 Severity: Information Message Text: Start: %1, End: %2, Users: %3. Explanation: This message gives the start and end dates for which the preceding Product may be validly run. Action: None, assuming that these dates are as expected. 086 Severity: Warning Message Text: No CPU entries to report. Explanation: The preceding Product is not licensed for any CPUs. Action: Verify that this is a valid state. If not contact support for an update to license the CPUs on which you expect to run the Product. 087 Severity: Information Message Text: Licensed for: %1, %2. Explanation: This message lists CPU entries that the preceding Product is licensed for. Action: None. 088 Severity: Information Message Text: Functions: %1%2. Explanation: This message lists the functions as 32 characters each of which are Y (Yes) or N (No). For each of the Y functions, the following messages will display their associated function. Action: None. 089 Severity: Information Message Text: - %1. Explanation: Information only, this message is used as part of the reporting process. Action: None. 394 PKZIP for MVS: User Reference T4ASI025-00-00 090 Severity: Information Message Text: CPU Table Explanation: Information only, this message is used as part of the reporting process. Action: None. 091 Severity: Information Message Text: CPU Number: nn, CPU Id: xxxxxxxxxxxx. Explanation: Information only, this message is used as part of the reporting process. The CPU number will typically be a number from 0 to 15. The Id. will be ‘Not Defined’ if there is no CPU defined, otherwise it will be the serial number of the processor. Action: None. 098 Severity: Information Message Text: Customer entry: %1, %2 successfully. Explanation: The indicated update (%2) for the Customer Name entry (%1) has been made. Action: None. 099 Severity: Information Message Text: CPU ID: %1, %2 successfully. Explanation: The indicated update (%2) for the CPU entry %1 has been made. Action: None. 100 Severity: Information Message Text: Processing Input: %1 Explanation: The control displayed in the message has been read in and will be processed. Action: None. 101 Severity: Information Message Text: License Process: %1, starting. Explanation: The Targetfour Licensing Processing is starting. Action: None 102 Severity: Information Message Text: License Process: %1, ending. Explanation: The Targetfour Licensing Processing is terminating. Action: None T4ASI025-00-00 Licensing Messages 395 103 Severity: Error Message Text: Error detected in License Table Explanation: At least one of the entries in the License database has not been validated correctly. This entry (these entries) will not be used for Product validation. Action: Print a report of the license database using the standard Reporting facilities. Provide your support organisation with this report and request an update for the failing entry(ies) to correct the corruption. 104 Severity: Error Message Text: Validation error with preceding entry Explanation: When extracting information from the Licensing database, a corrupt entry was detected. The preceding line(s) will indicate that entry (which will be a Product, CPU or Customer name entry). Information for that entry is ignored for Product validation. Action: Provide the output to your support organisation and request an update to the failing entry to correct the corruption. 105 Severity: Error Message Text: Insufficient space in table - Update aborted. Explanation: The License Database is full and must be enlarged or Products deleted to make space for the latest additions. Action: Run a report to determine the status of the system. Obtain corrected control statements in the light of this information, which will delete redundant entries. If necessary, obtain a larger License Database from your Supplier. 106 Severity: Information Message Text: Update Completed. Explanation: The updates to the license database have been completed correctly. Action: None. 107 Severity: Information Message Text: Update Skipped - no changes made. Explanation: Either no updates were supplied or these updates did not change the information in the license database. Action: Confirm that this is a valid situation. 396 PKZIP for MVS: User Reference T4ASI025-00-00 123 Severity: Error Message Text: Update error: %1, Operation: %2. Explanation: While performing the operation %2 on the license database, the update processing received error %1. Action: Contact support for an explanation and corrective action. T4ASI025-00-00 Licensing Messages 397 Part 7. Appendices T4ASI025-00-00 399 Appendix A. Installation Guide This section provides detailed guidance on how to install PKZIP on your site. PKZIP for MVS will run on any IBM or compatible host machine which is running under an MVS (OS/390) operating system. It runs as a batch job executed from JCL or in foreground from the ISPF panel interface. There are five steps in the installation of the product: 1. Prerequisites. Ensure that the intended host system is suitable for the operation of PKZIP for MVS. 2. MVS Installation. Create the required partitioned datasets and load the PKZIP for MVS datasets from the installation medium. PKZIP for MVS may be supplied on Magnetic Cartridge, or via PC file. This Appendix describes the installation from a Magnetic Cartridge, the Readme instructions supplied with the PC file describes additional information applicable to installations from that media. 3. Licensing. License the product on a trial basis for 30 days. 4. Apply Maintenance: Obtain and review any patches/fixes available for the product. Apply all available patches unless specifically instructed otherwise. 5. Installation Verification Procedure. Confirm that PKZIP was installed correctly by running a compression, view and decompression. 6. Further Tailoring. Tailor the product to match the requirements of your installation PKZIP for MVS is a licensed product. The installation procedure above will provide a 30 day license to allow the product to be evaluated. During the evaluation period, you must obtain licensing details for PKZIP from your supplier if you wish to continue to run the product. Full details about the licensing of the product are described in Appendix B. Licensing Guide. Prerequisites Before installing PKZIP for MVS you should ensure that the intended host system is capable of running PKZIP 2.5 for MVS. To invoke PKZIP and PKUNZIP via the ISPF panel interface, a user must have the recommended TSO size of 4Mb or above. T4ASI025-00-00 Installation Guide 401 Suitable Host Systems Prerequisites for PKZIP for MVS are an MVS/ESA, OS/390 operating system or higher. The appropriate level of JES (JES2 or JES3) is also required. Notes for existing users of PKZIP Version 2.1 for MVS The installation procedure has changed for PKZIP 2.5 for MVS, your existing JCL used for installing PKZIP 2.1 for MVS is not valid. Please use the new JCL provided. The main changes are: Selection of translation table at installation time No 24 bit version of the product (explained below). Users of PKZIP 2.1 for MVS were provided with two versions of PKZIP for installation. One version was designed to run in 31 bit addressing mode (AMODE), the other in 24 bit addressing mode. Installations running DFP were required to run the 24 bit version because some I/O calls to DFP cannot support 31 bit addressing or the use of storage above the 16Mb line. Only one version of PKZIP 2.5 for MVS is provided. It runs in AMODE 31 using storage above the 16Mb line wherever possible. When an I/O call is made it switches temporarily to AMODE 24 and uses only data below the 16Mb line. MVS Installation This section describes the first stages in the installation of PKZIP for MVS. The stages are: 1. Understand what libraries are supplied and what datasets will be created. 2. Decide which translation table you require. 3. Load the PKZIP for MVS datasets from the installation media. PKZIP for MVS Supplied Libraries The following libraries are supplied with PKZIP for MVS. PKZIP for MVS Supplied Libraries 402 Medium DSN Description Suggested DSN ZIP.Vnn.SOURCE Source Files PKZIP.Vnnx.SOURCE ZIP.Vnn.LOADLIB Load Libraries PKZIP.Vnnx.LOADLIB ZIP.Vnn.CNTL Sample JCL PKZIP.Vnnx.CNTL PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP for MVS Supplied Libraries Medium DSN Description Suggested DSN ZIP.Vnn.CLIST CLIST files PKZIP.Vnnx.CLIST ZIP.Vnn.MSGS Message files PKZIP.Vnnx.MSGS ZIP.Vnn.PANELS ISPF panels PKZIP.Vnnx.PANELS Where: nn is the version number of the product. (e.g. 22 for version 2 release 2). x is the maintenance level of the product. (e.g. 0 for maintenance level 0). Partitioned Datasets for PKZIP for MVS Various partitioned datasets are required to contain the PKZIP for MVS programs, etc. The space requirement for these libraries is described in the tables below. The datasets are created automatically by the IEBCOPY restore JCL provided later in this section. The datasets can be created manually if required using the given space and DCB information but you will need to change the restore JCL accordingly. PKZIP for MVS Library Allocations for a 9345 Deviceii ii T4ASI025-00-00 Library Name: CNTL SOURCE LOADLIB DSORG: PO PO PO RECFM: FB FB U LRECL: 80 80 BLKSIZE: 6160 6160 23200 Space Units TRK TRK TRK Primary Quantity 2 1 35 Secondary Quantity 1 1 5 Directory Blocks: 5 5 10 These figures are based upon 46456 bytes/track, 15 tracks/cylinder. Installation Guide 403 PKZIP for MVS Library Allocations for a 9345 Device (continued) 404 Library Name: CLIST MSGS PANELS DSORG: PO PO PO RECFM: FB FB FB LRECL: 80 80 80 BLKSIZE: 6160 6160 6160 Space Units TRK TRK TRK Primary Quantity 10 1 5 Secondary Quantity 1 1 1 Directory Blocks: 5 1 6 PKZIP for MVS: User Reference T4ASI025-00-00 Contents of the PKZIP for MVS Libraries The following tables list the members of each library supplied. Contents of ZIP.Vnn.CNTL Member Name: Contents ASMTRAN Example JCL for the assembly of a different translation table at your installation. EVAL JCL to license PKZIP for Evaluation README Special or late breaking instructions related to the installation and/or product. REPORT JCL to verify licensing details for PKZIP RUNCPUID Example JCL showing how the ZIPCPUID program may be run. RUNPLIC Example JCL showing how the ZIPPLIC licensing program may be run – ZIPPLIC is used to update license details. RUNSTL Example JCL showing how the ZIPPSTL program may be run – ZIPPSTL is used to create short-term license cards. UNZIP Part of the installation verification procedure, demonstrates how to decompress data from a ZIP archive. VIEW Part of the installation verification procedure, demonstrates how to view the contents of a ZIP archive. ZIP Part of the installation verification procedure, demonstrates how to compress data into a ZIP archive. ZIPPATCH Sample JCL to create a patch report. Contents of ZIP.Vnn.SOURCE T4ASI025-00-00 Member Name: Contents LATIN1 Translation table source, specifically for GZIP. UKASCII U.K. version of the translation table source. UKASCIIE U.K. version of the translation table source, with euro support. USASCII U.S. version of the translation table source. USASCIIE U.S. version of the translation table source, with euro support. Installation Guide 405 Contents of ZIP.Vnn.LOADLIB 406 Member Name Contents ASCII User selected translation table LATIN1 User selected translation table PKUNZIP Executable decompress module PKZIP Executable compress module UKASCII U.K. version of the translation table UKASCIIE U.K. version of the translation table, euro support USASCII U.S. version of the translation table USASCIIE U.S. version of the translation table, euro support ZFHRBP00 Read file handler module ZFHRBS00 Read file handler module ZFHRGEN Component part of read file handlers ZFHRVS00 Read file handler module ZFHWBP00 Write file handler module ZFHWBS00 Write file handler module ZFHWGEN Component part of write file handlers ZFHWVS00 Write file handler module ZFSGEN Component part of file selectors ZFSUDF00 Default UNZIP file selector ZFSUDF02 Component part of UNZIP file selector ZFSZDF00 Default ZIP file selector ZFSZDF02 Component part of ZIP file selector ZIPCPUID Executable module used to list the CPUids online. ZIPCTASK Component part of PKZIP/PKUNZIP ZIPDTASK Component part of PKZIP/PKUNZIP ZIPDTSKG Component part of PKZIP/PKUNZIP ZIPMS Loadable module containing the PKZIP Messages ZIPMTASK Component part of PKZIP/PKUNZIP ZIPPATCH Used to report on patches that have been applied ZIPPAUTH Component part of licensing system ZIPPLIC Executable licensing system module ZIPPSTL Executable licensing system module ZIPPTASK Component part of PKZIP/PKUNZIP ZIPTTASK Component part of PKZIP/PKUNZIP PKZIP for MVS: User Reference T4ASI025-00-00 Contents of ZIP.Vnn.LOADLIB Member Name Contents ZIPZTASK Component part of PKZIP/PKUNZIP ZIPZTSKG Component part of PKZIP/PKUNZIP Contents of ZIP.Vnn.CLIST Member Name: Contents PKALLOC Component part of the ISPF panel interface PKBEGIN Sample CLIST to dynamically add PKZIP for MVS ISPF libraries. PKCLEAN Used to tidy up files after a system failure PKCOMP Component part of the ISPF panel interface PKCONFIG Component part of the ISPF panel interface PKCONFR Component part of the ISPF panel interface PKCONFW Component part of the ISPF panel interface PKDECOMP Component part of the ISPF panel interface PKDELETE Component part of the ISPF panel interface PKLICNSE Component part of the ISPF panel interface PKOUTPUT Component part of the ISPF panel interface PKSTART Used to start the ISPF panel interface PKVIEW Component part of the ISPF panel interface PKVWARCH Component part of the ISPF panel interface PKXTRFLE Component part of the ISPF panel interface Contents of ZIP.Vnn.MSGS T4ASI025-00-00 Member Name: Contents PKM00 Message file for the ISPF panels PKM01 Message file for the ISPF panels Installation Guide 407 Contents of ZIP.Vnn.PANELS Member Name: Contents PKZIPHGS Help panel PKZIPHTC Help panel PKZIPH00 Help panel PKZIPH01 Help panel PKZIPH02 Help panel PKZIPH03 Help panel PKZIPH04 Help panel PKZIPH05 Help panel PKZIPH06 Help panel PKZIPH07 Help panel PKZIPH10 Help panel PKZIPH11 Help panel PKZIPH21 Help panel PKZIPH61 Help panel PKZIPH71 Help panel PKZIPIX1 Help index panel PKZIP00 Main processing panel PKZIP01 Main processing panel PKZIP02 Main processing panel PKZIP03 Main processing panel PKZIP03Z Main processing panel PKZIP04 Main processing panel PKZIP05 Main processing panel PKZIP06 Main processing panel PKZIP07 Main processing panel PKZIP10 Main processing panel PKZIP11 Main processing panel Choosing the correct translation table PKZIP may perform EBCDIC to ASCII or ASCII to EBCDIC translations on the data contained within files selected for compression or decompression. These translations are controlled by a translation table. PKZIP for MVS is shipped with multiple translation tables. The two most frequently used tables are: 408 PKZIP for MVS: User Reference T4ASI025-00-00 USASCII For users in America UKASCII For UK users and the rest of the world. A description of these tables and the other tables supplied with PKZIP for MVS, is included in Chapter 16. Translation and Translation Tables. Please make a note of the translation table you require, you will be asked to specify it when you unload the product from the cartridge. The installation process unloads all available tables to your load library and then copies your chosen table to the default name ‘ASCII’. When run, PKZIP looks for the default translation table called ‘ASCII’. If the translation tables above do not meet your requirements then you can create your own table by following the instructions described in Chapter 16. Translation and Translation Tables. Alternatively contact your supplier, as they may be able to assist you in creating a translation table that meets your requirements. Loading the PKZIP for MVS Datasets from Cartridge The PKZIP for MVS cartridge supplied has a unique Volume Serial number. The cartridge contains 6 partitioned datasets that have been copied onto the cartridge using IEBCOPY. You will be notified of the Volume Serial number on delivery. To restore the partitioned datasets from cartridge execute IEBCOPY from a batch job. The JCL example below creates the required datasets and unloads the supplied libraries into them. Note: Existing PKZIP Version 2.0 and 2.1 for MVS users should note that the JCL used to install the 2.0 and 2.1 versions of the product is no longer valid. JCL for loading PKZIP for MVS //<job card> //RESTORE EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SYSUT3 DD UNIT=SYSDA,SPACE=(1700,(400,400)) //SYSUT4 DD UNIT=SYSDA,SPACE=(1700,(400,400)) //* //* INPUT DATA SETS DEFINED //* //INCNTL DD DSN=ZIP.Vnn.CNTL, // DISP=OLD, // VOL=(,RETAIN,SER=vvvvvv),UNIT=CART, // LABEL=(1,SL) //INSRCE DD DSN=ZIP.Vnn.SOURCE, // DISP=OLD, T4ASI025-00-00 Installation Guide 409 // VOL=(,RETAIN,SER=vvvvvv),UNIT=CART, // LABEL=(2,SL) //INLOAD DD DSN=ZIP.Vnn.LOADLIB, // DISP=OLD, // VOL=(,RETAIN,SER=vvvvvv),UNIT=CART, // LABEL=(3,SL) //INCLIST DD DSN=ZIP.Vnn.CLIST, // DISP=OLD, // VOL=(,RETAIN,SER=vvvvvv),UNIT=CART, // LABEL=(4,SL) //INMSGS DD DSN=ZIP.Vnn.MSGS, // DISP=OLD, // VOL=(,RETAIN,SER=vvvvvv),UNIT=CART, // LABEL=(5,SL) //INPANELS DD DSN=ZIP.Vnn.PANELS, // DISP=OLD, // VOL=SER=vvvvvv,UNIT=CART, // LABEL=(6,SL) //* //* OUTPUT DATA SETS DEFINED //* //OTCNTL DD DSN=<PKZIP JCL library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(2,1,5),RLSE), // BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO //OTSRCE DD DSN=<PKZIP source library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(1,1,5),RLSE), // BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO //OTLOAD DD DSN=<PKZIP load library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(35,5,10),RLSE), // BLKSIZE=23200,RECFM=U,DSORG=PO //OTCLIST DD DSN=<PKZIP CLIST library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(10,1,5),RLSE), // BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO //OTMSGS DD DSN=<PKZIP message library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(1,1,1),RLSE), // BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO //OTPANELS DD DSN=<PKZIP panels library>, // DISP=(,CATLG,DELETE), // VOL=SER=xxxxxx,UNIT=<unit>, // SPACE=(TRK,(5,1,6),RLSE), // BLKSIZE=6160,LRECL=80,RECFM=FB,DSORG=PO //* //* IEBCOPY INPUT CONTROL CARDS //* //SYSIN DD * COPY INDD=INCNTL,OUTDD=OTCNTL COPY INDD=INSRCE,OUTDD=OTSRCE COPY INDD=INLOAD,OUTDD=OTLOAD COPY INDD=INLOAD,OUTDD=OTLOAD SELECT MEMBER=((tablename,ASCII)) COPY INDD=INCLIST,OUTDD=OTCLIST COPY INDD=INMSGS,OUTDD=OTMSGS COPY INDD=INPANELS,OUTDD=OTPANELS /* // 410 PKZIP for MVS: User Reference T4ASI025-00-00 Example IEBCOPY Restore JCL for PKZIP for MVS Note that in the above JCL, there are two COPY statements for INLOAD. The first statement copies the entire contents of the PKZIP load library to your disk. The second statement selects your chosen Translation Table and makes a copy of it under the default name of ASCII (see Choosing the correct translation table earlier in the chapter for more details). The following should be replaced according to any release notes or information accompanying the installation media and your installation standards: <job card> should be replaced with the job details required for running this job, in accordance with your installation standards. nn is the version number of the product. (e.g. 25 for Version 2 release 5). xxxxxx is the name of the disk on which the ZIP libraries are to be placed. vvvvvv is the volume label of the distribution cartridge (e.g. ZIP25x). <PKZIP JCL library> should be replaced with PKZIP.Vnnx.CNTL (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. <PKZIP source library> should be replaced with PKZIP.Vnnx.SOURCE (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. <PKZIP load library> should be replaced with PKZIP.Vnnx.LOADLIB (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. <PKZIP CLIST library> should be replaced with PKZIP.Vnnx.CLIST (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. T4ASI025-00-00 Installation Guide 411 <PKZIP message library> should be replaced with PKZIP.Vnnx.MSGS (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. <PKZIP panels library> should be replaced with PKZIP.Vnnx.PANELS (nnx is the version and maintenance level e.g. 25x). Alternatively, specify a suitable dataset name and prefix which matches your installation standards. <unit> should be replaced with the name or generic type of the unit on which the ZIP libraries are to be placed. tablename should be replaced with the name of the translation table you require e.g. USASCII Review the Readme in the CNTL Library This file may contain additional information related to the installation and/or product. Licensing As supplied, PKZIP for MVS is not licensed. An unlicensed copy of PKZIP is not capable of compressing, decompressing files or viewing ZIP archives. The following instructions describe how to license PKZIP for MVS for use. New users, or users migrating from previous levels of PKZIP before PKZIP 2.5 for MVS should license the product for an evaluation period, using the instructions given in Licensing PKZIP for evaluation. Current PKZIP 2.5 for MVS users migrating to this release should follow the steps described in Migrating Existing PKZIP 2.5 for MVS License arrangements. Licensing PKZIP for evaluation PKZIP for MVS is supplied with a licensing utility which will fully license the product on a trial basis for 30 days. During this period, you must obtain licensing details for PKZIP from your supplier, if you wish to continue to run the product. This example demonstrates how PKZIP can be licensed for evaluation purposes. 1. 412 Edit the "EVAL" member of the CNTL library according to the notes below. This step initialises PKZIP for evaluation purposes. PKZIP for MVS: User Reference T4ASI025-00-00 //EVAL EXEC PGM=ZIPPLIC,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * P I PKZMVS25 C I Z /* PKZIP.V25x.LOADLIB If you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. Update access to the PDS load library is required to run this job. Also, do not use LNKLST to find ZIPPLIC, the STEPLIB must be specified. SYSIN Note that these commands begin in Column 11. 2. Submit the JCL and check the results, it should give a return code 00. 3. Edit the "REPORT" member of the CNTL library according to the notes below. This JCL reports on the state of the PKZIP licensing. //T4ZIP EXEC PGM=ZIPPLIC,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * R /* PKZIP.V25x.LOADLIB 4. T4ASI025-00-00 If you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. Submit the JCL and check the results, it should give a return code 00 and output similar to the following: Installation Guide 413 T4X101I T4X030I T4X080I T4X100I T4X080I T4X081I T4X081I T4X080I T4X082I T4X080I T4X084I T4X085I T4X088I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X087I T4X080I T4X090I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X080I T4X081I T4X080I T4X102I License Process: T4XPLIC MVS 4.0 level x, starting. Executing on CPU: 120F0573xxxx. * Processing Card: R * Report on contents of License Table ===================================== * Version: 0100, last updated on: 19xx0515, for: Evaluation User * Product: PKZMVS25, License Num: EVALUATION . Start: 19xx0515, End: 19xx0614, Users: 32767. Functions: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY. - PKZIP Compression. - PKUNZIP Decompression. - PKZIP PDS file handler. - PKZIP Sequential File Handler. - PKZIP HyperZIP. - PKZIP VSAM File Handler. - PKZIP Magnetic Tape/cartridge File Handler. - PKZIP ISPF Panel Interface. - PKZIP GigaZip. Licensed for: 12**0573xxxx, Matched. * CPU Table. CPU Number: 00, CPU Id: 120F0573xxxx. CPU Number: 01, CPU Id: Not Defined . CPU Number: 02, CPU Id: Not Defined . CPU Number: 03, CPU Id: Not Defined . CPU Number: 04, CPU Id: Not Defined . CPU Number: 05, CPU Id: Not Defined . CPU Number: 06, CPU Id: Not Defined . CPU Number: 07, CPU Id: Not Defined . CPU Number: 08, CPU Id: Not Defined . CPU Number: 09, CPU Id: Not Defined . CPU Number: 10, CPU Id: Not Defined . CPU Number: 11, CPU Id: Not Defined . CPU Number: 12, CPU Id: Not Defined . CPU Number: 13, CPU Id: Not Defined . CPU Number: 14, CPU Id: Not Defined . CPU Number: 15, CPU Id: Not Defined . * Finished reporting of License Table * License Process: T4XPLIC MVS 4.0 level x, ending. Note: Throughout the evaluation period PKZIP will output a minimum return code of 04 for all jobs, this is because of the warning message ZIP023W which reminds the user that the license period will soon expire. It is therefore important that you check all messages output by PKZIP to ensure that no other warnings have been overlooked. Migrating Existing PKZIP 2.5 for MVS License arrangements There are two methods available to replicate the licensing applicable to the existing PKZIP 2.5 for MVS, in the newly installed release: 1. Copy the existing licensing details from PKZIP 2.5 for MVS. Details of the existing license arrangements are maintained in the LOADLIB member ZIPPAUTH. Copying the existing details involves copying this member from the old to the new 2.5 library. 414 PKZIP for MVS: User Reference T4ASI025-00-00 2. Re-apply all the update control statements that have been used to license the product (including the initial evaluation control statements). Option 1 is the recommended option because it will reduce the effort required and will guarantee that the licensing arrangements are identical. Apply Maintenance Fixes can be issued to correct problems found with a specific level of the PKZIP software. Once verified, the fix is included in the Patch Notes Document for that level of software. In most cases the problem is then fixed permanently in the next maintenance release of the product. When you install your copy of PKZIP, you should also obtain and review the latest version of the Patch Notes Document, available from your supplier, the ASi web site, the Targetfour web site, or the Targetfour Help Desk (contact information can be found on the inside front cover). Apply all fixes before attempting to use the product. To list the patches that have been applied, run the ZIPPATCH utility. For further information see Patch Notes in Chapter 25. What To Do If You Have a Problem on page 308. Installation Verification Procedure This section describes a Confidence Test that will confirm whether the PKZIP for MVS product has been installed correctly. The stages are: 1. Compress the Source library that was downloaded off the tape. 2. View the contents of the archive just created. 3. Unzip the Source library to a new dataset. The JCL for the test can be found in the CNTL library downloaded during installation. If you have any problems with the confidence test then you should first double check that you have made no typing errors and that any modified parts of the JCL have been replaced correctly according to your installation standards. The test is designed to be straightforward and should only fail in the unlikely event that there is an incompatibility between PKZIP for MVS and your system. If problems do occur then please contact your supplier for assistance. T4ASI025-00-00 Installation Guide 415 Test 1: Compress a dataset This test demonstrates how PKZIP can be used to compress the contents of a partitioned dataset (PDS). 1. Edit the "ZIP" member of the CNTL library according to the notes below. //STPZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) -ARCHUNIT(SYSDA) PKZIP.V25x.SOURCE(*) /* PKZIP.V25x.LOADLIB if you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. PKZIP.CONFID.TEST.ZIP this is the name of the ZIP archive that will be created. If your system will not allow you to create datasets with the high level qualifier "PKZIP" then you should choose a different name. SYSDA this is the esoteric device name for the group of volumes which will be used to select the volume on which the ZIP archive will be created. Change this to a name that is available on your system. If you are running DFSMS and normally use SMS classes to allocate datasets then you should replace the -ARCHUNIT command with the -ARCHxCLASS(TSTCLASS) command, where x identifies the type of class and TSTCLASS is the name of a valid class. PKZIP.V25x.SOURCE if you chose a different name for the PKZIP for MVS SOURCE library then you should correct this statement. The "(*)" tells PKZIP to compress all the members in the PDS. 2. 416 Submit the JCL and check the results, it should give a return code 04. All jobs run during the evaluation period will give a minimum return code of 04, this is because a warning message is issued to inform the user that the license is due to expire soon. The job should give output similar to following: PKZIP for MVS: User Reference T4ASI025-00-00 ZIP023W ZIP101I ZIP010I ZIP010I ZIP010I ZIP010I ZIP453I ZIP453I ZIP453I ZIP453I ZIP453I ZIP102I PKZIP licence will expire in 29 days. PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) –ARCHUNIT(SYSDA) PKZIP.V25x.SOURCE(*) Compressed file PKZIP.V25x.SOURCE(LATIN1) as PKZIP/V25x/SOURCE/LATIN1 (Deflated 80%) Compressed file PKZIP.V25x.SOURCE(UKASCII) as PKZIP/V25x/SOURCE/UKASCII (Deflated 85%) Compressed file PKZIP.V25x.SOURCE(UKASCIIE) as PKZIP/V25x/SOURCE/UKASCIIE (Deflated 85%) Compressed file PKZIP.V25x.SOURCE(USASCII) as PKZIP/V25x/SOURCE/USASCII (Deflated 86%) Compressed file PKZIP.V25x.SOURCE(USASCIIE) as PKZIP/V25x/SOURCE/USASCIIE (Deflated 85%) PKZIP MVS 2.5 level x ending. 3. Verify that a new dataset called "PKZIP.CONFID.TEST.ZIP" has been created. This is the ZIP archive, it contains the compressed data. Test 2: View a ZIP archive This test demonstrates how PKZIP can be used to view the contents of a ZIP archive. 1. Edit the "VIEW" member of the CNTL library according to the notes below. //STPZIP EXEC PGM=PKZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) -VIEW /* PKZIP.V25x.LOADLIB if you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. PKZIP.CONFID.TEST.ZIP this is the name of the ZIP archive that was created in the previous test. If you chose a different name then you should change it here also. 2. T4ASI025-00-00 Submit the JCL and check the results, it should give a return code 04. All jobs run during the evaluation period will give a minimum return code of 04, this is because a warning message is issued to inform the user that the license is due to expire soon. The job should give output similar to the following: Installation Guide 417 ZIP023W ZIP101I ZIP010I ZIP010I ZIP010I ZIP501I ZIP502I ZIP503I ZIP503I ZIP503I ZIP503I ZIP503I ZIP505I ZIP506I ZIP102I PKZIP licence will expire in 29 days. PKZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) -VIEW Length Method Size Ratio Date Time CRC-32 Name ---------- ------- ---------- ----- ---------- ----- ----------5003 DeflatN 1024 80% 04-28-19xx 12:47 C916C794 PKZIP/V25x/SOURCE/LATIN1 13367 DeflatN 2018 85% 04-28-19xx 12:47 A0535110 PKZIP/V25x/SOURCE/UKASCII 13859 DeflatN 2178 84% 04-28-19xx 12:47 22A8575C PKZIP/V25x/SOURCE/UKASCIIE 13367 DeflatN 2001 85% 04-28-19xx 12:47 5C244B68 PKZIP/V25x/SOURCE/USASCII 13859 DeflatN 2165 84% 04-28-19xx 12:47 496D5306 PKZIP/V25x/SOURCE/USASCIIE ------------------- ----59455 9386 83% PKZIP MVS 2.5 level x ending. 3. This job displays the names of the compressed files contained in the ZIP archive. For more information about the files compressed try repeating this job, replacing the -VIEW command with the -VIEWDETAIL command. The -VIEWDETAIL command will give details of the file attributes stored for each dataset or member. Test 3: Decompress a dataset This test demonstrates how PKZIP can be used to decompress the contents of a ZIP archive. 1. Edit the "UNZIP" member of the CNTL library according to the notes below. //STPUNZIP EXEC PGM=PKUNZIP,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) -HLQ(PKZIP,PKZIP.NEW) -OUTUNIT(SYSDA) /* 418 PKZIP.V25x.LOADLIB if you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. PKZIP.CONFID.TEST.ZIP this is the name of the ZIP archive that was created in the previous test. If you chose a different name then you should change it here also. PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP/PKZIP.NEW the -HLQ command is used to rename files when extracting them from the ZIP archive. In this case all files starting with the characters "PKZIP" will be extracted with the high level qualifier "PKZIP.NEW". If you chose a different name for your SOURCE library then you should modify the command accordingly. If you remove the -HLQ command then PKZIP will attempt to extract the files with their original names, this will fail as the datasets already exist, however, you can force the files to be overwritten by using the -OVERWRITE command. SYSDA this is the esoteric device name for the group of volumes that will be used to select the volume on which the file will be created. Change this to a name that is available on your system. If you are running DFSMS and normally use SMS classes to allocate datasets then you should replace the -OUTUNIT command with the -OUTxCLASS(TSTCLASS) command, where x identifies the type of class and TSTCLASS is the name of a valid class. 2. UNZIP023W UNZIP101I UNZIP010I UNZIP010I UNZIP010I UNZIP010I UNZIP609I UNZIP609I UNZIP609I UNZIP609I UNZIP609I UNZIP102I Submit the JCL and check the results, it should give a return code 04. All jobs run during the evaluation period will give a minimum return code of 04, this is because a warning message is issued to inform the user that the license is due to expire soon. The job should give output similar to the following: PKUNZIP licence will expire in 29 days. PKUNZIP MVS 2.5 level x patch nn starting: ccyy/mm/dd hh:mm:ss -ECHO -ARCHIVE(PKZIP.CONFID.TEST.ZIP) -HLQ(PKZIP,PKZIP.NEW) –OUTUNIT(SYSDA) ZIP file PKZIP/V25x/SOURCE/LATIN1 inflated to MVS file PKZIP.NEW.V25x.SOURCE(LATIN1) ZIP file PKZIP/V25x/SOURCE/UKASCII inflated to MVS file PKZIP.NEW.V25x.SOURCE(UKASCII) ZIP file PKZIP/V25x/SOURCE/UKASCIIE inflated to MVS file PKZIP.NEW.V25x.SOURCE(UKASCIIE) ZIP file PKZIP/V25x/SOURCE/USASCII inflated to MVS file PKZIP.NEW.V25x.SOURCE(USASCII) ZIP file PKZIP/V25x/SOURCE/USASCIIE inflated to MVS file PKZIP.NEW.V25x.SOURCE(USASCIIE) PKUNZIP MVS 2.5 level x ending. T4ASI025-00-00 3. Confirm that a new PDS called "PKZIP.NEW.V25x.SOURCE" has been created. Verify visually or using a file comparison utility that the members in the old and new datasets are identical. The information required to create the dataset was taken from the file attributes stored for each file in the ZIP archive. 4. The Installation Verification Procedure is now complete. The datasets "PKZIP.NEW.V25x.SOURCE" and "PKZIP.CONFID.TEST.ZIP" can now be deleted if required. Installation Guide 419 Further Tailoring Once you are confident the PKZIP for MVS is working correctly in your installation, you may consider further tailoring to ensure that PKZIP can be used as effectively as possible. Areas that you might consider include: Configuration File: see Configuration File in Chapter 14. Command Input. Making the product available to all users via the Link List or other shared library area. Note that the licensing update procedures require that the PKZIP library be accessed via the STEPLIB of the updating job. ISPF Integration To use the ISPF Interface of PKZIP for MVS, two additional steps are required: 1. The PKSTART CLIST must be updated to reflect the PKZIP for MVS load library. 2. Users must be given access to the PKZIP ISPF libraries and commands. These two steps are described in this section. Further documentation for the ISPF interface is included in Chapter 17. Using the ISPF Panel Interface on page 123. Update PKSTART CLIST The PKSTART CLIST specifies the Load library that is used by the ISPF interface. This must be updated to indicate the dataset in which the Load Library has been placed, otherwise the ISPF interface will not work correctly. To update the CLIST, edit the PKSTART member. Near the beginning, you find lines similar to the following: /* Set PKZIP for MVS 2.5/x Load library */ /* The following line is set at installation time to specify the library used by PKZIP processing */ PKLOADLB = "PKZIP.V25.LOADLIB" The load library name must be updated to indicate the library actually containing PKZIP for MVS. For example, if the product had been installed in the dataset SYS3.ZIP.V25.LOADLIB, then the updated line would look like the following: PKLOADLB = "SYS3.ZIP.V25.LOADLIB" 420 PKZIP for MVS: User Reference T4ASI025-00-00 Access to ISPF Libraries In addition, users require access to the associated ISPF libraries (CLIST, PANEL and MSG libraries) and must be able to use the PKSTART CLIST to start the interface and the PKCLEAN CLIST to ‘clean-up’ after a problem. There are a variety of ways that this can be achieved. This section describes two approaches: 1. Fixed addition of the ISPF Interface libraries to the users’ ISPF logon procedure, with the user invoking the CLISTs using TSO commands 2. Creation of a CLIST that dynamically adds the PKZIP for MVS libraries to the appropriate concatenation, with the user invoking this processing via a menu. For ease of use and maintenance, the second approach, where the appropriate commands could be integrated into an ISPF panel and the PKZIP for MVS libraries are added dynamically, is recommended. Static Addition of the ISPF libraries Before a user can access the ISPF panel interface, the following changes must have been made: The CLIST library should be added to the SYSPROC concatenation. The Panel library should be added to the ISPPLIB concatenation. The message library should be added to the ISPMLIB concatenation. Once this is done, the user may invoke the ISPF interface as documented in Chapter 17. Using the ISPF Panel Interface. Dynamic Addition of the ISPF libraries This approach uses the ISPF LIBDEF and TSO/E ALTLIB services to dynamically add the ISPF Interface libraries. The sample CLIST PKBEGIN demonstrates how this can be achieved. This needs to be altered to match the installation standards and placed in an accessible library. The invocation of this altered CLIST can be added to the appropriate ISPF menu. Getting Started Once you have successfully installed and tested PKZIP for MVS please refer to Chapter 3. Getting Started on page 27 for discussion and examples of the product’s use. In addition you should also understand how PKZIP is licensed as discussed in Appendix B. Licensing Guide. T4ASI025-00-00 Installation Guide 421 Appendix B. Licensing Guide PKZIP for MVS is a licensed program, and has a licensing utility supplied as part of its normal processing. The licensing utility is inconspicuous, and is only noticeable if the license conditions supplied are incorrect for the environment in which PKZIP is running. The Licence Authentication System is common to several products supplied by Targetfour Ltd. Note: For the licensing processing to work correctly the PKZIP library must be accessed via the JCL STEPLIB DD card, as is shown in the examples in this Appendix. Licenses The following options can be licensed in PKZIP for MVS: PKZIP Compression PKZIP Decompression PKZIP Sequential File Handler PKZIP PDS File Handler PKZIP VSAM File Handler PKZIP Magnetic Tape/Cartridge File Handler PKZIP ISPF Panel Interface PKZIP HyperZIP PKZIP GigaZIP. The effect of each license is explained below. PKZIP Compression Permits the compression of data into a ZIP archive. A file handler license is required to read the data and write out the ZIP archive. PKZIP Decompression Permits the decompression of data from a ZIP archive. A file handler license is required to read the ZIP archive and write out the data to the MVS datasets. T4ASI025-00-00 Licensing Guide 423 PKZIP Sequential File Handler Allows PKZIP to read and write sequential datasets. When combined with the PKZIP Compression and Decompression licenses, it allows sequential datasets to be compressed and decompressed. It also allows ZIP archives in the form of sequential datasets to be created and processed. PKZIP PDS File Handler Allows PKZIP to read and write members or partitioned datasets. When combined with the PKZIP Compression and Decompression licenses, it allows PDS members to be compressed and decompressed. It also allows ZIP archives in the form of PDS members to be created and processed. PKZIP VSAM File Handler Allows PKZIP to read and write VSAM datasets. When combined with the PKZIP Compression and Decompression licenses. It allows VSAM datasets to be compressed and decompressed. It also allows ZIP archives in the form of VSAM datasets to be created and processed. PKZIP Magnetic Tape/Cartridge File Handler Allows PKZIP to read and write data on Magnetic Tape or Cartridge. When combined with the PKZIP Compression and Decompression licenses, it allows Tape based datasets to be compressed and decompressed. It also allows ZIP archives in the form of Tape based datasets to be created and processed. PKZIP ISPF Panel Interface Allows PKZIP to be called from the ISPF panel interface. The functions available from the panels will depend on the licenses above. PKZIP HyperZIP Tells PKZIP to use new, faster methods of processing temporary files and ZIP archives to reduce the elapsed time for the compression and decompression of data. It permits the use of various performance enhancing options (e.g. the -CACHEMEMORY command and the -TASKS command) to make the best use of available machine resources to speed up the compression and decompression processes. Further information may be found in Chapter 13. Performance. PKZIP GigaZip This license option provides support for GZIP format files. GZIP format archives are recommended when files to be compressed are currently, or may in the future grow to be, bigger than 2 Gigabytes. Further information may be found in Part 5. GZIP (GNU zip) Processing. 424 PKZIP for MVS: User Reference T4ASI025-00-00 Evaluation Period As supplied, PKZIP for MVS is not licensed. An unlicensed copy of PKZIP is not capable of compressing or decompressing files although existing ZIP archives may be viewed. However, PKZIP for MVS is supplied with a licensing utility, which will fully license the product on a trial basis for 30 days. During this period, you must obtain licensing details for PKZIP from your supplier, if you wish to continue to run the product. Instructions on licensing the product for evaluation are described in the Licensing section of Appendix A. Installation Guide. Note: Throughout the evaluation period PKZIP will output a minimum return code of 04 for all jobs, this is because of the warning message ZIP023W which reminds the user that the license period will soon expire. It is therefore important that you check all messages output by PKZIP to ensure that no other warnings have been overlooked. CPU ID PKZIP licensing is based on your CPU type and CPU identity so your supplier will ask you for these details. If you do not have this information, it can be obtained by running the licensing report as documented in Reporting current Licenses later in this chapter (this is the recommended method) or using the ZIPCPUID program that is supplied with PKZIP for MVS. The example JCL below demonstrates how to determine your CPU identity using the ZIPCPUID program. 1. Edit the "RUNCPUID" member of the CNTL library according to the notes below. //STPCPUID EXEC PGM=ZIPCPUID,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=* PKZIP.V25x.LOADLIB 2. if you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. Submit the job and check the results, it should give a return code 00. The output from this program should be sent with your license report to your supplier, who will arrange for you to receive the licensing details for your installation. T4ASI025-00-00 Licensing Guide 425 Effects of PKZIP Licensing When correctly licensed, PKZIP will run normally and licensing will not be noticed. Should PKZIP find that it is running outside the terms of its licence, such as when the licence expires then commands that do not involve creating or updating files such as VIEW and TEST will work normally, but no actual data can be compressed or extracted. Suitable error messages will be output as necessary and are documented in Chapter 26. PKZIP and PKUNZIP Messages. When PKZIP detects that its licence is close to expiry (approximately 4 weeks), it will output warning messages (associated with a return code 04), but will otherwise continue to execute normally. During this period, contact your normal supplier for new licensing details. When the licensing details have been input the warning messages will no longer be output. Reporting current Licenses The example below demonstrates how to display you current licensing details. 1. Edit the "REPORT" member of the CNTL library according to the notes below. This job reports on the state of the PKZIP licensing. //REPORT EXEC PGM=ZIPPLIC,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=*,BLKSIZE=132 //SYSUDUMP DD SYSOUT=* //SYSIN DD * *---+----1----+ (comment card) R /* PKZIP.V25x.LOADLIB If you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. Note The ‘R’ (Report) character is in column 11, as is shown by the ‘comment’ card that precedes it. The licensing process treats cards with a ‘*’ (asterisk) in column 1 as comments. 2. 426 Submit the job and check the results, it should give a return code 00 and output similar to the following: PKZIP for MVS: User Reference T4ASI025-00-00 T4X101I T4X030I T4X080I T4X100I T4X080I T4X081I T4X081I T4X080I T4X082I T4X080I T4X084I T4X085I T4X088I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X089I T4X087I T4X080I T4X090I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X091I T4X080I T4X081I T4X080I T4X102I License Process: T4XPLIC MVS 4.0 level x, starting. Executing on CPU: 120F0573xxxx. * Processing Card: R * Report on contents of License Table ===================================== * Version: 0100, last updated on: 19xx0515, for: Evaluation User * Product: PKZMVS25, License Num: EVALUATION . Start: 19xx0515, End: 19xx0614, Users: 32767. Functions: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY. - PKZIP Compression. - PKUNZIP Decompression. - PKZIP PDS file handler. - PKZIP Sequential File Handler. - PKZIP HyperZIP. - PKZIP VSAM File Handler. - PKZIP Magnetic Tape/cartridge File Handler. - PKZIP ISPF Panel Interface. - PKZIP GigaZip. Licensed for: 12**0573xxxx, Matched. * CPU Table. CPU Number: 00, CPU Id: 120F0573xxxx. CPU Number: 01, CPU Id: Not Defined . CPU Number: 02, CPU Id: Not Defined . CPU Number: 03, CPU Id: Not Defined . CPU Number: 04, CPU Id: Not Defined . CPU Number: 05, CPU Id: Not Defined . CPU Number: 06, CPU Id: Not Defined . CPU Number: 07, CPU Id: Not Defined . CPU Number: 08, CPU Id: Not Defined . CPU Number: 09, CPU Id: Not Defined . CPU Number: 10, CPU Id: Not Defined . CPU Number: 11, CPU Id: Not Defined . CPU Number: 12, CPU Id: Not Defined . CPU Number: 13, CPU Id: Not Defined . CPU Number: 14, CPU Id: Not Defined . CPU Number: 15, CPU Id: Not Defined . * Finished reporting of License Table * License Process: T4XPLIC MVS 4.0 level x, ending. The functions for which you are licensed are listed in the T4X089I messages. Updating current Licenses From time to time, for example when a product is to be licensed or the existing license expires, it becomes necessary to update the license database. In these circumstances, update control statements will be supplied. The procedure to apply the statements is as follows: 1. Edit the "UPDATE" member of the CNTL library according to the notes below. This JCL reports on the state of the PKZIP licensing. //REPORT EXEC PGM=ZIPPLIC,REGION=2M //STEPLIB DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB //SYSPRINT DD SYSOUT=*,BLKSIZE=132 //SYSUDUMP DD SYSOUT=* //SYSIN DD * <control statements> /* T4ASI025-00-00 Licensing Guide 427 PKZIP.V25x.LOADLIB If you chose a different name for the PKZIP for MVS LOAD library then you should correct the STEPLIB DD statement. <control statements> Should be replaced with the control statements provided by your supplier. The position of the characters in the statements is significant and to work correctly they must exactly match the position in the supplied documentation. Note that control statements typically start in column 2, leaving one blank position at the start of the statement. An ‘*’ (asterisk) in column 1 is used to indicate a comment. 2. Submit the job and check the results, it should give a return code 00. Note: The update statements and output should be filed for future reference. If necessary (for example, if the table becomes corrupted), the Licensing table can be rebuilt by reusing the update statements. Only one update should be applied at a time. Short Term Licenses It may be necessary to obtain a license for a new processor for which the processor identifier is not known in advance. This can happen in a variety of circumstances, including disaster recovery. The short-term license utility may be used in conjunction with an authorisation code obtained via your supplier to perform this processing. This utility is used in the following way: 428 An Authorisation Code is obtained from the supplier. This code will be associated with a particular date. It is possible to obtain multiple Authorisation Codes if the installation date for the processor is uncertain. The short-term license utility (ZIPPSTL) is executed on the associated date (local time), passing the Authorisation Code as a parameter. This processing will produce update cards that will license the product on the executing processor for a short period. These output control statements will be used as input to the normal license processing and will create a short-term license for the processor. PKZIP for MVS: User Reference T4ASI025-00-00 If there are multiple processors being changed, all of which share the same license table, the preceding two steps should be repeated for each processor. Note that the license update should be performed before re-running the short-term license utility on a different processor. As soon as is convenient, a full license should be obtained for the new processor(s). At the same time, the SHORT-TERM license should be removed. It is only possible to have one SHORT-TERM license – even if this has expired an attempt to use this process to add another SHORTTERM license will not work correctly. Typical JCL used to run the Short Term License Utility is as follows (see also the RUNSTL member of the CNTL library that contains similar JCL). //SHORTTRM // //* Where: //* //* //STEPLIB //SYSPRINT //LICOUT //SYSUDUMP EXEC PGM=ZIPPSTL,REGION=2M, PARM='ddddddddxxxxxxxx,ccccc...' dddddddd is the date on which the utility must be run xxxxxxxx is a verification code cccccccc is an identification character string. DD DISP=SHR,DSN=PKZIP.V25x.LOADLIB DD SYSOUT=* DD SYSOUT=* DD SYSOUT=* Typical output (sent to SYSPRINT) from the Short Term License Utility is as follows. T4X101I T4X030I T4X080I T4X102I License Process: T4XPSTL MVS 4.0 Executing on CPU: 120F0573xxxx. * License Process: T4XPSTL MVS 4.0 level x, starting. level x, ending. Typical license cards (sent to LICOUT, to be used as input to ZIPPLIC), created by the Short Term License Utility are as follows. *---+----1----+----2----+----3----+----4----+----5----+-* Update for Short Term License. 62D65044 P A PKZMVS25 SHORT-TERM xxxx0331 xxxx04… D7301C9F C A 12**0573nnnn 1FFFB8A7 Z R T4ASI025-00-00 Licensing Guide 429 Appendix C. Change Summaries The following lists describe the evolution of the PKZIP for MVS product line. It describes the changes made for the released versions of PKZIP for MVS from 2.1/0 upwards: PKZIP 2.1 Level 0 for MVS (October 1994) T4ASI025-00-00 Change Description 210-001 File selection mechanism with support for wildcards 210-002 Compression and extraction of multiple sequential files and PDS members 210-003 Support for stored pathnames and dataset name hierarchies 210-004 Stripping and padding of characters on the end of records 210-005 Zip archives as PDS members 210-006 Commands to control the allocation of Zip archives and temporary datasets used by PKZIP 210-007 Addition of -HLQ and -OVERWRITE commands Change Summaries 431 PKZIP 2.1 Level 1 for MVS (November 1994) 432 Change Description 211-001 ZIP to recognise ‘@’ as first character of dataset or member name 211-002 -PCP command for PKZIP PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP 2.1 Level 2 for MVS (February 1995) T4ASI025-00-00 Change Description 212-001 Fix 0C4-11 in PKUNZIP when using file selection *.* 212-002 Put “bit 31/24” in starting message for PKZIP and PKUNZIP 212-003 Using -ZIPCUR against a zipfile = path/filename causes 0C410 in PKUNZIP 212-004 Using -ZIPCUR and -MAKEPDS causes 0C1-1 in PKUNZIP (and other associated 0C1-1’s) 212-005 Provide -OUTDIRBLKS default when unzipping to a PDS (B14 abend and associated problems) 212-006 Using -OUTSPACE(BLK) causes 0C4-11 in PKUNZIP 212-007 Bring manual up to level 2 212-008 Put zipping GDGs section into manual 212-009 Put zipping Tapes section into manual 212-010 Update PKZIP section on use of -ZDW in manual 212-011 Re-work existing examples in the manual, ensure they are straightforward and not misleading. Provide a brief explanation with each example. 212-012 Updates to manual. Updated text of message 120. Reviewed restrictions section. Reviewed indexing. Updated covers, spines, cartridge labels. 212-013 Spurious 0C4’s and 0C1’s fixed by preventing Trace macros from calling LMEMCPY with zero length. 212-014 Directories with aliases or long directory entries causes 0C11 abend in PKZIP 212-015 0C1-1 IN PKZIP and PKUNZIP when region size exhausted (now outputs message and user abend). 212-016 Rebuilt and tested with T4XFLIC 2.1/4 Change Summaries 433 PKZIP 2.1 Level 4 for MVS (August 1995) 434 Change Description 214-001 -ECHO command required to print SYSIN to SYSPRINT 214-002 Transferring zip archives as RECFM=U with Pelican, TCP/IP, FTAM etc... 214-003 Replace use of RNINPUT/RNOUTPUT with standard IDCAMS API 214-004 ZDW fix 214-005 Improved handling of abend. Zip hangs when abend in subtask. If possible, RC should be non-zero when abends (esp. SB37) 214-006 PKZIP & PKUNZIP loop when processing *NIX zip archives 214-007 Run PKZIP and PKUNZIP from LNKLST 214-008 Problems updating files after license has expired 214-009 Handle non-catalogued datasets and temporary datasets via ZIPCUR DD 214-010 -NOCRLF command does not work in PKUNZIP 214-011 -FRESHEN command does not work in PKZIP 214-012 CRC check fix 214-013 ZIP871E returns RC=0 214-014 ZIP/UNZIP022E & 021E return RC=0 214-015 Incomplete view 214-016 Improvements to sorting by size and percent in -VIEW 214-017 Reduce number of retries from 999 to 3 when failing to get disk space for zip archive 214-018 Put a freepool after close of dcb in file selectors 214-019 Put a dealloc step after inquires in file selectors 214-020 Within file selectors ensure that all storage allocated per file and all main control blocks are freed up before returning to zip 214-021 More efficient processing of file selector internal test runs 214-022 Error reading dataset during update of certain type of zip PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP 2.1 Level 7 for MVS (November 1995) T4ASI025-00-00 Change Description 217-001 Implement new return code strategy (this change was actually implemented in 2.1/6 for VSE) 217-002 Allow use of previous return code strategy using -OLDRETURNCODE (this change was actually implemented in 2.1/6 for VSE) 217-003 Link non-reentrant modules as REUS 217-004 Cannot write Sysprint to a dataset 217-005 Increase max values for -OUTPRIMARY and -OUTSECONDARY to x’FFFFFF’ 217-006 Provide -HLQ(**/<newname>) option to replace oldname blind 217-007 Allow for zero length oldname and newname in -HLQ command 217-008 Provide USASCII translation table 217-009 Modify 901E message to give reason code 217-010 Allocate real temporary files with no name to ensure that no duplicates are created 217-011 Provide -NOSYSIN command to help when calling PKZIP from another program 217-012 Need more references to the examples in the manual 217-013 Document calling PKZIP from another program Change Summaries 435 PKZIP 2.2 Level 1 for MVS (October 1997) 436 Change Description 221-001 Year 2000 compliant 221-002 Compression and decompression of VSAM files 221-003 Compression and decompression of Magnetic Tapes or Cartridges 221-004 Storage and restoration of file attributes 221-005 Compression and decompression of Load Libraries 221-006 Compression and decompression of GDGs 221-007 Zip archives as VSAM files 221-008 Zip archives as sequential files on Magnetic Tape or Cartridge 221-009 Selection and specification of files via DD statement 221-010 New licensing code to support product packaging 221-011 ISPF panel interface PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP 2.2 Level 1b for MVS (July 1998) Change Description 221B-001 Patches 1-40 for PKZIP 2.2/1, are included. The patch notes associated with these patches should be reviewed. Patch 31 introduced the PADVSAM and NOPADVSAM commands. 221B-002 Redundant and duplicated options and commands have been removed. For compatibility reasons, support for many of these commands is still included in the product but this support may be withdrawn in future releases and patches to this level. It is recommended that users migrating to this level review the following and remove any uses of the commands listed. Where the command has been removed because it is duplicated, the retained command is listed in brackets following the removed command. These include: OLDRETURNCODE (for both PKZIP and PKUNZIP). PKZIP archive commands: ARCHATTEMPTS, ARCHAUTH, ARCHCODE, ARCHDATAATT, ARCHDATAAUTH, ARCHDATABUFSP (use ARCHBUFSPACE), ARCHDATACODE, ARCHDATAERAS (use ARCHERASE), ARCHDATAFREECA (use ARCHFREECA), ARCHDATAFREECI (use ARCHFREECI), ARCHDATANERAS (use ARCHNOERASE), ARCHDATANSPND (use ARCHNOSPANNED), ARCHDATARCVY, ARCHDATARECSZ (use ARCHRECORDSIZE), ARCHDATASPEED, ARCHDATASPND (use ARCHSPANNED), ARCHRECOVERY, ARCHSPEED. PKUNZIP cluster commands: OUTATTEMPTS, OUTAUTH, OUTCODE, OUTKEYRANGES. PKUNZIP Data component commands: OUTDATAATT, OUTDATAAUTH, OUTDATABUFSP (use OUTBUFSPACE), OUTDATACODE, OUTDATAERAS (use OUTERASE), OUTDATAFREECA (use OUTFREECA), OUTDATAFREECI (use OUTFREECI), OUTDATAKRNG, OUTDATANERAS (use OUTNOERASE), OUTDATANSPND (use OUTNOSPANNED), OUTDATARCVY (use OUTRECOVERY), OUTDATARECSZ (use OUTRECORDSIZE), OUTDATASPEED (use OUTSPEED), OUTDATASPND (use OUTSPANNED). T4ASI025-00-00 Change Summaries 437 PKUNZIP Index component commands: OUTINDXATT, OUTINDXAUTH, OUTINDXCODE, OUTINDXIMBD (use OUTIMBED), OUTINDXNIMBD (use OUTNOIMBED), OUTINDXNREPL (use OUTNOREPLICATE), OUTINDXREPL (use OUTREPLICATE). 221B-003 438 Editorial Changes and improvements to the manual. PKZIP for MVS: User Reference T4ASI025-00-00 PKZIP 2.2 Level 1c for MVS (July 1999) Change Description 221C-001 Patches 41-65 for PKZIP 2.2/1, are included. The patch notes associated with these patches should be reviewed. Note Patch 64 which documents support for the euro. 221C-002 A redundant command have been removed. For compatibility reasons, support for this command is still included in the product but this support may be withdrawn in future releases and patches to this level. It is recommended that users migrating to this level review the following and remove any uses of the command listed. TEMPMCLASS (for both PKZIP and PKUNZIP). 221C-003 T4ASI025-00-00 Editorial Changes and improvements to the manual. Change Summaries 439 Appendix D. Characteristics of Data Compression In general, data compression works by eliminating redundancy within a data stream, and expressing the information content in the data stream in a more concise, succinct form. There are two basic forms of data compression: lossy and lossless. Lossy compression algorithms give up bit-for-bit accuracy for higher compression ratios. Lossy compression is often used to compress video images and sound recordings, where the loss of small amounts of data does not affect the overall quality of the output. A Lossless data compression algorithm ensures that no information is lost in the compression/decompression process; the decompressed version is identical to the original. PKZIP uses a lossless compression algorithm. Naturally, lossy compression would be completely unacceptable to a data compression program, as losing even a bit could completely alter the meaning of the data. The following sections discuss some of the compression algorithms available and go on to explain how the compression within PKZIP Version 2 works. Random data Data that is purely random or mostly random (such as already compressed or encrypted data) cannot experience any significant compression, regardless of the compression method used. Best compression Small data streams, such as a single line of text or a single record in a database, usually contain only a minimal amount of redundancy, and hence, can only experience a minimal amount of compression. Slightly larger data streams such as several records in a database or a paragraph or page of text contain considerably more redundancy, and can be compressed much more effectively. For example, the character sequence 'data' appears four times within this paragraph, and many more times on this page of text. However, it does not appear more than once on any particular line in this paragraph. Intuitively then, one would expect to get much better compression by attempting to compress this entire page of text, rather than trying to compress each line as a separate entity, and this is in fact the case. T4ASI025-00-00 Characteristics of Data Compression 441 Run-length encoding Run-length encoding (RLE) is one of the simplest and most popular forms of lossless data compression. It works best with files than contain many consecutive occurrences of the same byte pattern, such as print files. Here is a simple example illustrating how RLE works. Imagine that the file you want to compress contains the following 32 bytes of information: F4 6E 12 F1 6E 99 12 F1 6E 4F 12 F1 6E F0 03 F1 6E F0 F1 F1 6E F0 F1 F1 6E F0 F1 F1 6E 65 F1 13 If you examine the data closely, you will notice that it contains several 'runs' of bytes. If you listed the file's contents in such a way that 'runs' were listed on the same line, the file would look like this: F4 6E 99 4F F0 65 12 03 F1 13 6E 6E 6E F0 F0 F0 12 12 F1 F1 F1 6E 6E 6E 6E F1 F1 F1 F1 F1 F1 F1 Now imagine what would happen if you replaced each line in this listing with two bytes: one identifying the number of bytes in the run, and another identifying the value of the bytes in the run. Written this way, the file would look like: 01 08 01 01 04 01 03 01 11 01 F4 6E 99 4F F0 65 12 03 F1 13 With this simple form of encoding, we have compressed 32 bytes of data into 20 bytes. Knowing the compression algorithm, an equally simple program could take the 20 encoded bytes and reproduce the original file by reversing the encoding process. RLE has been incorporated into several file transfer protocols because long runs of identical characters are common and both the encoding and decoding require little processing overhead. The greater the number and length of repeating runs that a file contains, the higher the compression ratio that RLE can achieve. 442 PKZIP for MVS: User Reference T4ASI025-00-00 RLE should be treated with caution, if a file has no repeating bytes, RLE compression would actually double the size of the file. More efficient types of RLE exist, for example types that don't expand every non repeating byte into two bytes. What is good for one file might not be ideal for another. That is why a more efficient compression algorithm/program must analyze a file before compressing it and must choose the compression method best suited to the file. Lempel-Ziv-Welch compression algorithm One compression algorithm that analyses a files contents, and therefore produces higher compression ratios is the famous Lempel-Ziv-Welch (LZW) algorithm. LZW works by building a dictionary of phrases (groups of one or more bytes) from the file. When a new phrase is found, the compression mechanism checks to see if that phrase is already in the dictionary. If not, the phrase is added to the dictionary and a token that identifies the phrase's position in the dictionary is output. If the phrase was already in the dictionary, then the compression mechanism simply outputs the token for the existing phrase. Whereas RLE is ideal for data with repeating single bytes, LZW works better with data containing repeating groups of bytes. Natural languages, such as English, use many repeating character patterns, therefore LZW is usually an excellent choice for compressing text files. The length (in bits) of each output token affects the efficiency of the LZW compression algorithm. The token size in turn determines the maximum size of the phrase dictionary. Tokens are normally from 9 to 15 bits in length. Larger tokens work better for large files, but smaller tokens frequently produce higher compression ratios in small files. Because the final token size is a function of the original file size, LZW normally works equally well with small files as it does with large files. Probabilistic compression methods Probabilistic compression works on the principle that it is possible to compress a file by using varying numbers of bits to represent different characters (or character patterns). Frequently occurring characters are assigned the fewest number of bits, and characters that appear infrequently are assigned the greatest number of bits. For example, suppose the letter A appears 2,000 times in this document, but the letter Q only appears 40 times. Stored as 8-bit EBCDIC or ASCII text, the letters A and Q would occupy 2,040 bytes. Assume that the letter A could be represented in 4 bits, while the letter Q must be represented with 12. Now A and Q would account for only 1,060 bytes - 1,000 bytes for the letter A (2,000 characters at 4 bits per character) and 60 bytes for the letter Q (40 characters at 1½ bytes per character). T4ASI025-00-00 Characteristics of Data Compression 443 This is obviously a more efficient way to store the data, and would result in compression ratios in the region of 50%. This is a simplified example of how probabilistic compression works, and it does not take account of the fact that a probability table must be attached to the compressed data, partially offsetting any gains achieved. In PKZIP Version 1.0 this mechanism was enhanced by assigning variable-length bit patterns, not to single characters, but to pairs of characters. Also, to reduce the size of the probability table and memory usage under MS-DOS, PKZIP Version 1.0 limited the table to 32 patterns beginning with a specific character. That worked very well for text files, because while there will be many occurrences of the characters TH, it is unlikely that there will be many XY combinations. The maximum size of the PKZIP Version 1.0 probability table is around 8k. This is calculated by multiplying the number of characters that can be represented by a byte, 256, by the number of combinations supported for each starting character, 32. This comes to exactly 8k but a number of extra bytes need to be added for header and control fields. In practice, the probability table will be much smaller - especially if the original file is not large. The PKZIP compression algorithms PKZIP Version 2 uses two separate compression algorithms in a process known as deflation. The first process compresses the data using a form of Lempel-Ziv (LZ) compression called sliding dictionary. Sliding dictionary LZ is a derivative of LZW, it works by writing tokens that identify where repeating phrases have previously occurred in the file. Instead of checking the entire file for matching phrases, it uses only a part of the file. The term sliding dictionary is used because the algorithm uses fixed-size blocks whose addresses are repeatedly incremented as the file is read. PKZIP uses a 32K block size, which provides a sensible balance between compression ratio and compression speed. As the block size is increased, the length of time required to check for repeating patterns increases. This is an excellent form of data compression which performs well on files that contain repeating character sequences. The most significant difference between a textbook implementation of LZ compression and the mechanism that PKZIP uses is that when the dictionary becomes full, PKZIP only partially clears it of phrases. Many programs that implement LZ and LZW compression clear the dictionary completely and start the construction of phrases from scratch. After being compressed using the sliding dictionary method, the data is then compressed again using a technique known as Shannon-Fano trees. The Shannon-Fano algorithm is a form of probabilistic compression known as minimum redundancy coding that represents common characters with fewer bits than less frequently occurring characters. The term tree comes from the method usually used to implement Shannon-Fano compression, which involves counting the occurrences of each character and constructing a binary tree where characters represent leaves. 444 PKZIP for MVS: User Reference T4ASI025-00-00 To determine the numeric code for a given character, the algorithm starts at the top of the tree and follows the branches until it finds the specified character. Each branch represents one bit of information. Frequently used characters are located closer to the top of the tree, meaning that they require fewer bits to represent. The GZIP compression algorithm - Deflate Like PKZIP Version 2, GZIP compression uses two separate compression steps. The first process compresses the data using a form of Lempel-Ziv (LZ) compression called sliding dictionary using the process described below. The ‘alphabet’ so created is then compressed using Huffman encoding. Finding Duplicated Strings in GZIP The following, which describes how the Deflate algorithm finds repeated strings, has been extracted from RFC 1951. The PKZIP algorithm uses a different and patented approach to finding duplicated strings. In addition, as described earlier, its dictionary management can also provide the PKZIP algorithm with performance advantages. The compressor uses a chained hash table to find duplicated strings, using a hash function that operates on 3-byte sequences. At any given point during compression, let XYZ be the next 3 input bytes to be examined (not necessarily all different, of course). First, the compressor examines the hash chain for XYZ. If the chain is empty, the compressor simply writes out X as a literal byte and advances one byte in the input. If the hash chain is not empty, indicating that the sequence XYZ (or, if we are unlucky, some other 3 bytes with the same hash function value) has occurred recently, the compressor compares all strings on the XYZ hash chain with the actual input data sequence starting at the current point, and selects the longest match. The compressor searches the hash chains starting with the most recent strings, to favor small distances and thus take advantage of the Huffman encoding. The hash chains are singly linked. There are no deletions from the hash chains; the algorithm simply discards matches that are too old. To avoid a worst-case situation, very long hash chains are arbitrarily truncated at a certain length, determined by a run-time parameter. T4ASI025-00-00 Characteristics of Data Compression 445 Part 8. Glossary and Index T4ASI025-00-00 447 Glossary T4ASI025-00-00 ASCII The ASCII (American Standard Code for Information Interchange) character set is the standard character set used on MS-DOS and UNIX systems. It is also used as the normal character set within text files compressed in a ZIP archive. Note that only the first 128 characters in the ASCII character set are standard on all systems, the others may be different for a given language set. If this is so for your system, it may be necessary to create a different translation table (See Translation table entry later in this glossary) to create standard translation between ASCII and other character sets. CRC A CRC is a Cyclic Redundancy Check, which is used to check that the contents of a ZIP archive are correct. When PKZIP (on any platform) compresses a file, it will calculate a value, based on the contents, using a standard algorithm. This value, which is 32 bits long, is the CRC which is stored with that compressed file. When PKUNZIP extracts the file, it will recalculate the CRC, based on the extracted contents, and compares this against the original, stored CRC. If there is any difference, PKUNZIP will recognise that the data has been modified or corrupted, and will report this. Current dataset The current dataset is a PDS dataset which PKZIP uses to obtain members for compression into a ZIP archive or to which PKUNZIP writes decompressed files from a ZIP archive as members. DYNALLOC This is the shortened term and the name for the IBM macro used to perform dynamic allocation. Dynamic Allocation allows a program such as PKZIP for MVS to access a dataset without first coding JCL statements. EBCDIC The EBCDIC (Extended Binary Characters for Data Interchange) character set is the standard character set used on MVS systems. When PKZIP compresses a text file, it will translate data from the MVS EBCDIC characters to the ASCII characters used within the ZIP archive, using the translation table supplied (See Translation table entry later in this glossary). ENQ The macro used in MVS to restrict access to Serially Reusable resources, so that only the appropriate number of users with the mode of access gain access to the resource at one time. GZIP Utility and specification used to provide file compression. This is documented extensively on the World Wide Web – see especially w3.gzip.org. Glossary 449 450 IDCAMS This is the general name given to the IBM Access Method Services processing that is used to define and manage VSAM datasets. New ZIP archive A new ZIP archive is the ZIP archive created by PKZIP when either an old ZIP archive is updated, or when files are compressed and no ZIP archive currently exists. Old ZIP archive An old ZIP archive is an existing ZIP archive which is opened by PKZIP or PKUNZIP to be updated or for its contents to be extracted. PDS A PDS is a partitioned dataset which is used to hold members, which can be viewed as a separate, but normally related, set of files. PKZIP will compress data from each member, and will treat a compressed member as a file within a ZIP archive. PKUNZIP will extract data from a file within a ZIP archive and will write this data to a member within a specified PDS. RFC – Request for Comment This term is typically used for specifications and standards used by the Internet. When a new specification is made available, it is normally provided in the form of an RFC, so that other users can comment on it. Over a period of time, such RFC’s become the ‘standard’. The GZIP specifications provide an example of this process. SEQ - Sequential A sequential dataset holds a single file of related records. SVC99 Another name for DYNALLOC – see DYNALLOC for more information. VSAM (Virtual Sequential Access Method). This terms generics identifies a certain type of datasets and the processing associated with them. Translation table A translation table is used by PKZIP and PKUNZIP for translating characters in compressed text files between the ASCII character sets used within a ZIP archive and the EBCDIC character set used on MVS systems. ZDW A ZDW is a ZIP descriptor word, and is used within certain compressed files in a ZIP archive to specify the record lengths for each record within the file. Where a binary file does not have a set of ZDWs, it cannot be extracted except at the maximum record length of the PDS into which it is being written. ZIP Archive A ZIP archive is used to refer to a single dataset that contains a number of files compressed into a much smaller space. PKZIP for MVS: User Reference T4ASI025-00-00 Index | - continuation character ......................... 102 | continuation ............................................ 102 + - continuation character ........................ 102 + continuation .......................................... 102 16Mb line ................................................... 93 Abend codes ............................................ 385 Addressing Mode ..................................... 402 ALTLIB ..................................................... 421 Amode ..................................................... 402 API Invoking PKZIP from another program ............................................................ 105 -ARCHINDD decompressing from Tape archives ..... 76 viewing Tape archives .......................... 75 Archive type of data unit (Data Component) ... 219 type of data unit (VSAM)..................... 212 Archive File Size ........................................ 49 Archives Extracting from Tape archives .............. 76 Updating Tape archives ........................ 77 Viewing Tape archives ......................... 75 -ARCHOUTDD Tapes.................................................... 74 ASCII.................................. 46, 111, 112, 113 ASMTRAN ............................................... 115 Assembler Calling PKZIP/PKUNZIP ..................... 107 Attributes .................................................... 85 Binary format files ............................ 173, 231 Configuration File ..................................... 100 Calling PKZIP from another program ...... 105 Central Directory ........................................ 48 Character format ASCII .................................................... 46 EBCDIC ................................................ 46 translation table .................................... 46 COBOL Calling PKZIP/PKUNZIP ..................... 109 code page ................................................ 116 Code pages ............................................. 118 code point ................................................ 116 Commands <dataset name>.......................... 159, 228 -ADD ................................................... 161 -ALIASMEMBER......................... 162, 230 -ARCHBLKSIZ .................................... 162 -ARCHBUFSPACE ............................. 207 -ARCHCATALOG ............................... 207 -ARCHCISZ ........................................ 207 T4ASI025-00-00 -ARCHDATACISZ.............................. 215 -ARCHDATAEEXT ............................ 215 -ARCHDATAFILE .............................. 216 -ARCHDATANAME ........................... 216 -ARCHDATANORD ........................... 216 -ARCHDATANRUS............................ 217 -ARCHDATANWCK........................... 217 -ARCHDATAORD .............................. 217 -ARCHDATAOWNER ........................ 218 -ARCHDATAPRI ................................ 218 -ARCHDATARUS .............................. 218 -ARCHDATASEC .............................. 219 -ARCHDATASHR .............................. 219 -ARCHDATASPACE .................. 213, 219 -ARCHDATAVOL............................... 220 -ARCHDATAWCK ............................. 221 -ARCHDCLASS ................................. 162 -ARCHDIRBLKS ................................ 163 -ARCHDSORG .................................. 164 -ARCHEEXT ...................................... 208 -ARCHERASE ................................... 208 -ARCHFILE ........................................ 208 -ARCHFOR ........................................ 209 -ARCHFREECA ................................. 209 -ARCHFREECI .................................. 209 -ARCHINDD ....................................... 164 -ARCHIVE .................................. 165, 230 -ARCHLRL ......................................... 166 -ARCHMCLASS ................................. 166 -ARCHNOERASE .............................. 210 -ARCHNONSPANNED ...................... 210 -ARCHNOREUSE .............................. 210 -ARCHNORLSE ................................. 167 -ARCHNOWRITECHK....................... 210 -ARCHOUTDD................................... 167 -ARCHOWNER ................................. 211 -ARCHPRIMARY ............................... 168 -ARCHRECORDSIZE ........................ 211 -ARCHREUSE ................................... 212 -ARCHRLSE ...................................... 169 -ARCHSCLASS ................................. 169 -ARCHSECONDARY ......................... 169 -ARCHSHR ........................................ 212 -ARCHSPACE ........................... 170, 220 -ARCHSPACE, VSAM ....................... 212 -ARCHSPANNED .............................. 213 -ARCHTO .......................................... 213 -ARCHTYPE ...................................... 170 -ARCHUNIT ....................................... 171 -ARCHVOL ........................................ 171 -ARCHWRITECHK ............................ 214 Index 451 -ATTRIB...................................... 172, 231 -ATTRIB* ............................................ 140 -ATTRIBCENTRAL ............................. 172 -ATTRIBLOCAL .................................. 172 -BINARY ..................................... 173, 231 -CACHEMEMORY ...... 140, 142, 173, 231 -CNVEXT ............................................ 232 -DELETE .................................... 140, 174 -DELIM ....................................... 174, 233 -ECHO ........................................ 175, 234 -EXTRACT.......................................... 235 -FILEPROCERR ......... 140, 142, 176, 235 -FILESELERR ............ 141, 142, 176, 236 -FRESHEN ................................. 141, 177 -FTRAN .............. 112, 115, 141, 178, 237 -GZIP .......................................... 141, 178 -HIERARCHY ..................................... 237 -HLQ ................................................... 238 -INDD .................................................. 178 -INSERTMEMBER ............................. 241 introduction ......................................... 151 -KEEPINORDER ................................ 179 -MAKEPDS ......................................... 241 -MAKESEQ ......................................... 242 -MAKEVSAM ...................................... 242 -METHOD ................................... 141, 180 -NIA ............................................ 141, 181 -NIASEP ..................................... 141, 185 -NOALIASMEMBER ................... 186, 243 -NOATTRIB ................................ 186, 243 -NOCRLF............................................ 243 -NOECHO ................................... 187, 244 -NOHIERARCHY ................................ 244 -NOKEEPINORDER ........................... 187 -NOPADVSAM ................................... 276 -NOPATH ........................................... 187 -NORECURSE ................................... 188 -NOSYSIN .................................. 188, 244 -NOVSAM ........................................... 188 -OUTATTR ......................................... 277 -OUTBLKSIZ ...................................... 245 -OUTBUFSPACE ............................... 277 -OUTCATALOG ................................. 278 -OUTCISZ........................................... 278 -OUTDATACISZ ................................. 290 -OUTDATAEEXT ................................ 290 -OUTDATAFILE.................................. 291 -OUTDATANORD .............................. 291 -OUTDATANRUS ............................... 291 -OUTDATANWCK .............................. 292 -OUTDATAORD ................................. 292 -OUTDATAOWNER ........................... 293 -OUTDATAPRI ................................... 293 -OUTDATARUS.................................. 294 -OUTDATASEC .................................. 294 -OUTDATASHR.................................. 295 452 -OUTDATASPACE .................... 288, 295 -OUTDATAVOL ................................. 296 -OUTDATAWCK ................................ 296 -OUTDCLASS.................................... 245 -OUTDD ............................................. 246 -OUTDIRBLKS................................... 248 -OUTDUPLICATES ........................... 278 -OUTEEXT......................................... 279 -OUTERASE ...................................... 279 -OUTFILE .......................................... 279 -OUTFOR .......................................... 280 -OUTFREECA ................................... 280 -OUTFREECI ..................................... 281 -OUTIMBED....................................... 281 -OUTINDXCISZ ................................. 297 -OUTINDXEEXT ................................ 297 -OUTINDXFILE .................................. 298 -OUTINDXNORD ............................... 298 -OUTINDXNRUS ............................... 298 -OUTINDXNWCK .............................. 299 -OUTINDXORD ................................. 299 -OUTINDXOWNER ........................... 300 -OUTINDXPRI ................................... 300 -OUTINDXRUS .................................. 301 -OUTINDXSEC .................................. 301 -OUTINDXSHR .................................. 302 -OUTINDXSPACE ..................... 288, 302 -OUTINDXVOL .................................. 303 -OUTINDXWCK ................................. 303 -OUTKEYS ........................................ 282 -OUTLRL ........................................... 249 -OUTMCLASS ................................... 249 -OUTNOERASE ................................ 282 -OUTNOIMBED ................................. 283 -OUTNONSPANNED......................... 283 -OUTNOREPLICATE......................... 283 -OUTNOREUSE ................................ 284 -OUTNORLSE ................................... 250 -OUTNOWRITECHK ......................... 284 -OUTOWNER .................................... 284 -OUTPRIMARY.................................. 250 -OUTPRIMARY (VSAM) .................... 285 -OUTRECORDSIZE .......................... 285 -OUTRECOVERY .............................. 285 -OUTREPLICATE .............................. 286 -OUTREUSE...................................... 286 -OUTRLSE......................................... 251 -OUTSCLASS .................................... 251 -OUTSECONDARY ........................... 251 -OUTSECONDARY (VSAM) .............. 286 -OUTSHR .......................................... 287 -OUTSPACE ...................... 252, 296, 303 -OUTSPACE, (VSAM) ....................... 287 -OUTSPANNED................................. 288 -OUTSPEED ...................................... 288 -OUTTO ............................................. 289 PKZIP for MVS: User Reference T4ASI025-00-00 -OUTTYPE ......................................... 253 -OUTUNIT .......................................... 254 -OUTVOL............................................ 254 -OUTWRITECHK ............................... 289 -OVERWRITE .................................... 255 -PAD ................................................... 255 -PADVSAM ......................................... 276 -PASSWORD ............................. 189, 256 -PATH ................................................. 189 -PCP ................................................... 190 -RECURSE ......................................... 191 -STRIP ................................................ 192 -TAPETODISK............ 141, 142, 192, 256 -TASKS ............................... 141, 142, 193 -TEMP* ....................................... 141, 142 -TEMPBLKSIZ ............................ 194, 257 -TEMPDCLASS .......................... 194, 257 -TEMPPRIMARY ........................ 194, 258 -TEMPSCLASS .......................... 195, 258 -TEMPSECONDARY.................. 195, 258 -TEMPSPACE ............................ 195, 259 -TEMPTYPE ............................... 196, 259 -TEMPUNIT ................................ 196, 260 -TEMPVOL ................................. 196, 260 -TERM ........................................ 197, 260 -TEST ................................................. 262 -TEXT ......................................... 198, 262 -TIMESTAMP ..................................... 198 -TRAN................................. 115, 199, 263 -UPDATE .................................... 141, 200 -VIEW ................. 141, 142, 200, 263, 264 COMMENT option ......................... 266 DETAIL option ............................... 266 options ........................................... 267 order options .................................. 265 -ZDW .......................................... 200, 267 -ZIPCUR ..................................... 201, 268 Commands summary PKZIP ................................................. 154 comment .................................................. 103 Comment cards ....................................... 103 COMPAT option ....................................... 177 Compatibility .............................................. 85 PKZIP for MVS, 2.5 and 2.1 ................. 86 PKZIP for MVS, 2.5 and 2.2 ................. 86 PKZIP for VM ........................................ 92 WinZip Version 5 .................................. 92 Compression Tapes.................................................... 70 Confidence Test....................................... 415 Configuration File ....................................... 99 continuation.............................................. 102 Continuation Characters .......................... 102 continuation examples ............................. 102 conventions used in manual ....................... iv T4ASI025-00-00 CRC ............................................................ 4 Creation Date .......................................... 198 CRLF delimiter ................................ 175, 234 currency symbol ...................................... 117 Cyclic Redundancy Check ............. See CRC Data compression algorithms .................................. 442, 443 best compression............................... 441 characteristics .................................... 441 Deflate algorithm ................................ 445 introduction ............................................ 3 LZW algorithm ................................... 443 PKZIP algorithms ............................... 444 probabilistic compression .................. 443 random data....................................... 441 run-length encoding (RLE) ................. 442 Shannon-Fano trees .......................... 444 sliding dictionary ................................ 444 Alias .......................................................... 23 Dataset Aliases ......................................... 23 DD Specifying Files using .......................... 52 Decompressing sequential datasets .............................. 34 Decompression Tapes ................................................... 72 DG Command ......................................... 312 -DG Command ........................................ 312 DG Example Output ................................ 312 Double Byte Character Set ..................... 111 DYNALLOC .................................................. v Dynamic Allocation....................................... v EBCDIC..................................... 46, 111, 112 ENQ ........................................ 166, 231, 449 euro ......................................................... 117 Example GZIP - extracting data........................ 146 GZIP -VIEWDETAIL .......................... 146 Using -ARCHINDD .............................. 53 Using -ARCHOUTDD .......................... 53 Using GDGs ......................................... 55 Using -INDD ......................................... 52 Using -OUTDD..................................... 54 -VIEWDETAIL ...................................... 33 viewing GZIP archive contents .......... 145 Examples extracting data ..................................... 34 GZIP .................................................. 144 -HLQ .................................................. 239 -INDD ................................................. 179 -NIA ............................................ 182, 184 viewing archive contents ...................... 32 extended storage ...................................... 93 Extracted dataset type of data unit (Data Component) ... 295 Index 453 type of data unit (Index Component) .. 302 Extracted dataset allocation unit name ............................ 254 allocation volume name ...................... 254 block size ............................................ 245 data units .................... 250, 251, 285, 286 DFSMS data class .............................. 245 DFSMS management class ................ 249 DFSMS storage class ......................... 251 Directory blocks .................................. 248 overwriting .......................................... 255 record format ...................................... 253 record length ....................................... 249 type of data unit .......................... 252, 287 FAST method........................................... 180 Features ....................................................... 7 MVS Specific .......................................... 8 File Allocations ......................................... 106 File Attributes ............. 8, 47, 81, 85, 172, 186 GZIP ................................................... 140 Tapes.................................................... 71 File formats ........................................ 45, 137 File Names GZIP ........................................... 140, 142 File selection PKUNZIP ............................................ 228 PKZIP ................................................. 159 Filename wildcards ..................................... 161, 229 Fixes ................................................ 308, 415 GDGs Generation Data Groups ...................... 54 Getting ....................................................... 27 GigaZip .................................................... 424 Global Configuration File ........................... 99 GMT Time ................................................ 199 GNU zip ................................................... 449 GUN zip ......................................... See GZIP GZIP ........................................................ 449 changed commands, PKUNZIP ......... 142 changed commands, PKZIP ............... 140 introduction ......................................... 135 GZIP archive ............................................ 136 viewing contents ................................. 145 GZIP Processing...................................... 139 GZIP Restrictions ..................................... 142 HyperZIP .................................................. 424 IBM Publications .......................................... v IDCAMS ................................................... 450 IEBCOPY ................................................. 409 IEF450I JES message ............................. 385 -INDD compressing Tapes .............................. 70 Installation verifying .............................................. 415 Installation cartridge ................................. 409 454 Installation Verification Procedure .......... 415 ISPF ........................................................ 123 ISPMLIB .................................................. 421 ISPPLIB................................................... 421 JCL assembling translation table .............. 115 example IEBCOPY restore ................ 409 JCL to run PKZIP ...................................... 28 JOBLIB DD ............................................... 28 Large Files ................................................ 48 LF delimiter ..................................... 175, 234 LIBDEF.................................................... 421 Libraries .................................................. 402 Licence Authentication System ............... 423 Licensing Reporting ........................................... 426 Short Term ......................................... 428 Updating............................................. 427 LICOUT ................................................... 428 Local Directory .......................................... 48 Local Time .............................................. 198 Magnetic Tapes using .................................................... 69 Maintenance.................................... 308, 415 MAXIMUM method.................................. 180 Messages ........................................ 315, 387 Licensing ............................................ 387 Patch Printing..................................... 310 MVS attributes........................................... 81 MVS datasets creation .............................................. 403 loading from cartridge ........................ 409 MVS installation ...................................... 402 introduction ........................................ 401 library contents................................... 405 partitioned dataset creation ............... 403 MVS library contents ............................... 405 MVS licensing ................................. 423, 426 New ZIP archive ........................................ 83 NORMAL method.................................... 180 -OUTDD decompressing to Tape ....................... 72 PARM ...................................................... 100 PARM Output .......................................... 100 Patch Notes ............................................ 308 Patch Printing .......................................... 308 Patch Process ......................................... 308 Patches ................................................... 415 PDS files Supported Files .................................... 57 using .................................................... 57 Alias .......................................................... 23 Creation Date .......................................... 199 PDS members using .................................................... 57 Performance PKZIP for MVS: User Reference T4ASI025-00-00 -CACHEMEMORY command ............. 231 Caching .............................................. 173 Multitasking ......................................... 193 PKBEGIN ................................................. 421 PKCLEAN ........................................ 131, 421 PKLOADLB .............................................. 420 PKSTART ........................ 123, 131, 420, 421 PKUNZIP commands summary .......................... 224 VSAM commands summary ............... 271 PKZIP commands summary .......................... 154 introduction ............................................. 3 VSAM commands summary ............... 204 Message format ....................................... 315 PKZIP methods .......................................... 94 PKZIP Temporary Datasets ....................... 83 Program Abends ...................................... 306 PRTFILEx DD .......................................... 312 REGION JCL parameter ...................................... 93 Restrictions ................................................ 21 RFC 1951 .................................................... 135 Sequential files Supported Formats ............................... 51 using ..................................................... 51 Single Byte Character Set........................ 111 Speed/compression combinations .......... See PKZIP methods STEPLIB DD .............................................. 28 Storage Leaks .......................................... 106 STORE method ....................................... 181 Suitable host systems .............................. 402 SUPERFAST method .............................. 180 Supplied libraries ..................................... 402 SYSABEND DD ....................................... 307 SYSIN ...................................................... 101 SYSIN DD .................................................. 28 SYSMDUMP DD ...................................... 307 SYSPRINT DD ........................................... 28 SYSPROC ............................................... 421 System Abends ........................................ 306 SYSUDUMP DD ................................ 28, 307 T4Xnnns .................................................. 387 Tape files Supported Tape Files ........................... 69 Tape Mounts .............................................. 73 Tapes copying to disk ...................................... 70 using ..................................................... 69 Temporary datasets ........................... 82, 165 Temporary File Size ................................... 49 TERMINATE option ................. 176, 177, 236 timestamp ................................................ 198 T4ASI025-00-00 TOLERATE option .................. 176, 177, 236 Trace ....................................................... 311 TRACE Command .................................. 311 -TRACE Command ................................. 311 TRACE Example Output ......................... 311 Translation table ....................... 46, 111, 199 default ................................................ 111 format................................................. 112 modifying.................................... 113, 114 specification ............................... 178, 237 Translation Tables installation .......................................... 408 UNZIPnnns ............................................. 315 User abend codes ................................... 385 User Abend codes .................................. 306 UTC Time................................................ 199 VSAM Data Name......................................... 183 Index Name ....................................... 183 VSAM Commands summary PKUNZIP ........................................... 271 VSAM files Supported Types.................................. 63 using .................................................... 63 WARNONBUSY option ........................... 177 ZDW binary files ............................................ 47 PKUNZIP command .......................... 267 PKZIP command................................ 200 ZIP archive file update .......................................... 200 ZIP archive ............................................ 3, 81 allocation unit name ........................... 171 allocation volume name(s) ................. 171 block size ........................................... 162 compression method ......................... 181 creating new......................................... 82 data units ................................... 168, 169 dataset name ............................. 165, 230 dataset specification .................. 159, 228 decryption .......................................... 256 delimiter characters ................... 174, 233 description ........................................... 81 DFSMS data class ............................. 162 DFSMS management class ............... 166 DFSMS storage class ........................ 169 Directory blocks ................................. 163 encryption .......................................... 189 extension conversion ......................... 232 extracting files .................................... 235 file deletion ......................................... 174 file extraction method......................... 262 file integrity ......................................... 262 file terminators ................................... 243 lrecl .................................................... 166 Index 455 on MVS ................................................. 81 password .................................... 189, 256 record delimiters ................................. 243 record format ...................................... 170 record formats ...................................... 81 terminator characters ................. 197, 261 text file compression ........................... 198 transfer to/from other platforms ............ 89 translation table specification .... 178, 199, 263 type of data unit .................................. 170 update existing files ............................ 177 updating old .......................................... 82 viewing contents ................................... 32 ZIP archives Tapes.................................................... 74 Zip Descriptor Word ....................... See ZDW ZIP temporary dataset allocation format ......................... 196, 259 456 allocation unit name ................... 196, 260 allocation volume name ..................... 260 allocation volume name(s) ................. 196 block size ................................... 194, 257 data units ........................... 194, 195, 258 DFSMS data class ..................... 194, 257 DFSMS storage class ................ 195, 258 type of data unit ......................... 195, 259 ZIPCPUID ............................................... 425 ZIPnnns ................................................... 315 Message format ...................................... 310 ZIPPATCH ...................................... 308, 415 ZIPPATCH Messages ............................. 310 Message format ...................................... 387 ZIPPLIC........................................... 426, 427 ZIPPLIC Messages ................................. 387 ZIPPnnns ................................................ 310 ZIPPSTL ................................................. 428 PKZIP for MVS: User Reference T4ASI025-00-00