场景:使用Hikari CP打开和初始化连接池。 状态:从服务器收到的通信链路故障零数据包。 目标服务器:MYSQL 5.6.31-0ubuntu0.15.10.1 Driver Lib:编译组:' mysql',名称:' mysql-connector-java',版本:' 8.0.11' Hikari CP:编译组:' com.zaxxer',名称:' HikariCP',版本:' 3.1.0'
不使用Hikari CP的普通JDBC连接工作正常。
问题:我做错了什么? 事情尝试:将ideltimeout和maxlifetime改为比maxtimewait out sql server的默认值小一分钟.Same问题仍然存在。 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;