Сбой канала связи Hibernate в приложении Java Servlet на основе Hibernate на базе MySQL

Позвольте мне описать мой вопрос -

У меня есть приложение Java - Hibernate как уровень взаимодействия с БД поверх MySQL. Я получаю ошибку сбоя линии связи в моем приложении. Возникновение этой ошибки - очень специфический случай. Я получаю эту ошибку, когда я оставляю MySQL-сервер без присмотра более чем на 6 часов (то есть, когда MySQL не отправляет запросы более чем на 6 часов). Я вставляю описание верхнего уровня исключений ниже и добавляю ссылку на вставку для подробного описания трассировки стека.

javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Невозможно открыть соединение - Причина: org.hibernate.exception.JDBCConnectionException: Невозможно открыть соединение - Причина: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Ошибка - последний пакет, успешно полученный от сервера, был 1 274 868 181 212 миллисекунд назад. Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад. - Вызвано: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой линии связи - последний пакет, успешно полученный от сервера, был 1 274 868 181 212 миллисекунд назад. Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад. - вызвано: java.net.ConnectException: соединение отказано: подключиться

ссылка на пастин для дальнейшего исследования -http://pastebin.com/4KujAmgD

Из этих исключений я понимаю, что MySQL отказывается принимать какие-либо соединения после периода простоя / отсутствия активности. Я немного прочитал об этом через поиск в Google и узнал, что одним из возможных способов преодоления этого является установка значений для свойств c3p0, поскольку c3p0 поставляется в комплекте с Hibernate. Конкретно читаю отсюдаhttp://www.mchange.com/projects/c3p0/index.html что установка двух свойств idleConnectionTestPeriod и privileTestQuery решит это для меня. Но эти значения, похоже, не оказали влияния.

Это правильный подход к исправлению этого? Если нет, как правильно это преодолеть?

Ниже приведены вопросы, связанные с ошибками канала связи, на stackoverflow.com, но я не нашел удовлетворительного ответа в их ответах.com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой линии связи Как справиться: сбой линии связи

Примечание 1 - я не получаю эту ошибку, когда я использую свое приложение постоянно. Примечание 2 - Я использую JPA с Hibernate, и, следовательно, мои свойства hibernate.dialect и т. Д. Hibernate находятся в файле persistence.xml в папке META-INF (препятствует ли работа свойств c3p0?)

edit - параметры c3p0, которые я опробовал, есть в комментариях

Ответы на вопрос(0)

Ваш ответ на вопрос