代码运行一段时间,然后抛出通信链接失败异常 MySQL



我有一个使用scalalikejdbc的Scala代码来连接并插入MySQL。代码运行良好大约 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);

发生这种情况的任何原因以及如何解决它?

我找到了解决方案,我在插入之前打开一个新连接,在插入后关闭它。由于一个接一个的 INSERT 查询太多,这可能会导致某种瓶颈。

解决方法:我只打开了一个连接并将其添加到连接池中,并对每个插入使用相同的连接。

最新更新