Мы запустили приложение JRuby on Rails на Jetty, и, достигнув промежуточного сервера перед запуском, неожиданно возникла проблема с нашими потерянными соединениями JDBC. Вот прекрасная трассировка стека для иллюстрации:
Последний пакет, отправленный на сервер, был 12 мс назад.
StackTrace:
com.mysql.jdbc.CommunicationsException: сбой линии связи из-за основного исключения:
** НАЧИНАЕТСЯ ИСКЛЮЧИТЬ **
java.io.EOFException
StackTrace:
java.io.EOFException
на com.mysql.jdbc.MysqlIO.readFully (MysqlIO.java:1913)
на com.mysql.jdbc.MysqlIO.reuseAndReadPacket (MysqlIO.java:2304)
at 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, чтобы убедиться, что соединения поддерживаются или перерабатываются должным образом, но мне нужна помощь, чтобы выяснить, где искать. Кто-нибудь может предоставить мне детали?
Спасибо,
Стив