working numerico mover izquierda inicializar editado comando ceros alfanumerico cobol mainframe jcl

cobol - numerico - ¿Cuál es la diferencia entre un formato de variable bloqueada y un formato de bloqueo fijo?



numerico editado cobol (1)

Olvide lo que sabe sobre los datos en un disco duro en Windows o Unix / Linux.

Registros de longitud fija (que pueden ser Formato de registro (RECFM) F para desbloqueado, FB para bloqueado (también pueden ser FBS, que es un estándar de bloque fijo, pero para un conjunto de datos simple de un solo uso (archivo) es equivalente a un FB) ) solo contienen datos, y una cantidad de datos conocida e inmutable.

Los datos que contienen pueden por cualquiera de los 256 valores de bits posibles. No hay delimitadores de registro.

Los registros de longitud variable, (RECFM V o VB (VBS es Varible Blocked Spanned, que es algo más que un simple registro) tienen un prefijo de cuatro bytes (la Palabra del Descriptor de Registro (RDW)), los dos primeros de los cuales indican la longitud del así que contienen información de control y datos. No hay delimitadores de registro (porque se conoce la longitud).

Los bloques para un conjunto de datos VB también tienen el prefijo de una Palabra de Descriptor de Bloque (BDW), cuatro bytes, los dos primeros de los cuales contienen la longitud del bloque.

Los datos se escriben y se leen solo en bloques, con el desbloqueo realizado por las rutinas de io. Cuanto más grande es el tamaño de bloque, menos ios. Sin embargo, debido a que el tamaño de bloque máximo es menor que el tamaño de una pista en el disco, el bloqueo más eficiente es el "bloqueo de media pista" con un tamaño de bloque de hasta un registro de menos de 27,998 o igual.

Los registros de bloque fijo tienen menos sobrecarga, porque la única información (tamaño de bloque (BLKSIZE) y la longitud de registro máxima (LRECL) se proporciona (en el catálogo, el JCL o el programa, especialmente si está escrito en el ensamblador), no se almacena en los datos.

Para los registros de bloques variables, hay dos tipos de información de control (BDW y RDW) incrustados con los datos, así como la otra información.

El programador en el Mainframe no necesita saber mucho sobre esto. Un programa tratará los registros, los detalles de bloqueo pueden ser externos al programa.

Aquí hay un FB Block:

DATADATADATADATA

La forma en que ese bloque se descompone en registros de longitud fija se mantiene externamente a los datos. Se puede calcular la posición del tercer registro en un bloque. Hay un método de acceso de bajo nivel que utiliza este hecho.

Aquí hay un bloque VB:

BDWRDWDATARDWDATARDWDATA

La posición del tercer registro en el bloque solo se conoce si los registros anteriores han sido procesados ​​por las rutinas de io.

Elegir el tipo incorrecto, la longitud de registro incorrecta o el tamaño de bloque incorrecto puede afectar significativamente el rendimiento del programa.

Cuando los datos se transfieren desde un Mainframe, hay opciones para eliminar el RDW (si está presente), insertar delimitadores, eliminar espacios en blanco y cosas así, para que los datos se vean como un archivo nativo. La transferencia a la unidad central pasa por el proceso inverso.

Si va a recibir datos de un mainframe o enviarlos a un mainframe, hágalo solo en formato de caracteres. No hay campos "binarios" o "empaquetados", y usa signos explícitos, decimales explícitos o factores de escala. Se ahorrará muchos problemas y estará en los buenos libros de los auditores.

He encontrado estos términos en un documento de definición de archivo de datos para algunos datos que obtengo de un sistema de Mainframe.

No pude encontrar definiciones de estos términos en ningún glosario o búsqueda de Google, solo se mencionan.

¿Puede alguien arrojar algo de luz sobre el significado preciso de estos términos?