Buscar en este blog

Cargando...

lunes, 28 de noviembre de 2016

¿Tipos de Archivos Secuenciales? Bah!

¡¡Hola coboleros!! Ya vimos en un artículo anterior la diferencia entre los archivos secuenciales y VSAM, pero en este artículo nos ocuparemos de distinguir los distintos tipos de organización de estos archivos secuenciales.
Primero debemos de indicar qué entendemos por “organización del archivo”. Esto indica como los registros se organizan en un archivo, y cuya finalidad es aumentar su eficiencia de acceso a los registros.

Se muestra a continuación los tipos de “organización” que existen:

  • Organización del archivo secuencial
  • Organización del archivo secuencial indexado
  • Organización de archivo relativa

Empezando…. Organización del Archivo Secuencial…


Un archivo secuencial consta de registros almacenados en el archivo y cuyo acceso a ellos es meramente secuencial. Esto quiere decir que el primero que entra es el último en salir y que no se puede acceder a un registro que está en medio del archivo, si no se recorre esa primera mitad del archivo.
Muchas de las características que se requieren saber sobre los archivos secuenciales se mencionaron en el artículo Ficheros Secuenciales vs Ficheros VSAM ¿Cuál es el mejor?”, sin embargo vamos a rememorar algunas de las principales características que se tienen de los archivos secuenciales.

·         Se pueden leer los archivos en orden secuencial, esto quiere decir que si tienes un registro en medio del archivo, tienes que leer los archivos anteriores a este para que puedas leer el registro que te interesa.
·        Los registros se escriben en orden secuencial, el último registro en ser insertado, es el primer registro en ser leído.
·        Después de insertar un registro en un archivo secuencial, no es posible eliminar, reducir o alargar un registro.
·        Orden de los registros, una vez insertados, no se puede cambiar.
·        Actualización de registro es posible. El registro se puede sobrescribir, si la nueva longitud de registro es el mismo que el de longitud de registro.


Dentro del programa siempre se podrá especificar la sintaxis de la organización del archivo secuencial:
       FILE-CONTROL                                           
       SELECT ENTRADA ASSIGN TO ENTRADA                
                       ORGANIZATION IS SEQUENTIAL       
                       ACCESS MODE  IS SEQUENTIAL       
                       FILE STATUS IS WS-FS-ENTRADA.
  

Donde

ASSIGN TO: Asigna el archivo de entrada “ENTRADA” al nombre de la tarjeta del sistema también llamado “ENTRADA”
ORGANIZATION: Se especifica que su organización es secuencial
ACCESS MODE: Tipo de acceso, el cual se especifica que es secuencial
FILE STATUS: El estatus del archivo el cual deberá de comenzar con 00.

Mientras que en el JCL nosotros podemos encontrarlo como se muestra en el ejemplo de a continuación:

//ENTRADA  DD  DSN=MOVDELL.R08.I1OUP10.SORTINYU,
//             DISP=(OLD,KEEP,KEEP)                

ENTRADA: Archivo que se va a mandar a llamar para entrada del proceso.


Organización del archivo secuencial indexado


Un archivo secuencial indexado consiste de registros que pueden tener acceso a los datos de forma secuencial. Consta de dos partes:

  • Archivo de Datos contiene registros en orden secuencial.
  • Archivo de índice contiene la clave principal y su dirección en el archivo de datos.

Por Archivo de datos nos referimos a los registros escritos en orden secuencial, del tamaño que requiera la información, y también de la estructura que requiera la información.

Por Archivo de Índice nos referimos a la clave principal que rige a cada uno de los registros, y su dirección pero de memoria dentro del archivo de datos. Esta dirección de memoria por lo general suele ser hexadecimal.

A continuación se muestran las ventajas y desventajas más importantes que tienen estos archivos:

Ventaja:

·         Es rápida si se cuenta con los datos llave con los que se quiere encontrar un dato.
·         Permite el acceso secuencial
·         Permite el acceso directo de los registros
·         Se pueden actualizar los registros en el mismo fichero sin necesidad de crear un fichero nuevo de copia en el proceso de actualización

Desventaja:

·         Requiere implementar índices que ocupan recursos como espacio en disco y algoritmos diversos para optimizar búsquedas (aunque de eso ya se ocupan los manejadores de bases de datos)
·         Ocupa más espacio en el disco que los ficheros secuenciales, debido al uso del área de índices
·         Tiene tendencia a que aumente el tiempo medio de acceso a los registros, cuando se producen muchas altas nuevas con claves que hay que intercalar entre las existentes.

Se mencionan algunas de las principales características que tienen este tipo de archivos:

·         El índice nos proporciona una capacidad de búsqueda para llegar rápidamente al registro deseado
·         El “archivo de datos”  es similar al archivo secuencial, pero está integrado de forma que los registros se ubiquen siguiendo un puntero o dirección de memoria desde su registro predecesor.
·         Cuando se añade un nuevo registro, al archivo principal que sigue al nuevo registro y  según la secuencia lógica, se actualiza con el puntero del registro nuevo en el archivo de datos.
·         El diseño del registro tiene que tener un campo o combinación de campos, que permita identificar cada registro de forma única. Este campo que hará esa distinción será campo clave, y es el que va a servir de índice.
·          Un mismo fichero puede tener más de un campo clave, pero al menos uno de ellos no admitirá valores duplicados y se les llama clave primaria.
·        Se pueden leer los registros en orden secuencial, como en organización de archivos secuenciales.
·        Los registros se pueden acceder aleatoriamente si la clave principal es conocida.
·        El archivo índice se utiliza para obtener la dirección de un registro (hexadecimal) y, a continuación, se obtiene el registro del archivo de datos, ya con la dirección de memoria.


Sintaxis

