Desarrollando en Cobol y Natural sobre Plataforma Mainframe

miércoles, 23 de octubre de 2013

Compilador de Cobol DB2 sin Prelinkedit

Cuando queramos compilar un programa Cobol que contenga invocaciones a DB2 no nos bastará con usar el Compilador estándar de Cobol, que tiene únicamente los pasos de Compilación y de Linkedit. Por contra, habremos de incluir, además, un paso de Precompilación y, opcionalmente, otro paso de Prelinkedit.



En este post vamos a indicar cómo debería ser nuestro JCL de Compilación Cobol DB2 con los pasos de Precompilación, Compilación y Linkedit. Otro día indicaremos cómo quedaría el JCL si quisiésemos incluir el paso de Prelinkedit.

A continuación, mostramos cómo sería el JCL completo para el fuente "JJ0004CB".

//JJCOM8CL JOB 102,'COMPILADOR COBOL DB2',NOTIFY=&SYSUID,      
//  MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)     
//**************************************************************
//* SYSLIB  ES LA LIB. DE COPYS                                
//* SYSIN   ES LA LIB. DE PROGRAMAS FUENTES                    
//* SYSLMOD ES LA LIB. DE PROGRAMAS OBJETOS O EJECUTABLES      
//**************************************************************
//STEP0          EXEC DSNHICOB                                  
//* 1 - LIBRERIAS DEL PRECOMPILADOR DSNHPC                     
//* --------------------------------------                     
//PC.SYSIN       DD DSN=LIBPR.FUENTES.JJ00(JJ0004CB),DISP=SHR  
//PC.SYSLIB      DD DSN=CEE.SCEELKED,DISP=SHR                  
//PC.DBRMLIB     DD DSN=LIBPR.DBRM.JJ00(JJ0004CB),DISP=SHR     
//* 2 - LIBRERIAS DEL COMPILADOR IGYCRCTL                      
//* -------------------------------------                      
//COB.STEPLIB  DD DSN=IGY410.SIGYCOMP,DISP=SHR                   

//* 3 - LIBRERIAS DE LINKED IEWL                               
//* ----------------------------                               
//LKED.SYSLMOD   DD DSN=LIBPR.MODULOS.JJ01(JJ0004CB),DISP=SHR  
//LKED.SYSLIB    DD DSN=CEE.SCEELKED,DISP=SHR                  
//               DD DSN=LIBPR.COPYS.JJ00,DISP=SHR              
//               DD DSN=DSN910.SDSNLOAD,DISP=SHR                
//* 4 - INCLUIR DB2 INTERFACE FUNCTION

//* ----------------------------------    
//LKED.SYSIN     DD *                                          
  INCLUDE SYSLIB(DSNELI)                                       
//
       
                                          
          

Como vemos, contiene los siguientes pasos:

1º) Precompilación: aquí hay que incluir las librerías SYSIN, SYSLIB y DBRMLIB.

2º) Compilación: únicamente se precisa resolver la librería STEPLIB.

3º) Linkedit: hay que especificar SYSLMOD y SYSLIB.

4º) DB2 Interface Function: finalmente, hay que añadir un INCLUDE con el objeto DSNELI.

Una vez ejecutado este JCL de Compilación, ya tendremos generados tanto el objeto LOAD MODULE como el objeto DBRM. Para enlazar ambos y crear nuestro Ejecutable tendremos que lanzar el proceso de BIND sobre ellos.

Otro día, en otro post, os pondremos un ejemplo de cómo quedaría un JCL con el paso de BIND de un programa Cobol DB2.

Y nada más. Esperamos que la cosa haya quedado bastante clara con el ejemplo indicado.


Saludos.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...