0
我正在使用Vert.x实现RESTful API。我用它的MySQL和c3p0作为连接池的异步jdbc客户端。vert.x异步jdbc未关闭连接
我的问题是,虽然closeConnection处理程序成功,但实际的数据库连接没有关闭并重用。池会在几秒钟内完成,导致:BasicResourcePool:204 - 获取测试池已经超时。 [托管:20; max: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!");
}
});
});
});
任何想法我失踪?
一切顺利!
非常好的主意Paulo,但事实并非如此。我更新了代码(参见上文)。它总是说收盘成功。试图结束它的尝试 - 最后,相同的结果:误报。 – user3159152
在这种情况下,我会建议在vertx-jdbc-client上打开一个问题,并添加一个简单的复制器示例,以便对其进行调查。 –