Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
for (int i = 0; i < initConnCnt; i++)
{
availableConns.addElement(getConnection());
}if (availableConns.size() == 0) {
newConn = getConnection();
}public synchronized void checkin(Connection c) throws NullPointerException {
if (c != null) {
if (usedConns.removeElement(c)) {
availableConns.addElement(c);
} else {
throw new NullPointerException("Connection not in the usedConns");
}
}
}
Exception сломает весь пул.Connection и Statement, которые ловят исключения и инвалидируют (закрывают) Connection, не кладя его обратно в пул. Вдобавок нужно ограничивать размер пула, а новые соединения открывать вне synchronized, чтобы избежать нежелательных задержек в многопоточном приложении.Ведь сервера приложений у нас в данном случае нет, следовательно, использовать Data Source мы не можем
try {
conn = DriverManager.getConnection(url);
} catch (Exception e) {
e.printStackTrace();
}
Простейший Connection pool без DataSource в Java