Questo tipo di problema si verifica quando NON chiudendo correttamente la connessione dopo l'uso.
Nota:se la JVM si chiude durante l'esecuzione del codice try o catch, il blocco finally potrebbe non essere eseguito. Allo stesso modo, se il thread che esegue il codice try o catch viene interrotto o terminato, il blocco finally potrebbe non essere eseguito anche se l'applicazione nel suo insieme continua.
Come hai chiesto nel commento, ho aggiunto il codice di esempio per dimostrarlo praticamente!
Connection con = null
try{
//Establishing connection to datasource
con = DBConnection.getConnection();
//perform DB operations
...
...
...
}catch(SQLException sqlEx){
/*To catch any SQLException thrown during DB
*Operations and continue processing like sending alert to admin
*that exception occurred.
*/
}finally{
/*This block should be added to your code
* You need to release the resources like connections
*/
if(con!=null)
con.close();
}
Si prega di notare che la dichiarazione di Connection
la variabile dovrebbe essere nell'ambito appropriato per chiuderla in finally
blocco.
Spero che questo aiuti!