Hikari连接没有超时

时间:2019-03-01 08:36:39

标签: spring-boot mariadb hikaricp

我的Spring Boot应用程序中具有以下Hikari配置。查询花费的时间超过connection-timeout设置的时间。但是,超时从未发生。我会尽可能降低模拟连接超时的时间。

    HikariConfig dataSourceConfig = new HikariConfig();
    dataSourceConfig.setDriverClassName(config.driver);
    dataSourceConfig.setJdbcUrl(config.url);
    dataSourceConfig.setUsername(config.user);
    dataSourceConfig.setPassword(config.password);
    dataSourceConfig.setConnectionTestQuery(config.validationQuery);
    dataSourceConfig.setMaximumPoolSize(config.poolMax);
    dataSourceConfig.setConnectionTimeout(300);
    dataSourceConfig.setIdleTimeout(10000);
    dataSourceConfig.setMaxLifetime(60000);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(new HikariDataSource(dataSourceConfig));

以下是一些日志,显示查询运行了300毫秒以上。

  

运行查询所花费的时间...... 2913

使用Hikari 3.2和mariadb

谢谢。

1 个答案:

答案 0 :(得分:0)

发件人:https://github.com/brettwooldridge/HikariCP

  

connectionTimeout   此属性控制客户端(即您)等待来自池的连接的最大毫秒数。如果超过此时间而没有可用的连接,则会抛出SQLException。可接受的最低连接超时为250 ms。默认值:30000(30秒)

因此,此属性更多地是关于应用程序等待连接的时间,而不是查询被允许执行的时间。

我认为您想要的是“ max_statement_time”:https://mariadb.com/kb/en/library/server-system-variables/#max_statement_time

  

中止查询之前可以执行的最长时间(以秒为单位)。这不仅包括SELECT语句,还包括所有查询,但不包括存储过程中的语句。如果设置为0,则不应用限制。