Professional Documents
Culture Documents
CONCEPTOS
DE
JCL
Pgina 0
Conceptos de JCL
Indice
1. OBJETIVO DEL CURSO.........................................................................................................................
2. INTRODUCCIN......................................................................................................................................
3. CONTROL DE TRABAJOS.....................................................................................................................
4. LENGUAJE DE CONTROL DE TRABAJOS (J.C.L.)..............................................................................
4.1. Definiciones Previas........................................................................................................................
4.2. Formato de las Sentencias de Control...........................................................................................
4.3. Sentencias de Control.....................................................................................................................
4.3.1. Sentencia JOB :...........................................................................................................................
4.3.1.1. ADDRSPC.............................................................................................................................
4.3.1.2. CLASS..................................................................................................................................
4.3.1.3. MSGCLASS..........................................................................................................................
4.3.1.4. MSGLEVEL...........................................................................................................................
4.3.1.5. NOTIFY.................................................................................................................................
4.3.1.6. PRTY.....................................................................................................................................
4.3.1.7. RD.........................................................................................................................................
4.3.1.8. REGION................................................................................................................................
4.3.1.9. RESTART..............................................................................................................................
4.3.1.10. TIME....................................................................................................................................
4.3.1.11. TYPRUN..............................................................................................................................
4.3.1.12. COND :................................................................................................................................
4.3.2. Sentencia EXEC :........................................................................................................................
4.3.2.1. PGM :....................................................................................................................................
4.3.2.2. PROC....................................................................................................................................
4.3.2.3. ADDRSPC.............................................................................................................................
4.3.2.4. COND....................................................................................................................................
4.3.2.5. PARM....................................................................................................................................
4.3.2.6. REGION................................................................................................................................
4.3.3. Sentencia DD :.............................................................................................................................
4.3.3.1. */DATA...................................................................................................................................
4.3.3.2. DUMMY.................................................................................................................................
4.3.3.3. DSNAME/DSN......................................................................................................................
4.3.3.4. DISP......................................................................................................................................
4.3.3.5. SPACE..................................................................................................................................
4.3.3.6. VOLUME...............................................................................................................................
4.3.3.7. UNIT......................................................................................................................................
4.3.3.8. LABEL...................................................................................................................................
4.3.3.9. DCB.......................................................................................................................................
4.3.3.10. LIKE....................................................................................................................................
4.3.3.11. FREE...................................................................................................................................
4.3.3.12. SYSOUT.............................................................................................................................
4.3.3.13. DEST...................................................................................................................................
4.3.3.14. COPIES...............................................................................................................................
4.4. Sentencias DD Especiales...............................................................................................................
4.4.1. JOBCAT.......................................................................................................................................
4.4.2. JOBLIB........................................................................................................................................
Pgina 1
Conceptos de JCL
4.4.3.
4.4.4.
4.4.5.
4.4.6.
4.4.7.
SETPCAT....................................................................................................................................
SETPLIB......................................................................................................................................
SYSABEND,SYSUDUMP,SYSMDUMP.......................................................................................
SYSIN..........................................................................................................................................
SYSPRINT...................................................................................................................................
1.
El principal objetivo del curso de "INICIACION A LOS J.C.L." es el conocimiento por parte de
los programadores de los parmetros existentes as como su significado y utilizacin en las sentencias
de control.
Para ello el curso mostrar una visin general de la gestin de los trabajos por parte del
sistema; as como una explicacin de las sentencias de control con los parmetros generalmente ms
usados.
Pgina 2
Conceptos de JCL
2.
Introduccin
Un sistema operativo es un conjunto de programas que gobiernan un sistema hardware.
Para ello debe realizar las siguientes funciones:
. Controlar la ejecucin de trabajos
. Suministrar los servicios que otros programas necesitan
. Mantener disponibles los recursos del sistema
. Asignar recursos a un determinado trabajo
El M.V.S. es un sistema operativo capaz de realizar todas estas funciones.
Para poder ejecutar un programa en el sistema, el programador deber introducir una serie de
sentencias que permitan al sistema operativo controlar su ejecucin, as como asignar los recursos
necesarios, etc....
Al conjunto de sentencias del sistema operativo que permiten la ejecucin de un programa se
llama JOB y al lenguaje de control se le denomina J.C.L. (Lenguaje de control de trabajos).
La memoria del M.V.S. en un sistema IBM se puede dividir segn el siguiente grfico.
V CICS
T
A
M
BATCH
U.T.
VTAM
TSO/ISPF
BATCH
U.T.
Pgina 3
Conceptos de JCL
3.
Control de Trabajos
El JES se comunica con un iniciador para la ejecucin del JOB. El iniciador es el encargado de
arrancar
el JOB para que empiecen a competir por los recursos del sistema con otros trabajos que ya
estan ejecutandose.
Un iniciador es arrancado para que de servicio a unas determinadas clases de entrada; el JES
explora la cola de JOB's para determinar cuales de la primera clase estan en espera de
ejecucin antes de empezar con la segunda.
Esta seleccin se hace tambien en funcion de la prioridad del JOB, siendo seleccionado antes
un JOB de menor prioridad de la primera clase del iniciador que uno con mayor prioridad de la
segunda clase.
4.- INICIACION del JOB por parte del iniciador, este compite con otros trabajos por los recursos
necesarios para la ejecucin del JOB.
5.- EJECUCION del JOB por parte del iniciador.
6.- TERMINACION del JOB, en este caso el iniciador libera los recursos asignados a este
trabajo,
elimina ficheros de trabajo y cede control al JES para dejar el resultado de la ejecucin en
la cola
de salida.
7.- El JES se encarga de escribir el resultado de la ejecucin en la impresora adecuada, esta
fase
Pgina 4
Conceptos de JCL
4.
4.1.
Definiciones Previas
PASO DE UN JOB : Un paso de Job es un conjunto de sentencias de control que
controlan y solicitan los recursos necesarios para la ejecucin de un determinado
programa.
Un paso de Job puede contener los datos necesarios para la ejecucin de un
programa.
PROCEDIMIENTOS (CATALOGADOS O IN-STREAM): Un procedimiento es un
conjunto de sentencias de control que vayan a ser ejecutadas varias veces con
pocos cambios.
Este conjunto de sentencias puede ser preparado y salvado en una libreria especial
SYS1.PROCLIB, a este conjunto de sentencias se le denomina procedimiento
catalogado.
Si el procedimiento no es salvado sino que se prepara y se ejecuta en el mismo job
se dice
que este es un procedimiento in-stream.
El M.V.S. permite hasta 15 procedimientos in-stream en un mismo JOB.
INTERNAL READER : Se denomina internal reader a un buffer de memoria de
entrada a un programa de sistema operativo que considerar los registros aqui
situados como sentencias de un JOB.
4.2.
Conceptos de JCL
4.3.
Sentencias de Control
Las sentencias de control ms importantes son:
JOB Define un Trabajo (JOB) completo.
EXEC Define un paso de un JOB, o cada ejecucin de un
programa.
DD
Define cada fichero o dispositivo a utilizar por el programa.
A continuacin se pasar a detallar cada una de estas sentencias.
4.3.1.
Sentencia JOB :
La sentencia Job es la primera que se codifica, el formato ser el siguiente :
Pgina 6
Conceptos de JCL
4.3.1.1. ADDRSPC
Conceptos de JCL
x - identifica que sentencias de control debern ser impresas, puede tomar los
siguientes valores :
0 - El sistema imprime solo la sentencia JOB.
1 - El sistema imprime todas las sentencias del JOB, las sentencias que
resulten de
expandir los procedimientos y los valores asignados a parmetros
simbolicos.
2 - El sistema solamente imprime las sentencias de control de entrada.
y - identifica que mensajes debern ser impresos, podr tomar los siguientes
valores:
0 - El sistema imprime solamente los mensajes de JCL y no los mensajes de
asignacin
o terminacin de cada paso a menos que termine anormalmente.
1 - Se imprimen todos los mensajes.
Si no se codifica asume los parmetros especificados en instalacin.
4.3.1.5. NOTIFY
Identifica al usuario TSO al cual debe de comunicar la terminacin del JOB.
La sintaxis de este parmetro ser la siguiente :
NOTIFY=usuario-tso
4.3.1.6. PRTY
Se utiliza para asignar una prioridad de ejecucin al JOB.
La sintaxis de este parmetro ser la siguiente:
PRTY=prioridad
El JES selecciona dentro de una clase aquellos JOB's que tienen una mayor
prioridad.
La prioridad puede tomar valores entre 0 y 15; donde el valor ms alto es 15.
4.3.1.7. RD
Se utiliza para el rearranque automtico de los pasos de un JOB.
La sintaxis de este parmetro ser la siguiente:
RD=valores
Los valores que podr tomar sern los siguientes:
R - Indica que se permite el rearranque automatico del paso. Permite dos
posibilidades :
Si el programa no incluye checkpoints, se permite que en caso de error se
rearranque a comienzo del paso que ha dado error.
Pgina 8
Conceptos de JCL
TIME
TYPRUN
Conceptos de JCL
4.3.1.12.
COND :
Especifica una condicin que se impondr para que el JOB se siga ejecutando,
dependiendo de los cdigos de condiccin que van devolviendo los distintos
pasos.
La sintaxis de este parmetro ser la siguiente :
COND=((cdigo,operacin),(cdigo,operacin),.......)
Cdigo = nmero decimal entre 0 y 4095. Es el cdigo de retorno de los pasos.
Operacin = tipo de comparacin a efectuar, podr tomar los siguientes valores
:
GT ----> Mayor que
GE ----> Mayor o igual que
LT ----> Menor que
LE ----> Menor o igual que
EQ ----> Igual a
NE ----> No igual a
En el momento en que alguna de las condiciones se cumpla, se deja de
ejecutar el JOB.
Se puden ejecutar hasta 8 condiciones distintas.
Ejemplos :
1.- Codificar la sentencia JOB con las siguientes carcteristicas :
. Clase de entrada C
. Clase de salida X
. Prioridad 9
. Modalidad no paginable
. Particin real de 180 K
. Limitacin del tiempo de CPU a 50 seg.
. El job tendr 8 pasos teniendose que comprobar que todos ellos devuelven
un cdigo inferior a 5 para ejecutarse.
//DEKARI01 JOB (,'DES'),CLASS=C,MSGCLASS=X,MSGLEVEL=(1,1),
Pgina 10
Conceptos de JCL
//
//
ADDRSPC=REAL,REGION=180K,PRTY=9,TIME=(,50),
COND=(5,LE),NOTIFY=DEKARI
4.3.2.
Sentencia EXEC :
La sentencia EXEC sirve para identificar el programa, procedimiento
catalogado o in-stream que se desea ejecutar, y las carcteristicas de ejecucin
de ese programa.
Un JOB puede tener hasta un maximo de 255 pasos de JOB. Este limite incluye
los pasos de los procedimientos que se llaman mediante una EXEC.
El formato de una sentencia EXEC ser el siguiente:
//[nom-paso] EXEC parm-pos,[resto-parm] [comentarios]
El nombre de paso ser opcional, pero no se podr hacer referencia a algo
definido en este paso de trabajo, as como no se podr rearrancar el JOB a
partir de este paso.
El parmetro posicional permitir indicar si se esta haciendo referencia a un
programa o a un procedimiento.
A continuacin se detallan los parmetros posicionales:
4.3.2.1. PGM :
Indica que la sentencia EXEC hace referencia a un programa en concreto para
llamarlo a ejecucin. El nombre de programa debe coincidir con un miembro de
la librera de objetos. Aunque sea de palabra clave debe ser el primer
parmetro que se codifique.
PGM=nombre.programa | *.nombre-paso.nombre-dd
| *.nombre-paso.nombre-proc.nombre-dd
*.nombre-paso.nombre-dd o *.nombre-paso.nombre-proc.nombre-dd - Se hace
referencia al programa por el nombre de DD que define ese programa para que
el sistema pueda buscarlo.
Ejemplo 1:
El programa se encuentra en una libreria temporal definida por la siguiente DD
dentro del paso LKED:
//LIBRDD
DD DSN=&&LIBR(PROG)
Pgina 11
Conceptos de JCL
EXEC PGM=*.LKED.LIBRDD
Ejemplo 2:
//DEKARI0A JOB (P,'DES'),CLASS=D,MSGCLASS=X,
//
MSGLEVEL=(1,1),NOTIFY=DEKARI
//PASO1 EXEC PGM=UPDT
//DDA
DD DSNAME=SYS1.LINKLIB(P40),DISP=OLD
//PASO2 EXEC PGM=*.PASO1.DDA
4.3.2.2. PROC
Indica al sistema que se llama y ejecuta un procedimiento catalogado o instream.
La sintaxis de este parmetro ser la siguiente:
PROC=nombre-procedimiento
nombre-procedimiento
nombre-procedimiento : Debe ser un procedimiento catalogado o existente en
el mismo JOB (in-stream)
Ejemplo
//PASO1 EXEC PROC=CREATE
//PASO1 EXEC CREATE
Todos los parmetros que se detellan a continuacin puden estar en cualquier lugar de
la sentencia EXEC (parmetros de palabra clave) y siempre despues de los parmetros
posicionales.
4.3.2.3. ADDRSPC
Especifica si el paso en cuestin se ha de ejecutar en memoria REAL o
VIRTUAL.
La sintaxis de este parmetro ser la siguiente:
ADDRSPC[.nombre-paso-procedimiento]=VIRT | REAL
El parmetro ADDRSPC cdificada en la sentencia JOB tiene preferencia sobre
la cdificada en la sentencia EXEC.
4.3.2.4. COND
Especifica bajo que condiciones se ejecutar el paso, dependiendo de que
cdigos de retorno devueltos por uno, varios o todos los pasos anteriores.
Pgina 12
Conceptos de JCL
EXEC
PGM=IEBGENER,COND=(EVEN,(12,LT),
Conceptos de JCL
PARM=parmetro
prametro - Es la informacin pasada y se pueden pasar hasta 100 carcteres.
Si la informacin esta compuesta por ms de una expresin se separarn por
comas, que pasarn al programa, y se encerrarn el conjunto entre parentesis o
apostrofos pero estos delimitadores no pasarn al programa.
Para recibir la informacin en un programa COBOL se deber definir el
parmetro en el rea de comunicaciones del programa (LINKAJE SECTION).
LINKAJE SECTION.
01 PARAMETRO.
02 LONGITUD PIC 9(4) COMP.
02 DATOS
PIC X(10).
La sentencia EXEC ser de la siguiente manera:
//PASON EXEC PGM=MESES,PARM=ENERO
4.3.2.6. REGION
Indica la cantidad de memoria real o virtual necesaria para ejecutar este paso.
La sintaxis de este parmetro ser la siguiente:
REGION[.nombre-paso-proc] = valorK | valorM
Este parmetro es igual que el de la sentencia JOB.
Si se especifico el parmetro REGION en la sentencia JOB este es aplicado a
todos los pasos del JOB e ignora todos los parmetros regin de las sentencias
EXEC.
4.3.3.
Sentencia DD :
La sentencia DD (Definicin de Datos) describe un fichero especificando todas
las carcteristicas necesarias para que un programa pueda trabajar con el.
La sintaxis de la DD ser la siguiente:
//[nombre-dd]
DD [parm-pos][parm-palabra-clave]
[nombre-pas-proc.nombre.dd]
Si tras una sentencia DD con nombre, el sistema encuentra otras sentencias
DD sin nombre asume que todos los ficheros que van definiendo son
prolongacin del que define la primera, y asi hasta que se encuentre una nueva
DD con nombre; a esto se le llama concatenacin de DD's.
En Cobol el nombre a la derecha de la clausula ASSIGN deber corresponder
con el nombre de DD del fichero que define, para el caso de ficheros
secuenciales SAM y para ficheros VSAM indexados y relativos, para el caso de
ficheros VSAM ESDS (secuenciales) le precedera el prefijo AS-.
Ejemplo 1:
//VSAMESDS DD DSN=DES.DEKARI.VSAMESDS,DISP=SHR
Pgina 14
Conceptos de JCL
En Cobol ser
SELECT ENTRADA ASSIGN AS-VSAMESDS
Ejemplo 2:
//SAM
DD DSN=DES.DEKARI.SAM,DISP=SHR
En Cobol ser
SELECT ENTRADA ASSIGN SAM
Los parmetro posicional, al igual que la tarjeta EXEC, deber ir codificado
antes que cualquier parmetro de palabra clave.
4.3.3.1. */DATA
Indica que el fichero que se define en la DD va a continuacin de ella en la
corriente de entrada.
El final del fichero viene marcado por:
El delimitador /* en columnas 1 y 2.
Otra sentencia de control // en columnas 1 y 2.
Una sentencia DD de este tipo no puede aparecer dentro de un procedimiento.
4.3.3.2. DUMMY
Indica que el fichero definido es un fichero "ficticio" es decir el programa lo
podr abrir, leer e incluso escribir, pero sern operaciones ficticias ya que el
sistema las ignorar pero sin producir un error en el programa.
//FICHERO1 DD DUMMY,[parmetros]
Los parmetros que se detallan a continuacin son todos parmetros de Palabra Clave.
4.3.3.3. DSNAME/DSN
Indica el nombre con el que el sistema crear (si es nuevo) o buscar (si ya
existe) el fichero definido por la sentencia de control DD.
La sintaxis de la sentencia DD, dependiendo del tipo fichero que se trate, ser
la siguiente :
//nombre-dd DD DSN=nombre-fichero-dd
donde nombre-fichero-dd podr tener las siguientes formas:
FICHEROS PERMAMENTES :
Se denominan ficheros permanentes aquellos que permanecen una vez
terminado el JOB.
nombre-fichero : Ser el nombre de un determinado fichero permanente,
existen dos tipos de nombres :
Pgina 15
Conceptos de JCL
Pgina 16
Conceptos de JCL
DISP=(x,y,z)
Donde x es el estado inicial en que se encuentra el fichero antes de ejecutar el
paso.
El parmetro x podr tomar los siguientes valores:
NEW : El fichero es nuevo y se crea en este paso de trabajo.
SHR : El fichero existe y adems permite que sea compartido por otra tarea.
OLD : El fichero existe y no puede ser compartido con otras tareas (utilizacin
exclusiva).
MOD : Si el fichero existe se asume utilizacin exclusiva, y obliga al sistema de
lectura/escritura a posicionarse trs el ltimo registro que exista.
Si el fichero no existe el sistema asume que es nuevo y asume el estado NEW.
Donde y es el estado en que quedar el fichero si el paso de trabajo termina
bien.
El parmetro y podr tomar los siguientes valores:
DELETE : El fichero no se va a utilizar en adelante y el espacio que ocupaba en
el volumen debe quedar libre al final del paso.
KEEP : El fichero se debe guardar al final del paso, pero no se crea una entrada
en el catalogo del disco.
PASS : El fichero se va a utilizar por otro paso de trabajo dentro del mismo
JOB.
Al final del JOB el fichero desaparecer.
CATLG : El fichero se guarda creando una entrada en el catalogo del sistema o
en un catalogo de usuario.
UNCATLG : El sistema guarda el fichero pero borra la entrada del catalogo del
sistema o catalogo de usuario.
Donde z es el estado en que quedar el fichero si el paso de trabajo termina
mal.
El parmetro y podr tomar los siguientes valores:
DELETE,KEEP,CATLG,UNCATLG
Teniendo estos valores el mismo sentido que para el caso en que el paso
termine bien.
Los valores por defecto son:
Si se omite el parmetro x tomar el valor NEW.
Si se omite el parmetro y se tomar DELETE si eldataset es NEW y KEEP
si el dataset exista ya.
Si se omite el parmetro z se tomar el valor implicito o explicito del
parmetro y.
Si el segundo parmetro es PASS entonces el parmetro z tomar DELETE
para un dataset NEW y KEEP para un dataset ya existente.
Si
se
omite
el
parmetro
DISP
se
toma
por
defecto
(NEW,DELETE,DELETE).
Pgina 17
Conceptos de JCL
Ejemplo 1:
//DD1
DD DSN=DES.DEKARI.NEW,DISP=(,CATLG,DELETE)
4.3.3.5. SPACE
Este parmetro se codifica cuando se desea realizar una solicitud de espacio
para un nuevo fichero.
La sintaxis del parmetro SPACE ser la siguiente :
SPACE=(TRK,(cant-prim,[cant-sec][,direc][,RLSE][,CONTIG],
[,ROUND])
(CYL,
[,index][, ][,MXIG]
(longitud-bloque,
[,ALX]
[, ]
TRK : Solicita el espacio a asignar en pistas.
CYL : Solicita el espacio a asignar en cilindros.
longitud bloque : Solicita el espacio en bloques cuya longitud es la indicada por
este subparmetro.
cant-prim : Cantidad que debe asignarse al principio para el fichero.
cant-sec : Cantidad que debe aadirse al fichero si se necesita ms espacio.
El sistema puede hacer hasta 16 extensiones en total del fichero en cada
volumen.
Si el fichero es particionado:
direc : es el nmero de bloques de 256 octetos que contendrn el directorio del
fichero.
Si el fichero es secuencial indexado :
index : es el nmero sea en pistas o cilindros necesarios para el rea de
indices.
RLSE : Indica que el espacio que no se utilice en la creacin del fichero se
debe liberar cuando se cierra.
CONTIG : Indica que el espacio asignado para la peticin primaria debe de ser
contiguo.
MXIG : Indica que se debe asignar para la peticin primara la mayor cantidad
de espacio libre contiguo que haya en el volumen, siempre que sea igual o
mayor que la cantidad primaria pedida.
ALX : Indica que se debe asignar para la peticin primaria hasta cinco reas
contiguas de memoria de tamao igual o mayor que la cantidad primaria
pedida.
ROUND : Si se especifica la cantidad de espacio pedido en unidades de
longitud de bloque, obliga al sistema a que redendee a un nmero entero de
cilindros.
Ejemplo 1:
Pgina 18
Conceptos de JCL
//DD1
DSN=DES.DEKARI.EJEMPLO1,DISP=(,CATLG,DELETE),
//
SPACE=(CYL,(1,1),RLSE)
DD
Ejemplo 2:
//DD2
DSN=DES.DEKARI.EJEMPLO2,DISP=(,CATLG,DELETE),
//
SPACE=(TRK,(1,1,10),RLSE)
DD
Ejemplo 3:
//DD3
DSN=DES.DEKARI.EJEMPLO3,DISP=(,CATLG,DELETE),
//
SPACE=(3440,(500,30),,,ROUND)
DD
4.3.3.6. VOLUME
Indica el volumen donde reside ( residir si es nuevo) el fichero.
La sintaxis del parmetro volumen ser la siguiente:
VOLUME=[(PRIVATE[,RETAIN][,n
secuencia][,ncuenta],
[SER=nserie])
VOL
[REF=nom-fic]
[REF=*.nom-DD]
PRIVATE : El sistema no puede asignar espacio para otros ficheros en este
volumen, a menos que en la sentencia DD se solicite este volumen especifico.
Un volumen definido como PRIVATE ser desmontado al final del paso.
RETAIN : Un volumen en cinta, definido como private, no ser desmontado al
final del paso.
n secuencia : Dentro de un fichero multivolumen, indica el numero de volumen
a utilizar en nuestro proceso
Este nmero debe ser un nmero decimal entre 1 y 255, el primer volumen se
identifica con el 1.
ncuenta : nmero de volmenes de salida que necesita un fichero
multivolumen de salida.
El nmero de cuenta es un nmero entre 1 y 255; el nmero mximo para
todas las DD's del paso es de 4095.
Todos los parmetros anteriores son posicionales, si falta alguno se pondr una
"," en su lugar.
SER : Indica el nmero de serie del volumen que se necesita
Se pueden especificar hasta 255 n de serie.
REF : Indica que se solicita el mismo volumen que el nombre de fichero
referenciado, este fichero debi venir de otro paso con DISP=PASS o
catalogado.
Se puede referir al nombre de fichero que se utiliz en una DD anterior.
Ejemplo 1:
//DD1 DD DSN=ENTRADA,VOL=SER=234511
Pgina 19
Conceptos de JCL
Ejemplo 2:
//DD2 DD DSN=SALIDA,DISP=(,CATLG,DELETE),
//
VOL=(,,,3,SER=(330001,330002,330003)),
//
SPACE=(TRK,(9,10)),UNIT=(TAPE,P)
4.3.3.7. UNIT
Indica el tipo y nmero de unidades que se necesitan para el fichero que se
esta definiendo.
La sintaxis del parmetro unit ser la siguiente:
UNIT=([direccin][,cuenta][,DEFER]
[tipo dis] [,P ]
[nom-gene] [,
]
UNIT=AFF=nombre-dd
direccin : Identifica un dispositivo particular, la direccin es un nmero de tres
cifras en hexadecimal.
Normalmente no se debe utilizar esta formula para el acceso a una unidad a
menos que sea muy necesario.
tipo dispositivo : Es el nombre del sistema que identifica una serie de unidades.
Es el tipo de dispositivo, 3380,3390,3420,3480,etc....
nombre genrico : Es un nombre de 1 a 8 carcteres que identifican a una serie
de dispositivos.
Ejemplo :
SYSDA -- dispositivos acceso directo
TAPE -- dispositivos en cinta.
cuenta : Es el nmero de unidades que se necesitan para ese fichero. Este
nmero es un nmero decimal de 1 a 59.
P
: Indica que los volmenes especificados para ese fichero deben montarse
en unidades distintas y a la vez.
DEFER : Indica al sistema que no se le monten las unidades hasta el momento
de abrir el fichero.
AFF : El fichero se debe montar en la misma unidad que al fichero definido en
una DD anterior pero dentro de un mismo paso.
Ejemplo 1:
//DD1 DD DSN=CINTA1.ENERO,DISP=SHR,
//
VOL=SER=ENERO,UNIT=(TAPE,,DEFER)
//
DD DSN=CINTA2.FEBRERO,DISP=SHR,
//
VOL=SER=FEBRER,UNIT=AFF=DD1
//
DD DSN=CINTA3.MARZO,DISP=SHR,
//
VOL=SER=MARZO,UNIT=AFF=DD1
Pgina 20
Conceptos de JCL
4.3.3.8. LABEL
Especifica el tipo de etiquetas asociadas con el fichero que define la sentencia
DD donde se encuentre.
La sintaxis del parmetro label ser la siguiente:
LABEL=([nsec][,etiqueta][,PASSWORD][,IN ][,RETD=nnnn]
[,NOPWREAD][,OUT][,EXPDT=yyddd | yyyy/ddd]
n secuencia : Indica la posicin del fichero dentro de una cinta magntica.
Por omisin asume 1.
etiqueta : Indica el tipo de etiquetas asociadas al fichero.
SL - Etiquetas standard IBM.
SUL - Etiquetas standard IBM y del usuario.
AL - Etiquetas standard ANSI
AUL - Etiquetas standard ANSI y del usuario.
NSL - No tiene etiquetas standard
NL - No tiene ningn tipo de etiquetas.
LTM - Se debe ignorar la marca de relleno de cinta en una cinta sin
etiquetas.
BLP - No se procesan las etiquetas de un fichero de cinta.
PASSWORD : El fichero no podr ser modificado ni leido a menos que el
operador (usuario TSO) introduzca la palabra de proteccin.
NOPWREAD : El fichero no necesita password para lectura peri si para
modificacin.
IN
: Indica que el fichero BSAM no podr ser abierto mas que de lectura
OUT
: Indica que el fichero BSAM no podr ser abierto ms que de escritura.
RETPD : N de das a partir de la creacin durante los cuales debe respetar el
fichero.
EXPDT : Fecha en que ser borrado el fichero; en formato ao y dia.
4.3.3.9. DCB
Este parmetro nos describe internamente el fichero.
La sintaxis del parmetro dcb es la siguiente:
DCB=(operando1,operando2,operando3 .........)
En la verisin de MVS/ESA no es necesario este parmetro ya que los
operandos se pueden colocar como si fueran parmetros de la sentencia DD.
Los posibles operandos que se detallarn a continuacin son :
RECFM : Especifica el tipo de registros de los que esta compuesto el fichero.
U - Registro de longitud indefinida
V - Registro de longitud variable.
VB - Registro de longitud variable y bloqueado
F - Registro de longitud fija.
FB - Registro de longitud fija y bloqueada.
FBA- Registro de longitud fija y bloqueada y con carcteres de control
de dispositivo.
Pgina 21
Conceptos de JCL
PS --- Secuencial
PO --- Particionado
IS --- Secuencial indexado
DEN : Indica la densidad de la cinta magntica, podr tomar los siguientes
valores:
0 --- 200 bpi (solo cinta 7 pistas)
1 --- 556 "
"
"
2 --- 800 "
"
"
3 --- 1600 " (solo cinta 9 pistas)
4 --- 6250 "
"
"
4.3.3.10.
LIKE
FREE
SYSOUT
Conceptos de JCL
INTRDR : Indica al JES que el fichero de salida ser enviado al internal reader
como un job de entrada al sistema.
form : nombre de 1 a 4 carcteres del formulario en el que ser impresa la
salida.
Ejemplo :
//SALIDA DD SYSOUT=*
Indica que el fichero de salida ser escrito en la clase de salida indicada en el
parmetro MSGCLASS de la sentencia JOB.
4.3.3.13.
DEST
COPIES
Sentencias DD Especiales
La principal carcteristica de estas DD's es que poseen un nombre especial para el sistema.
4.4.1.
JOBCAT
Esta DD define el catalogo donde debe buscar el JOB todos los ficheros
catalogados.
La sintaxis de esta DD ser la siguiente:
//JOBCAT DD DSN=nombre-catalogo,DISP= SHR | OLD
Esta sentencia se deber colocar despues de la sentencia JOB y antes de la
primera sentencia EXEC.
El sistema buscar el fichero en este catalogo, en caso de no encontrarlo lo
buscar bien en el catalogo privado que le indique el primer calificador del
nombre del fichero o bien en el catalogo del sistema.
Pgina 23
Conceptos de JCL
4.4.2.
JOBLIB
Esta DD define la librera donde se buscarn los programas a ejecutar por el
JOB.
En caso de omitirse o no encontrar el programa en la librera especificada se
buscar en la SYS1.LINKLIB.
Si se utiliza una JOBLIB deber ser la primera sentencia despues de la
sentencia JOB ; y no podr codificarse en un procedimiento catalogado.
La sintaxis de esta DD ser la siguiente:
//JOBLIB
4.5.
DD DSN=DES.DEKARI.PGM,DISP=SHR
4.4.3.
SETPCAT
Es igual que la JOBCAT pero a nivel de paso de JOB.
En caso de existir una JOBCAT y una SETPCAT primero se buscar en el
catalogo de la STEPCAT y si no encontrase el fichero en el catalogo definido en
la JOBCAT.
4.4.4.
SETPLIB
Es igual que la JOBLIB pero a nivel de paso de JOB. En caso de existir una
JOBLIB y una STEPLIB primero se buscar el programa en la librera definida
en la STEPLIB y en caso de no encontrarlo en la JOBLIB.
4.4.5.
SYSABEND,SYSUDUMP,SYSMDUMP
Define unos ficheros donde se va a efectuar un vuelco de memoria en caso de
que el paso termine anormalmente.
La diferencia existente entre ellas reside en qu parte de memoria se vuelca en
el fichero.
4.4.6.
SYSIN
Se utiliza para comenzar un fichero in-stream; es decir los datos vienen a
continuacin de la ficha DD.
En Cobol estos datos se recuperarn mediante la instruccion ACCEPT.
//SYSIN DD *
datos
/*
4.4.7.
SYSPRINT
Indica el fichero de salida standard del programa.
En Cobol el programa escribir en este fichero los DISPLAYS realizados.
Grupos de generacin
Mediante el IDCAMS (programa de ejecucin de comandos de VSAM) se crear una
entrada en el catalogo para ficheros no-VSAM; a dicha entrada se la pueden unir varios
ficheros del mismo nombre.
Este sistema permitir mantener varias versiones de un mismo fichero; el sistema
permitir mantener hasta 255 versiones dentro de un grupo de generacin.
Pgina 24
Conceptos de JCL
La versin ms actual ser la versin 0, la anterior la versin (-1), la anterior a esta la (2), etc....
Si se desea crear una nueva versin ser la (+1), una vez creada esta pasar a ser la
verisn 0, la 0 la -1 y as sucesivamente hasta la ltima que se liberar.
Ejemplo :
//GRUPO DD DSN=DES.DEKARI.GRUPO(0),DISP=SHR
4.6.
Procedimientos
Un conjunto de sentencias de control que se desean ejecutar muchas veces con pocos
cambios se denomina procedimiento.
El sistema nos permitir almacenar estas sentencias de manera que puedan ser
ejecutadas por varios usuarios; para ello el usuario identificar a este conjunto de
sentencias mediante un nombre, llamado nombre procedimiento.
Al procedimiento almacenado en una librera del sistema se denomina procedimiento
catalogado, en este caso el nombre del procedimiento ser el nombre del miembro con
que fue salvado en la librera de procedimientos.
Si el uso de un conjunto de sentencias de control no es lo suficientemente frecuente
para que merezca la pena catalogarlo, entonces se pueden incluir estas sentencias en
el JOB de manera que cada vez que se deseen utilizar dentro del mismo JOB
simplemente nos referenciaremos a ellas con ese nombre genrico. A este tipo de
procedimientos se denominan procedimientos in-stream.
En un JOB se deber identificar donde comienza y donde acaba un procedimiento
catalogado; para ello se utilizan las sentencias PROC y PEND.
Ejemplo :
//FASE1 PROC
//PASO1 EXEC PGM=P1
//DD1 DD DSN=DES.DEKARI.ENTRADA,DISP=SHR
//SALIDA DD SYSOUT=*
//PEND
Para llamar a un procedimiento se utilizar la sentencia EXEC.
El programa READER del JES resolver la sentencia EXEC sustituyendo esta por todas
las sentencias del procedimiento; en un procedimiento catalogado el READER buscar
este en la librera de procedimientos.
4.6.1.
Parmetros simbolicos :
Conceptos de JCL
Modificacin de Procedimientos
Las sentencias de un procedimiento se pueden modificar cuando este es
llamado mediante la sentencia EXEC.
Esta modificacin nos permitir cambiar parmetros de la sentencia EXEC del
procedimiento y modificar e incluir nuevas DD's en el procedimiento.
Para modificar parmetros de la sentencia EXEC se har lo siguiente :
En la llamada al procedimiento se pondr
//PASO1 EXEC PROC=PP,REGION=100K
Pgina 26
Conceptos de JCL
Ejemplo :
//JOB1 JOB
//PASO1 EXEC FASE1,PROVI=ZAMORA
//PASO1.STEPLIB DD DSN=DES.GRDES.PGM,DISP=OLD
Para aadir un fichero catalogado :
//PASO1.STEPLIB DD
//
DD DSN=DES.GRDN.PGM,DISP=OLD
En este caso se respetaria la primera STEPLIB y aadiria la siguiente.
4.7.
IEFBR14
El programa IEFBR14 es un programa que por si mismo no hace nada.
Simplemente se utiliza para aprovechar que para el iniciador es un programa y
que por tanto asigna ficheros, los cataloga, los borra, etc...
Por ejemplo :
//PASO1 EXEC PGM=IEFBR14
//DD1
DISP=DES.DEKARI.PRUEBA,DISP=(OLD,DELETE,DELETE)
DD
IEBGENER
El programa iebgener permite realizar copias de archivos no VSAM.
Pgina 27
Conceptos de JCL
Por ejemplo :
//PASO1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=DES.DEKARI.ENTRADA,DISP=SHR
//SYSUT2 DD DSN=DES.DEKARI.SALIDA,DISP=(,CATLG,DELETE),
//
UNIT=SYSDA,VOL=SER=DES001,LIKE=DES.DEKARI.ENTRADA
//SYSIN DD DUMMY
4.7.3.
IEBCOPY
El programa de utilidad Iebcopy permitir realizar copias de ficheros
particionados (libreras).
Por ejemplo :
//PASO1 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//DD1
DD DSN=DES.DEKARI.FTES,DISP=SHR
//DD2
DD DSN=DES.DEKARI.FTES.A2,DISP=(,CATLG,DELETE),
//
LIKE=DES.DEKARI.FTES,UNIT=SYSDA,VOL=SER=DES001
//SYSIN DD *
COPY INDD=DD1,OUT=DDD2
4.7.4.
DFSORT
Conceptos de JCL
(p,m,s,.....p,m,s),FORMAT=f
FIELDS=COPY
donde :
p : Posicin de comienzo del campo que se desea ordenar dentro del registro.
m : Longitud del campo a ordenar
f : formato del campo a ordenar, podr tomar los siguientes valores:
CH=Carcteres EBCDIC, sin signo
BI=Binario, sin signo
PD=Decimal empaquetado, con signo
s : Secuencia solicitada para la ordenacin de los campos.
A - Ascendente
D - Descendente
COPY: La secuencia de registros solicitada en este caso ser la misma que
tengan en el fichero de entrada.
PARAMETRO SUM :
Permitir sumar los campos que se soliciten para todos los registros cuyos
campos a ordenar sean iguales.
Dejar el resultado en uno de los registros eliminando el resto de registros
iguales.
La sintaxis de este parmetro ser la siguiente :
SUM FIELDS=(p,m,f,....p,m,f) | (p,m,......p,m),FORMAT=f | NONE
donde:
p : Posicin de comienzo del campo que se desea sumar
dentro del
registro.
m : Longitud del campo a sumar
f : formato del campo a sumar, podr tomar los
siguientes valores:
BI=Binario, sin signo
PD=Decimal empaquetado, con signo
ZD= Decimal ?
NONE: Permitir eliminar registros duplicados de un
archivo de entrada.
PARAMETRO INCLUDE :
Indica que solamente aquellos registros cuyos campos se encuentren con
ciertos criterios de seleccin sern incluidos en la ordenacin.
La sintaxis de este parmetro ser la sigiente :
INCLUDE COND=(p1,m1,f1,operac,p2,m2,f2|cte,operador,.......)
Donde
p
: Posicin de comienzo del campo que se desea sumar dentro del registro.
m
: Longitud del campo a sumar
f
: formato del campo a sumar, podr tomar los siguientes valores:
CH=Carcteres EBCDIC, sin signo
BI=Binario, sin signo
PD=Decimal empaquetado, con signo
operac : operacin a realizar, podr tomar los siguientes valores
EQ - Igual
NE - Distinto
GT - Mayor que
GE - Mayor o igual que
LT - Menor que
LE - Menor o igual que
Pgina 29
Conceptos de JCL
cte
5.
EJERCICIOS
Ejercicio 1.- Codifique un procedimiento "in-stream", que conste de un solo paso PASO1 que
llama al programa A, cuyo campo parmetro esta formado por un parmetro simblico
&PARAM que por defecto ser "LISTAR".
Se utilizar un fichero en disco, el cual se desconoce si exista o no, el nombre ser DES.FICH1
residir en una unidad de disco y tendr un espacio de 50 pistas. El estado se determinar por
otro parmetro simblico, que no podr dejarse nunca en blanco, y podr tomar los valores
NEW o OLD.
Codificar la sentencia EXEC de ejecucin del procedimiento dando a la disposicin del fichero
el valor NEW.
//DEKARI01 JOB (P,DES),'ANTONIO',CLASS=D,MSGCLASS=X,MSGLEVEL=(1,1),
//
NOTIFY=DEKARI
//*------------------------------------------------------------------------------------------------------*
//*E.D.S.
1993
-*
//*-*
//*FUNCION : RESOLUCION EJERCICIO 1
-*
//*-*
//*-----------------------------------------------------------------------------------------------------*
//PROC1 PROC PARM=LISTAR
Pgina 30
Conceptos de JCL
Sin etiquetas
El volumen esta etiquetado como "BM9305"
Densidad de 6250 Bpi.
Registros de longitud fija
Longitud 300 carct. y tamao bloque 3000 carcteres
Conceptos de JCL
//*------------------------------------------------------------------------------------------------------*
//*E.D.S.
-*
//*-*
//*- FUNCION : RESOLUCION EJERCICIO 3
//*-*
//*------------------------------------------------------------------------------------------------------*
//COPIA PROC
//PASO1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=CINTA.MVTOS.BANMAD,DISP=SHR,
//
VOL=SER=&VOLUM,UNIT=2420,LABEL=(,NL),
//
DCB=(RECM=FB,LRECL=300,BLKSIZE=3000,DEN=4)
//SYSUT2 DD DSN=DES.DEKARI.SALIDA.A&MES,DISP=(,CATLG,DELETE),
//
UNIT=DISKDES,VOL=SER=DES930,SPACE=(TRK,(10,10),RLSE)
//SYSIN DD DUMMY
//PEND
//PASO1 EXEC COPIA,VOLUM=BM9305,MES=05
//PASO2 EXEC COPIA,VOLUM=BM9304,MES=04
//*
Pgina 32
1993
-*
Conceptos de JCL
6.
ANEXO
Este anexo se compone con la informacin relativa a las nuevas sentencias de control
aparecidas en la versin 4.0 de M.V.S. y superiores.
Estas nuevas sentencias son las siguientes:
. IF/THEN/ELSE/ENDIF
. INCLUDE
. JCLLIB
A continuacin se pasar a detallar cada una de estas sentencias:
6.1.
IF/THEN/ELSE/ENDIF
Esta sentencia permite condicionar la ejecucin de los pasos dentro del JOB.
El formato de la sentencia es el siguiente :
//nombre IF (condicin) THEN comentarios
accin a realizar si se cumple la condicin
//nombre ELSE
accin a realizar si no se cumple la condicin
//nombre ENDIF
Dentro de esta sentencia se pueden anidar hasta 15 IF.
nombre : Es opcional y se utiliza para identificar la sentencia.
S se codifica deber de cumplir las siguientes restricciones:
Deber ser nico dentro del JOB.
Comenzar en la posicin 3.
Se compone de 8 caracteres alfanmericos
y los caracteres ($,#)
El primer caracter deber ser alfabetico.
Condicin : Es una combinacin de palabras reservadas y operadores (aritmeticos y
lgicos).
Operadores aritmeticos :
NOT - Se comprueba lo primero
En un segundo nivel se comprobarn los operadores :
GT > ; LT < ; NG >; NL < ; EQ =
NE = ;GE >= ; LE <=
En un tercer nivel se comprobarn los operadores :
AND & y OR |
Palabras reservadas :
Son palabras que se ponen en la condicin para conformarla.
Existen las siguientes:
RC - Indica el return code.
ABEND - Cuando se produzca una condicin de
ABEND en el JOB.
ABEND - Cuando no Abende
RUN - Indica cuando un paso se haya ejecutado
RUN - Indica cuando un paso no se ha ejecudado
Pgina 33
Conceptos de JCL
cdigo de
cualquiera
de los pasos anteriores.
paso.ABENDCC - Se refiere al ABEND, de un determinado cdigo, en un paso.
paso.paso-procedimiento.ABENDCC - Se refiere al paso de un procedimiento.
Ejemplo :
//IF1
Conceptos de JCL
//ELSE1 ELSE
accin a realizar cuando el paso paso1 no haya ejecutado.
//ENDIF1 ENDIF
Esta condicin podr aparecer despues de la ficha JOB en cualquier lugar, en caso de
codificar una sentencia IF antes de la primera EXEC el sistema ignora el premetro
COND del primer EXEC.
Acciones :
El THEN o el ELSE debern conterner al menos una sentencia del tipo EXEC.
Se pueden incluir las siguientes sentencias:
IF anidado
EXEC
DD (incluyendo * | DATA)
STEPCAT, STEPLIB
SYSIN
No se pueden poner
JOB
JCLLIB
JOBCAT
JOBLIB
NO se ejecutan condicionalmente
PROC ...... PEND
Comentarios
INCLUDE
Sentencias del JES2 JES3
Se pueden especificar prametros simbolicos.
6.2.
JCLLIB
Permite definir librerias privadas que el sistema utiliza para el
JOB.
Se utilizan para :
. Procedimientos
. Grupos de sentencias JCL que se incluyen mediante
una INCLUDE.
//nombre JCLLIB ORDER=(libreria, libreria, etc.....)
librerias ni
6.3.
INCLUDE
Identifica el nombre de un miembro que contiene un grupo de sentencias de JCL.
Pgina 35
Conceptos de JCL
El formato es el siguiente:
//nombre INCLUDE MEMBER=nombre
El miembro debe estar en la libreria de la JCLLIB o en la SYS1.PROCLIB.
Puede aparecer despues de la JOB.
Podrn existir hasta 15 niveles de include.
No podrn contener las siguientes sentencias:
JOB, PROC, Sentencias JES 2 , DD * DD DATA.
Pgina 36