> -----Original Message----- > From: Mark Rotteveel [mailto:m...@lawinegevaar.nl] > Sent: Martes, 06 de Mayo de 2014 15:41 > > This leads me to the questions: > 1) When are prepared or rolled back transactions removed from > RDB$TRANSACTIONS? Or are they kept indefinitely? > 2) Is there an alternative to removing this information?
Mark, I had a second look: TRA_commit: if (transaction->tra_flags & (TRA_prepare2 | TRA_reconnected)) MET_update_transaction(tdbb, transaction, true); and MET_update_transaction does this, where X is RDB$TRANSACTION: if (do_commit && (transaction->tra_flags & TRA_prepare2)) ERASE X else { MODIFY X X.RDB$TRANSACTION_STATE = do_commit ? RDB$TRANSACTIONS.RDB$TRANSACTION_STATE.COMMITTED : RDB$TRANSACTIONS.RDB$TRANSACTION_STATE.ROLLED_BACK; END_MODIFY } Hence I assume that when the failed 2PC txn is handled manually, this routine is not called. C. ------------------------------------------------------------------------------ Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel