Jcl y Y Utilerias

  • Published on
    10-Jul-2015

  • View
    1.802

  • Download
    12

Embed Size (px)

Transcript

<p>JCL y Utileras</p> <p>1</p> <p>JCL y Utileras</p> <p>ObjetivosEl presente curso tiene como objetivos:</p> <p>Conocer los diferentes tipos de JCLs Identificar los requisitos para la codificacin de un JCL. Definir las sentencias utilizadas Explicar los cdigos de retorno, los cdigos de error y principales abends. Explicar las principales utileras de usadas.</p> <p>2</p> <p>JCL y Utileras</p> <p>ndice1. Introduccin 2. Conceptos de JCL 3. Sentencias de JCL 3.1. Sentencia JOB 3.2. Sentencia EXEC 3.3. Sentencia DD 3.4. Sentencias especiales 4. Cdigos de retorno 5. Procedimientos</p> <p>3</p> <p>JCL y Utileras</p> <p>ndice6. Utileras 6.1. DFSORT 6.2. IDCAMS 6.3 IEBCOPY 6.4. IEBGNENER 7. Generational Data Group (GDG)</p> <p>4</p> <p>JCL y Utileras</p> <p>1. Introduccin</p> <p>5</p> <p>JCL y Utileras</p> <p>Introduccin</p> <p>El Sistema Operativo es el encargado de gestionar de forma eficiente todos los recursos de los que dispone un sistema de informacin. Dentro de sus principales ocupaciones estn la administracin de: Memoria, terminales de trabajo, discos, programas, comunicaciones etc.</p> <p>Para llevar a cabo algunas de estas tareas en el sistema operativo OS/390, es necesario conocer el manejo de JCLs (Job Control Language), que son un conjunto de instrucciones necesarias para la ejecucin de un proceso batch, esto es semejante a un Batch de D.O.S. que ejecuta peticiones al sistema operativo. De esta manera el JCL le dice al sistema operativo todos los requerimientos de entrada y salida que se necesitan para ejecutar un proceso o varios en una secuencia determinada (Gestor de trabajos JES).</p> <p>6</p> <p>JCL y Utileras</p> <p>2. Conceptos de JCL</p> <p>7</p> <p>JCL y Utileras</p> <p>Definicin de JCL</p> <p>JCL (Job Control Lenguage), es un lenguaje de programacin que permite codificar las instrucciones necesarias para la ejecucin de un proceso batch.</p> <p>Estas instrucciones son interpretadas y ejecutadas por el gestor de trabajos (JES Job Entry Subsystem)</p> <p>8</p> <p>JCL y Utileras</p> <p>Trminos y Conceptos Generales</p> <p>Job (trabajo). Unidad de trabajo bsica independiente. Job Step (paso de job). Ejecucin de un programa dentro de un job. Tambin se puede hacer referencia como step (paso). Mximo de pasos permitidos en un JCL es de 255. Partes de un JCL: Cabecera. Informacin relativa al entorno en donde ser ejecutado el job, caractersticas de entorno, tiempo, nivel de mensajes, etc. Cuerpo. Contiene las sentencias de ejecucin de cada programa o utilera a ejecutar.</p> <p>9</p> <p>JCL y Utileras</p> <p>Tipos de JCL</p> <p>In-stream.</p> <p>Ejecutan los programas dentro del mismo job.</p> <p>Procedimientos. Se ejecutan a travs de la definicin de procesos llamados por el JCL al momento de la ejecucin. (Procs)</p> <p>Mixtos.</p> <p>Son una combinacin de los dos anteriores.</p> <p>10</p> <p>JCL y Utileras</p> <p>Sintaxis general de JCL La codificacin de un JCL debe empezar en las columnas 1 y 2 con //, salvo en algunos casos. El nombre que identifica cada paso del JCL deber comenzar con un caracter alfabtico de mximo de 8 caracteres a partir de la columna 3. Los parmetros utilizados en la codificacin del JCL debern ser separados por comas, y la declaracin de estos no deber exceder de la posicin 71 La codificacin de comentarios es con //*, los cuales debern terminar como mximo en la columna 72. La terminacin de un paso es indicada a travs de /* en las columnas 1 y 2.</p> <p>11</p> <p>JCL y Utileras</p> <p>Sintaxis general de JCL</p> <p>A continuacin se muestra un ejemplo en el que se puede ver la sintaxis de un JCL:123456789012345678901234567890123456789012345678901234567890123456789012 //JCLNAME JOB (PBM),'EJEMPLO',CLASS=C,MSGCLASS=C,MSGLEVEL=(1,1) //********************************************************************** //* CREACION DE ARCHIVO DE PRUEBA * //********************************************************************** //P01DE01 EXEC PGM=IEBGENER //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUT1 DD * ABC456789112DEF67892123456789312 //SYSUT2 DD DSN=ACCEN.NBAS.PRUEBA, // DCB=(RECFM=FB,LRECL=32,BLKSIZE=0), // DISP=(NEW,CATLG,DELETE) //SYSIN DD * /*</p> <p>12</p> <p>JCL y Utileras</p> <p>Sintaxis de las sentencias de JCL</p> <p>Sentencia JOB EXEC DD Comando Delimitador Nulo Comentarios</p> <p>Columna 1 y 2 // // // // /* // //</p> <p>Campos (a partir de la columna 3) jobname JOB[operandos] stepname EXEC [oprendos] filename DD [operandos] (Comando) operandos</p> <p>* comentarios</p> <p>13</p> <p>JCL y Utileras</p> <p>3. Sentencias de JCL</p> <p>14</p> <p>JCL y Utileras</p> <p>Sentencias de JCL</p> <p>Las principales sentencias utilizadas son:</p> <p>JOB.</p> <p>Identifica el inicio del job a ejecutarse.</p> <p>EXEC. Principio de cada paso e identifica el programa o procedimiento a ser ejecutado</p> <p>DD.</p> <p>Define las entradas y salidas del proceso</p> <p>15</p> <p>JCL y Utileras</p> <p>3.1 Sentencia JOB</p> <p>16</p> <p>JCL y Utileras</p> <p>Sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>//Jobname JOB (cuenta),'user',parm1,parm2...</p> <p>El jobname(CREAFILE) indica el nombre que se asignar al JCL, puede tener una longitud mxima de 8 caracteres. La sentencia JOB Indica el inicio del job a ser ejecutado, debe comenzar en la posicin 12.</p> <p>17</p> <p>JCL y Utileras</p> <p>Sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>Cuenta del jcl. Se debe indicar la cuenta (ABC) a la que es asignada el job, ya que ste es utilizado para determinar el gasto de recursos que el job necesita. Usuario del job. Mximo 20 caracteres. Puede ser especificado por la instalacin. Parmetros de ejecucin.</p> <p>18</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>CLASS=x Indica la cola de ejecucin a la cual ser asignado el job En caso de no ser indicada, se asigna la predeterminada por la instalacin. Algunos valores asignados pueden ser : A Impresora X retener mensajes Z no imprimir mensajes19 JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>MSGCLASS=x</p> <p>Indica la cola de salida (x) a la cual se enviaran los mensajes que se generen durante la ejecucin del job.</p> <p>20</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>MSGLEVEL=(x,y) Controla la salida de las sentencias y mensajes de salida en el log. Indica la clase de ejecucin a la cual se enviaran los mensajes que se generen durante la ejecucin del job. Valores a asignar : x Sentencias que se desplegarn en el log del job y Mensajes que sern desplegados en el job Si esta sentencia es omitida se asigna un valor por default de la instalacin.21 JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>REGION=nnnn[K][M] Especifica el mximo de memoria asignada a nivel de todo el JCL.</p> <p>Puede ser expresada en Kilobytes (K) o Megabytes (M).</p> <p>22</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>NOTIFY=aaaaaaa</p> <p>Especfica el usuario de TSO (aaaaaaa) al que se notificar al terminar de ejecutarse el job.</p> <p>23</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia JOB</p> <p>//CREAFILE JOB (ABC),'EJEMPLO',CLASS=C, // MSGCLASS=C,MSGLEVEL=(1,1), // REGION=4096K,NOTIFY=ESBS755, // COND=(0,LT)</p> <p>COND=(n,a) Especfica el cdigo de retorno (n) y la condicin (a) para que los pasos del JOB continen ejecutndose. Condiciones de retorno : GT - Mayor que LT - Menor que EQ - Igual a</p> <p>GE - Mayor o igual que LE - Menor o igual que NE - Distinto de24 JCL y Utileras</p> <p>Parmetros adicionales de la sentencia JOB</p> <p>LINES</p> <p>Nmero mximo de lneas a desplegar en SYSOUT, y dependiendo de ste se cancela el job, se guarda la informacin en cartucho, o bien, se enva un mensaje al operador. LINES=nnnn Controla el reinicio del job a partir del paso especificado RESTART=stepname</p> <p>RESTART</p> <p>TIME TYPERUN</p> <p>Determina el tiempo mximo de CPU que puede ser utilizado en la ejecucin del job. Localiza los errores de sintaxis del JCL con las opciones de no ejecutarlo, ejecutarlo hasta que el operador lo permita ejecutarlo en la clase de SYSOUT25 JCL y Utileras</p> <p>3.2 Sentencia EXEC</p> <p>26</p> <p>JCL y Utileras</p> <p>Sentencia EXEC</p> <p>//P01DE01</p> <p>EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)</p> <p>//stepname EXEC [PGM][PROC]=programa/procedimiento,parm1,parm2</p> <p>Inicia con el stepname, el cual puede tener una longitud mxima de 8 caracteres. La sentencia EXEC debe iniciar en la posicin 12, indica el inicio de cada paso. Se debe indicar si es un programa (PGM) o un procedimiento (PROC) el que se va a ejecutar. Parmetros de ejecucin a nivel de la sentencia EXEC.27 JCL y Utileras</p> <p>Principales parmetros de la sentencia EXEC</p> <p>//P01DE01</p> <p>EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)</p> <p>PARM=valor</p> <p>Permite informar valores al programa en ejecucin.</p> <p>Pueden informarse hasta 100 caracteres como valores de un parmetro.</p> <p>28</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia EXEC</p> <p>Parmetros para un programa usando PARMDECLARACION EN PROGRAMA*********************************************** * LINKAGE SECTION * *********************************************** LINKAGE SECTION. * 01 REG-PARM. 05 PARM-LONG PIC X(2). 05 PARM-TAREA PIC X(4). 05 PARM-ARCHIVO PIC X(3). *********************************************** * PROCEDURE DIVISION *********************************************** PROCEDURE DIVISION USING REG-PARM.</p> <p>DECLARACION EN JCL Programa sin DB2//P01DE01 EXEC PGM=BG4CINT0,PARM=9400MOV,COND=(0,EQ)</p> <p>Programa con DB2//SYSTSIN DD * DSN SYSTEM(DB2D) RUN PROGRAM(BG4CINT0) PLAN(BVDBGPB) PARM('9400MOV') END</p> <p>29</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia EXEC</p> <p>//P01DE01</p> <p>EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)</p> <p>COND=(n,a,[EVEN/ONLY]) Realiza la misma funcin que en la sentencia JOB, con la diferencia que sta slo aplica a nivel de paso, y con algunas condiciones adicionales. Las condiciones: EVEN. Indica que el paso se ejecutar an cuando algn paso anterior finalice anormalmente ONLY. Indica que este paso se ejecutar si algn paso ha finalizado anormalmente.30 JCL y Utileras</p> <p>Parmetros adicionales de la sentencia EXEC</p> <p>REGION</p> <p>Especifica el mximo de memoria asignada a nivel de paso. Puede ser expresada en Kilobytes o Megabytes Tiempo mximo de ejecucin a nivel de paso</p> <p>TIME</p> <p>31</p> <p>JCL y Utileras</p> <p>3.3 Sentencia DD</p> <p>32</p> <p>JCL y Utileras</p> <p>Sentencia DD</p> <p>//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)</p> <p>//ddname //</p> <p>DD DSN= ____,DISP=_____,UNIT=____, SPACE=_____,VOL=_____,DCB=_____</p> <p>El ddname indica el nombre del paso, tiene una longitud mxima de 8 caracteres y ste nombre debe ser nico por cada paso. DD (Data Definition). Describe los archivos que requiere el programa a ser ejecutado. Debe iniciar en la posicin 12, codificndose despus del ddname. Posterior a su codificacin, se asignan los parmetros opcionales necesarios para la definicin del archivo.33 JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>PROGRAMA COBOL. SELECT IN-FILE ASSIGN TO E1DQ0001 DEFINICION DE DD //E1DQ0001 DD DSN=ACCEN.SBAS.DATOS</p> <p>34</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)</p> <p>DSN=namefile El namefile es el nombre con que el sistema debe localizar o alojar los archivos.</p> <p>Existen diferentes tipos de archivos, los mas importantes son: Secuenciales, Particionados, Generacionales (GDG), VSAM, etc.</p> <p>35</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>Los nombres que son asignados generalmente a los diferentes tipos de archivos son: Archivos secuenciales. Mximo 44 caracteres nombre.del.archivo Archivos particionados. nombre.del.archivo(nom_elemento) Archivos generacionales. nombre.del.archivo(num_generacin) Archivos temporales. &amp;&amp;nombre</p> <p>36</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)</p> <p>DISP=(ind_1,ind_2,ind_3) El parmetro DISP, tiene tres funciones: El primer indicador nos dice la situacin del archivo al inicio de la ejecucin. El segundo indicador nos dice que accin se debe de tomar con el archivo si el paso termina correctamente El tercer indicador nos dice que accin se debe de tomar con el archivo si el paso termina anormalmente.37 JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>Las diferentes disposiciones de los archivos son: Disposicin NEW OLD SHR MOD El archivo es creado El archivo ya existe y mientras se esta utilizando ninguna otra tarea puede acceder a dicho archivo. El archivo existe y adems puede ser compartido. Si existe, ninguna otra tarea puede accederlo. En la adicin de registros nuevos, obliga al sistema de I/O a posicionarse en el ltimo registro que exista. Si el archivo no existe lo considera NEW.Contina...</p> <p>Descripcin</p> <p>38</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>Las diferentes disposiciones de los archivos son: Disposicin DELETE KEEP PASS CATLG UNCATLG El archivo es borrado Indica que el archivo debe mantenerse al final del paso. Indica que el archivo se utilizar en los pasos posteriores. Se borra al terminar el job. El archivo se guarda y es catalogado. El archivo se guarda y no es catalogado. Descripcin</p> <p>39</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>Reglas de uso para parmetros DISP:</p> <p>DISP=</p> <p>NEW OLD SHR MOD ,</p> <p>,DELETE ,KEEP ,PASS ,CATLG ,UNCATLG ,</p> <p>,DELETE ,KEEP ,PASS ,CATLG ,UNCATLG</p> <p>Si el primer parmetro no es codificado se asume NEW. Si el segundo parmetro no es codificado se asume DELETE, si en el primer parmetro se informa NEW. Si el segundo parmetro no es codificado se asume KEEP, slo si en el primer parmetro se informa OLD. El tercer parmetro siempre debe ser codificado40 JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090, // DISP=(NEW,CATLG,DELETE),UNIT=3390, // SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1, // DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)</p> <p>UNIT=[address/type][TAPE][SYSDA] Especifica un dispositivo de entrada o salida, ya sea a unidad de cinta o disco, volumen o un grupo de discos designados por la instalacin (generalmente SYSDA o 3390). Este parmetro depende de la instalacin</p> <p>41</p> <p>JCL y Utileras</p> <p>Principales parmetros de la sentencia DD</p> <p>//S1DQ...</p>