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);
			}
		}
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;
                }
        }
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
 
<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()
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".

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