首页 > 数据库技术 > 详细

springboot 运行一段时间之后无法获取到数据库连接问题排查

时间:2020-01-06 20:33:15      阅读:502      评论:0      收藏:0      [点我收藏+]

springboot 运行一段时间之后无法获取到数据库连接,后续排查是2个问题引起

    1. HttpClient 连接池配置连接数太少,而且使用 CloseableHttpClient 后没有关闭 CloseableHttpResponse,导致线程阻塞,事务无法结束,数据库连接没有还给连接池
      response.close();
      
      
        @Bean(name = "httpClientConnectionManager")
          public PoolingHttpClientConnectionManager getHttpClientConnectionManager(){
              PoolingHttpClientConnectionManager httpClientConnectionManager = new PoolingHttpClientConnectionManager();
              httpClientConnectionManager.setMaxTotal(100);
              httpClientConnectionManager.setDefaultMaxPerRoute(100);
              return httpClientConnectionManager;
          }
      
      
    2. 数据库连接数配置没有生效,build的数据源没有读取配置文件
      maximum-pool-size: 50

        @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); }

 

    1. 修改如下,问题解决
      @Bean
          @Primary
          @ConfigurationProperties(prefix = "spring.datasource.hikari")
          public HikariDataSource dataSource(DataSourceProperties properties) {
              HikariDataSource dataSource = properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
      
              if (StringUtils.hasText(properties.getName())) {
                  dataSource.setPoolName(properties.getName());
              }
              return dataSource;
          }

       

 

springboot 运行一段时间之后无法获取到数据库连接问题排查

原文:https://www.cnblogs.com/xpang/p/12157705.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!