Ten rodzaj problemu pojawia się, gdy NIE prawidłowe zamknięcie połączenia po użyciu.
Uwaga:Jeśli maszyna JVM zostanie zamknięta podczas wykonywania kodu try lub catch, blok finally może nie zostać wykonany. Podobnie, jeśli wątek wykonujący kod try lub catch zostanie przerwany lub zabity, blok finally może nie zostać wykonany, nawet jeśli aplikacja jako całość będzie kontynuowana.
Jak prosiłeś w komentarzu, dodałem przykładowy kod, aby zademonstrować go w praktyce!
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();
}
Należy pamiętać, że deklaracja Connection
zmienna powinna być w odpowiednim zakresie, aby zamknąć ją w finally
blokować.
Mam nadzieję, że to pomoże!