FILE-CONTROL.                                                 
    SELECT ARCH-VSAMDIR   ASSIGN TO VSAMDIR                   
                          ORGANIZATION IS INDEXED             
                          ACCESS IS DYNAMIC                   
                          RECORD KEY IS KEY-VSAMDIR           
                          FILE STATUS IS FS-VSAMDIR.          
Donde

ASSIGN TO: Se le asigna ARCH-VSAMDIR a VSAMDIR
ORGANIZACIÓN IS De tipo indexada
ACCESS IS El acceso es dinámico
RECORD KEY IS El archivo se está recorriendo por la llave KEY-VSAMDIR
FILE STATUS IS El estatus del archivo, al inicio el cual deberá de ser 00.

Espero que el articulo te haya gustado y te haya sido de utilidad. :-)


lunes, 24 de octubre de 2016

Sort vol 2.4: OUTREC. Rellenar con espacios.

Hace unas semanas un compi me comentó que le daba error al rellenar 18000 espacios al final de un registro escribiendo 18000X. Nunca me había planteado si había un límite, pues nunca había tenido que rellenar semejante cantidad de posiciones. Descubrimos que efectivamente no se puede xd

La verdad es que si leemos el manual de OUTREC de IBM lo dice claramente, pero son esas cosas que solo lees cuando tienes un error (mal!).

Aquí tenéis lo que dice IBM al respecto:

Es decir, que como mucho podemos decirle que incluya 4095 espacios. Y que si necesitamos más, hagamos repeticiones hasta el número deseado :D

Os dejo el ejemplo de OUTREC completo:
//SORT01   EXEC PGM=SORT                                    
//SORTIN   DD DSN=FICHERO.DE.ENTRADA,DISP=SHR
//SORTOUT  DD DSN=FICHERO.DE.SALIDA,                     
//            DISP=(,CATLG,DELETE),                         
//            SPACE=(CYL,(200,50),RLSE),                    
//            DCB=(RECFM=FB,LRECL=8395,BLKSIZE=0)           
//SYSOUT   DD SYSOUT=*                                      
//SYSIN    DD *                                             

   SORT FIELDS=COPY
   OUTREC FIELDS=(1:C'TEXTO',6:1,200,206:4095X,4095X)

Y os lo cuento para que no se me olvide :-)

lunes, 29 de agosto de 2016

Ficheros Secuenciales vs Ficheros VSAM ¿Cuál es el mejor?

Ficheros Secuenciales

Hoy vamos a tratar el tema, de archivos secuenciales contra VSAM, y para aquellos que son principiantes con el tema, vamos a desmenuzar un poco algo de cada uno de los ficheros con el fin de que a la hora de desarrollar sepan cual es el más óptimo.
Un archivo secuencial es aquel que consta de registros que se almacena y se accede a ellos de modo secuencial (de principio a fin), es decir que si quieres hacer la lectura del registro ocho, tienes que hacer las siete lecturas de los registros, para llegar.
Te recomendaría este tipo de archivo si quisieras que

  •          El tamaño de memoria fuera mínimo
  •          El archivo fuera fácilmente editable
Se pueden enumerar los principales atributos del archivo de organización secuencial


  • Un nuevo registro no se puede insertar ni en medio ni al principio del archivo, este siempre se insertara al final del archivo.
  • Después de especificar el tamaño de un registro en un archivo secuencial, no es posible, reducir o alargar un registro.
  • El orden de  los registros, tal y como se insertan no puede ser cambiado.
  •  Es posible la actualización de un registro, pero esto solamente es posible “a manita” a través de la opción del TSO,  de edición. Se puede también sobrescribir un registro, siempre y cuando la nueva longitud de registro sea la misma.
  • Los archivos secuenciales para la escritura de registros de salida son una buena opción, teniendo en cuenta, que no requieren de más especificaciones que el tamaño del registro sea el tamaño del archivo.

martes, 16 de agosto de 2016

Oferta de empleo: programador cobol

Saludos coboleros!

Desde la empresa SERRA JULIA, S.L. nos hacen llegar esta oferta, en la que buscan un programador cobol para mantenimiento de su software de facturación y gestión.

La empresa está situada en Cabrera de Mar, Barcelona.

Si estás interesado, puedes contactar con ellos en info[arroba]serrajulia[punto]com

Suerte!

lunes, 8 de agosto de 2016

JFY: alinear campos en JCL

Una opción que podemos utilizar tanto con OUTREC como con INREC es la de "justificar" a izquierda o derecha con JFY.

Os dejo a continuación un ejemplo de OUTREC para fichero de longitud fija FB y de longitud variable VB.

FICHERO DE ENTRADA:

+----1----+----2----+----3----+----4----+----5-
***************************** Top of Data *****

2015-01-01DATOS VARIABLES     T 20
FFFF6FF6FFCCEDE4ECDCCCDCE44444E4FF4444444444444 20150010014136205199123520000030200000000000000 -----------------------------------------------

2015-01-01DATOS VARIABLES LARGO   40 FFFF6FF6FFCCEDE4ECDCCCDCE4DCDCD444FF44444444444 20150010014136205199123520319760004000000000000 -----------------------------------------------
2015-01-01DATOS VARIABLES MAS L        45              
FFFF6FF6FFCCEDE4ECDCCCDCE4DCE4D44444444FF444444 20150010014136205199123520412030000000045000000 -----------------------------------------------

2015-01-01DATOS VARIABLES LARGO              51
FFFF6FF6FFCCEDE4ECDCCCDCE4DCDCD44444444444444FF
20150010014136205199123520319760000000000000051
-----------------------------------------------
 


Si os fijáis, de la posición 36 a la 51 tenemos un campo con diferente número de espacios a la izquierda del dato que nos interesa.