miércoles, 16 de febrero de 2011

JCL Básico I: ¿Qué es JCL?

¿Qué es JCL?
Vamos con un poco de teoría sobre este lenguaje.
JCL (Job Control Language) - Es un lenguaje de programación que permite codificar las instrucciones necesarias para la ejecución de un proceso batch. Estas instrucciones o sentencias son interpretadas y ejecutadas por el Gestor de trabajos (JES).
La codificación de éste, se realiza con el editor ISPF.
Ésta introducción igual es un poco complicada porque solo hace referencia a la definición de términos generales del lenguaje. En los siguientes volúmenes se entra más al detalle, no os preocupéis si no os quedáis con nada de lo que se dice. No me entero ni yo... :-)


Sentencias JOB / EXEC / DD
  • JOB - Identifica el trabajo a realizar. Es procesada por la parte de lectura del JES(Reader). Aporta un registro contable para el trabajo.
  • EXEC - Identifica el programa o procedimiento que se va a ejecutar. Se procesa por parte del JES en el apartado (Converter) destinado a modificar el JCL por rutinas y sentencias estándar del sistema . Se abre un registro contable que identifica el paso de trabajo.
  • DD - Identifica los recursos que va a utilizar el programa (por ejemplo, ficheros). Como la sentencia anterior la ejecución de la sentencia es procesada en primer lugar por el apartado (Converter) del JES. En algunos casos si ello fuese preciso se acude al Gestor de Recursos del Sistema (SRM)


Procesadores del JES
El Gestor de trabajos (JES) realiza los siguientes procesos:
  • ENTRADA. Se envía un trabajo al JES para su ejecución. Se identifica el trabajo con un nombre y numero permitiéndonos controlar en cualquier momento la ejecución del mismo. Las sentencias de JCL se introducen en un fichero SPOOL en cola de entrada.
  • CONVERSIÓN Verificación sintáctica de las sentencias JOB. Revisión de la existencia de ficheros y librerías especificadas. Aportación de datos procedentes de procedimientos del sistema. Traspaso de los datos a la cola de ejecución de trabajos
  • EJECUCIÓN Se carga el JCL generado en un iniciador. (Se entiende como iniciador a aquellas particiones que ejecutan un trabajo). Al abrir un iniciador se le especifican unas determinadas clases asociadas a unos subsistemas o elementos físicos de hardware y estos iniciadores son los encargados de recoger según orden de prioridades los trabajos y ejecutarlos.
  • SALIDA Una vez efectuado el proceso de las sentencias, se da formato de salida al trabajo ejecutado y se procede al paso del mismo a colas de salida IMPRESIÓN Según la clase de salida que se especifique el las sentencias JOB se procederá a la impresión en una impresora determinada o visualización en un terminal o se guardara en cualquier medio que el sistema permita
  • BORRADO El borrado suprime el control por parte del JES del trabajo realizado. * El error producido en cualquier parte de las mencionadas, presupone la finalización anormal del trabajo conocido como JCL ERROR en el caso de error sintáctico o de validación de ficheros y de ABEND cuando el error proviene en tiempo de ejecución. La finalización correcta del trabajo es reconocida bajo la terminación ENDED.
Los procesos de IMPRESIÓN y BORRADO no se hacen siempre.

ORGANIZACIÓN BÁSICA DE LOS DATOS

1 - Pistas y cilindros

  • PISTA - se podría comparar a una circunferencia en la superficie de un disco físico.
  • CILINDRO - está formado por las pistas de igual radio (normalmente 15 pistas).

2 - Términos de Gestión de Datos

  • DATOS - Información que se proporciona al ordenador para su proceso.
  • CAMPOS - Es un área de datos en particular.
  • REGISTRO - Es el conjunto de campos interrelacionados.
  • FICHERO - Es el conjunto de registros relacionados.

3 - Formato v bloqueo de registros. Teniendo en cuenta el formato de los registros, las características de los ficheros pueden ser:

  • Fijo (F) - todos los registros tienen la misma longitud.
  • Variable (V) - los registros son de longitud variable. Dicha longitud se especifica en el registro.
  • Bloqueado (B) - los registros lógicos y físicos difieren en longitud.
  • Expandido (S) - los registros lógicos pueden expandirse a distintos registros físicos.
  • Indefinido (U) - los registros son de longitud variable. No se especifica la longitud en el registro. Se genera un bloque del tamaño del registro.

4 - Los datos se agrupan en bloques para ahorrar espacio, y conseguir que el proceso sea más rápido.


