> On Sat, 10 May 2014 10:53:05 +0300, "Vlad Khorsun" wrote: >>> I will see if I can come up with a solution for Firebird 3 without >>> needing >>> RDB$TRANSACTIONS to be unprotected, but doesn't - potentially - >>> degenerate >>> to iterating over a list of thousands if not millions of transaction >>> records when recovering a distributed transaction. >> >> Am i already told you about isc_database_info call ? It returns >> numbers of >> in-limbo transactions only. > > That is not sufficient for my information needs. I need the > RDB$TRANSACTION_DESCRIPTION as well to deserialize the Xid I stored in it.
Surprise : after you got list of tx numbers it can be used to query RDB$TRANSACTIONS for additional info. > Of course I can also query RDB$TRANSACTIONS with RDB$TRANSACTION_STATE = 1, > but in the future I may also need to know if a Xid is already committed or > rolled back (although the current code doesn't do that). When you call commit\rollback after reconnect, engine updates RDB$TRANSACTION_STATE correspondingly. If repair failed at some another host (i.e. some participants was committed\rolled back and some was left in limbo), you will be able to try repair again, starting from that host. I hope you put info about all participants into RDB$DESCRIPTION (as fbclient does) along with Xid ? 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