0
我有一個問題,這些天困惑我。我在Oracle weblogc服務器中爲我的REST API調用使用JDBC連接池。該軟件包已部署並能夠正確處理傳入的請求。在oracle weblogic Server中使用JDBC池,
但不知何故,在創建新請求之後,在數據庫會話級別,我將得到一個新的「INACTIVE」狀態的會話行,即使我故意在代碼中關閉了db連接。在我看來,這屆會議將永遠保持下去。最終它殺死了游泳池。
以下是我的代碼示例,其中「apple」是我的連接池名稱。
Connection connection = JDBCConnection.getJDBCConnction(apple);
Statement stmt = null;
String query ="select name from user";
String hosts="";
try {
stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
name = rs.getString("name");
}
} finally {
connection.close();
}
有什麼額外的我需要做的?
感謝,
傑克
正常情況下有非活動會話。當你完成你的連接並關閉它時,它會回到游泳池但未關閉。實際上它是無效的,這就是爲什麼你看到不活動的狀態。然而,關於你的代碼,你應該關閉你的Statement和ResultSet,因爲關閉池中的連接只是將它發送回池。 – Rouliboy
但是,由於它正在積累,那麼我們期望它們被回收? – user3595231
你的意思是說你創建了比池大小更多的會話嗎? – Rouliboy