日期:2014-05-17  浏览次数:20602 次

oracle 最大连接数 为什么main方法无限拿连接
oracle 最大连接数 为什么main方法无限拿连接?
以sysdba身份登录,执行sql语句,可查询
show parameter processes; --最大连接数
查询出150条连接数

执行main代码:
Java code

public class TestClient {

    public static void main(String[] args) throws Exception {
        
        Class.forName("oracle.jdbc.driver.OracleDriver");
        for (int i = 0; i < 2000; i++) {
            Connection con = DriverManager.getConnection(
                    "jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
            System.out.println("----------- " + i + " " + con);
        }
    }
}



最大连接数不是150吗?为什么我main方法里的conn可以无限取得?
小白求助,谢谢。

还有就是执行main方法,oracle是不是会定时释放连接?在服务器tomcat里跑oracle会定时释放连接吗?不是说不写conn.close(); 服务器连接的DB会崩溃吗。

------解决方案--------------------
得修改下再试试看:
ArrayList lst = new ArrayList();
for (int i = 0; i < 2000; i++) {
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
lst.add(con);
System.out.println("----------- " + i + " " + con);
}

------解决方案--------------------
探讨

引用:
得修改下再试试看:
ArrayList lst = new ArrayList();
for (int i = 0; i < 2000; i++) {
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");……

------解决方案--------------------
探讨

引用:
引用:

引用:
得修改下再试试看:
ArrayList lst = new ArrayList();
for (int i = 0; i < 2000; i++) {
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:15……

哦,看来GC回收非常快的啊。
conn由GC关闭还是oracle啊,oracle能定时释放conn吗,有点不太明白。。

------解决方案--------------------
楼主用sqlplus登录到oracle上去看看有多少sid
也就是当前有多少连接,以及每个连接所属的机器不就好了。

------解决方案--------------------
探讨

引用:

引用:
引用:

引用:
得修改下再试试看:
ArrayList lst = new ArrayList();
for (int i = 0; i < 2000; i++) {
Connection con = DriverManager.getConnection(
"jdbc:oracle:th……