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