IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[hibernate] connection à la base pas fermée


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut [hibernate] connection à la base pas fermée
    Bonjour,


    je bloque sur un problème depuis maintenant deux jours, et j'ai beau écumer les forum je trouve pas la solution :s

    Je dev une appli en j2e et j'utilise hibernate.Derrière j'ai une base de données mySql.

    Mon problème est que les connections, lorsque je fais un show processlist sur ma base, ne font que augmenter au point d'arriver à la limite et d'avoir l'erreur "too many connexion".

    Pourtant je fais bien un session.close à chaque fois.

    Je pense que ca viens de la config de hiberante, voici mon fichier hibernate.cfg :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!-- property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://test:3306/pmwgdb1</property>
    <property name="hibernate.connection.username">****</property>
    <property name="hibernate.connection.password">*****</property>
    <property name="show_sql">false</property -->
     
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.timeout">300</property>
    <property name="hibernate.c3p0.max_statements">10</property>
    <property name="hibernate.connection.release_mode">auto</property>

    merci d'avance de votre aide

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    Personne n'a ne serait-ce qu'un indice? :s:s

    Si je diminue le wait timeOut de mysql à 40s forcement les connexions se coupent mais apres ca me lance une exception...c'est normal vu qu'il les coupe tous et qu'il ne faut pas:s


    Il y a autre chose qu'un session.close a faire pour couper les connections?

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Par défaut
    J'ai l'imrpession que ces infos la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.timeout">300</property>
    <property name="hibernate.c3p0.max_statements">10</property>
    <property name="hibernate.connection.release_mode">auto</property>
    ne sont pas prise en compte.

    Pourtant si je vire, le driver , le mdp ou le login je me fais jeter drect, c'est donc que le fichier est bien utilisés. Ca fait quasiement une semaine que je suis sur ce problème :s:s:s:s

  4. #4
    Invité de passage
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut Details
    Donne nous des détails sur ta Classe parce que le fichier de configuration ce n'est pas assez pour te répondre...

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    dans mes projets Spring/JPA, je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    dans l'applicationContext.xml pour éviter ce problème, cela devrait vous donner une piste…
    mais aucune idée de comment faire dans un projet "pur Hibernate"…

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Par défaut
    Pourtant je fais bien un session.close à chaque fois.
    Est-ce que la session est fermée dans le bloc finally. Là au moins tu est sûr de la fermer.
    Essaye aussi, juste avant "session.close", sessionFactory.close() (toujours dans le bloc finally).

    Sinon, j'ai aussi eu ce probleme y a quelques temps. J'avais bêtement fait un truc comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <bean name="maClasse" 
        	class="com.toto.titi.MaClasse">
    ...
    et dans le constructeur de 'MaClasse", j'avais fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public MaClasse() {
            ctx = new ClassPathXmlApplicationContext(
            "applicationcontext.xml");
        }
    résultat: dans mon applicationcontext.xml, je créais une instance de ma classe et dans le constructeur je créais un ApplicationContext pour chaque instance de MaClasse et qui à son tour créait un applicationcontext qui encore créait une instance de MaClasse et etc. etc. et puis badaboum.

    Vérifie si tu fais pas un truc similaire.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Par défaut
    Salut,

    le problème ne vient peut être pas du pool de connexion mais de ton application. Combien de connexions ouvres tu en même temps ?
    Ne pas oublier que le max_size définit le nombre max de connexions dans le pool et non le nombre max de connexions ouvertes. Si tu dépasses les 20 connexions, C3P0 créera les connexions mais elles ne seront pas dans le pool.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2009, 13h43
  2. JBoss ne veut pas se connecter à une base Oracle
    Par SuperPat dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 07/03/2009, 12h53
  3. Réponses: 0
    Dernier message: 26/05/2008, 16h56
  4. Réponses: 1
    Dernier message: 06/03/2007, 17h53
  5. RMAN ne se connecte pas à la base cible fermée
    Par big1 dans le forum Recovery Manager
    Réponses: 2
    Dernier message: 19/02/2007, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo