java - 代码运行了一段时间,然后抛出通信链接失败异常 MySQL
问题描述
我有一个使用 scalalikejdbc 连接并插入 MySQL 的 Scala 代码。代码运行良好约 2-3 小时,然后抛出
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
我的连接设置如下:
val url = "jdbc:mysql://www.domain.com:3306/schema";
val settings = ConnectionPoolSettings(
initialSize = 1,
maxSize = 2,
connectionTimeoutMillis = 100000L,
validationQuery = "select 1 from dual");
ConnectionPool.add('dbval, url, username, pwd, settings);
发生这种情况的任何原因以及如何解决?
解决方案
我找到了解决方案,我在插入之前打开了一个新连接,并在插入之后关闭了它。由于一个接一个地插入查询过多,这可能会导致某种瓶颈。
解决方案:我只打开了一个连接并将其添加到 ConnectionPool 并为每个 INSERT 使用相同的连接。
推荐阅读
- android - 当我关闭一个项目以打开另一个项目时,Android Studio 总是出现问题
- flutter - 转义一些 dart 关键字的文件
- typescript - 如果它在路由器视图之外,如何让组件监视路由器?
- azure - Azure 辅助角色实例卡住了
- neo4j - 通过一个密码查询中的 id 和值列表更新节点
- php - 如果在视图中它是空的,如何在 JavaScript 中传递一个变量?
- archive - Xcode 11:与 Xcode 10 存档大小相比,ipa 大小大幅增加
- javascript - 如何在响应为 jason 的情况下使用 javascript 检索唯一值
- java - Java 代码在两台相似的机器上具有不同的 FPS
- php - 将 MessageBag 转换为简单的单列数组