В моем веб-приложении java я подключаюсь к локальной базе данных MySQL. Используя сервлет, я беру csv-файл и вставляю данные в базу данных. Он прекрасно соединяется и вставляет данные, но он начинает прогрессивно замедляться после каждой вставки, сделанной из файла csv. Когда он получает до строки 159 в файле CSV он выдает это исключение:threw exception [com.mysql.jdbc.CommunicationsException: Ошибка связи связи из-за основного исключения:
выбросил исключение
[com.mysql.jdbc.CommunicationsException: Связь отказ ссылки в связи с основным исключением:
java.net.SocketException СООБЩЕНИЕ: Разрешение отказано: подключение
StackTrace:
java.net.SocketException: Разрешение отказано: подключение
Кто-нибудь знает, почему это будет работать нормально, а затем замедлить до тех пор, пока не бросает это исключение? Я действительно почесываю голову об этом, и ничто в Интернете, похоже, не помогает. Кстати, я использую tomcat8.
Вы повторно используете свои соединения, закрывая их или просто оставляя их в памяти. –
Я думаю, что @ScaryWombat находится на отметке, q.v. [этот пост] (http://stackoverflow.com/questions/6865538/solving-a-communications-link-failure-with-jdbc-and-mysql). Попробуйте перезагрузить свой MySQL. Если это устраняет проблему, у вас, вероятно, проблема с пулом соединений. –
Я думаю, что вы правы, количество соединений растет, когда я запускаю программу, и они, похоже, не закрываются. Я вызываю connection.close() после ввода вставки, но это, похоже, не закрывает соединение. Почему они не закрываются, если я вызываю connection.close()? – Stryker