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

Java EE Discussion :

Comment catcher une erreur de connexion à la base de données


Sujet :

Java EE

  1. #1
    Membre habitué
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 135
    Points
    135
    Par défaut Comment catcher une erreur de connexion à la base de données
    Framework : JEE5 + EJB3 + FACELET + RICHFACES

    Bonjour les gens! j'ai une petite question:


    Comment catcher une erreur de connexion à la base de donnée?
    Exemple:

    J'ai subitement ma base de données qui devient injoignable et du coup j'ai un vilain message d'erreur sur le site WEB.

    Donc je voudrais savoir ou catcher l'exception afin de réaliser un enregistrement dans mon fichier *.log et de mettre un message pas trop laid de sorte à ce que l'utilisateur n'est pas envi de se tuer.
    Christophe

  2. #2
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 46
    Points : 57
    Points
    57
    Par défaut
    En utilisant un bloc try/catch ...?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    try
    {
    Connexion = DriverManager.getConnection(url,login ,pass );
    System.out.println("Connexion établie");
    }
    catch(SQLException e)
    {
    System.out.println(" Problème de connexion");
    }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Pour des logs efficaces, ils te faut les elements sur ce soucis de connexion.

    Le simple message problème de connexion ne sert à rien, il faut au moins le message technique contenu dans la SQLExecption.
    Si tu es en entreprise il te faut en plus la classe appelante et un idenfiant unique pour justement isoler et identifier l'erreur, mieux qu'avec un timestamp.

    Bref souvent négligée, la bonne gestion des exceptions fait la différence entre une appli codée avec les genoux et une appli véritablement professionelle.

    Bon courage,

  4. #4
    Membre habitué
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 135
    Points
    135
    Par défaut
    En fait j'ai trouvé une solution, il s'agit d'une coupure de la base de données durant la lui pour effectuer la sauvegarder, un cron redémarrant l'application JEE5 dans Websphere 7 après la sauvegarde permet de contourner le problème.

    Néanmoins, merci pour vos réponses mais elles ne me satisfont pas vraiment:
    @luffy27

    try
    {
    Connexion = DriverManager.getConnection(url,login ,pass );
    System.out.println("Connexion établie");
    }
    catch(SQLException e)
    {
    System.out.println(" Problème de connexion");
    }
    Une application d'entreprise (JEE5), en tout cas la mienne, utilise JNDI afin de récupérer la connexion. Dans mon code je n'instancie ni drivers et n'établis aucune connexion, c'est le serveur JEE qui se charge de cette partie. Bref, je m'adresse à la base de données uniquement quand j'utilise mon entityManager.... donc ton try catch ne fonctionne pas.


    @Jimmy_
    Je ne conteste pas ce que tu écris, je sais utiliser log4j, mais ce n'est pas la question. Tu me parles de gestion des logs, et moi je parle de catcher une exception....

    Donc affaire à suivre :-)

    si quelqu'un a une autre idée... :-D
    Christophe

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    Si tu utilise un EntityManager alors je pense que l'erreur sera de type PersistenceException ou une de ses filles.

    utilise donc un try/catch avec PersistenceException

  6. #6
    Membre habitué
    Avatar de chriscoolletoubibe
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 135
    Points
    135
    Par défaut
    ok, je vais essayer afin de résoudre rapidement ce post
    (dsl pour la réponse tardive, j'avais un peu mis le sujet de coté)
    Christophe

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/04/2013, 08h12
  2. Réponses: 2
    Dernier message: 20/01/2012, 16h02
  3. Réponses: 3
    Dernier message: 20/09/2010, 14h55
  4. Erreur de connexion à la base des données
    Par painouch21 dans le forum JDBC
    Réponses: 6
    Dernier message: 27/04/2009, 19h01
  5. Réponses: 0
    Dernier message: 19/09/2008, 02h28

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