Du har højst sandsynligt en forbindelseslækage. En gigantisk poolstørrelse hjælper ikke rigtig med det. Se venligst her .
Bilag:Robust Resource Cleanup-formsprog
Det er bedst, når du kan bruge prøv med ressourcer
. Men hvis du arbejder med en ældre version af Java (før Java 7), eller med ressourcer, der ikke implementerer AutoCloseable
du skal muligvis stadig vende tilbage til denne slags ting.
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(); }
}
Bemærk, at finally-sætningen helt sikkert vil blive udført, hvis forbindelsen er erhvervet, og der er en best-attempt close() for hver ressource:If or
undlader at lukke(), vil denne undtagelse ikke forhindre forsøget på at lukke() forbindelsen.
Du skal være meget forsigtig. Som Keynes berømt udtrykte det, er der mange smykker mellem koppen og læben.