Cuando se cambian recursos que están clasificados
como no recuperables (como por ejemplo, archivos serie en
Windows
2000), el trabajo es relativamente permanente; ni el código ni los servicios de ejecución EGL
pueden rescindir fácilmente los cambios.
Cuando se cambian recursos que están clasificados como recuperables (como
por ejemplo, bases de datos relacionales), el código o los servicios de ejecución EGL pueden
comprometer los cambios para hacer que el trabajo sea permanente o bien pueden retrotraer los
cambios para volver al contenido que estaba en vigor cuando los cambios se comprometieron por
última vez.
Los recursos recuperables son los siguientes:
- Bases de datos relacionales
- Colas y archivos CICS que están configurados para ser recuperables
- Colas de mensajes
MQSeries, a
menos que el registro
MQSeries
especifique lo contrario, como se describe en la sección Soporte de
MQSeries
Una
unidad lógica de trabajo identifica operaciones de entrada que se comprometen o retrotraen como un grupo. Una unidad de trabajo empieza cuando el código cambia un recurso recuperable; y finaliza cuando se produce el primero de los siguientes eventos:
- El código invoca la función de sistema sysLib.commit o
sysLib.rollback para comprometer o retrotraer los cambios
- Los servicios de ejecución EGL realizan una retrotracción como respuesta a un error grave que
no se maneja en el código; en este caso, todos los programas de la unidad de ejecución se eliminan
de la memoria
- Se produce un compromiso implícito, tal como sucede en los casos siguientes:
- Un programa emite una sentencia show.
- El programa de nivel superior de una unidad de ejecución finaliza satisfactoriamente,
tal como se describe en Unidad de ejecución.
- Se visualiza una página Web, al igual que cuando un PageHandler emite una sentencia forward.
- Un programa emite una sentencia converse y cualquiera de
las siguientes opciones es aplicable:
- No está en modalidad de compatibilidad de
VisualAge
Generator y el programa es un programa segmentado
- ConverseVar.commitOnConverse está establecido en 1
- Está en modalidad de compatibilidad de
VisualAge
Generator y ConverseVar.segmentedMode está establecido en 1