Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 26 de junio de 2014

Creación de fichero VSAM mediante ISPF

Cuando necesitemos crear un Fichero VSAM en nuestra aplicación (cosa que no debería ocurrir habitualmente), tendremos la posibilidad de recurrir a dos soluciones alternativas. Una de ellas consistirá en la generación del Data Set mediante la herramienta ISPF y la otra en la generación mediante un JCL adaptado a dicha función.

Si nos decidimos por la generación mediante la herramienta ISPF, el proceso a seguir será un poco más engorroso que el del lanzamiento del JCL. Aunque, probablemente, con el ISPF nos quedará un poco más claro para qué sirve cada uno de los parámetros que estamos especificando.



Los pasos a seguir para la creación de un Fichero VSAM mediante ISPF serán los siguientes, teniendo en cuenta que iniciamos el proceso desde el menú POM (ISPF Primary Option Menu).

1º) Opción 3 - Utilities. Desde el menú POM, tendremos que seleccionar la opción 3 - Utilities (Perform Utility Functions).

3  Utilities     Perform utility functions

2º) Opción 2 - Data Set. Seleccionamos opción 2 (Allocate, rename, delete, catalog, uncatalog, or display information of an entire data set).

2  Data Set    Allocate, rename, delete, catalog, uncatalog, 
               or display information of an entire data set

3º) Opción V - VSAM Utilities. Seleccionamos opción V - VSAM Utilities.

V VSAM Utilities 

4º) En el panel VSAM Utilities, tenemos que seleccionar la opción 1 - Define del apartado "Process Request" y la opción 3 - Cluster del apartado "Data Type".

Process Request                 Data Type            
1  1. Define                    3   1.  Alias        
   2. Delete                        2.  Alternate Index
   3. Information (Listcat)         3.  Cluster        


5º) Panel Define Cluster. Aquí tendremos que ir introduciendo la información correspondiente en cada uno de los parámetros requeridos. Tengamos en cuenta que no todos ellos son obligatorios.

Por ejemplo, nosotros vamos a especificar, para el fichero JJ00.FACTURAS.SALIDA1, los siguientes parámetros en el apartado "Cluster Level Information".

- Space Units: 1   1. Cylinders
- Space Units - Primary Quantity: 1
- Space Units - Secondary Quantity: 1
- Volumes: ZARES1
- Record Size - Average: 80
- Record Size - Maximun: 80
- Keys - Length: 10
- Keys - Offset: 0
- Indexed,NOnindexed,Linear or NUmbered: INDEXED

6º) Finalmente, nos aparece el Panel con los datos introducidos para el Fichero VSAM. Si estamos de acuerdo con ellos, entonces tendremos que introducir EXEC en la línea de comandos y el proceso de generación se lanzará.
                                       

/* IDCAMS COMMAND */                            
DEFINE CLUSTER (NAME(JJ00.FACTURAS.SALIDA1) -   
       CYLINDERS(1 1) -                         
       VOLUMES(ZARES1 -                         
              ) -                               
       KEYS(10 0) -                             
       RECORDSIZE(80 80) -                      
       INDEXED -                                
       ) -                                      
       DATA (NAME(JJ00.FACTURAS.SALIDA1.DATA) - 
       ) -                                      
       INDEX (NAME(JJ00.FACTURAS.SALIDA1.INDEX) -
       )   


Una vez confirmado, la generación del fichero VSAM debería hacerse sin problemas. En nuestro ejemplo, hemos generado el fichero JJ00.FACTURAS.SALIDA1. De hecho, si nos vamos a consultar la lista de Data Sets de nuestra aplicación (JJ00), vemos que aparecen las nuevas entidades creadas.

- Enter "/" to select action             Message      Volume
------------------------------------------------------------- 

 JJ00.FACTURAS.SALIDA1                                *VSAM*
 JJ00.FACTURAS.SALIDA1.DATA                           ZARES1
 JJ00.FACTURAS.SALIDA1.INDEX                          ZARES1
**************** End of Data Set list ***********************


Como se puede apreciar, el Data Set JJ00.FACTURAS.SALIDA1 aparece con la etiqueta *VSAM* en la columna "Volume", lo que lo identifica claramente como un fichero VSAM. Junto a él, podemos observar que también se han creado los ficheros DATA e INDEX.

