Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Ruby > Ruby on Rails
Ruby on Rails Le forum sur le framework Ruby on Rails. Voir aussi la FAQ RoR et les cours RoR.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/10/2012, 08h47   #1
remiuz
Invité de passage
 
Homme Rémi Nuyts
Développeur informatique
Inscription : août 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Rémi Nuyts
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2012
Messages : 4
Points : 0
Points : 0
Par défaut Coupure de connexion entre Rails 3.2.7 et Postgres 8.4

Bonjour à tous,

Je développe une grosse application en Rails 3.2.7 qui est connecté à une BD Postgres 8.4 installée sur la même machine. L'application s'exécute sur Apache avec le module Passenger.

L'application est constamment utilisée par une centaine d'utilisateurs et ne pose aucun problème pendant plusieurs heures puis, d'un coup, Rails ne parvient plus à faire de requêtes vers la BD sans trop que je comprenne pourquoi. Les sessions étant stockées en BD, tous les utilisateurs sont alors déconnectés. La page de login faisant appelle à des enregistrements dans la BD, elle n'est donc plus atteignable.

Voici le contenu de database.yml :

production:
adapter: postgresql
database: ******_prod
pool: 5
username: ******
password: ******
encoding: utf8

development:
adapter: postgresql
database: ******_dev
pool: 5
username: ******
password: ******
encoding: utf8

Voici ce qui se passe comme erreur dans un contrôleur qui tente d'accéder à la BD :

- Le code : time = (Parameter.find(:first, :conditions => ["name=?", "login_error_wait"])).value
- L'erreur : undefined method 'value' for nil:NilClass

Le paramètre recherché étant bien présent en BD. Ce code fonctionne parfaitement en temps normal jusqu'à ce que Postgres renvoi subitement la valeur nil.

Quelqu'un aurait-il déjà eu ce genre de problème ou aurait-il une idée d'où cela pourrait venir?

Je suis fortement ennuyé car il s'agit d'une application utilisée environ 2 heures par jours par chaque personne dans l'entreprise où je travaille.

Merci d'avance pour vos réponses
remiuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 11h58   #2
v.charlet
Membre actif
 
Homme Vincent Charlet
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 112
Détails du profil
Informations personnelles :
Nom : Homme Vincent Charlet
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2011
Messages : 112
Points : 186
Points : 186
Bonjour, juste une interrogation, le moteur postgres est lui toujours opérationnel pendant le problème en se connectant avec un pgadmin par exemple ?
idem avec la console rails ?

le problème se corrige comment ? rédamarrage du moteur postgres ? du serveur web ?
v.charlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 09h56   #3
remiuz
Invité de passage
 
Homme Rémi Nuyts
Développeur informatique
Inscription : août 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Rémi Nuyts
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2012
Messages : 4
Points : 0
Points : 0
Citation:
Envoyé par v.charlet Voir le message
Bonjour, juste une interrogation, le moteur postgres est lui toujours opérationnel pendant le problème en se connectant avec un pgadmin par exemple ?
idem avec la console rails ?

le problème se corrige comment ? rédamarrage du moteur postgres ? du serveur web ?

Bonjour, je viens de faire le test, Pg Admin perd également sa connexion. Le problème se corrige tout seul au bout d'un moment (je suppose que Rails effectue une reconnexion automatique au bout d'un temps) et si je veux qu'il se résolve plus vite, je redémarre le serveur Apache.

C'est donc bien du côté de Postgres qu'il y a un soucis, mais lequel ? :/
remiuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2012, 18h50   #4
v.charlet
Membre actif
 
Homme Vincent Charlet
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 112
Détails du profil
Informations personnelles :
Nom : Homme Vincent Charlet
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : novembre 2011
Messages : 112
Points : 186
Points : 186
je chercherais du coté du pool de connexion à postgres

peut être que des connexions sont ouvertes et mal refermée, au bout d'un moment le serveur BDD refuse d'en ouvrir plus
vérifier le nombre max de connexion dans le fichier de config
http://www.developpez.net/forums/d13...es-postgresql/
v.charlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 08h27   #5
remiuz
Invité de passage
 
Homme Rémi Nuyts
Développeur informatique
Inscription : août 2012
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Rémi Nuyts
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2012
Messages : 4
Points : 0
Points : 0
Citation:
Envoyé par v.charlet Voir le message
je chercherais du coté du pool de connexion à postgres

peut être que des connexions sont ouvertes et mal refermée, au bout d'un moment le serveur BDD refuse d'en ouvrir plus
vérifier le nombre max de connexion dans le fichier de config
http://www.developpez.net/forums/d13...es-postgresql/
J'y avais pensé aussi. Le nombre max de connexions est à 300 et le nombre de connexions simultanées ne monte jamais au dessus de 30.

Je pense faire une migration vers Postgres 9.2. Outre l'application Rails, j'ai des applications Java qui se connectent aussi à cette BD, j'utiliserai donc le Driver JDBC 9.2 du côté du Java.

J'essaye ça dès demain et je vous tiens au courant de la situation
remiuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h01.


 
 
 
 
Partenaires

Hébergement Web