Rails выдает сообщение «PGError: сервер неожиданно закрыл соединение» после некоторого тайм-аута

Я настроил свое приложение Rails следующим образом:

  • Rails: 3.0.5 (под прокси-сервером Apache), работающий на RHEL 5.6
  • Postgres: 8.4, работающий на Windows Server 2008 2 сервера находятся в одной локальной сети.

Проблема в том, что после некоторого времени простоя, когда я делаю новый запрос к приложению Rails, возникает следующая ошибка:

ActiveRecord::StatementInvalid (PGError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

Из того, что я исследовал, кажется, что соединения с базой данных прерываются после некоторого тайм-аута. пользователя Postgres. В течение этого времени со стороны Rails

  • , если я сделаю запрос к Rails (1-й запрос), он отобразит ошибку соединения, как указано выше
  • , если я сделаю еще один запрос к Rails (2-й запрос), Rails, похоже, переподключитесь к Postgres и работает правильно.

Это означает, что я всегда буду сталкиваться с первой ошибкой подключения, а затем снова буду нормально работать, что в моем случае очень серьезно, поскольку я хотел бы доставить своему клиенту ответ без ошибок.

Я просмотрел следующие вопросы и ответы, но они, похоже, не подходят для моего случая:

Есть ли у вас какие-либо советы, чтобы избавить мое приложение от ошибок подключения к базе данных? Спасибо.

6
задан Community 23 May 2017 в 10:32
поделиться