Много вероятно имате изтичане на връзка. Гигантският размер на басейна всъщност няма да помогне с това. Моля, вижте тук .
Приложение:Идиома за надеждно почистване на ресурси
Най-добре е, когато можете да използвате опитайте с ресурси
. Но ако работите с по-стара версия на Java (преди Java 7) или с ресурси, които не прилагат AutoCloseable
все още може да се наложи да се върнете към този вид неща.
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(); }
}
Обърнете внимание, че клаузата finally определено ще бъде изпълнена, ако връзката е придобита, и има най-добър опит close() за всеки ресурс:Ако or
не успее да затвори(), това изключение няма да предотврати опита за затваряне() на връзката.
Трябва да сте много внимателни. Както известният израз на Кейнс има много пропуски между чашата и устната.