On 30-5-2015 17:13, Vlad Khorsun wrote:
>> I'd especially like to know at which point the commit is executed, and
>> the impact this has on open resources (cursor, blob, etc). As far as I
>> understand commit_retaining is used. What impact does that have on
>> visibility of transactions and resource use?
>
>     A bit simplified overview of autocommit code:
>
>     when transaction, marked as TRA_autocommit performs any of following
> actions, it is marked also as TRA_perform_autocommit:
> - insert
> - update
> - delete
> - select with lock
> - post event
>
>     TRA_perform_autocommit flag is checked when:
> - engine receives input message
> - engine send output message
> - engine stars to execute request
> - engine finished to execute DDL request
>
>     When TRA_perform_autocommit flag is detected, engine run on-commit 
> triggers
> (not for DDL, btw, looks like a bug) and performs commit retaining. New
> transaction have TRA_autocommit flag set and TRA_perform_autocommit not set.

Thanks!

Mark

-- 
Mark Rotteveel

------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to