> 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

Reply via email to