Subject | Re: [firebird-support] CommitRetaining question |
---|---|
Author | Helen Borrie |
Post date | 2005-10-08T13:39:46Z |
At 07:17 AM 8/10/2005 +0000, you wrote:
server thinks the transaction still exists.
connection is dead and the transaction status will be converted to rolled back.
back. Then, like any rolled back read-write transaction, it remains
interesting (affects OIT) until the garbage collection is able to change
its status and release it for garbage collection. At that point, it
becomes no longer interesting (has no further effect on the OIT), even if
the associated dead record versions are still waiting to be cleaned up in
the next GC roundup or a sweep.
./heLen
>If I have an application that makes a CommitRetaining while the userNo work is lost but the transaction remains interesting as long as the
>edits/saves the record, and makes a hard Commit when the form is
>closed, but one day the application crashes after the CommitRetaining
>but before the hard Commit, what happens to the transaction?
server thinks the transaction still exists.
>Will it ever be garbage collected?Yes, eventually. The server will eventually be informed that the
connection is dead and the transaction status will be converted to rolled back.
>Would it have any impact on the OIT or OAT?It will affect OAT until the server realises it's dead and rolls it
back. Then, like any rolled back read-write transaction, it remains
interesting (affects OIT) until the garbage collection is able to change
its status and release it for garbage collection. At that point, it
becomes no longer interesting (has no further effect on the OIT), even if
the associated dead record versions are still waiting to be cleaned up in
the next GC roundup or a sweep.
./heLen