У меня есть приложение Flex / Java / MySQL / Hibernate, работающее на tomcat / BlazeDS, которое имеет очень НИЗКУЮ активность, пользователь может даже не посещать его в течение нескольких месяцев.
Проблема в том, что после месяца бездействиясоединения между tomcat и mysql закрыты, а затем мне нужно перезапустить серверы mysql и tomcat, есть ли способ избежать этого и поддерживать соединение всегда открытым?
MySQL закрывает неактивные соединения через некоторое время.Hibernate в конфигурации по умолчанию не будет повторно подключаться.Воспользуйтесь приведенным здесь советом, чтобы включить автоматическое переподключение:
http://www.databasesandlife.com/automatic-reconnect-from-hibernate-to-mysql/
Я не знаю, можно ли остановить соединение, и я не совсем уверен, что это хорошая идея. Вы можете настроить и использовать пул соединений на Tomcat , который будет автоматически переподключаться при запросе ресурса. Некоторые пулы соединений также будут проводить периодическое тестирование активных соединений, если вы настроите определенный минимум, чтобы убедиться, что база данных все еще реагирует.
Почему бы вам просто не поставить проверку в коде, чтобы увидеть, закрыто ли соединение, и если это так, открыть его заново?
Или используйте пул соединений, я думаю, что это будет выполнено для вас автоматически. c3p0, bonecp, proxool, dbcp