For example, we would like to delete all data sets archived before the 01/01/2016.
How to delete these data sets before a specific date?
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)
//*-------------------------------------------------------------------
As usual if you need any additional informations, please contact CA Disk team for assistance.