VSAM - Comandos

Los comandos VSAM se utilizan para realizar determinadas operaciones en conjuntos de datos VSAM. Los siguientes son los comandos VSAM más útiles:

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Alterar

El comando ALTER se utiliza para modificar los atributos del archivo VSAM. Podemos cambiar los atributos del archivo VSAM que hemos mencionado en la definición del clúster VSAM. A continuación se muestra la sintaxis para cambiar los atributos:

ALTER  file-cluster-name [password] 
   [ADDVOLUMES(volume-serial)] 
   [BUFFERSPACE(size)] 
   [EMPTY / NOEMPTY] 
   [ERASE / NOERASE] 
   [FREESPACE(CI-percentage CA-percentage)] 
   [KEYS(length offset)] 
   [NEWNAME(new-name)] 
   [RECORDSIZE(average maximum)] 
   [REMOVEVOLUMES(volume-serial)] 
   [SCRATCH / NOSCRATCH] 
   [TO(date) / FOR(days)] 
   [UPGRADE / NOUPGRADE] 
   [CATALOG(catalog-name [password]]

La sintaxis anterior muestra qué parámetros podemos modificar en un clúster VSAM existente. La descripción del parámetro sigue siendo la misma que se menciona en VSAM - Módulo de clúster.

Ejemplo

El siguiente ejemplo muestra cómo usar el comando ALTER para aumentar el espacio libre, para agregar más volúmenes y para Alter Keys:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   ALTER  MY.VSAM.KSDSFILE 
   [ADDVOLUMES(2)] 
   [FREESPACE(6 6)] 
   [KEYS(10 2)] 
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y alterará el espacio libre, los volúmenes y las claves.

Repro

El comando REPRO se usa para cargar datos en el conjunto de datos VSAM. También se utiliza para copiar datos de un conjunto de datos VSAM a otro. Podemos usar este comando para copiar datos de un archivo secuencial al archivo VSAM. La utilidad IDCAMS usa el comando REPRO para cargar los conjuntos de datos.

REPRO INFILE(in-ddname) 
   OUTFILE(out-ddname)

En la sintaxis anterior, in-ddname es el nombre DD para el conjunto de datos de entrada que tiene registros. Out-ddname es el nombre DD para el conjunto de datos de salida, donde se copiarán los registros de los conjuntos de datos de entrada.

Ejemplo

El siguiente ejemplo muestra cómo copiar registros de un conjunto de datos a otro conjunto de datos VSAM:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//IN  DD DSN = MY.VSAM.KSDSFILE,DISP = SHR
//OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   REPRO INFILE(IN) 
      OUTFILE(OUT)
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y copiará todos los registros de MY.VSAM.KSDSFILE al archivo MY.VSAM1.KSDSFILE VSAM.

Listcat

El comando LISTCAT se usa para obtener los detalles del catálogo de un conjunto de datos VSAM. El comando Listcat proporciona la siguiente información sobre los conjuntos de datos VSAM:

  • Información SMS
  • Información de RLS
  • Información de volumen
  • Información de la esfera
  • Información de asignación
  • Atributos del conjunto de datos
LISTCAT ENTRY(vsam-file-name) ALL

En la sintaxis anterior, vsam-file-name es el nombre del conjunto de datos VSAM para el que necesitamos toda la información. Se especifica la palabra clave ALL para obtener todos los detalles del catálogo.

Ejemplo

El siguiente ejemplo muestra cómo obtener todos los detalles mediante el comando Listcat para un conjunto de datos VSAM:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   LISTCAT ENTRY(MY.VSAM.KSDSFILE) 
   ALL 
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y mostrará todos los detalles del catálogo sobre el conjunto de datos MY.VSAM.KSDSFILE.

Examinar

El comando Examinar se utiliza para verificar la integridad estructural de un grupo de conjuntos de datos secuenciados por clave. Comprueba los componentes de índice y datos y, si se encuentra algún problema, los mensajes de error se envían en cola. Puede consultar cualquiera de los mensajes IDCxxxxx.

EXAMINE NAME(vsam-ksds-name) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)

En la sintaxis anterior, vsam-ksds-name es el nombre del conjunto de datos VSAM para el que necesitamos examinar el índice y la parte de datos del clúster VSAM.

Ejemplo

El siguiente ejemplo muestra cómo verificar si el índice y la parte de datos del conjunto de datos KSDS están sincronizados o no:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   EXAMINE NAME(MY.VSAM.KSDSFILE) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y mostrará todos los problemas con el conjunto de datos VSAM en uno de los mensajes IDCxxxxx en spool.

Verificar

El comando Verify se usa para verificar y reparar archivos VSAM que no se han cerrado correctamente después de un error. El comando agrega registros correctos de fin de datos al archivo.

VERIFY DS(vsam-file-name)

En la sintaxis anterior, vsam-file-name es el nombre del conjunto de datos VSAM para el que necesitamos verificar los errores.

Ejemplo

El siguiente ejemplo muestra cómo verificar y corregir errores en el conjunto de datos VSAM:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   VERIFY DS(MY.VSAM.KSDSFILE)                                  
/*

Si va a ejecutar el JCL anterior en el servidor Mainframes. Debería ejecutarse con MAXCC = 0 y solucionará los errores en el conjunto de datos VSAM.