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 :

pb de connexion jdbc hibernate


Sujet :

Hibernate Java

  1. #1
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut pb de connexion jdbc hibernate
    Bonjour,

    pour mon application qui tourne avec hibernate sous Tomcat, j'ai le soucis suivant:

    Qd j'utilise l'appli, au bout d'un certain nombre de manipulations, j'ai une erreur telle que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.exception.GenericJDBCException: Cannot open connection
    pourquoi ???

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    pour ceux qui veulent voici le stack,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
    	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
    	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
    	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
    	at Models.DeclarationModel.ouverture(DeclarationModel.java:126)
    	at Beans.BeanAuthentification.authentification(BeanAuthentification.java:133)
    	at Controllers.AuthentificationController.validThreadUser(AuthentificationController.java:143)
    	at Controllers.AuthentificationController.processRequest(AuthentificationController.java:80)
    	at Controllers.AuthentificationController.doPost(AuthentificationController.java:187)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
    	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:104)
    	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    	at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
    	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
    	... 25 more
    Caused by: java.util.NoSuchElementException: Timeout waiting for idle object

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    salut

    je me suis battu lundi soir avec la même erreur...

    Après avoir vérifié que ma base tournait, que la database utilisée dans l'url de connection était bonne, que ma chaine de connexion (url) était sur le bon port avec un user existant, que j'avais bien tous les jars nécessaires pour ma base de données, je me suis rendu compte d'une bête erreur de frappe dans le paramétrage...

    as tu vérifié tous ces points ?

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Oui, le pb est que l'application tourne normalement ... donc la connexion est ok au début !!!!

    Le pb c au bout d'un moment qd je fais des tests, au enième lancement de l'appli, tomcat me lache ....

    Je suis obligé de sortir de Netbeans (dans mon cas) et de le relancer pour refaire un deployment sur Tomcat, bref c pas cool.

    Qu'est qui peut bien faire cela

    merci

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    juste une solution, ya pas un pb de session, car souvent lors des tests, l'équipe fait des pages avant ou après et il y a des variables en session ...

    c pas un pb de Null pointer mais les requetes sont définies en en not null mais Tomcat gère comment ???

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    ou alors unTimeout, je sais pas, mais ce pb peut arriver sur deux connexions différentes,

    bref j'ai du mal et en plus qd je suis arrivé dans la boite pour faire un update, le pb était déjà.

    je pense que cela devrait être courant, non

  7. #7
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    La configuration de ta source de données dans Tomcat doit avoir une borne max. Et d'après la stack, il devient impossible d'obtenir une nouvelle connexion du pool après un timeout d'attente. Je suppose donc que soit tu utilises trop de connexions simultanément, soit tu ne libère pas les connexions afin qu'elles puissent être rendues au pool.

    Une explication détaillée ici : http://tomcat.apache.org/tomcat-4.1-...20pool%20leaks

  8. #8
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Merci de ta reponse,

    je suis le seul à être sur cette base parceque pas en dev, mais je vais effectivement regarder sur la liberation des données et dons des données en session.

    Parceque je pense que le pb est sur la session

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 38
    Par défaut
    ah la la, ça me rappelle un vieux soucis : nous avions une appli où, qq'un, on ouvrait une connexion à la BDD "en direct", cad sans passer par le pool général. Bien sur, cette connexion était jamais refermée ensuite

    Du coup on avait des vieux plantages aléatoires (parce que dépendant aussi du nombre de session du pool effectivement actives) et on a vraiment galéré pour retrouver le bout de code fautif.

    Bref, si tu as des connexions "qui fuient", cad toujours ouverte mais jamais fermée, tu as bien des problèmes comme les tiens après un temps aléatoire d'utilisation.

    Ne peux tu pas vérifier le nombre de connexion actives sur ta bdd au cours du temps ?

Discussions similaires

  1. [Core] Hibernate Connexion JDBC
    Par chouhaibou dans le forum Hibernate
    Réponses: 1
    Dernier message: 18/09/2012, 21h41
  2. Application J2EE (suite - Connexion JDBC)
    Par clisson dans le forum XMLRAD
    Réponses: 1
    Dernier message: 02/11/2005, 12h12
  3. Connexion JDBC
    Par clisson dans le forum XMLRAD
    Réponses: 8
    Dernier message: 28/10/2005, 16h30
  4. pool de connexion jdbc avec apache
    Par de LANFRANCHI dans le forum Oracle
    Réponses: 9
    Dernier message: 24/01/2005, 17h34
  5. connexion jdbc
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/04/2004, 09h09

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