Subject | Re: [firebird-support] Re: CommitRetaining question |
---|---|
Author | Helen Borrie |
Post date | 2005-10-09T00:51:07Z |
At 04:25 PM 8/10/2005 +0000, you wrote:
changes *are* committed. Once they are committed, they can't be rolled back.
However, CommitRetaining causes the committed transaction's context to be
*retained*, whereas the "hard Commit" causes the enitire context (cursors,
old record versions and other resources) to be freed. Anything that was
committed with CommitRetaining stays committed!! But the record versions
associated with that transaction won't get released without the hard
Commit...which leads to the OIT/OAT situation described....
./heLen
> > Yes, eventually. The server will eventually be informed that theYou misunderstand. If your application calls CommitRetaining, the DML
> > connection is dead and the transaction status will be converted to
>rolled back.
>
>Thanks. I didn't realise the transaction would be rolled back. I
>thought the changes would still remain committed.
changes *are* committed. Once they are committed, they can't be rolled back.
However, CommitRetaining causes the committed transaction's context to be
*retained*, whereas the "hard Commit" causes the enitire context (cursors,
old record versions and other resources) to be freed. Anything that was
committed with CommitRetaining stays committed!! But the record versions
associated with that transaction won't get released without the hard
Commit...which leads to the OIT/OAT situation described....
./heLen