Mysql
 sql >> Base de données >  >> RDS >> Mysql

Les connexions ne sont parfois pas disponibles dans c3p0

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.