Siguiendo todos los pasos anteriormente mencionados, no deberíamos tener ningún error en el proceso de generación de ficheros VSAM. Aunque en el ejemplo hemos dado de alta un fichero Indexado (KSDS), el procedimiento sería análogo para el resto de tipologías VSAM.

Pues nada, en un futuro explicaremos cómo se puede realizar esta misma creación mediante JCL y seguiremos comentado cosas adicionales sobre los VSAM.

Saludos.

jueves, 19 de junio de 2014

Tipos de Ficheros Secuenciales Cobol (y 2)


Hace algunas semanas comenzamos a ver los tipos de ficheros que podíamos dar de alta en el sistema operativo ZOS mediante la herramienta ISPF (ver post Tipos de Ficheros Secuenciales Cobol - 1). Hoy trataremos de finalizar el repaso de todas las tipologías disponibles de Data Sets.

 

Según vimos, podíamos trabajar con ficheros PS, PDS, PDSE (Library) y Large. Los PS son los famosos Secuenciales y los PDS son las librerías que empleamos para almacenar miembros diversos como, por ejemplo, los objetos Cobol. Aparte de esos tipos, también tendremos a nuestra disposición las siguientes entidades.


5º) Fichero BASIC: Se trata de ficheros secuenciales en los que se especifica que no tendrán ni formato Grande (LARGE) ni formado Extendido.

Data set name type    BASIC     

6º) Fichero VSAM: Puede ser de tipo ESDS, KSDS, RRDS o LDS. Se trata de ficheros con un Método de Acceso específico (VSAM significa Virtual Storage Access Method), mucho más eficiente que el empleado por los Ficheros Secuenciales. Todos los tipos indicados en los puntos anteriores (PS, PDS, PDSE, LARGE y BASIC) corresponderían a Ficheros no-VSAM.

V VSAM Utilities

7º) Fichero EXTREQ: Se indica que la reserva de espacio en memoria debe realizarse obligatoriamente en formato Extendido. Las ventajas de un Data Set de formato extendido son las siguientes:

- Permite compresión, reduciendo así el espacio precisado para almacenar los datos.
- Permite la distribución de datos en diferentes Volúmenes.
- Permite la creación de ficheros VSAM de tamaños superiores a 4 GB.

Data set name type    EXTREQ

8º) Fichero EXTPREF: Es una variante del caso anterior. La diferencia es que aquí se indica que, a la hora de reservar espacio en memoria, el formato preferido para el fichero es el Extendido pero que, si el sistema no tiene recursos para realizar esta petición, entonces se adoptará el formato BASIC.

Data set name type    EXTPREF  

En líneas generales, estas son las tipologías principales de ficheros que podemos dar de alta en el sistema operativo ZOS. Básicamente, tal y como hemos visto, se dividen en dos grandes bloques: los ficheros no-VSAM (que incorporan, entre otras, a las categorías de ficheros Secuenciales, PDS y PDSE) y los ficheros VSAM.

La creación de estos ficheros puede realizarse mediante la herramienta ISPF o mediante la ejecución de un JCL que haga uso de las utilidades correspondientes (IEFBR14, IEBCOPY o IDCAMS). Una vez se tiene claro el comportamiento de cada uno de los parámetros asociados a cada fichero, la creación mediante JCL es mucho más cómoda.



En próximos post trataremos de ir viendo ejemplos en los que se muestre cómo se puede generar cada uno de estos tipos de ficheros. Al fin y al cabo, por mucha teoría que expongamos, se aprende mucho más fácilmente viendo un ejemplo, paso a paso, de cómo se va realizando la creación de un fichero.

Y nada más por hoy. Simplemente os emplazamos a los post mencionados, en el caso de que necesitéis tener una idea más detallada de la estructura de algún tipo de fichero en particular.

Saludos.

viernes, 13 de junio de 2014

Clasificación de lenguajes por popularidad

Para los que nos dedicamos al mundo de la informática, siempre es interesante conocer cuáles son los lenguajes más populares y utilizados. Se trata de un status quo que va cambiando lentamente, como demuestra el hecho de que, desde hace varios años, la lista está encabezada por C y Java.

