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
- 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.
- 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.
- 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.
Curs de JCL (Job Control Language)
Mòdul 1: Introducció al JCL
- Què és el JCL?
- Estructura Bàsica d'un Treball JCL
- Visió General de les Declaracions JCL
- Executar el Teu Primer Treball JCL
Mòdul 2: Declaracions i Sintaxi del JCL
Mòdul 3: Declaracions de Definició de Dades (DD)
- Definició de Conjunts de Dades
- Conjunts de Dades Temporals
- Referència a Conjunts de Dades
- Paràmetre de Disposició
Mòdul 4: Procediments i Paràmetres Simbòlics
- Introducció als Procediments
- Crear i Utilitzar Procediments
- Paràmetres Simbòlics
- Sobreescriure Paràmetres
Mòdul 5: Conceptes Avançats de JCL
- Processament Condicional
- Declaracions JCLLIB i INCLUDE
- Grups de Dades de Generació (GDGs)
- Reinici i Punt de Control
Mòdul 6: Gestió d'Errors i Depuració
- Errors Comuns de JCL
- Interpretar Missatges d'Error de JCL
- Tècniques de Depuració
- Utilitzar JES2/JES3 per a la Resolució de Problemes