如果忘记在代码中关闭Java JDBC连接(例如oracle),想知道该连接将永远停留在DB端(oracle),或者Oracle在其端有任何实现可以在一段时间后自动释放DB连接?
try{
ds.getConnection();
//do some business logic
}catch(Exception e){
//handle exceptions
} finally{
//let's say DB connection is NOT cosed..
}
上面的代码中的打开连接会发生什么? Java程序退出后,连接是否会在数据库端自动释放?我了解强烈建议您不要关闭数据库连接,这也是不明智的做法。我只想了解其中的含义,并了解oracle如何处理未关闭的连接。
VM终止后,无论正常或多或少(所有非守护进程线程都结束,调用System.exit或接收到终止信号(例如在终端中按CTRL + C)或异常(退出)通过电源线或终止信号导致内核仅硬退出您的VM),所有TCP / IP连接都会自动消失,并随之清除连接。