Cuando necesitemos compilar un Mapset de Cobol, siempre podremos recurrir al procedimiento estándar DFHMAPS en vez de crearnos nuestro propio JCL de compilación. De esta forma nos ahorraremos todo el trabajo requerido para la generación de los Mapas Simbólico y Físico.
El procedimiento estándar DFHMAPS es un proceso que incluye la compilación de nuestros Mapas mediante el Ensamblador ASMA90, así como de todos los pasos necesarios para chequear si nuestro Mapset tiene algún problema en su estructura.
El contenido de DFHMAPS es el siguiente:
//DFHMAPS PROC INDEX='DFH320.CICS',
// MAPLIB='DFH320.CICS.SDFHLOAD',
// DSCTLIB='DFH320.CICS.SDFHMAC',
// MAPNAME=,
// A=,
// AMODE=31,
// RMODE=ANY,
// ASMBLR=ASMA90,
// REG=2048K,
// OUTC=A,
// WORK=SYSDA
//COPY EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=&OUTC
//SYSUT2 DD DSN=&&TEMPM,UNIT=&WORK,DISP=(,PASS),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),
// SPACE=(400,(50,50))
//SYSIN DD DUMMY
//* SYSUT1 DD * NEEDED FOR THE MAP SOURCE
//ASMMAP EXEC PGM=&ASMBLR,REGION=®,
//* NOLOAD CHANGED TO NOOBJECT
// PARM='SYSPARM(&A.MAP),DECK,NOOBJECT'
//SYSPRINT DD SYSOUT=&OUTC
//SYSLIB DD DSN=&INDEX..SDFHMAC,DISP=SHR
// DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT2 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT3 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSPUNCH DD DSN=&&MAP,DISP=(,PASS),UNIT=&WORK,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=400),
// SPACE=(400,(50,50))
//SYSIN DD DSN=&&TEMPM,DISP=(OLD,PASS)
//LINKMAP EXEC PGM=IEWL,PARM=('LIST,LET,XREF,RMODE(&RMODE)',
// 'AMODE(&AMODE)')
//SYSPRINT DD SYSOUT=&OUTC
//SYSLMOD DD DSN=&MAPLIB(&MAPNAME),DISP=SHR
//SYSUT1 DD UNIT=&WORK,SPACE=(1024,(20,20))
//SYSLIN DD DSN=&&MAP,DISP=(OLD,DELETE)
//* NOLOAD CHANGED TO NOOBJECT
//ASMDSECT EXEC PGM=&ASMBLR,REGION=®,
// PARM='SYSPARM(&A.DSECT),DECK,NOOBJECT'
//SYSPRINT DD SYSOUT=&OUTC
//SYSLIB DD DSN=&INDEX..SDFHMAC,DISP=SHR
// DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT2 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSUT3 DD UNIT=&WORK,SPACE=(CYL,(5,5))
//SYSPUNCH DD DSN=&DSCTLIB(&MAPNAME),DISP=OLD
//SYSIN DD DSN=&&TEMPM,DISP=(OLD,DELETE)
Como vemos, el procedimiento se divide en 4 pasos:
1º) Paso COPY: aquí únicamente se toma el Mapset de la librería origen (indicada por el usuario) y se copia en un Dataset temporal.
2º) Paso ASMMAP: en este punto se aplica el Ensamblador ASMA90 sobre el mapa origen y se genera el Mapset Físico.
3º) Paso LINKMAP: aquí se ejecuta el Binder sobre el mapset creado en el paso anterior. Se genera, en la librería destino, un objeto ejecutable con el Mapset Físico.
4º) Paso ASMDSECT: en este último paso se genera, a partir del mapa origen, el Mapset Simbólico en la librería destino correspondiente.
Y, con estos 4 pasos, el proceso DFHMAPS crea el Mapset Simbólico y el Mapset Físico asociados a nuestro mapa. Para incluir esta utilidad en nuestra compilación únicamente tendremos que incorporar la ejecución de este procedimiento en nuestro JCL.
Finalmente mencionar que las librerías incluidas en el DFHMAPS podrían variar un poco en vuestro equipo, dependiendo de la instalación del CICS.
Saludos.
pOR FAVOR UN EJEMPLO cuando es llamado
ResponderEliminar