Nos conviene estar atentos, por un lado, a cuáles son los lenguajes más demandados y, por otro lado, a cuáles son los lenguajes que más crecimiento están mostrando en los últimos tiempos. Esto nos permitirá formarnos en aquellos sectores que vayan a ser más productivos en el futuro.

Afortunadamente, desde el año 2003 disponemos de un índice, publicado mensualmente, que recoge la clasificación de los lenguajes ordenados por popularidad, por oferta y por demanda: se trata del TIOBE Index. Hay que tener en cuenta que la información con la que se elabora está recogida a través de las huellas en internet (no se trata de una encuesta realizada físicamente en diferentes centros de trabajo).

A continuación, mostramos la lista de los 12 lenguajes más populares en la última publicación del índice.



Como vemos, las 4 primeras plazas están ocupadas por C, Java, Objective-C y C++. Y es interesante comprobar que, hace justo un año, las posiciones eran exactamente las mismas en esos 4 primeros puestos. Por tanto, resulta evidente que el ascenso o la caída de un lenguaje en particular no se produce de un mes para otro, sino que es un proceso que se va desarrollando a lo largo de varios años. La ventaja de este comportamiento es que nos permite adaptar nuestro curriculum y e irnos formando con antelación en los lenguajes más demandados.

Otro dato a destacar de la clasificación es la presencia de 3 lenguajes con progresión ascendente en el último año: se trata de Visual Basic, JavaScript y .NET. Por tanto, no hay que ser demasiado avispado para darse cuenta de que las personas con mayor conocimiento en alguno de esos 3 lenguajes (junto con los expertos en C, Java y Objective-C) lo tendrán más fácil en el futuro para encontrar buenos trabajos.

Dicho todo lo anterior, ¿dónde queda nuestro entrañable Cobol? Pues bajando bastante más en la lista del índice, podemos ver que en la última publicación aparece en el puesto 27. No está mal, teniendo en cuenta que se trata de un lenguaje tan antiguo. Pero, obviamente, nunca más lo volveremos a ver codeándose con C, Java o .NET.



De vez en cuando, en el blog intentaremos ir repasando esta lista, para ver cómo evolucionan tanto los lenguajes líderes como nuestro lenguaje Cobol. En principio, este último tendría que seguir perdiendo puestos paulatinamente aunque, teniendo en cuenta que aún se utiliza en muchas instalaciones importantes, nunca se sabe.

En fin, al menos este índice nos sirve para saber dónde estamos actualmente y a dónde deberíamos dirigirnos si queremos trabajar con un lenguaje de futuro.

Saludos.

jueves, 12 de junio de 2014

Tipos de Ficheros Secuenciales Cobol (1)

Cuando trabajamos con programas Cobol nos damos cuenta de la gran variedad de tipologías de ficheros que nos permite crear el sistema operativo ZOS. Muchos de estos tipos son de utilización frecuente, aunque hay algunos otros con los que es posible que no nos encontremos nunca.

A la hora de crear un Fichero, tenemos que ir al panel "Data Set Utility" del ISPF y seleccionar la opción "Allocate new data set" (para no-VSAM) o la opción "VSAM Utilities" (para VSAM). A continuación nos aparecerá una ventana en la que tenemos que definir los parámetros asociados al Data Set que deseamos crear. En el campo "Data set name type" se deberá especificar el tipo de fichero que queremos dar de alta.



A continuación, trataremos de enumerar cuáles son las posibles tipologías de Ficheros de las que disponemos para la operativa de nuestra aplicación.

1º) Fichero PS o Secuencial: para crear un Data Set Secuencial básico hay que dejar el campo "Data set name type" en blanco, ya que se trata de la opción por defecto del ISPF. En estos ficheros los registros se van almacenando secuencialmente uno tras otro conforme se va introduciendo la información, incluyendo al final del todo una marca EOF (fin de fichero o End Of File). Por tanto, para acceder a un determinado registro el sistema operativo tendrá que recorrerse todo el fichero hasta llegar a su posición. Obviamente, esta forma de acceso no es la más eficiente.

Data set name type              

2º) Fichero PDS: se debe introducir PDS en "Data set name type". Se trata de Data Sets que se componen de Miembros organizados secuencialmente, donde cada miembro puede contener varios registros. Al principio del PDS (en una partición denominada "Directorio") se guardan los nombres de dichos Miembros y la posición del fichero en la que comienzan a almacenarse los registros asociados a cada uno de ellos. De esta forma, podemos acceder a un registro sin necesidad de recorrernos el fichero completo.

