Vous avez très probablement une fuite de connexion. Une taille de piscine gigantesque n'aidera pas vraiment à cela. Veuillez consulter ici .
Annexe :idiome de nettoyage de ressource robuste
Il est préférable d'utiliser essayer avec des ressources
. Mais si vous travaillez avec une ancienne version de Java (avant Java 7) ou avec des ressources qui n'implémentent pas AutoCloseable
vous devrez peut-être encore revenir à ce genre de chose.
Connection c = null;
OtherResource or = null;
try
{
c = cpds.getConnection();
or = getOtherResource()
// do stuff
// ...
}
finally
{
try { if (or != null) or.close(); }
catch (Exception e) { e.printStackTrace(); }
try { if (c != null) c.close(); }
catch (Exception e) { e.printStackTrace(); }
}
Notez que la clause finally sera définitivement exécutée si la connexion est acquise et qu'il existe une meilleure tentative de fermeture() de chaque ressource :Si or
ne parvient pas à fermer (), cette exception n'empêchera pas la tentative de fermer () theConnection.
Tu dois être très prudent. Comme l'a si bien dit Keynes, il y a bien des glissades entre la tasse et la lèvre.