Visión general del contenedor COBOL
El contenedor COBOL permite cargar módulos de COBOL en el espacio de direcciones de proceso por lotes, y se invocan directamente.
El contenedor se puede crear y destruir varias veces dentro del ciclo de vida de un servidor de aplicaciones. Cada contenedor se crea con un enclave Language Environment (LE) independiente del servidor. El contenedor se asegura de que se cree un LE limpio cada vez que se crea.
Los programas Java™ pueden pasar parámetros en COBOL y recuperar los resultados. La herramienta de generador de apéndice de llamada de COBOL se proporciona para crear los enlaces de datos y los apéndices de llamada de Java basándose en las definiciones de datos y enlaces del origen de COBOL. Además, las conexiones JDBC Tipo 2 creadas por el programa Java puede compartirse con el programa COBOL bajo el mismo contexto transaccional.
Valor del contenedor COBOL
El producto proporciona un entorno de ejecución exhaustivo para el proceso por lotes Java. Parte del diseño del soporte del proceso por lotes es la integración con otros procesos de información. COBOL ha formado parte del proceso por lotes desde las primeras etapas de los sistemas informáticos, y se ha realizado una inversión significativa en los activos COBOL. El contenedor de COBOL proporciona un medio de integración directa de COBOL en los procesos Java.
Restricciones de programación para programas COBOL
- Los manejadores de errores definidos por el usuario no están permitidos.
- El control de transacción explícito no está permitido: por ejemplo, no se permite COMMIT o ROLLBACK.
- Los registros especiales de DB2, por ejemplo SOLID o SCHEMA, no se pueden establecer.
- El acceso a DD requiere que el código de usuario asigne o desasigne dinámicamente la DD.
- La invocación Java de etiquetas ENTRY no está soportada.
- La invocación COBOL de código Java no está soportado.
Requisitos de compilación de COBOL
Debe compilar todos los módulos COBOL que utilice en el entorno con las opciones siguientes:
- dll
- Los módulos COBOL deben estar en formato DLL.
- rent
- Los módulos COBOL deben contener código reentrante.
- thread
- Los módulos COBOL deben ser seguros para la ejecución de hebras.
- outdd(WCGILOUT)
- Obligatoria para que la salida COBOL DISPLAY aparezca en los registros de trabajo del producto.
- SQL('ATTACH(RRSAF)')
- Obligatorio para el acceso a DB2.
cbl dll,lib,rent,thread,outdd(wcgilout)
cob2 -c -bdll,rent,thread,lib,list '-qOUTDD(WCGILOUT)' sample.cbl
Restricciones para el contenedor COBOL
El producto que aloja el contenedor COBOL debe configurarse con un perfil de carga de trabajo ISOLATE.
Para obtener información sobre cómo configurar el perfil de carga de trabajo, consulte los valores avanzados de los servicios ORB en la plataforma z/OS.
Restricciones de origen de datos JDBC para el contenedor COBOL
Las restricciones indicadas en esta sección se aplican a cualquier origen de datos JDBC que contenga conexiones DB2 de tipo 2 compartidas entre el código Java y COBOL a través de ILContainer.setDB2Connection. [Especifique también el tipo de objeto para ILContainer.setDB2Connection.]
Estas restricciones garantizan que las construcciones de datos DB2 que abra el código COBOL y que persistan entre límites de COMMIT, como por ejemplo cursores WITH HOLD CURSOR, se borren debidamente cuando se cierre la conexión JDBC.
La agrupación de conexiones debe estar inhabilitada (DISABLED). Puede inhabilitar la agrupación de conexiones mediante la propiedad disableWASConnectionPooling. Para establecer esta propiedad mediante la consola administrativa, pulse
. Añada una propiedad personalizada denominada disableWASConnectionPooling y establezca el valor en true.El compartimiento de conexiones debe establecerse en no compartido (UNSHARED). El compartimiento de conexiones para el origen de datos puede establecerse en UNSHARED utilizando la propiedad globalConnectionTypeOverride. Para establecer esta propiedad mediante la consola administrativa, pulse
. Añada una propiedad personalizada denominada globalConnectionTypeOverride y establezca el valor en unshared.Para obtener más información sobre estas propiedades, consulte la información relativa al ajuste de agrupaciones de conexiones.