Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 31 de julio de 2014

Utilidad IDCAMS para JCL (y 2)

Hace unas semanas comenzamos a ver la forma en que había que implementar la invocación a la utilidad IDCAMS para ejecutar su función de creación de ficheros VSAM indexados (ver post Utilidad IDCAMS para JCL - 1). Hoy trataremos de completar el estudio iniciado en aquel post.




Recordemos que estuvimos viendo parte de las Cards que había que especificar en el paso IDCAMS: SYSPRINT y SYSIN. A continuación, terminaremos de enumerar las declaraciones necesarias para el funcionamiento del DEFINE CLUSTER.

3º) Cláusula DEFINE: Este comando, incluido bajo la SYSIN, le indicará al programa IDCAMS que debe realizar la creación de un fichero VSAM. En este caso, al tratarse de la creación de un fichero indexado KSDS, la cláusula se divide en 3 partes:

- CLUSTER: Donde se indicará el nombre del fichero VSAM. Al tratarse de un fichero KSDS, que tiene asociados un subfichero de índices y un subfichero de datos, los nombres de estos dos últimos deberán ser especificados a continuación.

  DEFINE CLUSTER ( NAME (JJ00.FACTURAS.PEND) -

- DATA: Donde se indicará el nombre del subfichero de datos asociado al fichero VSAM KSDS.

            DATA ( NAME (JJ00.FACTURAS.PEND.DATA) ) -

- INDEX: Donde se indicará el nombre del subfichero de índices asociado al fichero VSAM KSDS.

           INDEX ( NAME (JJ00.FACTURAS.PEND.INDEX) )

Como vemos en el código, la cláusula DEFINE CLUSTER deberá especificar toda la información necesaria para la creación del VSAM. Por tanto, se deberán indicar los valores de los parámetros TRACKS, RECORDSIZE, FREESPACE, VOLUMES, SHAREOPTIONS, KEYS, UNIQUE, IMBED e INDEXED.

                   TRACKS (02 00) -
                   RECORDSIZE (80 80) -
                   FREESPACE (00 00) -
                   VOLUMES (E3WK01) -
                   SHAREOPTIONS (2 3) -
                   KEYS (6 1) -
                   UNIQUE -
                   IMBED ) -


En este caso se emplea el parámetro INDEXED para informar a IDCAMS de que queremos crear un fichero VSAM KSDS (indexado). Pero podríamos haber empleado el parámetro correspondiente a cualquiera de los tipos de ficheros VSAM: NONINDEXED para VSAM ESDS (secuencial), NUMBERED para VSAM RRDS (relativo) o LINEAR para VSAM LDS (lineal).

Una vez especificados todos los parámetros y cards requeridos, procederíamos a lanzar el JCL con la utilidad IDCAMS. Si la ejecución nos da algún problema, tendríamos que revisar el código y asegurarnos de que hemos indicado todos los parámetros necesarios.

En nuestro ejemplo, nosotros procedimos a lanzar el JCL y el job acabó finalizando correctamente. Cuando fuimos a consultar los ficheros existentes en nuestra unidad vimos que habían aparecido estas nuevas entidades.

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

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


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

La utilidad IDAMS es ampliamente utilizada hoy en día para la operativa con ficheros VSAM (sí, todavía quedan muchos ficheros VSAM activos en las instalaciones). Pero eso no quita que también podamos utilizarla para nuestra operativa diaria con ficheros secuenciales, ya que admite su tratamiento sin problema alguno.

Pues nada, esperemos que, tras lo comentado hoy sobre esta utilidad, os hayamos resuelto la mayoría de las dudas que podíais tener respecto al empleo de IDCAMS. Como siempre, las preguntas son bienvenidas.

Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...