java - 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;
解决方案
推荐阅读
- nginx - 基于 Nginx 位置的尝试文件?
- asp.net-core - 为什么我运行 WebApp 时有两个端口
- c++ - 如何将 Variadic Templates 变成多个单个模板?(C++ 竞争性编程调试模板)
- javascript - 如何确定 API 作业何时完成?
- c++ - C ++ - 从向量中删除特定的智能指针
- c# - 如何从 LINQ 中的另一个表中获取表的值
- python - 使用 django 显示生成的文档
- spring - 如何使用 JDBCTemplate 检查有效的数据库连接
- c++ - ProjectileMovement 在第二次生成时不起作用
- python - 使用其他函数中定义的参数