Мы запускаем приложение JRuby on Rails на Jetty, и, достигнув промежуточного сервера перед запуском, внезапно столкнулись с проблемой отказа от наших соединений JDBC. Вот прекрасная трассировка стека для иллюстрации:
Последний пакет, отправленный на сервер, был 12 мс назад.
ТРАССИРОВКИ СТЕКА:
com.mysql.jdbc.CommunicationsException: сбой канала связи из-за основного исключения:
** НАЧАТЬ ВЛОЖЕННОЕ ИСКЛЮЧЕНИЕ **
java.io.EOFException
ТРАССИРОВКИ СТЕКА:
java.io.EOFException в com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913) в com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304) в com.mysql.jdbc.MysqlIO.checkErrorPacket( MysqlIO.java:2803)
Из прочитанного я понял, что MySQL убивает наш пул соединений в течение определенного периода времени из-за бездействия (что имеет смысл, поскольку промежуточная подготовка сейчас находится под очень небольшой нагрузкой). Он работает под JRuby 1.3.1 со следующими драгоценными камнями:
activerecord-jdbc-адаптер (0.9.1) activerecord-jdbcmysql-адаптер (0.9.1) jdbc-mysql (5.0.4)
Я предполагаю, что мне, вероятно, нужно каким-то образом установить некоторую конфигурацию JDBC, чтобы гарантировать, что соединения поддерживаются или перерабатываются должным образом, но мне нужна помощь, чтобы узнать, где искать. Может ли кто-нибудь предоставить мне подробности?
Спасибо, Стив