测试环境:redhat,oracle 11.2.0.3.0
测试目标:当java进程关闭之后,进程的数据库连接会不会被释放,何时被释放
实验证明:在运行topology前,执行 select count(*) from v$session;
得到的连接数是29
而在运行topology之后,执行命令得到的连接数开始时33,之后变成31
在我kill掉topology之后(不论是通过UI界面kill,还是通过命令行kill),得到的数据库连接个数是29,和最开始保持了一致
网友认为:
1.Depends on how to make and close connection on client side, connection pooling has its own way to close connection.
2.Connection.Close() 并不关闭数据库连接, 而是把连接放回连接池。Connection.ClearPool() 或者Connection.ClearAllPool() 方法清除连接池。或者,在连接字符串中把pooling设置为false 关闭连接池。