En aquest tema, explorarem els conceptes de reinici i punt de control en JCL. Aquests conceptes són essencials per a la gestió de treballs de llarga durada o crítics, ja que permeten reprendre l'execució d'un treball des d'un punt específic en cas d'error o interrupció.
Què és un Punt de Control?
Un punt de control és un marcador en l'execució d'un treball que permet guardar l'estat actual del treball. Si el treball falla o es deté, es pot reiniciar des d'aquest punt de control en lloc de començar des del principi.
Beneficis dels Punts de Control
- Reducció del Temps de Recuperació: Permet reprendre el treball des d'un punt intermedi, estalviant temps.
- Millora de la Fiabilitat: Minimitza la pèrdua de dades i l'esforç de reprocessament.
- Gestió Eficient de Recursos: Evita la repetició de tasques ja completades, optimitzant l'ús de recursos.
Declaració de Punts de Control en JCL
Per implementar punts de control en JCL, es poden utilitzar les següents tècniques:
- Utilitzar la Declaració CHKPT
La declaració CHKPT
(checkpoint) s'utilitza per definir punts de control en un treball JCL.
En aquest exemple, el treball es guardarà cada 1000 registres processats.
- Utilitzar la Declaració RESTART
La declaració RESTART
s'utilitza per reiniciar un treball des d'un punt de control específic.
Aquest exemple reinicia el treball des del pas STEP1
.
Exemple Pràctic
A continuació, es mostra un exemple complet que il·lustra l'ús de punts de control i reinici en un treball JCL.
Codi JCL
//MYJOB JOB (ACCT),'REINICI I PUNT DE CONTROL',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=MYPROG,CHKPT=1000 //DD1 DD DSN=MY.DATA.SET,DISP=SHR //DD2 DD DSN=MY.OUTPUT.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE) //STEP2 EXEC PGM=MYPROG2 //DD3 DD DSN=MY.OUTPUT.SET,DISP=SHR //DD4 DD DSN=MY.FINAL.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
Explicació del Codi
- Declaració del Treball (
JOB
): Defineix el treball amb el nomMYJOB
. - Pas 1 (
STEP1
): Executa el programaMYPROG
amb punts de control cada 1000 registres. - Pas 2 (
STEP2
): Executa el programaMYPROG2
utilitzant les dades generades en el pas anterior.
Reiniciar el Treball
Si el treball falla en el pas STEP1
, es pot reiniciar des d'aquest punt de control utilitzant la declaració RESTART
.
//MYJOB JOB (ACCT),'REINICI I PUNT DE CONTROL',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=MYPROG,RESTART=STEP1 //DD1 DD DSN=MY.DATA.SET,DISP=SHR //DD2 DD DSN=MY.OUTPUT.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE) //STEP2 EXEC PGM=MYPROG2 //DD3 DD DSN=MY.OUTPUT.SET,DISP=SHR //DD4 DD DSN=MY.FINAL.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
Exercici Pràctic
Exercici
Crea un treball JCL que:
- Defineixi un punt de control cada 500 registres en el primer pas.
- Reiniciï el treball des del punt de control si el treball falla.
Solució
//MYJOB JOB (ACCT),'EXERCICI PUNT DE CONTROL',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=MYPROG,CHKPT=500 //DD1 DD DSN=MY.DATA.SET,DISP=SHR //DD2 DD DSN=MY.OUTPUT.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE) //STEP2 EXEC PGM=MYPROG2 //DD3 DD DSN=MY.OUTPUT.SET,DISP=SHR //DD4 DD DSN=MY.FINAL.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
Per reiniciar el treball des del punt de control:
//MYJOB JOB (ACCT),'EXERCICI PUNT DE CONTROL',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=MYPROG,RESTART=STEP1 //DD1 DD DSN=MY.DATA.SET,DISP=SHR //DD2 DD DSN=MY.OUTPUT.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE) //STEP2 EXEC PGM=MYPROG2 //DD3 DD DSN=MY.OUTPUT.SET,DISP=SHR //DD4 DD DSN=MY.FINAL.SET,DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE)
Resum
En aquest tema, hem après sobre els punts de control i el reinici en JCL. Hem vist com definir punts de control utilitzant la declaració CHKPT
i com reiniciar un treball des d'un punt de control utilitzant la declaració RESTART
. Aquests conceptes són crucials per a la gestió eficient de treballs de llarga durada o crítics, ja que permeten reprendre l'execució des d'un punt intermedi en cas d'error o interrupció.
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