[急]oracle的连接问题,是常见的那种io异常.讨论有分

icecloud 2003-09-18 07:09:29
Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=36716544)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

环境:linux9.2,tomcat-〉远程登录sco,oracle7.3.4,准备换用oracle9

代码如下:
<%

String sDBDriver = "oracle.jdbc.driver.OracleDriver";
String sConnStr = "jdbc:oracle:thin:@135.66.9.5:1521:ORCL";

Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
try
{

Class.forName(sDBDriver).newInstance();
conn = DriverManager.getConnection(sConnStr,"oracle","oracle");

}
catch(Exception e)
{
out.println(e);
out.println(e.getMessage());
e.printStackTrace();
}

%>

已经确定不是classpath的问题。

有几个问题我想搞明白
1 oracle提供了许多种驱动程序,比如9.1,9.2,8.1等等.有什么不同么?
我上面用的oracle7.3.4,和oracle8的class12.jar会不会是这个原因?
而其中的jdk又是什么意思?oracle8没提供class14,难道不支持jdk1.4么?

2 登录oracle:ORCL是不是就是让oracle来判断该用户的启始数据库?
如果换成mydb之类的就是自己的数据库了?也就是说,sid就是数据库名

3 各位有什么精彩代码拿出来看看哦
 我希望总结一个oracle问答贴出来 :〉


...全文
138 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang21cnboy 2003-09-19
  • 打赏
  • 举报
回复
确定你的用户名和密码都正确?????

上面的提示,我觉得是你的url有问题!!!!

icecloud 2003-09-19
  • 打赏
  • 举报
回复
up...
icecloud 2003-09-19
  • 打赏
  • 举报
回复
嘿。。。不要质疑我的星啊。我一向都是用mysql的。
没用过oracle而已啊。。(电脑配置太低。。),所谓术业有专攻。。
过些天就要2星了。嘿嘿。。。

感谢zeeler(鸭子),kaibinsj(天翔) ,这样的答案蛮好的我喜欢嘿嘿

但是8i以下版本的那用哪个驱动呢?

oracle网站没写清楚。
键舞鸿蒙 2003-09-19
  • 打赏
  • 举报
回复
help u up
buggavin 2003-09-19
  • 打赏
  • 举报
回复
2 登录oracle:ORCL是不是就是让oracle来判断该用户的启始数据库?
如果换成mydb之类的就是自己的数据库了?也就是说,sid就是数据库名
~~~~~~~~~~~~~~~~不是数据库名!
shipp 2003-09-19
  • 打赏
  • 举报
回复
关注中..
lynx1111 2003-09-19
  • 打赏
  • 举报
回复
怎样查得数据库的SID:

select name from v$database;
也可以直接查看 init.ora文件
csdn_wangkp 2003-09-19
  • 打赏
  • 举报
回复
oracle8i以后的版本一般都是用classes12.zip
csdn_wangkp 2003-09-19
  • 打赏
  • 举报
回复
首先更正一点:sid不是数据库的名字,而是oracle的实例名
除非他们俩的名字时一样的,否则是有区别的。
我用的平台是xp+tomcat+oracle9 +classes12.zip
...............
private String sConnStr="jdbc:oracle:thin:@127.0.0.1
:1521:oracl";
确认oracl为sid,并不是全局数据库的名字。
服务器的监听程序是否启动

如果是驱动的问题,应该是其他的错误提示



fast_time 2003-09-19
  • 打赏
  • 举报
回复
每个版本的Oracle都会自己带有驱动,找一下就好了
shipp 2003-09-19
  • 打赏
  • 举报
回复
UP...
Geranium 2003-09-19
  • 打赏
  • 举报
回复
一般不要让地版本的Oracle用高版本的驱动。
zeeler 2003-09-18
  • 打赏
  • 举报
