[Oracle] nombre maximum de curseurs ouverts dépassé
Tout est dans le titre, et ça vient de ce code ci-dessous mais je ne vois pas où exactement... quelqu'un a une idée ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public static MyResultSet execute(Connection c,String sql,Object[] args) throws SQLException {
ArrayList<HashMap> result = new ArrayList<HashMap>();
try{
PreparedStatement ps = perform(c, sql, args);
ResultSet rs = ps.getResultSet();
ResultSetMetaData rsmd = rs.getMetaData();
HashMap<String,String> line;
while (rs.next()) {
line = new HashMap<String, String>();
for (int i=1;i<=rsmd.getColumnCount();i++) line.put(rsmd.getColumnName(i),rs.getString(i));
result.add(line);
}
rsmd = null;
rs.close();
ps.close();
} catch (Throwable t) {}
MyResultSet mrs = new MyResultSet();
mrs.setListe(result);
return mrs;
} |
c'est la méthode que j'appele pour toutes mes requêtes, et lors d' "inserts" massifs mon nombre de curseurs ouverts déborde à priori...
je précise que le problème ne vient pas de la ligne "PreparedStatement ps = perform(c, sql, args);" j'ai procédé à quelques tests déjà ;)
ça ne viendrait pas de l'utilisation de ResultSetMetaData ?