代码运行一段时间,然后引发通信链接故障异常MySQL

时间:2018-09-26 23:32:24

标签: java mysql scala jdbc mysql-connector

我有一个Scala代码,使用scalalikejdbc连接并在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);

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

1 个答案:

答案 0 :(得分:0)

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

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