Ver Mensaje Individual
  #2  
Antiguo 10-11-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Reputación: 23
defcon1_es Va por buen camino
Hola.
Te respondo citando a mi amigo Kinobi

Cita:
Empezado por kinobi Ver Mensaje
Hola,


Lo que ocurre es que, con CommitRetaining, no se lanza el proceso de recolección cooperativa de basura, o lo que es lo mismo, no se eliminan los "deltas" (recuerda que InterBase no almacena copias completas en la multiversión de registro, sólo de los cambios efectivos dentro de cada registro) que se generan en la Arquitectura Multi-Generacional. De todas formas, el proceso de sweeping, o un backup-restore, elimina el problema.


Realmente la transacción no es la misma después de un CommitRetaining. Lo que sucede es que la nueva transacción, que se crea tras el CommitRetaining, aprovecha el contexto que estaba utilizando la transacción anterior para agilizar el proceso. Los cambios que realicen otras transacciones concurrentes, independientemente al uso de Commit o CommitRetaining, sólo podrás verlos si se confirman (con Commit o CommitRetaining) en esas transacciones y, además, tu transacción tiene un nivel de aislamiento suficientemente bajo para verlos (READ COMMITED).

Saludos.
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita