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上打開一個問題,並添加一個簡單的複製器示例,以便對其進行調查。 –