Skip to content
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

FBManagedConnectionFactory.tryCompleteInLimboTransaction doesn't work with recent Firebird 3 builds [JDBC353] #395

Closed
firebird-issue-importer opened this issue May 7, 2014 · 6 comments

Comments

@firebird-issue-importer
Copy link

@firebird-issue-importer firebird-issue-importer commented May 7, 2014

Submitted by: @mrotteveel

FBManagedConnectionFactory.tryCompleteInLimboTransaction doesn't work with recent Firebird 3 builds as it attempts to delete a record from RDB$TRANSACTIONS which is no longer allowed due to system table protection.

The deletion seems to be a form of house keeping and is technically unnecessary. However the current implementation of FBManagedConnection.recover is not very efficient if a large number of records are kept on file.

Commits: f693c27 FirebirdSQL/fbt-repository@a0ba830

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented May 7, 2014

Modified by: @mrotteveel

Fix Version: Jaybird 2.2.6 [ 10588 ]

Fix Version: Jaybird 3.0 [ 10440 ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Nov 18, 2014

Commented by: @mrotteveel

Committed change that for Firebird 2.0 and higher will try to locate the transaction by the serialized Xid value. Deleting the transaction record will only be done in Firebird 2.5 and earlier.

Tested this on Firebird 3 and it works, still need to test on 2.1 and 2.5.

I am unsure of the performance implications. For Firebird 3.0 it will be better than the alternative of having to scan all records client side.

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Nov 30, 2014

Commented by: @mrotteveel

Tested on 2.5, in Jaybird 2.2 the transaction wasn't set when deleting the record. Fixed.

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Nov 30, 2014

Commented by: @mrotteveel

Tested on Firebird 2.1, test passes.

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Nov 30, 2014

Modified by: @mrotteveel

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

@firebird-issue-importer
Copy link
Author

@firebird-issue-importer firebird-issue-importer commented Dec 30, 2014

Modified by: @mrotteveel

status: Resolved [ 5 ] => Closed [ 6 ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment