昨晚玩突然无法再连接到数据库(同一个EC2实例上的PostGreSQL)。
23:57:31.996 [BoneCP-pool-watch-thread] 错误 com.jolbox.bonecp.hooks.AbstractConnectionHook {1}
- 获取连接失败 休眠 5000 毫秒并重试。剩余尝试次数:10。异常:null
有时,抛出的错误是不同的:
01:21:05.920 [BoneCP-pool-watch-thread] 错误 com.jolbox.bonecp.PoolWatchThread {1} - 尝试获取连接时出错。在 5000 毫秒内重试
org.postgresql.util.PSQLException:致命:剩余的连接槽保留用于非复制超级用户连接
它每 5 秒重试一次,但没有成功。我重新启动了 Play,它重新连接良好。
这周发生了两次。
我想到了自动重启。你知道一个工具吗?或任何其他想法?
编辑 我通过更新 Build.scala 中的依赖项来更新 BoneCP:
"com.google.guava" % "guava" % "14.0-rc1",
"org.slf4j" % "slf4j-api" % "1.7.5",
"com.jolbox" % "bonecp" % "0.8.0-rc1",
"org.reflections" % "reflections" % "0.9.8"
但现在我经常收到这个错误,告诉它无法关闭连接。所以它再次达到最大连接数。
- 关闭连接 org.postgresql.util.PSQLException 时出错:无法在事务中间更改事务只读属性。在 org.postgresql.jdbc2.AbstractJdbc2Connection.setReadOnly(AbstractJdbc2Connection.java:617) ~[postgresql.postgresql-9.1-901-1.jdbc4.jar:na]