El proceso ROLLBACK

¿Qué ocurre cuando se produce un error durante el proceso de instalación? Un ejemplo de esto sería cuando un TCTTE dentro de un grupo todavía está en servicio cuando se está procesando un comando CEDA COPY para el grupo con la opción REPLACE especificada. El ejemplo de una reinstalación muestra una operación de sustitución de este tipo. Se llama a los constructores del TCTTE existente (UNREADY) para comprobar que se puede proceder a la ELIMINACIÓN (FREEMAIN). Así, la pista de auditoría se refiere a todos los constructores llamados.

Si el "voto total" de todas las llamadas del constructor UNREADY indica OK, se procede a la construcción del nuevo TCTTE que va a sustituir al existente. Así, al final del proceso, la pista de auditoría consiste en una lista de referencias a constructores asociados al antiguo TCTTE, y una lista de referencias a constructores para el nuevo TCTTE (listas A y B).

Consideremos el caso en que el grupo contiene definiciones para tres TCTTE, y se produce un VETO para el último. Esto significa que hay una pista de auditoría para A1, B1, A2, B2 para los que hubo éxito, y la lista A3 para los no exitosos UNREADY para el tercer TCTTE.

La condición de fallo se devuelve al llamante (CEDA), que entonces emite un DFHSP ROLLBACK.

Recovery Manager invoca a DFHAPRDR, que a su vez invoca al módulo DFHTBSS, con un parámetro que indica que se requiere una reversión. Así, se procesan las listas "A" y se llama a todos los puntos de entrada READY de los constructores. A continuación, se procesan las listas "B" y se llama a la entrada del constructor DESTROY para liberar el almacenamiento obtenido para los supuestos nuevos TCTTE.

En resumen, la operación de rollback para UNREADY es READY, y la de BUILD es DESTROY.