HikariPool-1 — соединение недоступно, время ожидания запроса истеклоJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 HikariPool-1 — соединение недоступно, время ожидания запроса истекло

Сообщение Anonymous »

Я использую HikariCP 2.4.7 для пула соединений. Все в порядке сразу после запуска приложения, но через некоторое время без вызова getConnection() я получаю эту ошибку, когда пытаюсь getConnection():

Код: Выделить всё

java.sql.SQLTransientConnectionException:  HikariPool-1 - Connection is not available,  r e q u e s t   t i m e d   o u t   a f t e r   4 2 7 3 4 m s . < b r   / >         a t   c o m . z a x x e r . h i k a r i . p o o l . H i k a r i P o o l . c r e a t e T i m e o u t E x c e p t i o n ( H i k a r i P o o l . j a v a : 5 5 5 ) < b r   / >         a t   c o m . z a x x e r . h i k a r i . p o o l . H i k a r i P o o l . g e t C o n n e c t i o n ( H i k a r i P o o l . j a v a : 1 8 8 ) < b r   / >         a t   c o m . z a x x e r . h i k a r i . p o o l . H i k a r i P o o l . g e t C o n n e c t i o n ( H i k a r i P o o l . j a v a : 1 4 7 ) < b r   / >         a t   c o m . z a x x e r . h i k a r i . H i k a r i D a t a S o u r c e . g e t C o n n e c t i o n ( H i k a r i D a t a S o u r c e . j a v a : 9 9 ) < b r   / >         a t   p l . a i r l y . d a t a b a s e . C o m p l e x O p e r a t i o n s . g e t S e n s o r D a t a F r o m A r e a ( C o m p l e x O p e r a t i o n s . j a v a : 3 1 0 ) < b r   / >         a t   p l . a i r l y . d a t a b a s e . C o m p l e x O p e r a t i o n s . g e t M e a s u r e m e n t s I n A r e a W i t h i n T i m e F r a m e ( C o m p l e x O p e r a t i o n s . j a v a : 2 0 1 ) < b r   / >         a t   p l . a i r l y . R e s p o n s e G e n e r a t o r . g e t R e s p o n s e A d e q u a t e T o R e q u e s t ( R e s p o n s e G e n e r a t o r . j a v a : 1 3 9 ) < b r   / >         a t   s u n . r e f l e c t . G e n e r a t e d M e t h o d A c c e s s o r 2 4 . i n v o k e ( U n k n o w n   S o u r c e ) < b r   / >         a t   s u n . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) < b r   / >         a t   j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 4 9 8 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . d o I n v o k e ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 2 2 1 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . i n v o k e F o r R e q u e s t ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 3 6 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . i n v o k e A n d H a n d l e ( S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 1 4 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . i n v o k e H a n d l e r M e t h o d ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 8 2 7 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . h a n d l e I n t e r n a l ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 7 3 8 ) < b r   / >         a t   o r g . s p r i n g f r a m e w o r k .web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Во время запуска я инициализирую HikariDataSource:

Код: Выделить всё

hikariDataSource = new HikariDataSource();
hikariDataSource.setDriverClassName("org.postgresql.Driver");
hikariDataSource.setUsername(DATABASE_USER_NAME);
hikariDataSource.setPassword(DATABASE_PASSWORD);
hikariDataSource.setJdbcUrl(DATABASE_URL);
hikariDataSource.setLeakDetectionThreshold(5000);
И тогда я использую это вот так:

Код: Выделить всё

try(java.sql.Connection conn = Connection.hikariDataSource.getConnection())  {
Record1 record1 = DSL.using(conn).select(SENSOR.ID) //jOOQ
.from(SENSOR)
.where(SENSOR.ID.equal(1))
.limit(1)
.fetchOne();
Debug.println(record1.getValue(0).toString());
} catch (SQLException e) {
e.printStackTrace();
}
Что я делаю не так? Как устранить эту проблему?

Изменить:

Добавление этого решает проблему. :

Код: Выделить всё

hikariDataSource.setIdleTimeout(60000);
hikariDataSource.setConnectionTimeout(60000);
hikariDataSource.setValidationTimeout(3000);
hikariDataSource.setLoginTimeout(5);
hikariDataSource.setMaxLifetime(60000);
Возможно, это связано с тем, что сервер закрывает соединения до того, как это сделает HikariCP, но я не уверен. Будем признательны за любые комментарии по этому поводу.

Подробнее здесь: https://stackoverflow.com/questions/386 ... -out-after
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • HikariPool-1 — соединение недоступно, время ожидания запроса истекло
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Hikaripool -1 - соединение недоступно, запрос на время после
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Hikaripool -1 - соединение недоступно, запрос на время после
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Oracle ManagedDataAccess – истекло время ожидания запроса на соединение – объединение в пул
    Anonymous » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Oracle ManagedDataAccess – истекло время ожидания запроса на соединение – объединение в пул
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»