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

Does HikariCP supports connection retries ? #907

Closed
rvillane opened this issue Jun 3, 2017 · 2 comments
Closed

Does HikariCP supports connection retries ? #907

rvillane opened this issue Jun 3, 2017 · 2 comments
Labels

Comments

@rvillane
Copy link

rvillane commented Jun 3, 2017

Hi, I'm using HikariCP together with JPA/Hibernate and jetty server, running on the cloud and I'm noticing sometimes the app is getting timeouts connecting to the database. Is there any built-in features in Hikari to try to reconnect automatically in those cases ?

thanks

Environment

HikariCP version: 2.6.1
JDK version     : 1.8.0_111
Database        : DB2
Hibernate       :  5.1.0.Final
Driver version  : jdbc type 4

@brettwooldridge
Copy link
Owner

@marodriguez-llbean HikariCP continually tries reconnection in the background in the case of failures, with a slight time back-off if it keeps failing -- dropping down to once every 2 seconds or so.

@rvillane
Copy link
Author

rvillane commented Jun 5, 2017

in a case like the one described on this stacktrace, the app becomes unusable due to the error, do I need to add any HikariCP settings to keep retrying?

Exception in thread "Thread-24" org.hibernate.QueryTimeoutException: Unable to acquire JDBC Connection at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:66) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:87) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:109) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:47) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:87) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:78) at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement(AbstractBatchImpl.java:136) at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement(AbstractBatchImpl.java:125) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3049) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2985) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3365) at org.hibernate.internal.StatelessSessionImpl.update(StatelessSessionImpl.java:208) at org.hibernate.internal.StatelessSessionImpl.update(StatelessSessionImpl.java:189) at com.llbean.purchase.history.consumer.batches.BatchesManager.saveBatch(BatchesManager.java:88) at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:70) at com.llbean.purchase.history.consumer.migration.direct.DirectOrderWorkConsumer.setWorkStatus(DirectOrderWorkConsumer.java:57) at com.llbean.purchase.history.consumer.migration.direct.DirectOrderWorkConsumer.updateBatchStatus(DirectOrderWorkConsumer.java:127) at com.llbean.purchase.history.consumer.migration.direct.DirectOrderWorkConsumer.executeWorkers(DirectOrderWorkConsumer.java:107) at com.llbean.purchase.history.consumer.migration.direct.DirectOrderWorkConsumer.runExtractionLoop(DirectOrderWorkConsumer.java:77) at com.llbean.purchase.history.consumer.core.PurchaseHistoryContextListener.lambda$withInjector$0(PurchaseHistoryContextListener.java:58) at java.lang.Thread.run(Thread.java:745) Caused by: java.sql.SQLTimeoutException: Timeout after 30001ms of waiting for a connection. at com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:233) at com.zaxxer.hikari.pool.BaseHikariPool.getConnection(BaseHikariPool.java:183) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:93) at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:386) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:84) ... 20 more

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

No branches or pull requests

2 participants