Mysql
 sql >> Database >  >> RDS >> Mysql

Connessioni non è disponibile a volte in c3p0

Molto probabilmente hai una perdita di connessione. Una piscina gigantesca non aiuterà in questo. Consulta qui .

Appendice:idioma robusto per la pulizia delle risorse

È meglio quando puoi usare prova con le risorse . Ma se stai lavorando con una versione precedente di Java (pre Java 7) o con risorse che non implementano AutoCloseable potresti comunque dover tornare a questo genere di cose.

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

Nota che la clausola finally verrà sicuramente eseguita se la connessione viene acquisita e c'è un miglior tentativo close() di ogni risorsa:If or non riesce a chiudere(), quell'eccezione non impedirà il tentativo di chiudere() theConnection.

Devi stare molto attento. Come disse Keynes, ci sono molti scivoloni tra la tazza e il labbro.