Desarrollando en Cobol y Natural sobre Plataforma Mainframe

miércoles, 25 de septiembre de 2013

Posibles Errores RC de un JCL

Cuando ejecutamos un JCL y el proceso finaliza de forma errónea, en el TSO se mostrará el código de error correspondiente en la columna Max-RC. Este código nos va a indicar la gravedad del problema ocurrido en nuestro job.

Una vez haya concluido la ejecución de nuestro JCL, tendremos que ir al SDSF del TSO y verificar cuál ha sido el código obtenido en la columna Max-RC. Si todo ha ido bien, se mostrará el código 0000. En caso contrario, aparecerá otro código distinto cuyo valor variará en función de la severidad del error.

Los posibles códigos de RC (Return Code) que podemos obtener en la columna Max-RC son los siguientes:

RC 0000 - Job ejecutado correctamente.
RC 0004 - Job ejecutado totalmente pero con Warnings asociados.
RC 0008 - Error en la ejecución.
RC 0012 - Error grave.
RC 0016 - Fatal error (error irrecuperable o muy grave).

Los dos primeros RC (0000 y 0004) permiten continuar con la ejecución del programa. El resto de RC implica que hay un error que debe ser subsanado antes de que la ejecución de nuestro programa pueda ser llevada a cabo correctamente.

En el ejemplo siguiente podemos ver que un JCL se ha ejecutado y tiene asociado un RC con código 0012. Es decir, hay un error grave que debe ser corregido.



Como vemos en la imagen, en la columna MaxRC se muestra el literal "CC 0012", que hace referencia a Condition Code 0012 (Error grave).

Finalmente, comentar que a lo largo de la salida del JCL nos aparecerán mensajes asociados a cada uno de estos tipos de error. Serían los siguientes:

- Severidad 00 - Informational Messages
- Severidad 04 - Warning Messages
- Severidad 08 - Error Messages
- Severidad 12 - Severe Messages
- Severidad 16 - Terminal Messages

Saludos.

jueves, 19 de septiembre de 2013

Crear Librería con formato U - Undefined

Para ciertos tipos de objetos, de los cuales no se sabe su formato a priori, es necesario emplear librerías especiales para su almacenamiento. Se trata de las librerías de tipo U (undefined), denominadas así porque van a contener registros de formato indefinido.



Para crear una librería de tipo U (undefined) no se pueden emplear los mismos parámetros que para dar de alta una librería estándar de tipo FB (registros de longitud fija). Es importante tener en cuenta esto, pues si intentamos almacenar objetos de formato indefinido en una librería de tipo FB el proceso correspondiente nos devolverá un error.

Los parámetros específicos para una librería U son los siguientes:

- Directory blocks: hay que indicar inferior o igual al especificado en el campo "Primary quantity".
- Record format: aquí hay que indicar U.
- Record lenght: este campo debe dejarse con valor 0, ya que los registros tienen formato indefinido.



Una vez indicada esta información, pulsamos INTRO y el sistema nos mostrará el mensaje "DATA SET ALLOCATED".



Tras este mensaje, si hacemos una simple consultar encontraremos que nuestra librería ya está dada de alta. En nuestro ejemplo, vemos que ya existe la librería LIBPR.DBRM.JJ02.



Por último, recordemos cuáles son los posibles tipos de librerías que podemos crear en ISPF:

F - Fixed length records                                          
V - Variable length records                                       
U - Undefined format records

Comentar que, para estos tipos de librerías, también se pueden indicar adicionalmente los siguientes códigos:

B - Blocked records                                               
A - ASA printer control characters                                
M - Machine code printer control characters                       
S - Standard (for F) or spanned (for V) - sequential data sets only
T - Track-overflow feature                                         

Saludos.

martes, 10 de septiembre de 2013

Creación de una Librería Cobol en TSO

Para la creación mediante TSO de una nueva Libería para albergar objetos Cobol hemos de realizar una serie de sencillos pasos. Con esta herramienta podremos disponer de todas las librerías que consideremos necesarias para tener ordenados nuestros objetos.



Los pasos serían los siguientes:

1º) Desde el Menú Principal de ISPF seleccionamos la opción 3 - Utilities


2º) A continuación, en el Utility Selection Panel marcamos la opción 2 - Data Set.



3º) En el menú Data Set Utility introducimos el nombre de la librería e insertamos el comando A en la línea Option.

 

4º) A continuación, en el panel "Allocate New Data Set" se introducen los datos asociados a la librería que queremos dar de alta. Por ejemplo, aquí insertamos ZASYS1 como "Volume Serial" y 0 en "Directory Blocks".



5º) Al confirmar nos aparecerá el mensaje "DATA SET ALLOCATED".



Tras estos pasos, nuestra librería ya debería estar creada. En nuestro ejemplo, podemos verificar, con una simple consulta, que la librería LIBPR.DBRM.JJ00 ya existe.



Saludos.

Related Posts Plugin for WordPress, Blogger...