Una vez que se ha generado el DBRM de nuestro fuente, dicho objeto DBRM no tiene información acerca de cómo acceder a los datos requeridos de las tablas DB2. Esto se consigue con el proceso de Bind, que enlaza el DBRM con un Plan. Este Plan contiene la información acerca de los recursos DB2 requeridos y sus caminos de acceso.
Para ello, al lanzar el Bind tendremos que especificar tanto el nombre del LOAD MODULE (Módulo Objeto) como el nombre del PLAN asociado.
El JCL de Bind quedaría del siguiente modo, para un programa con nombre "JJ0004CB" que está asociado a un Plan denominado "JJ00".
//JJRUN1CL JOB 102,'BIND Y RUN COBOL DB2',NOTIFY=&SYSUID,
// MSGCLASS=Q,CLASS=A,MSGLEVEL=(1,1),REGION=0M,TIME=(0,7)
//*
//JOBLIB DD DSN=DSN910.DB9G.SDSNEXIT,DISP=SHR
// DD DSN=DSN910.SDSNLOAD,DISP=SHR
//**************************************************************
//* BIND
//**************************************************************
//BIND EXEC PGM=IKJEFT01,DYNAMNBR=20,COND=(4,LT)
//DBRMLIB DD DSN=LIBPR.DBRM.JJ00,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DB9G)
BIND PLAN(JJ00) MEMBER(JJ0004CB) -
ACT(REP) ISO(CS) ENCODING(EBCDIC)
END
/*
//*****************************************************************
//* RUN PGM
//*****************************************************************
//RUNPGM EXEC PGM=IKJEFT01,DYNAMNBR=20 COND=(4,LT)
//STEPLIB DD DSN=DSN910.SDSNLOAD,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DB9G)
RUN PROGRAM(JJ0004CB) PLAN(JJ00) LIB('LIBPR.MODULOS.JJ01')
END
//*
En este JCL hemos incluido dos pasos: el primero es el propio Bind y el segundo es el lanzamiento de la ejecución (RUN) del programa.
1º) Bind: hay que resolver la librería DBRM. Y para su lanzamiento hay que indicar el nombre del programa y el nombre del Plan asociado.
2º) Run: hay que indicar la librería STEPLIB. Para su lanzamiento habría que especificar el nombre del programa, el nombre del Plan asociado y la librería donde se encuentra el objeto Módulo.
Tras ejecutar este JCL, la salida del mismo debería mostrar la información extraída por la ejecución del programa especificado. En el caso de nuestro ejemplo, programa JJ0004CB, se mostraría la siguiente salida.
Pues nada, esperamos que lo indicado os sirva de ayuda a la hora de ejecutar la Compilación y el Bind de un programa Cobol con DB2.
Saludos.
Buenas,
ResponderEliminaruna preguntilla, si el programa principal no tiene DB2, pero tiene llamadas a rutinas con DB2. Solo es necesario hacer el BIND del plan o es necesario el PLAN del programa y el paquete de la rutina?
Gracias y saludos
Alberto
Es de lo mejor que he leído y que la solución sea tal como lo describes en el código. Gracias por tus conocimientos.
ResponderEliminarBUEN JCL BRO
ResponderEliminar