Básicamente el CommitRetaining sirve para una multi-transacción con varios "puntos de control" (checkpoint), pero siempre hay que finalizar con un commit normal.
En pseudo-código:
IniciarTransacción
try
Cambios en BBDD
CommitRetain (punto 1) // Los cambios son válidos en la BBDD
Cambios en BBDD
CommitRetain (punto 2) // Los cambios son válidos en la BBDD
... etc ...
Commit // Último commit
except
Rollback
|