程序是连续的对某个表进行读写操作,每次的逻辑都一样,但经过几次读写之后(不超过20次) 就会返回ORA-12520错误,求助...
错误信息
ORA-12520, TNS:listener could not find available handler for requested type of server
The Connection descriptor used by the client was:
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(CONNECT_DATA = (SERVER =DEDICATED) (SERVICE_NAME = HaidenIT)))
上面的url和 tnsnames.ora 中的一样。
并且开始时能连上的,只是经过几次读写就出了问题。
第一次尝试java连oracle,不是很懂,有没说清楚的地方望指出,谢谢。
加了close之后还是一样的,基本还是插入8条数据之后出错了。
不过出现个怪异的现象,加了close之后,再加一个断点,读写一次就停一次,这样手动控制,居然数据可以插入20几条也不会出错,但把断点去掉继续执行马上又出错了。。。
崩溃了,求助。。
代码大体是这样的,字数限制简化了。
conn = new DBAccess();
...
循环:{
ResultSet rs = conn.executeQuery(sql1);
....
conn.executeUpdate(sql2);
...
conn.close;
}
试了rs关闭了,结果也是一样的。并且之前的conn.close方法中也有对rs的关闭。
最奇怪的是加了断点之后慢慢执行就没事。
头疼,不过无论能不能解决还是谢谢大家。
java连oracle ORA-12520错误。
答案:3 悬赏:0 手机版
解决时间 2021-02-19 01:59
- 提问者网友:焚苦与心
- 2021-02-18 11:31
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-02-18 13:04
楼主使用完了之后,记得关闭连接,con.close()调一下,要不你的连接一直在那里占用oracle可用连接数,要等30分钟之后才会被oracle回收。
你这里rs也要关闭,同一个连接打开的游标过多。
可以这样:
con = new DBAccess();
...
while(...){
rs = con.executeQuery(sql1);
....
rs.close();
rs = con.executeQuery(sql2);
....
rs.close();
....
}
。。。
con.close();
-------------------
不看完整代码很难回答。
你的con.close()不要写在循环里面。
你这里rs也要关闭,同一个连接打开的游标过多。
可以这样:
con = new DBAccess();
...
while(...){
rs = con.executeQuery(sql1);
....
rs.close();
rs = con.executeQuery(sql2);
....
rs.close();
....
}
。。。
con.close();
-------------------
不看完整代码很难回答。
你的con.close()不要写在循环里面。
全部回答
- 1楼网友:污到你湿
- 2021-02-18 14:31
你这是没有close吧
- 2楼网友:鸽屿
- 2021-02-18 14:25
你这是没错,只是你建监听程序了么 。。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