Bonjour,
J'ai un problème avec l'utilisation d'un datasource
Contexte :
J'ai un datasource décléré dans struts, je l'initialise au démarrage de mon appli et je le stocke dans une classe Singleton pour y avoir accès tout le temps
Si mes connexions sont mal fermées, c'est carrément mon serveur TomCat qui plante !
Méthode d'accès aux données :
Mon problème est que, si j'ai une exceprion "SQLException", je vais dans mon catch et ma connexion n'est pas fermée !
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 try { Connection conn = AccesBD.getInstance().getDs().getConnection(); PreparedStatement prep = conn.prepareStatement("SELECT * FROM POSTE WHERE CODE_POSTE = ?"); prep.setString(1, uneProduction.getPoste().getCodePoste()); ResultSet rs = prep.executeQuery(); if (rs.next()) { //traietments } prep1.close(); conn.close(); return true; } catch (SQLException e) { System.out.println("Erreur : " + e.getMessage()); return false; }
J'ai bien essayé de faire undans le catch, mais si la connexion n'a pas été initialisée avant, ca plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part conn.close()
Donc il arrive dans certains cas que si je vais dans mon catch, ma connexion n'et pas fermée et lorsque plusieurs connexions ne se ferment pas, mon serveur plante (en fait mon appli est boquée, mais je n'est pas d'erreur TomCat particulière)
Est-ce qu'il existe un moyen pour fermer toutes les connexions d'un coup ?
Pourquoi mon serveur ne répond plus ?
Partager