-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Detection de probleme de connexion avec la base
PostPosted: Mon May 08, 2006 1:29 pm 
Newbie

Joined: Mon May 08, 2006 12:53 pm
Posts: 2
Bonjour tous le monde,
j'utilises hibernate pour la persistance et je voulais qu'au chargement de mon application effectuer un test de connexion de la base données.
pour cela j'essaye d'ouvrir une session Hibernate. Dans le cas ou les donnés du fichier de configuration sont correctes c'est nickel.
Par contre dans le cas ou il ya une erreur dans la chaine de connexion, Hibernate ne lance pas d'exception: les exceptions lancés sont catcher au niveau Hibernate.
En fait, voici mon code :
Code:

sessionFactory = new Configuration().configure().buildSessionFactory();
s = sessionFactory.openSession();

je catch des HibernateException mais il n y a pas une qui indique qu'il y a un probleme de connexion.
A chaque fois qu'il y a appel de la methode DriverConnectionProvider.getConnection() et que cette methode lance une SQLexception cette derniere est catchée.
Elle est catchée dans la methode buildSettings(Properties pro) de la classe SettingsFactory.
Code:
catch (SQLException sqle) {
log.warn("Could not obtain connection metadata", sqle);
}

et dans SchemaUpdate.execute(boolean , boolean)
Code:
   
catch ( SQLException sqle ) {
     exceptions.add( sqle );
    log.error( "could not get database metadata", sqle );
    throw sqle;
  }

pour relancer l'exception et dans la meme methode on l'a catch
Code:

catch ( Exception e ) {
     exceptions.add( e );
     log.error( "could not complete schema update", e );
      }

par suite je ne peux pas savoir si m'a conf est bonne ou non?
est ce qu'il y a un autre moyen pour tester la connexion avec la base ? ou est ce qu'il existe une methode dans Hibernate qui lance une exception si la connexion n'est pas etablie?
Merci.

Hibernate version: 3.1


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 17, 2006 4:45 pm 
Proxool Developer
Proxool Developer

Joined: Tue Aug 26, 2003 10:42 am
Posts: 373
Location: Belgium
Si mes souvenirs sont bons, Hibernate n'essayera d'obtenir une connexion de la DB que quand il en a vraiement besoin.

Ton exemple ne reprend que la partie d'initialisation/configuration de Hibernate. Dans ce cas, il est vrai qu'il essaye d'obtenir des metadata de la db. Si il n'y arrive pas, il le fera plus tard.

Quand? Lorsque tu effectueras une operation qui necessite une connexion avec la DB. Quoi? Un select ou encore mieux un start transaction.

Si tu desires tester ta connectivite au demarrage, pourquoi ne pas faire:
Code:
sessionFactory.getSession().getTransaction()

Tu recevras une exception si la db n'est pas joignable.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.