Убить несколько подключений одновременно

Я использую root в качестве имени пользователя.

Моя программа будет обновляться каждые 5 секунд. Что он делает, так это запрос из таблицы mysql и отображение данных.

Проблема в том, что каждые 5 секунд соединение на mysql будет добавляться, потому что оно выдаст ошибку «СЛИШКОМ МНОГО СОЕДИНЕНИЙ», когда оно достигнет предела.

Можно ли убить предыдущее соединение, так как оно уже не используется?

Вот мой код при открытии соединения.

connectionPool = connectionPool.getConnectionPool("root", "*****", "");

person AyukNayr    schedule 21.06.2018    source источник
comment
Закрыть все соединения? jpos.org/doc/javadoc/org/jpos/tpl/ConnectionPool. html   -  person Sudipta Mondal    schedule 21.06.2018
comment
Используйте пул соединений и увеличьте переменную max_connection в соответствии с емкостью вашего сервера MySQL.   -  person Sumesh TG    schedule 21.06.2018
comment
@SudiptaMondal Не все соединения. только предыдущие соединения. Поскольку программа будет продолжать работать   -  person AyukNayr    schedule 21.06.2018
comment
@SumeshTG как насчет того, когда он достигнет нового предела? Вы просто игнорируете настоящую проблему.   -  person tanaydin    schedule 21.06.2018
comment
Должен установить тайм-аут для каждого соединения @tanaydin   -  person Sumesh TG    schedule 21.06.2018
comment
@SumeshTG какой из них правильный :) max_connection или timeout? вы предлагаете другую вещь для защиты первого предложения ... тайм-аут для соединения предназначен для соединения, а не для бездействующих соединений, он запускается, если соединение не установлено в течение заданного времени.   -  person tanaydin    schedule 21.06.2018
comment
@tanaydin Я решил эту ситуацию, профилировав сервер mysql (установив max_con, увеличив кеш и т. д.) и уничтожив все бездействующие соединения, выполнив запрос в другом потоке с использованием динамической обработки идентификатора. Некоторые соединения становятся бездействующими после тайм-аута.   -  person Sumesh TG    schedule 21.06.2018
comment
@SumeshTG это не решение, это прикрытие. Смешно закрывать неработающие соединения с другим. Что делать, если этот разъединитель не может подключиться из-за лимита подключений? Вы должны освободить экземпляр пула или закрыть соединение после завершения выполнения, тогда вам не нужен еще один поток для отключения предыдущих соединений.   -  person tanaydin    schedule 22.06.2018


Ответы (2)


Это нормальное поведение, если вы используете пул соединений. Когда ваша работа будет завершена, убедитесь, что вы освободили экземпляр соединения или закроете все соединения пула, когда выполнение вашего кода будет выполнено.

person tanaydin    schedule 21.06.2018
comment
Значит нет возможности закрыть предыдущее соединение? поскольку он будет обновляться каждые 5 секунд, он откроет другое соединение, в то время как предыдущее соединение больше не может использоваться. - person AyukNayr; 21.06.2018
comment
вы должны закрыть свое собственное соединение, вы не должны оставлять его для следующего выполнения. - person tanaydin; 21.06.2018
comment
добавьте наконец и закройте используемое соединение @AyukNayr - person Sumesh TG; 21.06.2018

Когда вы закончите с подключением, вам нужно закрыть его. это вернет соединение обратно в пул.

person ipolevoy    schedule 21.06.2018