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?
2) Is there an alternative to removing this information?

Mark
-- 
Mark Rotteveel

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