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

Connection acquisition timeout error in app at high traffic volume #186

Open
htejwani opened this issue Nov 13, 2022 · 1 comment
Open

Comments

@htejwani
Copy link

We have a web-app with Spring Webflux that uses oracle-r2dbc with r2dbc-pool (v1.0.0.RELEASE). The app endpoints work fine at normal loads, however, when we test our app endpoint with 300 concurrent users, after a few minutes it starts failing with the "Connection Acquisition timeoout after 10000 ms" error.

Following is the configuration for r2db-pool:
maxIdleTime: 10 mins
maxValidationTime: 6 secs
maxAcquireTime: 10 secs
maxCreateConnectionTime: 10 secs
validationDepth: REMOTE
minIdle: 10
maxSize: 100

Some important points:

  1. Other endpoints that do not have DB interaction continue to work fine. The CPU and memory usage is normal.
  2. Even after the load test is done, the endpoint (with DB interaction) keeps failing with the same error as mentioned above. The app cannot recover from this error.
  3. The number of active connections in the DB after the load test are less than the minIdle number. The metrics for the pool shows more (almost double) idle connections than the idle connection in the DB but far less than the maxSize.
@htejwani
Copy link
Author

This issue went away when we set the "protocol" property to "pool:oracle" instead of "oracle". With this change, the factory object set inside ConnectionPool class is of type ConnectionPool instead of OracleConnectionFactoryImpl.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant