我们在Jetty上运行JRuby on Rails应用程序,并且在启动之前到达登台服务器突然出现了我们的JDBC连接被放弃的问题。这里有一个可爱的stacktrace来说明:在Jetty上的JRuby on Rails应用程序中超时/被丢弃MySQL连接
发送到服务器的最后一个数据包是12毫秒前。
堆栈跟踪:
com.mysql.jdbc.CommunicationsException:通信链路故障,由于底层异常:
** BEGIN嵌套异常**
java.io.EOFException的
STACKTRACE:
java.io.EOFException at 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) jdbcmysql(5.0.4)
我假设我可能需要以某种方式设置一些JDBC配置,以确保连接保持活动状态或正确回收,但我需要一些帮助来找出在哪里寻找。任何人都可以提供我的细节?
谢谢你,史蒂夫