回复
Oracle的JDBC是分版本的,不同的数据库版本要用不同的JDBC版本,只要你去Oracle的官方网站看看(http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html),就能知道了。class12.zip是Oracle 8i(8.1.7)的驱动,sdk当然是指的j2sdk(除非你没有学过Java),sdk1.2就是j2sdk1.2,如果你的sdk是1.4也可以用1.2的;另外,9.1 9.2 8.1都是指的Oracle的版本,Oracle 9i的版本有9.0.1.4, 9.0.1, 9.2.0.1, 9.2.0.3,Oracle 8i的版本有8.1.6,8.1.7等,至于你说的7.3.4我没有用过。另外,Oracle网站上有JDBC的文档,你可以看看,还有示例。
kaibinsj 2003-09-18
  • 打赏
  • 举报
回复
同意楼上的,class12.jar就是9i的驱动,网上也有专门的驱动,都能用。
sid可以说就是数据库名
放一个连接池出来
package db;

import java.sql.*;
import java.util.*;

/*连接池管理类,可以管理多个数据库连接池*/
public class DBConnManager {
//连接池名列表
private Vector poolnames = new Vector();
//驱动程序名列表
private Vector drivernames = new Vector();
//数据库标识列表
private Vector dbids = new Vector();
//用户名列表
private Vector usernames = new Vector();
//密码列表
private Vector passwds = new Vector();
//最大连接数列表
private Vector maxconns = new Vector();
//连接池队列
private Hashtable connPools = new Hashtable();

public DBConnManager() {
//添加scjp数据库的连接信息
poolnames.addElement("scjp");
drivernames.addElement("oracle.jdbc.driver.OracleDriver");
dbids.addElement("jdbc:oracle:thin:@192.168.168.13:1521:scjp");
usernames.addElement("scjp");
passwds.addElement("scjp");
maxconns.addElement("15");

//添加test数据库的连接信息
poolnames.addElement("test");
drivernames.addElement("oracle.jdbc.driver.OracleDriver");
dbids.addElement("jdbc:oracle:thin:@192.168.168.13:1521:test");
usernames.addElement("test");
passwds.addElement("test");
maxconns.addElement("15");


//创建连接池
createPools();
}

/*将连接返回给由指定的连接池*/
public void releaseConnection(String name, Connection con) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
pool.releaseConnection(con);
}

/*得到一个指定连接池中的连接*/
public Connection getConnection(String name) {
DBConnPool pool = (DBConnPool) connPools.get(name);
if (pool != null)
return pool.getConnection();
return null;
}

/*关闭所有连接*/
public synchronized void closeConns() {
Enumeration allPools = connPools.elements();
while (allPools.hasMoreElements()) {
DBConnPool pool = (DBConnPool) allPools.nextElement();
pool.closeConn();
}
}

/*创建连接池*/
private void createPools() {
for(int i = 0; i<poolnames.size();i++){
String poolname = poolnames.elementAt(i).toString();
String drivername = drivernames.elementAt(i).toString();
String dbid = dbids.elementAt(i).toString();
String username = usernames.elementAt(i).toString();
String passwd = passwds.elementAt(i).toString();
int maxconn=0;
try {
maxconn = Integer.parseInt(maxconns.elementAt(i).toString());
}
catch (NumberFormatException e) {
e.printStackTrace();
}
DBConnPool pool = new DBConnPool(poolname, drivername, dbid, username, passwd, maxconn);
connPools.put(poolname, pool);
}
}
}

yaray 2003-09-18
  • 打赏
  • 举报
回复
问题1 & 2 与楼主的星星 有点不太符合哦 ^_^
flyycyu 2003-09-18
  • 打赏
  • 举报
回复
把oracle安装后jdbc目录下的class12.jar考着就是
clare0peng 2003-09-18
  • 打赏
  • 举报
回复
希望你好運
dgyujingjun 2003-09-18
  • 打赏
  • 举报
回复
up
Yssss1980 2003-09-18
  • 打赏
  • 举报
回复
Oracle9以前好像都没有jdk1.4版本的驱动
寒舍人 2003-09-18
  • 打赏
  • 举报
回复
up
加载更多回复(3)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