> When Jaybird uses distributed transactions, it adds information on the > Xid (the distributed transaction id) in the call to isc_prepare. > > When the transaction is limbo-ed by destroying the connection, another > connection can recover that by performing a reconnect and then either > committing or rolling back that transaction. > > After successfully recovering a transaction that way, the current > implementation in Jaybird deletes the entry in RDB$TRANSACTIONS > (probably as a form of house-keeping, or maybe at implementation time > the meaning of RDB$TRANSACTION_STATE was unclear). With the recent > changes to disallow access to the system tables this last step no longer > works. > > This leads me to the questions: > 1) When are prepared or rolled back transactions removed from > RDB$TRANSACTIONS? Or are they kept indefinitely?
Its never removed. And i see no problem with it. > 2) Is there an alternative to removing this information? I see no big need to clean up RDB$TRANSACTIONS. If we really want, we can make sweep to take care about it - to delete entires which is older than new OIT. But again, i see no real needs to do it. Regards, Vlad ------------------------------------------------------------------------------ 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