Bonjour à tous
J'ai un petit souci JDBC avec ORACLE.
En fait dans un projet JAVA, j'ai un package qui contient que des classes pour les accès à la base de données, toutes ses classes se ressemblent avec celle-ci :
Elle a trois attributs : ResultSet, Statement et Connexion,
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
19
20
21
22
23
24 public class ContentAreaData { private Statement stmt; private ResultSet rset; private Connection conn; public Vector <Folders> listeFolders(String caid) { Vector<Folders> resultat = new Vector<Folders>(); StringBuffer requete ="MaRequete"; try { rset = stmt.executeQuery(requete.toString()); while (rset.next()) { Folders folderTmp = new Folders(rset); resultat.add(folderTmp); } rset.close(); } catch (SQLException e) { System.out.println("Erreur de selection "+ e.getMessage()); } return resultat; } }
Le Statement et le Connection sont initialisés dans le constructeur, quand au ResultSet il est initialisé dans les méthodes qui permettent de récupérer des données de la base de données, une fois que j'ai récupéré mes résultats je ferme le ResultSet.
Mais le problème c'est que j'ai l'impression que le resultSet n'est pas fermé, car quand j'ai beaucoup de requêtes à faire j'ai cette erreur qui sort :
Maintenant je ne sais si c'est le statement que je dois fermer aussi, ou bien il n’y'a pas d'autres solutions que d'augmenter le nombre de curseurs dans la config d'Oracle, Alors que si les ResultSets sont bien fermé, je ne doit pas avoir plus de 100 ouverts au même temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ORA-01000: Nombre maximum de curseurs ouverts atteint
Merci de votre aide.
Cordialement hbellahc
Partager