ORACLE出现超出最大游标错误

keephope 2007-09-05 02:04:00
ORACLE出现超出最大游标错误应该如何解决?

我的类里面所有的连接都有相应的关连接操作

写法如下

DBContent db=null;
try
{
db=new DBContent();
......
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
db.close();
} catch (Exception e)
{
e.printStackTrace();
}
}


但是却报了ORACLE出现超出最大游标这个错误

我应该如何做才可以呢?

在页面上不存在开关数据库连接的代码
...全文
150 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keephope 2007-12-24
  • 打赏
  • 举报
回复
问题发现了

是因为ORACLE 10G 开关数据库连接速度过慢导致

在几秒内无法开关大量的连接
Sunny319 2007-11-19
  • 打赏
  • 举报
回复
你的statement没有关闭。这个错误我遇到过,把statement关闭了就可以了
keephope 2007-11-19
  • 打赏
  • 举报
回复
我可以确定的是

所有的连接都关闭了

但是依然会出现这个错误

ChDw 2007-09-21
  • 打赏
  • 举报
回复
你没有关闭ResultSet,所以出现问题了
shan__le 2007-09-21
  • 打赏
  • 举报
回复
我也发现java对oracle老出现这个问题,解决不了,头疼的呢
Tongates 2007-09-21
  • 打赏
  • 举报
回复
按照下面的进行确认:
1)确认OPEN_CURSORS的数量
SQL> show parameter open_cursors;

2)已经使用CURSOR的数量,这里使用"SCOTT"用户
SQL> select o.sid, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where user_name = 'SCOTT' and o.sid=s.sid
group by o.sid, osuser, machine
order by num_curs desc;

3)取得使用CURSOR的SQL语句,这里使用特定的SID=217
SQL> select q.sql_text
from v$open_cursor o, v$sql q
where q.hash_value=o.hash_value and o.sid = 217;

上面3步骤过后,就基本上找到哪个地方没有关闭Connection、Statement、ResultSet了.
所以,重点是找到代码中没关闭Connection、Statement、ResultSet 的地方.

Good luck

81,090

社区成员

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

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