小编Anh*_*yen的帖子

一些超时后,Rails产生"PGError:服务器意外关闭了连接"

我有我的Rails应用程序的设置如下:

  • Rails:在RHEL 5.6上运行的3.0.5(在Apache代理下)
  • Postgres:8.4,在Windows Server 2008上运行这两台服务器位于同一个LAN上.

问题是,在一些空闲时间之后,当我向Rails应用程序发出新请求时,它会给我以下错误:

ActiveRecord::StatementInvalid (PGError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
Run Code Online (Sandbox Code Playgroud)

根据我的研究,似乎在Postgres超时后数据库连接被删除.在此期间,从Rails方面,

  • 如果我向Rails(第一个请求)发出请求,它将显示如上所述的连接错误
  • 如果我向Rails发出另一个请求(第二个请求),Rails似乎重新连接到Postgres并正常运行.

这意味着我将始终遇到第一个连接错误然后将再次进行所有正常操作,这在我的情况下是非常严重的,因为我想向我的客户端提供非错误响应.

我查看了以下问题和答案,但它们似乎不适合我的情况:

你有任何建议,以使我的应用程序免受数据库连接错误?谢谢.

windows postgresql connection timeout ruby-on-rails

6
推荐指数
2
解决办法
3329
查看次数

5
推荐指数
1
解决办法
1167
查看次数