5 - Organización; secuencial, particionada, VSAM. La organización de un fichero determina las diversas maneras en que se puede acceder a los registros que hay en él:

  • ORGANIZACIÓN SECUENCIAL - Estructura que almacena la información un registro tras de otro, y que cuando se recupera se hace en el mismo orden de secuencia en que fue grabada. El acceso siempre es secuencial, comenzando por el primer registro del fichero y accediendo a todos los demás registros, uno tras otro.
  • FICHERO PARTICIONADO (PDS) - Estos ficheros contienen miembros y un directorio. El directorio está situado al comienzo del fichero y contiene una entrada para cada miembro. Los miembros se pueden tratar como ficheros secuenciales.

6 - VSAM - Organización de ficheros y método de acceso de alto rendimiento. Organiza y mantiene los datos mediante una estructura de catálogos, usando memoria virtual.

7 - Catálogos MVS. Un Catálogo es un fichero que contiene el nombre de otros ficheros y sus ubicaciones. Si un fichero esta catalogado únicamente con su nombre, el sistema puede, a través del catálogo, localizar dicho fichero. El Catálogo Maestro contiene los ficheros del sistema, y los nombres y ubicaciones de los Catálogos de Usuario.
Un fichero se cataloga a través de un parámetro en la sentencia DD.


8 - Campos de las sentencias de JCL. Cada sentencia de control está compuesta por los siguientes campos:

  • IDENTIFICADOR - Indica al sistema de que tipo de sentencia se trata:
// --> sentencia de JCL
/* --> sentencia de delimitador
//* --> sentencia de comentarios
  • NOMBRE - Identifica una sentencia de control a la que otras sentencias y el sistema pueden hacer referencia.
  • OPERACIÓN - Especifica el tipo de sentencia de control que sigue al campo de nombre (JOB, EXEC, DD).
  • PARÁMETROS
    • Parámetros posicionales:
- El significado del parámetro viene dado por la posición que ocupa y la ausencia del mismo presupone el separarlo del parámetro siguiente por una (,) coma
- Deben ir antes que los parámetros de palabra clave
- La carencia del ultimo, o últimos parámetros posicionales sin continuación de parámetro posicional, o la falta de todos ellos no obliga la codificación de la (,) coma de separación.
    • Parámetros de Palabra Clave:
      - E
      l significado lo determina el nombre de palabra clave y el valor que se le asocia
      - Deben de ir después de los parámetros posicionales si existen- Pueden codificarse en cualquier orden - No debe especificarse la ausencia de los mismos- Los campos se separan por (,) comas- Deben iniciarse después del tipo de operación (JOB,EXEC,DD) separados de uno o mas blancos
      - No deben existir separación de blancos entre parámetros

      - Los parámetros no deben superar la posición 71

      - Caso de ser insuficiente las posiciones hasta la columna 71 podrá situarse una
      coma antes de la posición 72 y seguir codificando en la línea siguiente respetando las siguientes normas
      - No puede interrumpirse un parámetro y la interrupción de la línea será siempre al
      finalizar el mismo y después de la (,) coma
      - // en la primera y segunda posición

      - Podrá iniciarse la continuación a partir de la posición 4 y antes de la posición 16
  • COMENTARIOS - Ira a continuación del campo de parámetros, precedido de un espacio en blanco, y puede codificarse hasta la posición 80. No debe utilizarse si no hay campo de parámetros, en éste caso se utilizaría la Sentencia de Comentarios (//*).


4 comentarios:

mariel dijo...

Hola, gracias por compartir información de JCL, he intentado buscar información y la mayoría en ingles, soy novata en este tema pero me encantaría aprender, pero al ver se dictan muy pocos cursos del tema, me podeis recomendar centros donde se dicten,o profesores a nivel particular.

Tallian dijo...

Hola Mariel.
La forma más fácil de conseguir un curso sobre cobol y JCLs es o bien a través del inem, que suelen dar cursos para desempleados, o bien a través de alguna empresa, que suelen dan cursos para captar futuros programadores junior.
Existen profesores autónomos que también imparten cursos pero suele ser a grupos y a través de otras empresas.
Si quieres escríbeme al correo del consultorio(consultoriocobol@gmail.com) y te cuento más en detalle.
Talli : )

José Luis Vargas Yupanqui dijo...

Estan muy buenos los tutoriales, soy un principiante en cobol y jcl, que compilador puedo utilizar para poder practicar estos dos lenguajes en modo local.

david vera dijo...

Muy buena explicación excelente sitio para aprender