En aquest tema, explorarem diverses tècniques de depuració que poden ajudar-te a identificar i solucionar problemes en els teus treballs JCL. La depuració és una habilitat essencial per a qualsevol programador, ja que permet assegurar-se que els treballs s'executen correctament i eficientment.

  1. Revisió de Missatges d'Error

1.1. Tipus de Missatges d'Error

Els missatges d'error en JCL solen ser generats pel sistema JES (Job Entry Subsystem) i poden incloure:

  • Missatges de Sintaxi: Errors en la sintaxi del JCL.
  • Missatges de Recursos: Problemes amb l'accés o la disponibilitat de recursos.
  • Missatges de Condició: Errors relacionats amb condicions específiques definides en el JCL.

1.2. Exemple de Missatge d'Error

IEF212I JOBNAME STEP1 - DATA SET NOT FOUND

Aquest missatge indica que el conjunt de dades especificat no es va trobar. És important revisar el nom del conjunt de dades i assegurar-se que existeix i és accessible.

  1. Utilització de la Declaració MSGLEVEL

2.1. Què és MSGLEVEL?

La declaració MSGLEVEL en la declaració JOB controla el nivell de detall dels missatges que es generen durant l'execució del treball.

2.2. Sintaxi de MSGLEVEL

//JOBNAME JOB (ACCT),'DESCRIPTION', MSGLEVEL=(1,1)
  • Primer Paràmetre: Controla els missatges de treball.
    • 0: Només missatges d'error.
    • 1: Tots els missatges.
  • Segon Paràmetre: Controla els missatges de pas.
    • 0: Només missatges d'error.
    • 1: Tots els missatges.

2.3. Exemple Pràctic

//MYJOB JOB (1234),'MY JOB', MSGLEVEL=(1,1)
//STEP1 EXEC PGM=MYPROG
//DD1   DD DSN=MY.DATA.SET,DISP=SHR

Aquest exemple assegura que es generin tots els missatges de treball i de pas, facilitant la depuració.

  1. Utilització de la Declaració TYPRUN

3.1. Què és TYPRUN?

La declaració TYPRUN en la declaració JOB permet executar el treball en mode de prova, sense processar realment les dades.

3.2. Sintaxi de TYPRUN

//JOBNAME JOB (ACCT),'DESCRIPTION', TYPRUN=SCAN
  • SCAN: Verifica la sintaxi del JCL sense executar-lo.
  • HOLD: Manté el treball en espera fins que es realitzi una acció manual.

3.3. Exemple Pràctic

//MYJOB JOB (1234),'MY JOB', TYPRUN=SCAN
//STEP1 EXEC PGM=MYPROG
//DD1   DD DSN=MY.DATA.SET,DISP=SHR

Aquest exemple verifica la sintaxi del treball sense executar-lo, ajudant a identificar errors de sintaxi abans de l'execució real.

  1. Utilització de la Declaració JCLLIB

4.1. Què és JCLLIB?

La declaració JCLLIB permet especificar una biblioteca de JCL que conté procediments i incloure'ls en el treball.

4.2. Sintaxi de JCLLIB

//JCLLIB ORDER=(MY.LIBRARY)

4.3. Exemple Pràctic

//MYJOB JOB (1234),'MY JOB'
//JCLLIB ORDER=(MY.LIBRARY)
//STEP1 EXEC PROC=MYPROC

Aquest exemple utilitza una biblioteca de JCL per incloure un procediment, facilitant la reutilització i la depuració de codi.

  1. Utilització de la Declaració SYSOUT

5.1. Què és SYSOUT?

La declaració SYSOUT especifica la destinació de la sortida del sistema, com ara missatges de treball i sortida de programes.

5.2. Sintaxi de SYSOUT

//DDNAME DD SYSOUT=A
  • A: Destinació de la sortida (pot variar segons la configuració del sistema).

5.3. Exemple Pràctic

//MYJOB JOB (1234),'MY JOB'
//STEP1 EXEC PGM=MYPROG
//SYSOUT DD SYSOUT=A

Aquest exemple envia la sortida del sistema a la destinació especificada, facilitant la revisió de missatges i resultats.

Exercici Pràctic

Exercici

Crea un treball JCL que:

  1. Utilitzi MSGLEVEL per generar tots els missatges.
  2. Utilitzi TYPRUN per verificar la sintaxi sense executar el treball.
  3. Inclogui una biblioteca de JCL amb JCLLIB.
  4. Especifiqui la sortida del sistema amb SYSOUT.

Solució

//MYJOB JOB (1234),'MY JOB', MSGLEVEL=(1,1), TYPRUN=SCAN
//JCLLIB ORDER=(MY.LIBRARY)
//STEP1 EXEC PGM=MYPROG
//SYSOUT DD SYSOUT=A

Conclusió

En aquesta secció, hem explorat diverses tècniques de depuració en JCL, incloent la revisió de missatges d'error, l'ús de MSGLEVEL, TYPRUN, JCLLIB i SYSOUT. Aquestes eines i tècniques són essencials per identificar i solucionar problemes en els teus treballs JCL, assegurant una execució correcta i eficient. En el proper tema, aprendrem a utilitzar JES2/JES3 per a la resolució de problemes.

© Copyright 2024. Tots els drets reservats