java用thin来连接Oracle时,Driver.getConnection()中抛出
io异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093376)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
的异常,请问是什么原因? 
具体异常如下:
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093376)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)

解决方案 »

  1.   

    可以保证用户名,密码有效,IP为内网ip,防火墙不会拦截连接。
    String url ="jdbc:oracle:thin:@"+dbaddress+":1521:"+dbName;
    Class.forName("oracle.jdbc.driver.OracleDriver");
            return java.sql.DriverManager.getConnection(url, user, password);
      

  2.   

    数据库实例名是你安装数据库时指定的SID,不要使用tns中描述的串,比如:
    hiis =      // 不要使用这个名字
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
        ...
      

  3.   

    不懂这个,没有找到数据库管理员。
    不过我另外写了一个几行的小程序来连接这个数据库,居然可以连接,可以执行查询语句,没有问题。
    但是一用这个,他还是在getConnection()的时候就出错。不知道为什么。