En aquest tema, explorarem diversos exemples pràctics de JCL (Job Control Language) que es poden trobar en entorns reals. Aquests exemples ajudaran a consolidar els coneixements adquirits en els mòduls anteriors i proporcionaran una visió pràctica de com s'utilitza JCL en situacions del món real.
Exemple 1: Copiar un Conjunt de Dades
Aquest exemple mostra com copiar un conjunt de dades d'entrada a un conjunt de dades de sortida utilitzant la utilitat IEBGENER.
Codi JCL
//COPYJOB JOB (ACCT),'COPY DATASET',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=INPUT.DATASET,DISP=SHR //SYSUT2 DD DSN=OUTPUT.DATASET, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(5,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) //SYSIN DD DUMMY
Explicació
- COPYJOB: La declaració JOB defineix el treball amb un nom, un identificador de compte i altres paràmetres.
- STEP1: La declaració EXEC especifica que s'executarà el programa IEBGENER.
- SYSPRINT: Defineix on s'enviaran els missatges de sortida del programa.
- SYSUT1: Defineix el conjunt de dades d'entrada.
- SYSUT2: Defineix el conjunt de dades de sortida, incloent-hi la seva disposició, espai i característiques de control de dades.
- SYSIN: Defineix que no hi ha entrada addicional per al programa (DUMMY).
Exemple 2: Ordenar un Conjunt de Dades
Aquest exemple mostra com ordenar un conjunt de dades utilitzant la utilitat SORT.
Codi JCL
//SORTJOB JOB (ACCT),'SORT DATASET',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=A //SORTIN DD DSN=INPUT.DATASET,DISP=SHR //SORTOUT DD DSN=OUTPUT.DATASET, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(5,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) //SYSIN DD * SORT FIELDS=(1,10,CH,A) /*
Explicació
- SORTJOB: La declaració JOB defineix el treball amb un nom, un identificador de compte i altres paràmetres.
- STEP1: La declaració EXEC especifica que s'executarà el programa SORT.
- SYSOUT: Defineix on s'enviaran els missatges de sortida del programa.
- SORTIN: Defineix el conjunt de dades d'entrada.
- SORTOUT: Defineix el conjunt de dades de sortida, incloent-hi la seva disposició, espai i característiques de control de dades.
- SYSIN: Defineix les instruccions de sort. En aquest cas, s'ordena el conjunt de dades per les primeres 10 posicions en ordre ascendent.
Exemple 3: Executar un Procediment
Aquest exemple mostra com executar un procediment JCL definit prèviament.
Procediment JCL (PROC)
//MYPROC PROC //STEP1 EXEC PGM=IEFBR14 //DD1 DD DSN=MY.DATASET, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(5,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
Codi JCL per Executar el Procediment
Explicació
- MYPROC: Defineix un procediment amb un pas que executa el programa IEFBR14 (un programa buit) i defineix un conjunt de dades.
- RUNPROC: La declaració JOB defineix el treball amb un nom, un identificador de compte i altres paràmetres.
- STEP1: La declaració EXEC especifica que s'executarà el procediment MYPROC.
Exercicis Pràctics
Exercici 1: Crear un Conjunt de Dades
Escriu un JCL que creï un conjunt de dades nou anomenat USER.DATASET.NEW
amb les següents característiques:
- RECFM=FB
- LRECL=100
- BLKSIZE=1000
- Espai: 10 cilindres primaris i 5 secundaris
Solució
//CREATE JOB (ACCT),'CREATE DATASET',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=IEFBR14 //DD1 DD DSN=USER.DATASET.NEW, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,5)), // DCB=(RECFM=FB,LRECL=100,BLKSIZE=1000)
Exercici 2: Ordenar un Conjunt de Dades per un Camp Diferent
Escriu un JCL que ordeni el conjunt de dades USER.DATASET.INPUT
per les posicions 11 a 20 en ordre descendent i guardi el resultat en USER.DATASET.SORTED
.
Solució
//SORTJOB JOB (ACCT),'SORT DATASET',CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=SORT //SYSOUT DD SYSOUT=A //SORTIN DD DSN=USER.DATASET.INPUT,DISP=SHR //SORTOUT DD DSN=USER.DATASET.SORTED, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(5,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) //SYSIN DD * SORT FIELDS=(11,10,CH,D) /*
Conclusió
En aquesta secció, hem vist diversos exemples pràctics de JCL que es poden trobar en entorns reals. Aquests exemples inclouen la còpia de conjunts de dades, l'ordenació de conjunts de dades i l'execució de procediments. A més, hem proporcionat exercicis pràctics per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per aplicar JCL en situacions del món real i resoldre problemes comuns en la gestió de treballs en sistemes mainframe.
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