New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support 48 bit (technically 64 bit) transaction ids. [JDBC432] #473
Comments
Commented by: @mrotteveel It would be preferable to get support into 2.2.x, but we need to maintain backwards compatibility. |
Modified by: @mrotteveeldescription: Firebird 3 introduces 48 bit transaction ids (realised as 64 bit values). Jaybird needs to support these. Relevant areas are isc_database_info, isc_transaction_info and the services API. For isc_database_info and isc_transaction_info the values below 2^32 are handled as they were (4 bytes), and above they are sent as 8 bytes (length prefixed). For the services API additional tags were introduced: isc_spb_tra_id_64, isc_spb_single_tra_id_64, isc_spb_multi_tra_id_64. They are used only of the value overflows 2^32. => Firebird 3 introduces 48 bit transaction ids (realised as 64 bit values). Jaybird needs to support these. Relevant areas are isc_database_info, isc_transaction_info and the services API. For isc_database_info and isc_transaction_info the values below 2^32 are handled as they were (4 bytes), and above they are sent as 8 bytes (length prefixed). For the services API additional tags were introduced: isc_spb_tra_id_64, isc_spb_single_tra_id_64, isc_spb_multi_tra_id_64. They are used only if the value overflows 2^32. |
Commented by: @mrotteveel Added support in FBMaintenanceManager in 2.2 and 3.0. Made some changes that are backwards incompatible between Jaybird 2.2 and Jaybird 3.0 (modified return types of two methods to return long[] and List<Long> instead of int[] and List<Integer>. For Jaybird 2.2 I opted to include an explicit long variant of these methods to retain compatibility. Deprecated the commitTransaction(int) and rollbackTransaction(int) methods to be removed in Jaybird 3.1. Researching exactly what I need to do for op_reconnec/isc_reconnect_transaction. |
Commented by: @mrotteveel Support in reconnect also implemented. |
Modified by: @mrotteveelstatus: Resolved [ 5 ] => Closed [ 6 ] |
Modified by: @cincuranet |
Submitted by: @mrotteveel
Relate to DNET896
Firebird 3 introduces 48 bit transaction ids (realised as 64 bit values). Jaybird needs to support these. Relevant areas are isc_database_info, isc_transaction_info and the services API.
For isc_database_info and isc_transaction_info the values below 2^32 are handled as they were (4 bytes), and above they are sent as 8 bytes (length prefixed). For the services API additional tags were introduced: isc_spb_tra_id_64, isc_spb_single_tra_id_64, isc_spb_multi_tra_id_64. They are used only if the value overflows 2^32.
Commits: 76dca74 06d56cc 2445d35
The text was updated successfully, but these errors were encountered: