Llamada a Rutina Cobol DB2 desde programa Cobol NO DB2...

Todo lo relacionado a DB2 y otras bases de datos bajo z/OS o VSE o z/VM
Responder
ToRiT0
Usuario avanzado
Usuario avanzado
Mensajes: 32
Registrado: 27 Sep 2006, 14:01
País: Chile
Ciudad: Santiago
Ocupación: System Programmer

Llamada a Rutina Cobol DB2 desde programa Cobol NO DB2...

Mensaje por ToRiT0 » 21 Nov 2006, 14:41

Hola a Todos:

estoy trabajando bajo Z/OS en ROSCOE, mi pregunta va por lo siguiente:

se puede llamar a una rutina cobol DB2 desde un programa Cobol sin DB2?... si alguien lo ha hecho por favor expliqueme como es que se realizan los pasos para que el programa pueda encontrar el plan DB2 para ejecutar la rutina, el BIND y los pasos que debe llevar a cabo...

espero haberme explicado bien... por favor ayudenme...

gracias...
Uf...

Avatar de Usuario
acevedo
Colaborador Senior
Colaborador Senior
Mensajes: 375
Registrado: 01 Abr 2005, 14:36
País: España
Ciudad: Malaga
Ocupación: Analista de desarrollo

Mensaje por acevedo » 21 Nov 2006, 18:22

por supuesto que un programa/modulo SIN DB2 puede invocar a otro modulo CON DB2...

En este caso el LLAMANTE tendrá que tener un plan en el que se incluyan todos los PACKAGEs de los módulos DB2 que puedan ser invocados directa o indirectamente...

las características de la definición de los planes y packages, en mi modesta opinión, deberías consultarla con los DBAs de la instalación.

ToRiT0
Usuario avanzado
Usuario avanzado
Mensajes: 32
Registrado: 27 Sep 2006, 14:01
País: Chile
Ciudad: Santiago
Ocupación: System Programmer

Mensaje por ToRiT0 » 21 Nov 2006, 18:28

acevedo escribió: "En este caso el LLAMANTE tendrá que tener un plan en el que se incluyan todos los PACKAGEs de los módulos DB2 que puedan ser invocados directa o indirectamente..."
mmm... esto quiere decir que TODO programa que se compile (llame o no llame y tenga o no tenga DB2) debe pasar por un plan "comun" por decirlo asi?...
Uf...

Avatar de Usuario
acevedo
Colaborador Senior
Colaborador Senior
Mensajes: 375
Registrado: 01 Abr 2005, 14:36
País: España
Ciudad: Malaga
Ocupación: Analista de desarrollo

Mensaje por acevedo » 21 Nov 2006, 19:11

un programa sin db2 y que no llama a ningun modulo con db2...no tiene que estar en ningun plan

un programa con db2 tendra un package que debera estar en todos los planes de los programas que lo invoquen...si se invoca a un modulo con db2 y que no esta incluido en el plan =>sqlcode -805

jotaceele

Mensaje por jotaceele » 22 Nov 2006, 15:16

En nuestra instalación usamos IKJEFT* para ejecutar programas en los planes necesarios. Si un programa sin db2 accede a una rutina con db2 en vez de ejecutar directamente el programa, ejecutamos IKJEFT01 y le pasamos por parámetros el programa, el sistema y el plan

naguzman
Usuario
Usuario
Mensajes: 5
Registrado: 07 Abr 2016, 12:11
País: Chile
Ciudad: Valparaiso
Ocupación: Programador

Re: Llamada a Rutina Cobol DB2 desde programa Cobol NO DB2..

Mensaje por naguzman » 07 Abr 2016, 13:34

Estimados,

Esta es mi primera pregunta y pido si cometo una falta me la indiquen.

En nuestra empresa trabajamos con COBOL estandar y accesos a base de datos DATACOM.
Al realizar una subrutina Batch esta queda embebida en el objeto llamador y se ejecuta sin ningun problema, pero al momento de modificarla tengo que volver a recompilar el programa.

Encontre por internet que la solucion es itroducir el literal 'programa llamado' en una variable y realizar el CALL con esta variable, efectivamente esto resulto retornando variables modificadas y realizando DISPLAYs, pero no me permite en la subrutina ejecutar la instruccion CALL ''DBNTRY'' para tener acceso a base de datos.

Alguno de uds me podria ayudar
de antemano muchas gracias.

Avatar de Usuario
Horacio Villa
Colaborador
Colaborador
Mensajes: 185
Registrado: 04 Dic 2003, 13:11
País: Argentina
Ciudad: Buenos Aires
Ocupación: DBA

Re: Llamada a Rutina Cobol DB2 desde programa Cobol NO DB2...

Mensaje por Horacio Villa » 09 Abr 2018, 18:04

Hay una opción para que la linkedicion no sea estática, que se carguen los módulos en tiempo de ejecución. NO me acuerdo ahora como se llama.
Creo que esto resolvería tu problema.
HV

Responder