Delete data sets in FILES before a specific date

Document ID : KB000012512
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

For example, we would like to delete all data sets archived before the 01/01/2016.

Question:

How to delete these data sets before a specific date?

Environment:
z/OS
Answer:

To perform such task, you will need to run a LISTD report and sort it to get a list of only those data sets archived before this specific date.

Once done, a second sort can be used to generate the SYSIN command for an IXUPDATE run.

 

In summary, you will have to run a LISTD, SORT and IXUPDATE to delete these archived data sets.

 

Here is a sample JCL to use to perform the LIST and generate commands:

//jobcard                                                   

//*-------------------------------------------------------------------          

/*JOBPARM LINES=9999                                                            

//SAMS  JCLLIB ORDER=DISKR125.CCUWPROC   << to change                                  

//*------------------------------------------------------------------           

//DEL     EXEC PGM=IDCAMS                                                       

//SYSPRINT  DD SYSOUT=*                                                         

//SYSIN     DD *                                                                

  DELETE &userid.LISTD1.REPORT                                                  

  DELETE &userid.LISTD1.ALL.ENTRIES                                             

  DELETE &userid.LISTD1.ENTRIES.TO.DELETE                                       

  DELETE &userid.LISTD1.IXUPDATE.DEL.CMDS                                       

  SET MAXCC=0                                                                   

//*------------------------------------------------------------------- 

//*--- create the list of all existing FILES entries         --------- 

//*-------------------------------------------------------------------          

//STEP01  EXEC LISTD                                                            

//SYSPRINT  DD DSN=&userid.LISTD1.REPORT,                                       

//             DISP=(NEW,CATLG),UNIT=SYSDA,                                     

//             SPACE=(CYL,(5,1),RLSE),                                          

//             DCB=(RECFM=FB,LRECL=133,BLKSIZE=0)                               

//SYSIN     DD *                                                                

  LISTD DUP,DSN=/,                                                              

        FIELDS=(DSNAM,ARCDT,ATIME,FLAG1,VERS)                                   

//*-------------------------------------------------------------------

//*--- sort the list to get only data set lines          ------------- 

//*-------------------------------------------------------------------           

//STEP02  EXEC PGM=SORT,REGION=5M                                               

//SYSOUT    DD SYSOUT=*                                                         

//SORTIN    DD DISP=SHR,DSN=&userid.LISTD1.REPORT                               

//SORTOUT   DD DSN=&userid.LISTD1.ALL.ENTRIES,                                  

//             DISP=(NEW,CATLG),UNIT=SYSDA,                                     

//             SPACE=(CYL,(5,1),RLSE),                                          

//             DCB=(RECFM=FB,LRECL=133,BLKSIZE=0)                               

//SYSIN     DD *                                                                

  SORT FIELDS=(2,44,CH,A,47,8,CH,D,56,4,CH,D)                                   

  INCLUDE COND=(51,1,CH,EQ,C'.')                                                

//*-------------------------------------------------------------------

//*-----Filter only records to work with      ------------------------ 

//*-------------------------------------------------------------------           

//STEP03  EXEC PGM=SORT,REGION=5M                                               

//SYSOUT    DD SYSOUT=*                                                         

//SORTIN    DD DISP=SHR,DSN=&userid.LISTD1.ALL.ENTRIES                          

//SORTOUT   DD DSN=&userid.LISTD1.ENTRIES.TO.DELETE,                            

//             DISP=(NEW,CATLG),UNIT=SYSDA,                                     

//             SPACE=(CYL,(5,1),RLSE),                                          

//             DCB=(RECFM=FB,LRECL=133,BLKSIZE=0)                               

//SYSIN     DD *                                                                

  SORT FIELDS=COPY                                                              

*   SELECT OLDER THAN 1 YEAR, BUT LEAVE IF IT IS THE ONLY ENTRY:                

* INCLUDE COND=(47,8,CH,LT,C'2015.365',AND,69,1,CH,GT,C'0')  

*   SELECT OLDER THAN 1 YEAR                   

  INCLUDE COND=(47,8,CH,LT,C'2015.365')                                         

//*-------------------------------------------------------------------

//*------ Prepare the IXUPDATE SYSIN                  ---------------- 

//*-------------------------------------------------------------------           

//STEP04  EXEC PGM=SORT,REGION=5M                                               

//SYSOUT    DD SYSOUT=*                                                         

//SORTIN    DD DISP=SHR,DSN=&userid.LISTD1.ENTRIES.TO.DELETE                    

//SORTOUT   DD DSN=&userid.LISTD1.IXUPDATE.DEL.CMDS,                            

//             DISP=(NEW,CATLG),UNIT=SYSDA,                                     

//             SPACE=(CYL,(5,1),RLSE),                                          

//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=4000)                             

//SYSIN     DD *                                                                

  SORT FIELDS=COPY                                                              

*   BUILD THE IXUPDATE DELETE TIMEDATE=HHMMYYYYDDD,DSN=DSNAME COMMAND           

  OUTREC FIELDS=(C' DEL TIM=',56,4,47,4,52,3,C',DSN=',2,44,80:X)                

//*-------------------------------------------------------------------          

 

Additional Information:

As usual if you need any additional informations, please contact CA Disk team for assistance.