2012-08-10 2 views
5

Niedawno przeniósł się do PostgreSQL i otrzymuję sporadyczne błędy w postaci:Problemy z PostgreSQL rozrusznika tier

PGError: FATAL: terminating connection due to administrator command 
SSL connection has been closed unexpectedly: 
     SELECT a.attname, format_type(a.atttypid, a.atttypmod), 
       d.adsrc, a.attnotnull 
      FROM pg_attribute a LEFT JOIN pg_attrdef d 
      ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
     WHERE a.attrelid = '"xxxxxx"'::regclass 
      AND a.attnum > 0 AND NOT a.attisdropped 
     ORDER BY a.attnum 

vendor/bundle/ruby/1.9.1/gems/activerecord-3.0.11/lib/active_record/ 
connection_adapters/postgresql_adapter.rb:505:in `exec' 

Co mogę zrobić, aby obejść ten problem (oprócz wracając do starego Postgres Addon, który jest tymczasowe rozwiązanie, jak przypuszczam).

+1

Czy masz coś na serwerze, który wysyła sigterm do postgresql? http://archives.postgresql.org/pgsql-general/2010-09/msg00428.php – some

+0

Oczywiście nie pod moją kontrolą. Nie wiem, czy heroku może coś robić. Witryna uzyskuje "mały" ruch, więc heroku może ją "zawiesić". – baldmark

+0

@baldmark byłeś w stanie rozwiązać ten problem? Otrzymuję ten sam błąd. Heroku kazał mi przenieść moją bazę danych na inny serwer. – Nikhil

Odpowiedz

5

Idealnie Twoja aplikacja powinna w przejrzysty sposób radzić sobie z błędami bazy danych, ponownie próbując jej pracy, nie powodując błędów użytkownika. Jeśli bezczynny backend DB zostanie wyłączony spod niego, to nie powinno to obchodzić, powinien po prostu nawiązać nowe połączenie i ponownie rozpocząć transakcję. Nie wiem, jak praktyczne są Railsy i ActiveRecord.

Zobacz także pytanie What's the cause of "PGError: FATAL: terminating connection due to administrator command" on heroku?.

Wygląda na to, że Heroku czasami zabija podpórki i restartuje serwery, gdy wykonują konserwację, co może wyjaśniać twoje problemy, jeśli twoje użycie jest bardzo rzadkie.