Subject Re :[firebird-support] Update & Syncronization prpblem
Author Helen Borrie
At 01:36 PM 1/09/2003 +0700, you wrote:

>I will Study about the literature, just one question, what do you mean by
>Hard Commit ?

Calling COMMIT, not COMMITRETAINING (a.k.a. "soft commit").

COMMIT WITH RETAIN ("CommitRetaining") was a hack introduced by Borland to
support the BDE components, to support a design which disguises the
transaction mechanism and makes inexperienced programmers think they are
working with Paradox. If you don't understand what you are doing, blindly
writing applications that use only CommitRetaining has some other serious
side-effects which cause your server to slow down, freeze and, eventually,
to crash.

CommitRetaining commits (ends) the transaction and then starts a new
transaction with the same transaction context (cursor sets) as the original
one. If transaction isolation is SNAPSHOT ("concurrency") this means that
the application continues to see the database state exactly as it was when
the original transaction started - even after a refresh (requery) it can
see changes that were made inside its own context but it can't see changes
done by others. A SNAPSHOT transactions will get a fresh view of database
state after a "hard" COMMIT.