How to Compress Existing Data Sets with zEDC Using CA Disk

Document ID : KB000073068
Last Modified Date : 26/06/2018
Show Technical Document Details
Introduction:
While you activate zEDC, you could want to know how easily you can compress existing data sets with zEDC using CA Disk.
Instructions:
You can compress existing data sets with zEDC using CA Disk MOVE utility.

IMPORTANT:
Prerequisites:

Apply the following CA Disk PTFs:
RO93439 to permit MOVE on multi-volumes
RO95648 to fix 2959 DATASET WITH PREMATURE EOF error 
RO96234 is required for non zEDC archived data set sizes to not increase at restore time. 

For zEDC data sets, it exists an IBM problem which requires some Apars. 
IBM Apars: UA95914 and UA95893 are the fixes for z/OS 2.3. It exists equivalent Apars for z/OS 2.2. Please contact IBM. 

Here is how to do it.
  • First, you need to ensure that SMS definition for zEDC compression is done by defining a DATA CLASS.
Data Class Name : COMPZEDC             
Description : ZEDC COMPRESSION         
Data Set Name Type  . . .  : EXTENDED  
  If Extended . . . . . .  : PREFERRED 
  Extended Addressability  : NO        
  Record Access Bias  . .  : USER      
  RMODE31 . . . . . . . .  :           
Space Constraint Relief .  : NO        
  Reduce Space Up To (%)   :           
  Guaranteed Space Reduction: NO       
  Dynamic Volume Count  .  :           
Compaction  . . . . . . .  : ZP        
Spanned / Nonspanned  . .  :           
System Managed Buffer   .  :           
System Determined Blocksize: NO   

 
  • Second, the SMS ACS rules should be coded to permit the use of zEDC.
STORAGE CLASS
The STORAGE CLASS ACS routine does an association with a STORAGE CLASS that will be used to assign the zEDC STORAGE GROUP.
Here is a sample of the rule:

IF (&DATACLAS = 'COMPZEDC' AND &UNIT NE ‘TAPE’) THEN DO
   SET &STORCLAS = 'ZEDCSC'                           
END      

 
STORAGE GROUP
The STORAGE GROUP used for zEDC can be an existing one.
The assignment in the STORAGE GROUP can be easily done like this:

/* ----------- ASSIGN STORAGE GROUP TO ZEDC COMPRESSED FILES ----- */ 
IF (&DATACLAS = 'COMPZEDC' AND &STORCLAS = 'STANDARD') THEN DO     
   SET &STORGRP = 'ZEDCSG'                                            
END            
                                                       
 
  • Third, CA Disk makes all sequential data sets be zEDC compressed by simply using the MOVE command. It can also return those data sets back to non zEDC compressed state.
Setting SMSALLOC to Y causes the new DATACLASS to be passed in to your ACS routines.  Using the previous ACS statements will then allow the data set to be compressed.

Note below are sample for single volume data sets, in case you have multi-volumes to move, please consider the following changes to perform:

single volume conversion needs MOVE TOVOL=(vvvvvv),DATACLAS=COMPZEDC,STORCLAS=SCZEDC 
multi-volume conversion needs MOVE DATACLAS=DCZEDC,STORCLAS=SCZEDC
 
Here are samples for each case.
//*  ACTIVE ZEDC FOR SMS                            

//S02MOVE   EXEC DMS                                
//SYSIN    DD *
   FIND DSN=
   MOVE TOVOL=volser,DATACLAS=COMPZEDC                           
//SYSPARMS  DD   *                                  
SMSALLOCY        
                                   

NB: The TOVOL=volser points to one of the volume residing into the ZEDC STORAGE Group                                                    
 
//*  ACTIVE ZEDC FOR NON SMS                  

//S02MOVE   EXEC DMS                          
//SYSIN    DD *            
   FIND DSN=
   MOVE TOVOL=volser,DATACLAS=COMPZEDC                     
//SYSPARMS  DD   *                            
SMSALLOCY 


NB: The TOVOL=volser points to one of the volume residing into the ZEDC STORAGE Group                                        
 
If you would like to return to a non zEDC data set then use the MOVE as follow.
//* REMOVE ZEDC TO NON SMS                           

//S02MOVE   EXEC DMS                                
//SYSIN    DD *
   FIND DSN=
   MOVE TOVOL=(TSOxxx,TSOyyy)                       
//SYSPARMS  DD   *                                  
SMSALLOCN                  
                          
Note that the SYSPARM SMSALLOCN is needed to override the SMS information that CA Disk would use from its record information during the new allocation. Here I use other Management, Storage and Data class than the one setup for zEDC. 

NB: The TOVOL=volser points to one of the volume you would like the data set moved to.

   

//* REMOVE ZEDC TO SMS                              

//S02MOVE   EXEC DMS                                
//SYSIN    DD *
   FIND DSN=
   MOVE MGMTCLAS=TSO,STORCLAS=TSO,DATACLAS=DEFAULT  
//SYSPARMS  DD   *                                  
SMSALLOCY        

    
NOTE: The MOVE does not authorize you to move a data set to its original volume so do not forget to use a POOL or a STORAGE GROUP.
Additional Information:
Once you return from zEDC status to non-zEDC, the LISTCAT could show you such information:
 
ACT-DIC-TOKEN----X'4000000B01F001F902400703080908FE05FE0DFE0EFE0AFE000000000000000000000000'
 
Dictionary token identifies type of compression
• First two bytes of token

– Generic           Token .10. .000 .... 0000             X’4000’
– Tailored           Token .11. .xxx .... 0000              X’6x00’
– zEDC              Token .11. .000 .... 0001              X’6001’
– Rejection        Token 1... .... .... ....                      X’8000’

 
So your data set is not zEDC compressed, however your Dataclas has probably still the Hardware compression defined.