首页 > 解决方案 > Hikari CP 给出通信失败链接错误,其中普通 JDBC 连接正在工作

问题描述

场景:使用 Hikari CP 打开和初始化连接池。状态:从服务器接收到通信链路故障零数据包。目标服务器:MYSQL 5.6.31-0ubuntu0.15.10.1 驱动程序库:编译组:'mysql',名称:'mysql-connector-java',版本:'8.0.11' Hikari CP:编译组:'com.zaxxer ',名称:'HikariCP',版本:'3.1.0'

不使用 Hikari CP 的普通 JDBC 连接工作正常。

问题:我做错了什么?尝试的事情:将ideltimeout和maxlifetime更改为比maxtimewait out sql server的默认值少一分钟。同样的问题仍然存在。 https://github.com/brettwooldridge/HikariCP/wiki/FAQ

DbConnectionHolder connectionHolder = new DbConnectionHolder();
        HikariConfig tranasctionDbConfig = new HikariConfig();
        HikariConfig configDb = new HikariConfig();

        tranasctionDbConfig.setDriverClassName(dbConfigHolder.getDriverClassName());
        tranasctionDbConfig.setJdbcUrl(dbConfigHolder.getTransactionDbUrl());
        tranasctionDbConfig.setMaximumPoolSize(10);
        // tranasctionDbConfig.setLeakDetectionThreshold(5000);
        //tranasctionDbConfig.setConnectionTimeout(2000);
        tranasctionDbConfig.setIdleTimeout(28740000);
        tranasctionDbConfig.setMaxLifetime(28740000);

        tranasctionDbConfig.setUsername(dbConfigHolder.getTransactionDbUserName());
        tranasctionDbConfig.setPassword(dbConfigHolder.getTransactionDbPassword());

        configDb.setDriverClassName(dbConfigHolder.getDriverClassName());
        configDb.setJdbcUrl(dbConfigHolder.getConfigDbUrl());

        configDb.setIdleTimeout(28740000);
        configDb.setMaxLifetime(28740000);


        configDb.setUsername(dbConfigHolder.getConfigDbUserName());
        configDb.setPassword(dbConfigHolder.getConfigDbPassword());

        //configDb.setIdleTimeout(200000);
    //  configDb.setMaxLifetime(200000);

    DataSource configDataSource = new HikariDataSource(configDb);

        DataSource transactionDatasource = new HikariDataSource(tranasctionDbConfig);

        connectionHolder.setConfigDataSource(configDataSource);
        connectionHolder.setTranctionDataSource(transactionDatasource);
        return connectionHolder;

标签: javahikaricp

解决方案


推荐阅读