Monday, June 1, 2015

The semantics of isc_tpb_autocommit

When a 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

The TRA_perform_autocommit flag is checked when

the engine receives input message

the engine sends an output message

the engine starts to execute a request

the engine finishes executing a DDL request

When the TRA_perform_autocommit flag is detected, the engine runs on-commit triggers (not for DDL, that looks like a bug) and performs commit retaining. A new transaction will have TRA_autocommit flag set and TRA_perform_autocommit not set.