En este tema, exploraremos los conceptos de reinicio y punto de control en JCL. Estos mecanismos son esenciales para la gestión de trabajos largos o críticos, permitiendo la recuperación y continuación de trabajos en caso de fallos.

Conceptos Clave

  1. Punto de Control (Checkpoint):

    • Un punto de control es una marca en el procesamiento de un trabajo que permite guardar el estado actual del trabajo.
    • Si el trabajo falla, puede reiniciarse desde el último punto de control en lugar de comenzar desde el principio.
  2. Reinicio (Restart):

    • El reinicio es el proceso de reanudar un trabajo desde un punto de control específico.
    • Esto es útil para evitar la repetición de pasos ya completados y ahorrar tiempo y recursos.

Implementación de Puntos de Control y Reinicio

Declaración de Puntos de Control

Para implementar puntos de control en JCL, se utiliza la declaración CHKPT en combinación con el sistema de gestión de trabajos (JES2 o JES3). Aquí hay un ejemplo básico:

//STEP1    EXEC PGM=MYPROG,REGION=4M,COND=(0,NE)
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,SPACE=(CYL,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

En este ejemplo:

  • SYSCHK es el DD que define el conjunto de datos donde se almacenarán los puntos de control.
  • DSN especifica el nombre del conjunto de datos.
  • DISP define la disposición del conjunto de datos.
  • UNIT y SPACE especifican la unidad y el espacio de almacenamiento.
  • DCB define las características del conjunto de datos.

Reinicio desde un Punto de Control

Para reiniciar un trabajo desde un punto de control, se utiliza el parámetro RESTART en la declaración JOB o EXEC. Aquí hay un ejemplo:

//MYJOB    JOB (ACCT),'RESTART JOB',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID,
//         RESTART=STEP1
//STEP1    EXEC PGM=MYPROG,REGION=4M,COND=(0,NE)
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=OLD

En este ejemplo:

  • RESTART=STEP1 indica que el trabajo debe reiniciarse desde el paso STEP1.
  • DISP=OLD en SYSCHK asegura que el conjunto de datos de puntos de control existente se utilice para el reinicio.

Ejemplo Práctico

Supongamos que tenemos un trabajo que procesa un gran volumen de datos y queremos implementar puntos de control para poder reiniciar en caso de fallo.

Código JCL Completo

//MYJOB    JOB (ACCT),'DATA PROCESSING',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//STEP1    EXEC PGM=MYPROG,REGION=4M,COND=(0,NE)
//SYSIN    DD  *
  // Aquí irían los datos de entrada para el programa
/*
//SYSOUT   DD  SYSOUT=*
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,SPACE=(CYL,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Reinicio del Trabajo

Si el trabajo falla y necesitamos reiniciarlo, modificamos el JCL de la siguiente manera:

//MYJOB    JOB (ACCT),'RESTART JOB',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID,
//         RESTART=STEP1
//STEP1    EXEC PGM=MYPROG,REGION=4M,COND=(0,NE)
//SYSIN    DD  *
  // Aquí irían los datos de entrada para el programa
/*
//SYSOUT   DD  SYSOUT=*
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=OLD

Ejercicio Práctico

Ejercicio

  1. Escribe un JCL que ejecute un programa llamado DATAPROC y defina un conjunto de datos para puntos de control.
  2. Simula un fallo en el trabajo y escribe el JCL necesario para reiniciar el trabajo desde el punto de control.

Solución

Paso 1: JCL Inicial

//MYJOB    JOB (ACCT),'DATA PROCESSING',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//STEP1    EXEC PGM=DATAPROC,REGION=4M,COND=(0,NE)
//SYSIN    DD  *
  // Aquí irían los datos de entrada para el programa
/*
//SYSOUT   DD  SYSOUT=*
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=(NEW,CATLG,DELETE),
//             UNIT=SYSDA,SPACE=(CYL,(1,1)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Paso 2: JCL de Reinicio

//MYJOB    JOB (ACCT),'RESTART JOB',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID,
//         RESTART=STEP1
//STEP1    EXEC PGM=DATAPROC,REGION=4M,COND=(0,NE)
//SYSIN    DD  *
  // Aquí irían los datos de entrada para el programa
/*
//SYSOUT   DD  SYSOUT=*
//SYSCHK   DD  DSN=MY.CHECKPOINT.DATA,DISP=OLD

Conclusión

En esta sección, hemos aprendido sobre los conceptos de puntos de control y reinicio en JCL, cómo implementarlos y cómo utilizarlos para gestionar trabajos de manera eficiente. Estos mecanismos son cruciales para asegurar la continuidad y eficiencia en el procesamiento de trabajos largos o críticos. En el siguiente módulo, exploraremos técnicas avanzadas de manejo de errores y depuración en JCL.

© Copyright 2024. Todos los derechos reservados