Bonjour,
je travaille sur une appli web et j'ai un problème au niveau des connections mysql.
J'utilise une "bean" ou je défini les fonctions de connections, d'executeQuery et executeUpdate et de fermeture.
Ce sont les suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // variables private Statement stmt; private Connection conn;
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 public MySQLConnectionHandler(){ try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); } catch (Exception e) { Log.out.println("Unable to load driver."); } try { conn = DriverManager.getConnection("jdbc:mysql://"+dbHost+"/"+dbName+"?user="+dbUser+"&password="+dbPasswd); } catch (SQLException sqle) { Log.out.println("Unable to established connection); conn = null; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void close_connect(){ try{ stmt.close(); } catch(SQLException sqle){ Log.out.println("erreur fermeture connexion : "+sqle); } }mes pages sont de cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public ResultSet executeQuery(String query){ try { stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query); return rs; } catch (SQLException sqle) { Log.out.println("executeQuery: SQLException: " + sqle.getMessage()); return null; } catch (Exception e) { Log.out.println("executeQuery: Exception: " + e.getMessage()); return null; } }
Tout fonctionne mais le problème est que mes connections ne se ferme jamais, elle sont tjs en sleep et au bout d'un moment mysql tombe en indiquant "too many connection".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <jsp:useBean id="mysql" scope="session" class="com.viti.MySQLConnectionHandler" /> ResultSet marquere = mysql.executeQuery("SELECT ...") while(marquere!=null && marquere.next()){ //traitement } if(marquere!=null) marquere .close() mysql.close_connect()
si je decide de fermer la connection aprés chaque requete mysql ne redémarre pas :s
Une solution pourrait etre de limiter la durée de connection mais je ne sais pas comment faire.
Sinon si quelqu'un à une autre solution je suis à l'écoute.
merci pour votre aide
Mistify
Partager