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:

  1. Utilitzar la Declaració CHKPT

La declaració CHKPT (checkpoint) s'utilitza per definir punts de control en un treball JCL.

//STEP1 EXEC PGM=MYPROG,CHKPT=1000

En aquest exemple, el treball es guardarà cada 1000 registres processats.

  1. Utilitzar la Declaració RESTART

La declaració RESTART s'utilitza per reiniciar un treball des d'un punt de control específic.

//STEP1 EXEC PGM=MYPROG,RESTART=STEP1

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

  1. Declaració del Treball (JOB): Defineix el treball amb el nom MYJOB.
  2. Pas 1 (STEP1): Executa el programa MYPROG amb punts de control cada 1000 registres.
  3. Pas 2 (STEP2): Executa el programa MYPROG2 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:

  1. Defineixi un punt de control cada 500 registres en el primer pas.
  2. 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ó.

© Copyright 2024. Tots els drets reservats