RD-12419: Added retry to SqlConnectionPool #498
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An implementation of a connection retry to the SqlConnectionPool.
The patch adds a
connectAnd
API that obtains a connection and passes to the provided handler:It handles the connection failures internally.
Calls that would pick a connection and use it are here switched to that. A test is added that purposely triggers connection failures to the FDW database, using a test container network proxy introducing connection errors that last a couple of seconds. With the patch, calls eventually succeed since
connectAnd
retries and sleeps enough to recover.One call hasn't been fixed:
execute
, because it is provided with anOutputStream
to write to, and if it would retry in the middle of its execution, that would lead to a corrupted output.