当前位置: 代码迷 >> Java Web开发 >> java 联接oracle 出错
  详细解决方案

java 联接oracle 出错

热度:704   发布时间:2016-04-17 13:45:27.0
java 连接oracle 出错
我用JAVA远程连接ORACLE   8I   时出现异常,下面是连接代码和出错报告请高手帮忙看看。
public   static   Connection   dbConn(String   name,String   pass)     {
try   {
  Class.forName( "oracle.jdbc.OracleDriver ");
}   catch   (ClassNotFoundException   e)   {
e.printStackTrace();
}
try   {
conn   =DriverManager.getConnection( "jdbc:oracle:thin:@10.53.23.11:1521:xMFY ",name,pass);
}   catch   (SQLException   e1)   {
e1.printStackTrace();
}
return   conn;
}
public   static   void   main(String[]   args){

try{
conn=dbConn( "btsrmis ", "btsrmis ");
if(conn==null){
System.out.println( "ORACLE   DB   connect   failed! ");
System.exit(0);
}
System.out.println( "ORACLE   DB   connect   success! ");
conn.close();
}catch(Exception   e){
e.printStackTrace();

}
}
ORACLE驱动CLASSES12.JAR都装好了。运行出错:

java.sql.SQLException:   Io   异常:   Connection   refused(DESCRIPTION=(TMP=)(VSNNUM=135294976)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323)
at   oracle.jdbc.driver.OracleConnection. <init> (OracleConnection.java:263)
at   oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at   oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at   java.sql.DriverManager.getConnection(Unknown   Source)
at   java.sql.DriverManager.getConnection(Unknown   Source)
at   db.oracle.util.DBConn.dbConn(DBConn.java:16)ORACLE   DB   connect   failed!

at   db.oracle.util.DBConn.main(DBConn.java:25)
会不会是远程数据库问题?


------解决方案--------------------
oracle是不是已经运行?
不知道 "jdbc:oracle:thin:@10.53.23.11:1521:xMFY "是不是正确的
其它地方没有错误
下面异常出现在执行conn =DriverManager.getConnection( "jdbc:oracle:thin:@10.53.23.11:1521:xMFY ",name,pass);的时候

java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135294976)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

------解决方案--------------------
网上看到的一篇帖子希望对楼主有帮助:
关于ORACLE的ora-12505报错以及连接问题的问答资料


1:配置JDBC Connection Pool时出错
原文:http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=123&threadID=8769
问题描述:我安装weblogic8.1后,准备连接oracle9i,创建JDBC Connection Pool时出错,错误提示:
Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093120)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
Driver Classname: oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@145.32.16.1:1521:zzlt

oracle的日志:
TNS-12505: TNS:listener could not resolve SID given in connect descriptor


sql plus使用都很正常。


------------------
解答1:我也遇到这个问题,但是幸运的是我刚刚解决。
错误码一样。你看看如下几个问题:
1、zzlt 是你的数据库名还是数据库的实例名。
比如我在SQL PLUS里面连接的是finance数据库实例,一切正常,但是Oracle的Url是 finance.ora,那么在端口后面就应该写ora而不是finance.


2、到你的Oracle数据上去看看,修改一下一个配置文件,具体文件我忘了,反正我把里面的ora全部换成了IP地址,然后通过,现在应用良好。


------------
解答2:
在 ORACLE 里用tnsping 看看listener启动了吗?
再看看listener config file 里面有没有写上你的SID
解答3:


到服务器上看一下,listener.ora
SID_LIST_LISTENER =
  相关解决方案