About SLiKZiP 1.9 - Industrial Grade Compression for z/OS

SLiKZiP - Continuing the evolution of ASE's compression software

Designed by experienced mainframers, SLiKZiP has just the functionality you need for compression and uncompression tasks in production jobstreams.

Topics:
ZIP dataset support
GZIP dataset support
Batch operation
TSO command line operation
Sequential and Partitioned Datasets
Tape
ZIP encryption support
ZIP64 (files>4GB) support
DEF64 (DEFLATE64 algorithm) support
Dynamic Translate Table support
24/7 Support
Anonymous trialling with daily key download

Back to www.slikzip.com

ZIP dataset support

SLiKZiP supports the ZIP compressed dataset format

Found across all platforms, ZIP datasets, more commonly called ZIP files, are increasingly required to be handled on mainframe systems.

SLiKZiP Features when handling ZIP datasets:

(Note that unless otherwise stated, a feature supported by any particular edition of SLiKZiP will be automatically supported by all subsequent editions)

  • Create or update ZIP datasets
  • List (AUDIT) the content of ZIP datasets
  • Extract (UNZIP) members from ZIP datasets
  • Perform multiple operations (ZIP, GZIP, UNZIP, AUDIT) in a single step
  • TEXT or BINARY modes
  • Translation between EBCDIC and ASCII
  • Customisation of translate tables
  • CRLF, LF, CR, or custom end-of-record and end-of-file delimiters
  • Preserve variable length record lengths with the ZDW option
  • Use wildcards (?,*,**) when selecting members and datasets
  • Use symbolic variables to build ZIP member names, dataset names
  • Create an empty ZIP member from a never-written-to input dataset
  • Support for ZIP64 and DEFLATE64 extensions to ZIP files
  • Support for basic and AES (128/192/256 bit) encryption

GZIP dataset support

SLiKZiP supports the GZIP compressed dataset format

Found especially in UN*X platforms, GZIP datasets, or files, are often required to be handled on mainframe systems.

SLiKZiP Features when handling GZIP datasets:

  • Create GZIP datasets
  • List (AUDIT) the first member only of GZIP datasets
  • Extract (UNZIP) the first member from GZIP datasets
  • Perform multiple operations (ZIP, GZIP, UNZIP, AUDIT) in a single step
  • TEXT or BINARY modes
  • Translation between EBCDIC and ASCII
  • Customisation of translate tables
  • CRLF, LF, CR, or custom end-of-record and end-of-file delimiters
  • Preserve variable length record lengths with the ZDW option
  • Use wildcards (?,*,**) when selecting the member or datasets
  • Use symbolic variables to build GZIP member names, dataset names
  • Create an empty GZIP member from a never-written-to input dataset

Batch operation

