hikaripool连接保持,HikariPool-1 – 连接不可用,请求超时后[通俗易懂]

hikaripool连接保持,HikariPool-1 – 连接不可用,请求超时后[通俗易懂]I’musingHikariCP2.4.7forconnectionpool.EverythingisfinejustafterstartingtheapplicationbutaftersometimewithoutinvokinggetConnection()IgetthiserrorwhenI’mtryingtogetConnect…

大家好,又见面了,我是你们的朋友全栈君。

hikaripool连接保持,HikariPool-1 - 连接不可用,请求超时后[通俗易懂]

I’m using HikariCP 2.4.7 for connection pool. Everything is fine just after starting the application but after some time without invoking getConnection() I get this error when I’m trying to getConnection():

java.sql.SQLTransientConnectionException: HikariPool-1 – Connection is not available, request timed out after 42734ms.

at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:555)

at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:188)

at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:147)

at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:99)

at pl.airly.database.ComplexOperations.getSensorDataFromArea(ComplexOperations.java:310)

at pl.airly.database.ComplexOperations.getMeasurementsInAreaWithinTimeFrame(ComplexOperations.java:201)

at pl.airly.ResponseGenerator.getResponseAdequateToRequest(ResponseGenerator.java:139)

at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

at org.springframework.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)

During startup I’m initializing 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);

And then I’m using it like this:

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();

}

What am I doing wrong? How to troubleshoot this problem?

Edit:

Adding this solves the problem:

hikariDataSource.setIdleTimeout(60000);

hikariDataSource.setConnectionTimeout(60000);

hikariDataSource.setValidationTimeout(3000);

hikariDataSource.setLoginTimeout(5);

hikariDataSource.setMaxLifetime(60000);

It may be something connected with the server closing connections before HikariCP does but I’m not sure. Any comment on this would be appreciated.

解决方案

I start by saying than i am not a Java programmer, you can try to close jOOQ DSL also:

try(java.sql.Connection conn = Connection.hikariDataSource.getConnection()) {

try (Record1 record1 = DSL.using(conn).select(SENSOR.ID)) {

.from(SENSOR)

.where(SENSOR.ID.equal(1))

.limit(1)

.fetchOne();

Debug.println(record1.getValue(0).toString());

} catch (Exception e) {

e.printStackTrace();

}

} catch (SQLException e) {

e.printStackTrace();

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152381.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Calling LoadLibraryEx on ISAPI filter failed「建议收藏」

    Calling LoadLibraryEx on ISAPI filter failed「建议收藏」今天在访问IIS下的站点时莫名奇妙的遇到这个问题CallingLoadLibraryExonISAPIfilter“C://。。。” failed,前面引号中的“C://。。。”是加载的DLL的路径。打开IIS管理器点击web站点名称,点击ISAPI筛选器会在列表中看到前面错误中提到的那个不能加载的DLL的名称和执行路径,把它删掉即可。

    2025年6月18日
    3
  • Generic Host Process for Win32 Services 错误

    Generic Host Process for Win32 Services 错误机器运行时防火墙一直提示“GenericHostProcessforWin32Services”访问网络,选阻止后系统就一直弹出一个GenericHostProcessforWin32Services遇到问题需要关闭的对话框!在资源管理器中把系统文件的隐藏属性打开后,发现每个盘的根目录下和C:/WINDOWS目录下都有一个gg.exe文件,每个盘的根目录下有一个autoru

    2022年10月12日
    3
  • 锐捷交换机(S2924/2928G)光口改电口,或电口改光口的准确方法「建议收藏」

    锐捷交换机(S2924/2928G)光口改电口,或电口改光口的准确方法「建议收藏」软件需求:telnet。依次输入Ruijie>输入enable//若未设置enable密码,需要在web中先设置Ruijie#输入configRuijie(config)#输入intg0/24//其中g代表千兆口,0/24代表24号端口Ruijie(config-if-GigabitEthernet0/24)#输入medium-typ…

    2022年10月9日
    8
  • 手表英文月份缩写对照表_日期缩写格式

    手表英文月份缩写对照表_日期缩写格式一月份=JAN.Jan.=January二月份=FEB.Feb.=February三月份=MAR.Mar.=March四月份=APR.Apr.=April五月份=MAYMay=May

    2022年8月5日
    3
  • CompoundButton调用setChecked多次触发onCheckedChanged

    CompoundButton调用setChecked多次触发onCheckedChanged问题当我们只想改变CompoundButton的状态时,setChecked会出现onCheckedChanged的情况。原因源码可见只要CompoundButton设置了setOnCheckedChangeListener,就会再每次调用setChecked()的时候再次触发onCheckedChanged。解决方式1.setChecked()的时候设置屏蔽,在onCheckedCha…

    2022年5月2日
    44
  • Vue文件上传问题合集

    Vue文件上传问题合集目录1.背景2.环境3.问题集1)文件上传完成后,文件名的回显2)文件上传完成前的加载状态3)文件上传作为必填项1.背景在使用Vue+ElementUI进行前端工程开发中,遇到一些文件上传的问题,包括上传、回显、等待等。这里做一些记录,方便以后查看2.环境npm 6.14.12 vue-admin-template 4.4.0 axios 0.18.1 element-ui 2.13.2 3.问题集1)文件上传完成后,文件名

    2022年8月16日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号