En aquest estudi de cas, explorarem com utilitzar JCL per dur a terme tasques de manteniment del sistema. Aquestes tasques poden incloure la còpia de seguretat de dades, la neteja de conjunts de dades temporals, la reorganització de fitxers i altres operacions essencials per mantenir el sistema en bon estat de funcionament.

Objectius del Manteniment del Sistema

  • Còpia de Seguretat de Dades: Assegurar que les dades crítiques es copien regularment per evitar pèrdues.
  • Neteja de Conjunts de Dades Temporals: Eliminar fitxers temporals que ja no són necessaris per alliberar espai.
  • Reorganització de Fitxers: Millorar el rendiment del sistema reorganitzant fitxers fragmentats.
  • Monitoratge i Registre: Registrar les operacions de manteniment per a futures referències i auditories.

Exemples Pràctics

  1. Còpia de Seguretat de Dades

A continuació es mostra un exemple de JCL per fer una còpia de seguretat d'un conjunt de dades crític:

//BACKUP   JOB (ACCT),'BACKUP JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1   DD DSN=CRITICAL.DATA.SET,DISP=SHR
//SYSUT2   DD DSN=BACKUP.DATA.SET,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN    DD DUMMY

Explicació del Codi:

  • JOB Statement: Defineix el treball amb el nom BACKUP i especifica la classe de treball i la classe de missatges.
  • EXEC Statement: Executa el programa IEBGENER, que es fa servir per copiar dades.
  • SYSPRINT DD Statement: Defineix on s'enviaran els missatges de sortida.
  • SYSUT1 DD Statement: Especifica el conjunt de dades d'entrada (CRITICAL.DATA.SET).
  • SYSUT2 DD Statement: Defineix el conjunt de dades de sortida (BACKUP.DATA.SET) amb els seus paràmetres de disposició, unitat i espai.
  • SYSIN DD Statement: Indica que no hi ha cap entrada de control per al programa.

  1. Neteja de Conjunts de Dades Temporals

Aquest exemple mostra com eliminar conjunts de dades temporals que ja no són necessaris:

//CLEANUP  JOB (ACCT),'CLEANUP JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IEFBR14
//TEMPDS   DD DSN=TEMP.DATA.SET,
//            DISP=(MOD,DELETE,DELETE)

Explicació del Codi:

  • JOB Statement: Defineix el treball amb el nom CLEANUP.
  • EXEC Statement: Executa el programa IEFBR14, que és un programa buit utilitzat per a operacions de gestió de fitxers.
  • TEMPDS DD Statement: Especifica el conjunt de dades temporal (TEMP.DATA.SET) i els seus paràmetres de disposició per eliminar-lo.

  1. Reorganització de Fitxers

Per reorganitzar un fitxer fragmentat, podem utilitzar el següent JCL:

//REORG    JOB (ACCT),'REORG JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  REPRO INFILE(INPUT) OUTFILE(OUTPUT)
  DELETE INPUT.DATA.SET
  DEFINE CLUSTER(NAME(INPUT.DATA.SET) -
    VOLUMES(VOL001) -
    INDEXED -
    RECORDSIZE(80 80) -
    KEYS(8 0) -
    FREESPACE(3 3))
/*
//INPUT    DD DSN=INPUT.DATA.SET,DISP=SHR
//OUTPUT   DD DSN=REORG.DATA.SET,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Explicació del Codi:

  • JOB Statement: Defineix el treball amb el nom REORG.
  • EXEC Statement: Executa el programa IDCAMS, utilitzat per a la gestió de fitxers VSAM.
  • SYSPRINT DD Statement: Defineix on s'enviaran els missatges de sortida.
  • SYSIN DD Statement: Conté les instruccions per a IDCAMS, incloent la còpia (REPRO), eliminació (DELETE) i redefinició (DEFINE) del conjunt de dades.
  • INPUT DD Statement: Especifica el conjunt de dades d'entrada (INPUT.DATA.SET).
  • OUTPUT DD Statement: Defineix el conjunt de dades de sortida (REORG.DATA.SET) amb els seus paràmetres de disposició, unitat i espai.

Exercicis Pràctics

Exercici 1: Crear un Treball de Còpia de Seguretat

Crea un treball JCL que faci una còpia de seguretat del conjunt de dades USER.DATA.SET a USER.BACKUP.SET.

Exercici 2: Netejar Conjunts de Dades Temporals

Escriu un treball JCL per eliminar el conjunt de dades temporal USER.TEMP.SET.

Exercici 3: Reorganitzar un Fitxer

Escriu un treball JCL per reorganitzar el conjunt de dades USER.FRAGMENTED.SET i guardar-lo com USER.REORG.SET.

Solucions

Solució 1: Crear un Treball de Còpia de Seguretat

//BACKUP   JOB (ACCT),'BACKUP JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1   DD DSN=USER.DATA.SET,DISP=SHR
//SYSUT2   DD DSN=USER.BACKUP.SET,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//SYSIN    DD DUMMY

Solució 2: Netejar Conjunts de Dades Temporals

//CLEANUP  JOB (ACCT),'CLEANUP JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IEFBR14
//TEMPDS   DD DSN=USER.TEMP.SET,
//            DISP=(MOD,DELETE,DELETE)

Solució 3: Reorganitzar un Fitxer

//REORG    JOB (ACCT),'REORG JOB',CLASS=A,MSGCLASS=A
//STEP1    EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
  REPRO INFILE(INPUT) OUTFILE(OUTPUT)
  DELETE USER.FRAGMENTED.SET
  DEFINE CLUSTER(NAME(USER.FRAGMENTED.SET) -
    VOLUMES(VOL001) -
    INDEXED -
    RECORDSIZE(80 80) -
    KEYS(8 0) -
    FREESPACE(3 3))
/*
//INPUT    DD DSN=USER.FRAGMENTED.SET,DISP=SHR
//OUTPUT   DD DSN=USER.REORG.SET,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,SPACE=(CYL,(50,10),RLSE),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Conclusió

En aquest estudi de cas, hem vist com utilitzar JCL per dur a terme tasques de manteniment del sistema, com ara la còpia de seguretat de dades, la neteja de conjunts de dades temporals i la reorganització de fitxers. Aquests exemples pràctics i exercicis t'ajudaran a comprendre millor com aplicar JCL en situacions reals per mantenir el sistema eficient i organitzat.

© Copyright 2024. Tots els drets reservats