Su principal desventaja es que, aunque borremos un Miembro del Fichero, su espacio en memoria no podrá ser reutilizado. Debido a su organización secuencial, cualquier miembro nuevo que creemos deberá almacenarse a continuación del último que se dio de alta.

Data set name type    PDS      



3º) Fichero PDSE o PDS Extended: se debe introducir LIBRARY en "Data set name type". Este tipo de fichero almacena la información de forma mucho más eficiente que el PDS. El tamaño del Directorio de un PDSE es flexible (a diferencia del de los PDS, que es fijo) y se va incrementando conforme vamos añadiendo nuevos Miembros. La principal ventaja frente al PDS es que aquí, cuando borramos un Miembro, su espacio en memoria queda disponible para ser ocupado por los nuevos Miembros que se den de alta en el Data Set.

Data set name type    LIBRARY

4º) Fichero LARGE: Se trata de ficheros secuenciales que pueden superar la cantidad de 65.535 tracks por volumen (limitación existente para los ficheros secuenciales estándar).

Data set name type    LARGE     

El próximo día terminaremos de ver todas las categorías de ficheros que tenemos disponibles. De todas formas, hay que decir que los Data Sets más empleados son los PS (Secuenciales) y los PDS (donde se realizará el almacenamiento de los diversos miembros con los que tengamos necesidad de trabajar).

Y eso es todo. En la segunda parte del post veremos en qué consisten las tipologías restantes y, con ello, daremos por cerrado nuestro repaso de los ficheros más importantes.

Saludos.

jueves, 5 de junio de 2014

Tipos de Registros de Ficheros Secuenciales Cobol

Cuando estamos dando de alta un nuevo fichero en el ISPF del sistema operativo ZOS, uno de los parámetros que tenemos que definir es el formato del registro. La elección de este dato influirá posteriormente en el tipo de uso que podamos darle al fichero creado.

Al seleccionar la opción "Allocate new data set" del panel "Data Set Utility" del ISPF, nos aparece una ventana en la que tenemos que definir los parámetros asociados al fichero que deseamos crear. En el campo "Record format" se debe especificar el tipo de formato que va a ir asociado a los registros del fichero.



Los tipos de formatos de los registros pueden ser los siguientes:

1º) F - Fixed Length Record: se trata de registros de longitud fija. Normalmente se usan cuando sabemos que la información contenida en un registro no va a ser superior a un determinado límite. Dicho límite se empleará como longitud del mismo.

2º) V - Variable Length Record: son registros de longitud variable. Se usan cuando la información que se va a almacenar en un registro no está acotada y no queremos malgastar el espacio reservado en memoria eligiendo una longitud fija demasiado elevada.

3º) U - Undefined Format Record: se trata de registros con una estructura no predefinida. Este tipo de formato normalmente sólo es usado para la definición de las librerías de Módulos (aquellas en las que se almacenan los ejecutables).

4º) FB - Fixed Lenght Blocked Record: si marcamos esta opción, estaremos indicando que cada registro formará parte de un Bloque (cada Bloque estará compuesto por el número de registros que establezcamos). De este modo, cada vez que queramos recuperar datos del fichero, el sistema operativo traerá la información de un Bloque completo. Es decir, hará una lectura más eficiente Bloque a Bloque, en vez de registro a registro.

5º) VB - Variable Length Blocked Record: similar al caso anterior, pero esta vez empleando registros con longitud variable. Aquí también tendremos agrupación de registros en Bloques y la recuperación de la informacion se hará Bloque a Bloque.

Aunque existen algunas tipologías de formatos más complejas, en líneas generales estos son los tipos de registros más utilizados a la hora de definir ficheros para programas Cobol en el entorno ISPF del TSO. Antes de seleccionar uno u otro, tendremos que tener claro cuál va a ser su utilización posterior en nuestra aplicación.

El próximo día, relacionado con este tema, comentaremos cuáles son los Tipos de Ficheros Secuenciales que podemos crear en el ISPF. Como veremos, existe una amplia variedad de ellos...

Saludos.

Related Posts Plugin for WordPress, Blogger...