SLiKZiP runs as a batch program, accepting input from the PARM= field as well as an optional control statement file.

  • User input may be entirely in the PARM= field. For many basic compression tasks the required information can be specified within the PARM field on the EXEC statement.
    //ZIP      EXEC PGM=SLIKZIP,
    //   PARM='ZIP TODS(your.new.zip.dataset) FRDD(IN) TEXT'
    //IN       DD DISP=SHR,DSN=your.input.sequential.dataset
    //SYSPRINT DD SYSOUT=*
    

  • Control statements, read via ddname SYSIN, allow more complex tasks to be performed.

    Control statement files may also be generated by other programs or be stored within libraries and controlled in different ways than PARM field contents.

    The control statement file ddname and the control listing file ddname can each be overridden by specifying the CTLDD= or PRTDD= keywords in the PARM field.

    //ZIP      EXEC PGM=SLIKZIP,PARM='CTLDD=CARDS PRTDD=LIST ZIP'
    //IN       DD DISP=SHR,DSN=your.input.sequential.dataset
    //LIST     DD SYSOUT=*
    //CARDS    DD *
    FROMDD IN TEXT 
    TODS   your.new.zip.dataset LF  /* just LF, not CRLF
    //
    

  • Users can execute the program as PGM=ZIP or PGM=UNZIP

    When PGM=SLIKZIP is used then ZIP, GZIP or UNZIP must be coded in the PARM field, or in the control statement file.

    //ZIP      EXEC PGM=SLIKZIP,
    // PARM='ZIP TODS(your.new.zip.dataset) FRDD(IN) TEXT'
    //IN       DD DISP=SHR,DSN=your.input.sequential.dataset
    //SYSPRINT DD SYSOUT=*
    
    //GZIP     EXEC PGM=SLIKZIP,
    // PARM='GZIP TODS(your.new.gzip.dataset) FRDD(IN) TEXT'
    //IN       DD DISP=SHR,DSN=your.input.sequential.dataset
    //SYSPRINT DD SYSOUT=*
    

    When PGM=ZIP or PGM=UNZIP is used, the program name itself implies the initial process to be performed:

    //ZIP      EXEC PGM=ZIP,
    // PARM='FRDD(IN) TODS(your.new.zip.dataset) TEXT'
    //IN       DD DISP=SHR,DSN=your.input.sequential.dataset
    //SYSPRINT DD SYSOUT=*
    

  • The program supports the use of wildcard characters within selection arguments.

    To select all members of a PDS with names beginning ABC and put them into the ZIP dataset with membernames made up of their PDS membername plus ".DAT" we could specify:

    //ZIP      EXEC PGM=ZIP,
    // PARM='FRDD(IN(ABC*.DAT) TODS(your.new.zip.dataset) TEXT'
    //IN       DD DISP=SHR,DSN=your.input.partitioned.dataset
    //SYSPRINT DD SYSOUT=*
    

  • This job selects all cataloged datasets with names that match the pattern "USRCFG.SPFLOG*.LIST" and puts them into the ZIP dataset defined by the //ZIP DD statement:
    //ZIP      EXEC PGM=ZIP,REGION=0M,                                
    //  PARM='FRDS(USRCFG.SPFLOG*.LIST) TODD(ZIP) TEXT'               
    //STEPLIB  DD DISP=SHR,DSN=ASE.SLIKZIP.LOAD                       
    //ZIP      DD DSN=USRCFG.NEWZIP,SPACE=(TRK,(10,10)),UNIT=SYSALLDA,
    //  DISP=(,CATLG,DELETE),VOL=SER=ASE004,DCB=BLKSIZE=23476         
    //SYSPRINT DD SYSOUT=*
    

TSO command line operation

SLiKZiP runs as a TSO line command in READY mode or ISPF option 6

  • For many basic compression tasks the required information can be specified on the command line:

    Note: SLIKZIP does not at this stage support the dataset naming conventions for TSO command processors. For the moment all dataset names must be specified in full and without enclosing apostrophes, just like batch operation.

    ===> ZIP FRDS(your.input.dataset) text tods(your.zip)
    

  • The DEMO version does require a control statement file containing at least a DEMOKEY statement. *

    This file will by default be read via ddname SYSIN. To avoid having to type or paste a DEMOKEY statement into the screen each time the command is executed, a current DEMOKEY statement can be saved as a PDS member to which ddname SYSIN is then allocated.

    ===> alloc f(sysin) da(your.pds(demokey)) shr
    ===> ZIP FRDS(your.input.dataset) text tods(your.zip)
    

    * When installed for formal trial, or when a license agreement has been entered into, a unique key installed within the SLIKZIP program removes the need for a DEMOKEY statement.

Sequential and Partitioned Datasets

SLiKZiP reads and writes sequential and partitioned datasets

Tape

SLiKZiP 1.9 will compress data directly to a new ZIP dataset on tape. SLiKZiP cannot read a ZIP file directly from tape. SLiKZiP can read the data to be compressed directly from tape. SLiKZiP can write uncompressed data directly to tape.

ZIP encryption support

SLiKZiP 1.9 supports AES 128/192/256 bit encryption. The PASSWORD(..) option may be used to provide a password of up to 64 characters for compress and uncompress operations. Different passwords may be provided for different members." The AES option used with PASSWORD(..) will cause SLiKZiP to use AES encryption. Passwords up to 31 characters force 128 bit encryption, 32 to 63 characters force 192 bit encryption and a 64 character password will force 256 bit encryption.

see: http://www.winzip.com/aes_info.htm for more on AES.

SLiKZiP also supports the standard PKZIP encryption process. The PASSWORD(..) option may be used to provide a password of up to 64 characters for compress and uncompress operations. Different passwords may be provided for different members.

Note that encryption is not a feature of the GZIP file format. Therefore, SLIKZIP does not support the use of the PASSWORD(..) option when creating, or extracting from, a GZIP dataset.

Support for files > 4GB in size

SLiKZiP 1.4 supports the ZIP file extensions that allow members to be larger than 4GB. To invoke this option simply use the ZIP64 process option.

//ZIP      EXEC PGM=ZIP,REGION=0M,                            
//  PARM=('FRDS(USRCFG.SPFLOG*.LIST) TEXT TRMOD(EUROTAB) ',   
//        'ZIP64 TODD(ZIP)')                                  
//STEPLIB  DD DISP=SHR,DSN=ASE.SLIKZIP.LOAD                   
//ZIP      DD DSN=USRCFG.NEWZIP,SPACE=(TRK,(10,10)),UNIT=3390,
//  DISP=(,CATLG,DELETE),VOL=SER=ASE004,DCB=BLKSIZE=23476     
//SYSPRINT DD SYSOUT=*

Note that during an UNCOMPRESS or UNZIP operation, SLiKZiP 1.4 automatically detects that ZIP64 has been used during compression and operates in a compatible way.

Support for DEFLATE 64 algorithm

SLiKZiP 1.4 supports the alternative compression algorithm known as DEFLATE 64. To invoke this option simply use the DEF64 process option.

//ZIP      EXEC PGM=ZIP,REGION=0M,                            
//  PARM=('FRDS(USRCFG.SPFLOG*.LIST) TEXT TRMOD(EUROTAB) ',   
//        'DEF64 TODD(ZIP)')                                  
//STEPLIB  DD DISP=SHR,DSN=ASE.SLIKZIP.LOAD                   
//ZIP      DD DSN=USRCFG.NEWZIP,SPACE=(TRK,(10,10)),UNIT=3390,
//  DISP=(,CATLG,DELETE),VOL=SER=ASE004,DCB=BLKSIZE=23476     
//SYSPRINT DD SYSOUT=*

Note that during an UNCOMPRESS or UNZIP operation, SLiKZiP 1.4 automatically detects that DEF64 has been used during compression and operates in a compatible way.

Dynamic Translate Table support

SLiKZiP lets you specify your own translate tables in two ways:

  • Tables, assembled and linked as 512-byte load modules, are named using the TRMOD(..) process option. In this example the load module EUROTAB must be available via STEPLIB or linklist:
    //ZIP      EXEC PGM=ZIP,REGION=0M,                            
    //  PARM=('FRDS(USRCFG.SPFLOG*.LIST) TEXT TRMOD(EUROTAB) ',   
    //        'TODD(ZIP)')                                        
    //STEPLIB  DD DISP=SHR,DSN=ASE.SLIKZIP.LOAD                   
    //ZIP      DD DSN=USRCFG.NEWZIP,SPACE=(TRK,(10,10)),UNIT=3390,
    //  DISP=(,CATLG,DELETE),VOL=SER=ASE004,DCB=BLKSIZE=23476     
    //SYSPRINT DD SYSOUT=*
    

  • Tables can be defined "in flight" by using control statements. Here we've copied SLiKZiP's default table (called "ASCII") and used Table Modification Records to alter it to create table EURO_ASCII which is then referred to by the TRANSTAB(..) process option on the FRDS statement.
    //ZIP      EXEC PGM=ZIP,REGION=0M                             
    //STEPLIB  DD DISP=SHR,DSN=ASE.SLIKZIP.LOAD                   
    //ZIP      DD DSN=USRCFG.NEWZIP,SPACE=(TRK,(10,10)),UNIT=3390,
    //  DISP=(,CATLG,DELETE),VOL=SER=ASE004,DCB=BLKSIZE=23476     
    //SYSPRINT DD SYSOUT=*                                        
    //SYSIN    DD *                                               
    TRANSTAB EURO_ASCII COPY(ASCII) FOR(ZIP) VERIFY               
     +43 FE                                                       
     +9F 80                                                       
                                                                  
    FRDS USRCFG.SPFLOG*.LIST  TEXT TRANSTAB(EURO_ASCII)           
    TODD ZIP                                                      
    //
    

24/7 Support

SLiKZiP is supported 24x7 by email, web site and telephone every day of the year.

Anonymous trialling with daily key download

After accepting a very simple no-productive-use condition, triallors may download and install the demo version of SLiKZiP.

Alternatively, you may wish to find out about a more formal trial

SLiKZiP home page