Buenas tardes.
En nuestra instalación estamos montando Cobol 3.4 con DB2 8.1 y nos estamos encontrando unos problemas en ejecución, no en compilación, con retornos de SQLCODE -501 para cualquier operación con cursores declarados en Data Division.
En la actualidad, utilizamos Cobol 3.2 con DB2 8.1, compilamos con el Coprocesador de DB2 y generamos DBRMs en EBCDIC (por defecto se usa el NEWFUN=NO) con las opciones CBL SQL("HOST(COB2),APOST,APOSTSQL,SOURCE,XREF,DATE(ISO)") nos muestra el mensaje en compilación "The DB2 SQL Coprocessor is using the level 1 interface under DB2 V8" y no tenemos ningún problema de ejecución.
Hemos probado con Cobol 3.4 y DB2 8.1 con las opciones actualizadas pero sin generar DBRMs en Unicode, esto es, CBL SQL("NEWFUN=NO,HOST(IBMCOB),APOSTSQL,SOURCE,XREF,DATE(ISO)") y no tenemos problemas de ejecución.
Cuando probamos con Cobol 3.4 pero con la opción de NEWFUN=YES no hay problemas de compilación y nos dice ya "The DB2 SQL Coprocessor is using the level 2 interface under DB2 V8" pero observamos 2 comportamientos distintos con los programas:
1. Si no tienen sentencias de CURSOR, no hay problemas de ejecución.
2. Si tienen sentencias con CURSORES (todos los tenemos con DECLARES en DATA DIVISION), aleatoriamente (muy frecuentemente) nos muestra un error SQLCODE -501 en ejecución, habiendo ejecutado antes algunas otras sentencias DB2 simples, o bien, siendo la primera sentencia de DB2.
¿Nos podéis ayudar para ver qué nos está faltando/sobrando?
Muchas gracias a todos por vuestra colaboración.








