我们在 Jetty 上运行 JRuby on Rails 应用程序,并且在启动之前到达暂存服务器突然遇到了一个问题,即我们的 JDBC 连接被放弃。这是一个可爱的堆栈跟踪来说明:
发送到服务器的最后一个数据包是 12 毫秒前。
堆栈跟踪:
com.mysql.jdbc.CommunicationsException:由于底层异常导致通信链接失败:
** 开始嵌套异常 **
java.io.EOFException
堆栈跟踪:
java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304) at com.mysql.jdbc.MysqlIO.checkErrorPacket( MysqlIO.java:2803)
根据我的理解,MySQL 由于不活动而在一段时间内杀死了我们的连接池(这是有道理的,因为现在登台处于非常轻的负载下)。它在 JRuby 1.3.1 下运行,带有以下 gem:
activerecord-jdbc-adapter (0.9.1) activerecord-jdbcmysql-adapter (0.9.1) jdbc-mysql (5.0.4)
我假设我可能需要以某种方式设置一些 JDBC 配置以确保连接保持活动状态或正确回收,但我需要一些帮助来找出去哪里。谁能提供我的详细信息?
谢谢,史蒂夫