如果数据库连接数据无效,有没有办法将Hikari配置为“快速失败”?

时间:2014-03-26 01:01:11

标签: hikaricp

使用无效的主机名或用户/密码运行此测试,它会在失败前等待大约2分钟。如果用户/密码不正确,或者主机名/端口不正确,我最好还是立即失败。

    HikariConfig config = new HikariConfig();
    config.setMaximumPoolSize(1);
    config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
    config.addDataSourceProperty("serverName", "localhost");
    config.addDataSourceProperty("url", "jdbc:mysql://localhost:3306/project_one?useServerPrepStmts=true&autoReconnect=false");
    config.addDataSourceProperty("port", "3306");
    config.addDataSourceProperty("databaseName", "project_one");
    config.addDataSourceProperty("user", "root");
    config.addDataSourceProperty("password", "");
    config.addDataSourceProperty("autoReconnect", false);

    HikariDataSource ds = new HikariDataSource(config);
    Connection connection = ds.getConnection();

    Statement statement = connection.createStatement();
    statement.executeQuery("SELECT 1");

2 个答案:

答案 0 :(得分:2)

是的,版本1.2.9引入了一个fail-fast选项(当前版本为1.3.3)。配置属性为initializationFailFast。将其设置为true,池应该快速失败。在日志记录框架(log4j,slf4j等)中启用com.zaxxer.hikari的调试日志记录可以提供有关连接失败原因的更多详细信息。

答案 1 :(得分:0)

从HikariCP v3.0.0开始,必须使用属性initializationFailTimeout

属性initializationFailFast在v2.4.10中已弃用,在v3.0.0中已删除。

相关问题#770和提取请求#771