Una
unidad de
ejecución es un conjunto de programas que están relacionados mediante
llamadas locales o (en algunos casos) mediante transferencias.
Cada unidad de ejecución tiene las siguientes características:
- Los programas funcionan juntos como un grupo. Cuando se produce un error grave pero no se maneja, todos los programas de la unidad de ejecución se eliminan de la memoria.
- Los programas comparten las mismas propiedades de entorno de ejecución. Por ejemplo, las mismas
bases de datos y archivos están disponibles en toda la unidad de ejecución, y cuando invoca
sysLib.connect o VGLib.connectionService para conectarse dinámicamente a una base de datos, la
conexión está presente en cualquier programa que recibe el control en la misma unidad de ejecución.
Las unidades de ejecución son de los siguientes tipos:
- La unidad de ejecución CICS se compone de programas COBOL generados por EGL y programas no generados por EGL que se ejecutan bajo la misma transacción CICS.
Todos los programas de una unidad de ejecución CICS se ven afectados por las propiedades especificadas cuando la región CICS está configurada, y todos estos programas tienen acceso a la misma área de trabajo de transacción (TWA).
Una manera en que finaliza una unidad de ejecución
CICS es cuando
un programa emite una sentencia transfer del tipo transferir a
transacción, a menos que la opción del descriptor de construcción
synchOnTrxTransfer esté establecida en NO.
- La unidad de ejecución z/OS por lotes se
compone de los programas que se ejecutan en un único paso de trabajo, independientemente
de si las transferencias de control se realizan utilizando sentencias
call o sentencias transfer.
Todos los programas de la unidad de ejecución tienen acceso a las mismas sentencias DD.
- La unidad de ejecución COBOL iSeries se
compone del programa principal y los programas llamados (directa o indirectamente) desde
ese programa. La unidad de ejecución finaliza cuando finaliza un programa principal, como
en estos casos:
- El programa vuelve al programa no de EGL desde el que se inició; o bien
- El programa emite una sentencia transfer del tipo
transferir a una transacción.
- La unidad de ejecución Java se compone de programas que se
ejecutan en una única hebra.
Una nueva unidad de ejecución puede iniciarse con un
programa principal, igual que cuando el usuario invoca el programa. Una sentencia
transfer también invoca un programa principal pero continúa la
misma unidad de ejecución.
En los casos siguientes, un programa llamado es el programa inicial de una unidad de ejecución:
- La llamada es una llamada de un bean de sesión EJB; o bien
- La llamada es una llamada remota, excepto que la misma unidad de ejecución continúa en el siguiente caso:
- EGL o VisualAge Generator genera el programa llamado; y
- No interviene ninguna escucha TCP/IP en la llamada.
Todos los programas de una unidad de ejecución
Java se
ven afectados por las mismas propiedades de entorno de ejecución
Java.
La unidad de ejecución Java se compone de programas que se
ejecutan en una única hebra. Una nueva unidad de ejecución puede iniciarse con un
programa principal, igual que cuando el usuario invoca el programa.
Una sentencia transfer también invoca un programa principal
pero continúa la misma unidad de ejecución.
En los casos siguientes, un programa llamado es el programa inicial de una unidad de ejecución:
- La llamada es una llamada de un bean de sesión EJB; o bien
- La llamada es una llamada remota, excepto que la misma unidad de ejecución continúa en el siguiente caso:
- EGL o VisualAge Generator genera el programa llamado; y
- No interviene ninguna escucha TCP/IP en la llamada.
Todos los programas de una unidad de ejecución
Java se
ven afectados por las mismas propiedades de entorno de ejecución
Java.