> 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