|
[
Permalink
| « Hide
]
Roman Rokytskyy added a comment - 12/Aug/12 06:36 PM
Which FB version do you use? The transaction number is decoded directly from the internal format stored in the database, so most likely the format was changed between the versions...
Using Firebird 2.5.1 here.
I presume Jaybird retrives the transaction number decoding RDB$TRANSACTIONS.RDB$TRANSACTION_DESCRIPTION. Why is it doing that instead of taking it from RDB$TRANSACTIONS.RDB$TRANSACTION_ID? Jaybird retrieves this from the servicemanager, it does not query the RDB$TRANSACTIONS table.
I looked at the code and I do think the way it is decoding looks a bit weird: - It will always restart a decode if it reads 0x13 (isc_spb_single_tra_id), - it uses 0x00 as an end of transaction_id marker, which doesn't seem to be correct - and as 0x14 is also isc_spb_multi_tra_id I suspect it is starting to read the next transaction info block. It also looks like it is only capable of reading single transactions, not multi database transactions. Removed Jaybird 2.2.1 from fix versions, essentially this has always been broken.
Committed fix to trunk, I would like to add a test that covers multi-site transactions, but I haven't found a way (yet) to create those using Jaybird. For now all existing tests pass.
To do: backport fix to Jaybird 2.2.2
Committed backport to 2.2 branch.
Resolved, created subtask to add multi-site transactions to tests
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||