En este módulo, profundizaremos en la programación avanzada de trabajos en CL (Control Language). Aprenderás a gestionar trabajos de manera eficiente, programar trabajos recurrentes y utilizar comandos avanzados para optimizar la ejecución de tareas en tu sistema.

Contenidos

Introducción a la Programación de Trabajos

La programación de trabajos en CL permite automatizar tareas y gestionar la ejecución de procesos en el sistema. Los trabajos pueden ser programados para ejecutarse en momentos específicos, en respuesta a eventos o de manera recurrente.

Conceptos Clave

  • Trabajo (Job): Una unidad de trabajo que el sistema puede ejecutar.
  • Cola de Trabajos (Job Queue): Una lista de trabajos que esperan ser ejecutados.
  • Planificador de Trabajos (Job Scheduler): Un componente del sistema que gestiona la ejecución de trabajos.

Comandos Avanzados para la Gestión de Trabajos

Comando SBMJOB

El comando SBMJOB (Submit Job) se utiliza para enviar un trabajo a una cola de trabajos. Este comando tiene varias opciones avanzadas que permiten una gestión detallada de los trabajos.

SBMJOB CMD(CALL PGM(MIPROGRAMA)) JOB(MITRABAJO) JOBQ(QBATCH) JOBD(MIJOBD)
  • CMD: El comando que se ejecutará en el trabajo.
  • JOB: El nombre del trabajo.
  • JOBQ: La cola de trabajos a la que se enviará el trabajo.
  • JOBD: La descripción del trabajo que define las características del trabajo.

Comando WRKJOB

El comando WRKJOB (Work with Job) permite trabajar con un trabajo específico, proporcionando información detallada y opciones de gestión.

WRKJOB JOB(MITRABAJO)

Comando CHGJOB

El comando CHGJOB (Change Job) se utiliza para cambiar las características de un trabajo en ejecución.

CHGJOB JOB(MITRABAJO) RUNPTY(20)
  • RUNPTY: La prioridad de ejecución del trabajo.

Programación de Trabajos Recurrentes

Para programar trabajos recurrentes, se puede utilizar el comando ADDJOBSCDE (Add Job Schedule Entry), que permite definir trabajos que se ejecutan en intervalos regulares.

ADDJOBSCDE JOB(MITRABAJO) CMD(CALL PGM(MIPROGRAMA)) FRQ(*WEEKLY) SCDDATE(*NONE) SCDTIME(120000)
  • FRQ: La frecuencia con la que se ejecutará el trabajo (*DAILY, *WEEKLY, *MONTHLY).
  • SCDDATE: La fecha de programación del trabajo.
  • SCDTIME: La hora de programación del trabajo.

Ejemplo de Trabajo Recurrente

Programar un trabajo que se ejecute todos los lunes a las 12:00 PM:

ADDJOBSCDE JOB(MITRABAJO) CMD(CALL PGM(MIPROGRAMA)) FRQ(*WEEKLY) SCDDATE(*NONE) SCDDAY(*MON) SCDTIME(120000)

Optimización de la Ejecución de Trabajos

Priorización de Trabajos

Utiliza el comando CHGJOB para ajustar la prioridad de los trabajos y asegurar que los trabajos críticos se ejecuten primero.

CHGJOB JOB(MITRABAJO) RUNPTY(10)

Monitoreo de Trabajos

El comando WRKACTJOB (Work with Active Jobs) permite monitorear los trabajos en ejecución y ajustar sus características en tiempo real.

WRKACTJOB

Ejemplo de Optimización

Ajustar la prioridad de un trabajo en ejecución para que tenga mayor prioridad:

WRKJOB JOB(MITRABAJO)
CHGJOB RUNPTY(5)

Ejercicios Prácticos

Ejercicio 1: Programar un Trabajo

  1. Escribe un programa CL simple que muestre un mensaje.
  2. Utiliza el comando SBMJOB para enviar el programa a una cola de trabajos.
  3. Verifica que el trabajo se ha enviado correctamente utilizando WRKJOB.

Ejercicio 2: Programar un Trabajo Recurrente

  1. Escribe un programa CL que realice una tarea específica (por ejemplo, crear un archivo).
  2. Utiliza el comando ADDJOBSCDE para programar el trabajo para que se ejecute diariamente a las 8:00 AM.
  3. Verifica la programación del trabajo utilizando WRKJOBSCDE.

Soluciones

Solución Ejercicio 1

  1. Programa CL simple:

    PGM
    DCL VAR(&MSG) TYPE(*CHAR) LEN(50) VALUE('Hola, este es un trabajo programado.')
    SNDPGMMSG MSG(&MSG)
    ENDPGM
    
  2. Enviar el programa a una cola de trabajos:

    SBMJOB CMD(CALL PGM(MIPROGRAMA)) JOB(MITRABAJO) JOBQ(QBATCH)
    
  3. Verificar el trabajo:

    WRKJOB JOB(MITRABAJO)
    

Solución Ejercicio 2

  1. Programa CL para crear un archivo:

    PGM
    CRTPF FILE(MILIB/MIFICHERO) RCDLEN(100)
    ENDPGM
    
  2. Programar el trabajo para que se ejecute diariamente:

    ADDJOBSCDE JOB(MITRABAJO) CMD(CALL PGM(MIPROGRAMA)) FRQ(*DAILY) SCDTIME(080000)
    
  3. Verificar la programación del trabajo:

    WRKJOBSCDE
    

Conclusión

En este módulo, hemos explorado la programación avanzada de trabajos en CL. Aprendiste a utilizar comandos avanzados para gestionar trabajos, programar trabajos recurrentes y optimizar la ejecución de tareas en tu sistema. Estos conocimientos te permitirán automatizar y gestionar eficientemente los procesos en tu entorno de trabajo.

En el próximo módulo, profundizaremos en los comandos de configuración del sistema, donde aprenderás a ajustar y optimizar la configuración de tu sistema para mejorar su rendimiento y seguridad.

© Copyright 2024. Todos los derechos reservados