Я реализую RESTful API с Vert.x. Я использовал его асинхронный клиент jdbc с MySQL и c3p0 в качестве пула соединений.
Моя проблема в том, что, хотя обработчик closeConnection работает успешно, фактическое соединение с базой данных не закрывается и не используется повторно. Пул заполняется за секунды, в результате получается: BasicResourcePool: 204 - получить тест - пул уже исчерпан. [удалось: 20; макс: 20]
client.getConnection(connectionAsyncResult -> {
SQLConnection connection = connectionAsyncResult.result();
connection.queryWithParams("SELECT * FROM AIRPORTS WHERE ID = ?", new JsonArray().add(id), select -> {
ResultSet resultSet = select.result();
Airport $airport = resultSet.getRows()
.stream()
.map(Airport::new)
.findFirst()
.get();
asyncResultHandler.handle(Future.succeededFuture($airport));
connection.close(closeHandler -> {
if (closeHandler.succeeded()) {
LOG.debug("Database Connection closed");
}
else if (closeHandler.failed()) {
LOG.error("Database Connection failed to close!");
}
});
});
});
Есть идеи, что мне не хватает?
Всего наилучшего!