PerroCobolero

PerroCobolero

ADS

lunes, 14 de enero de 2019

FICHEROS - ORGANIZACION Y TIPOS DE REGISTRO


INTRODUCCION

                La inquietud se plantea desde el punto de vista de qué tipo de archivo se construye al final del paso de descarga de la tabla.
                Tiene mucho que ver con el utilitario que trabajemos. Pasemos a ver dos ejemplos concretos y sus resultados.

Usando el utilitario IKJEFT01

//P002D002 EXEC  PGM=IKJEFT01,                         
//             DYNAMNBR=200                            
//SYSPRINT DD  SYSOUT=*                                 
//SYSTSPRT DD  SYSOUT=*                                
//SYSTSIN  DD  *                                       
 DSN SYSTEM(DSN)                                       
 RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIAUL) -           
    
      LIB('DB2LIB.MXD1.RUNLIB.LOAD') PARM('SQL')       
 END                                                   
/*                                                     
//SYSPUNCH DD  DSN=XALD.PE.BAT1NBAS.PEDT008.SYSPUNCH,  
//             DISP=(NEW,CATLG,DELETE),                 
//             SPACE=(TRK,(5,1),RLSE)                  
//SYSREC00 DD  DSN=XALD.PE.BAT1UNLO.PEDT008.LOAD.DUNLO0,
//             DISP=(NEW,CATLG,DELETE),                
//             SPACE=(TRK,(2000,400),RLSE)  
//SYSIN    DD  *              
   SELECT * FROM CICSD.PEDT008;
/*                            

                Obtenemos un archivo XALD.PE.BAT1UNLO.PEDT008.LOAD.DUNLO0 
         

Cuyo tipo de organización como vemos (DSORG), es PS y el RECFM es FB. Esto significa que es un tipo de archivo PYSICAL SEQUENTIAL, físico secuencial y el tipo de registro es FIJO BLOQUEDADO.

El utilitario ADUUMAIN


//P002D002 EXEC  PGM=ADUUMAIN,                          
//             COND=(04,LT),                            
//             PARM='DSN,OGDESCTA_04,NEW,,MSGLEVEL(1)'  
//STEPLIB  DD  DSN=SYS2.BMC.EXDS.LOAD,                  
//             DISP=SHR                                 
//         DD  DSN=DB2LIB.MXD1.SDSNEXIT,                
//             DISP=SHR                                  
//         DD  DSN=DB2LIB.MXD1.SDSNLOAD,                
//             DISP=SHR                                 
//SYSREC   DD  DSN=XALD.PE.BAT1UNLO.PEDT150.LOAD.D130103,
//             DISP=(NEW,CATLG,DELETE),                 
//             RECFM=FB,LRECL=365,                      
//             UNIT=3390,                               
//             SPACE=(TRK,(1500,150),RLSE)              
//SYSCNTL  DD  DUMMY                                    
//SYSUDUMP DD  SYSOUT=*                                  
//SYSPRINT DD  SYSOUT=*                                 
//SYSOUT   DD  SYSOUT=*                 
//SYSIN    DD  *                        
UNLOAD                                  
DIRECT YES SHRLEVEL CHANGE CONSISTENT YES
FILTERPART YES                          
SELECT * FROM CICSD.PEDT150;            
//*                                     

                Y obtenemos un archivo XALD.PE.BAT1UNLO.PEDT150.LOAD.D130103



Cuyo tipo de organización es también física secuencial, pero el formato del registro en VB. Que significa VARIABLE BLOQUEADO.

Este tipo de formato de registro, como se verá más abajo es mayor que el FIJO VARIABLE porque tiene 4 octetos adicionales para contener una serie de datos que tienen que ver con su tipo de organización.
Por eso, en un requerimiento en el cual debíamos hacer la descarga y luego un SORT, el resultado del paso SORT nos daba error, porque no podía ordenarlo correctamente, debido a que no se ubicaba en las posiciones correctas que le dábamos.

TIPOS DE ORGANIZACIÓN

Data set organization (ancho de 2 caracteres). Los valores válidos son:
PS (physical sequential)
PO (partitioned organization)
DA (direct access)          
VS (VSAM)
KS —VSAM key-sequenced data set
RR—Either a VSAM variable-length or fixed-length relative-record data set
ES—VSAM entry-sequenced data set
LD—VSAM linear data set
NV—Non-VSAM data set

                Ejemplos vistos en el Host de México aparte del PS, que es el que más nos interesa
PO – ORGANIZACIÓN PARTICIONADA Y TIPO DE REGISTRO FB (FIJO VARIABLE)

TIPOS DE REGISTROS

F (Fijo)
Fija significa que un bloque físico en el disco es un registro lógico y todos los bloques y los registros son del mismo tamaño. Este formato se utiliza raramente.

FB (Fijo Bloqueado)
Esta designación formato significa que varios registros lógicos se combinan en un solo bloque físico. Este formato puede proporcionar utilización eficiente del espacio y la operación. Este formato se utiliza comúnmente para registros de longitud fija.
V (variable)
Este formato tiene un registro lógico como un bloque físico. Un registro lógico de longitud variable consta de una palabra descriptor registro (RDW) seguida por los datos. La palabra descriptor registro es un campo de 4-byte que describe el registro. Los primeros 2 bytes contienen la longitud del registro lógico (incluido el RDW 4-byte). La longitud puede ser de 4 a 32.760 bytes. Todos los bits de los bytes tercero y cuarto debe ser 0, porque los demás valores se utilizan para los registros distribuidos. Este formato se utiliza raramente.
VB (Variable Bloqueado)
Este formato coloca varios registros de longitud variable lógicas (cada uno con un RDW) en un bloque físico. El software debe colocar una palabra Bloque de Descripción adicional (BDW) al principio del bloque, que contiene la longitud total del bloque.
U (Sin definir)
Este formato consiste en registros de longitud variable físicos y bloques sin una estructura predefinida. Aunque este formato puede parecer atractivo para muchas aplicaciones inusuales, que se utiliza normalmente sólo para módulos ejecutables.
                A continuación un gráfico que lo aclara mucho más.

El archivo de tipo PO, organización particionada, tiene formato de registro FB porque es un archivo donde van alocados varios registros. Se usa para las librerías donde alocamos nuestros ficheros. Por ejemplo XALD.MATIAS.JCL.

1 comentario: