Какой пул соединений вы используете? Большинство из них позволяют периодически выполнять команду сердцебиения, чтобы не допустить простоя соединений.
РЕДАКТИРОВАТЬ: Глядя на страницу конфигурации DBCP , я думаю, что вы должны установить соответствующий (дешевый) validationQuery
. Затем вы можете либо указать DBCP проверить это при потенциальном исключении неактивных соединений (testWhileIdle
), либо указать, чтобы он проверял непосредственно перед возвратом соединения (testOnBorrow
). Первый будет (надеюсь!) Поддерживать ваши пустые связи живыми; второй не сможет, но не вернет вам разорванные соединения (т. е. если создаст новое при необходимости).