ORA-01000: 超出打开游标的最大数 问题的分析和解决

简介:

症状:系统运行了一段时间报错:java.sql.SQLException: ORA-01000: 超出打开游标的最大数

step 1:
    查看数据库当前的游标数配置slqplus:show parameter open_cursors;

step 2:
    查看游标使用情况:
select o.sid, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where user_name = 'user' and o.sid=s.sid
group by o.sid, osuser, machine
order by  num_curs desc;
此处的user_name='user'中,user代表占用数据库资源的数据库用户名.

step 3:
    查看游标执行的sql情况:

select o.sid q.sql_text
from v$open_cursor o, v$sql q
where q.hash_value=o.hash_value and o.sid = 123;

step 4:
    根据游标占用情况分析访问数据库的程序在资源释放上是否正常,如果程序释放资源没有问题,则加大游标数。
    alter system set open_cursors=2000 scope=both;
    
    补充:在java代码中,执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭。
     一般来说,我们在写Java代码的时候,createStatement和prepareStatement都应该要放在循环外面,而且使用了这些Statment后,及时关闭。最好是在执行了一次executeQuery、executeUpdate等之后,如果不需要使用结果集(ResultSet)的数据,就马上将Statment关闭,调用close()方法。


本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/archive/2011/06/14/2080575.html,如需转载请自行联系原作者

目录
相关文章
|
存储 SQL Oracle
Oracle使用expdp/impdp实现全库导入导出的整体流程
Oracle的全库导入,首先一点必须先创建数据库,创建了数据库,才能往该数据库导入所有数据。相对来说,使用Oracle进行数据导入导出还很有些“麻烦”的,大多数资料上来就是......
12530 0
Oracle使用expdp/impdp实现全库导入导出的整体流程
|
Oracle 安全 关系型数据库
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程(一)
|
Web App开发 安全 Java
开源漏洞扫描工具(OWASP-Dependency-Check)探索
背景 随着公司逐渐发展壮大,网络信息安全变得越来越重要。由此激发了我们成立兴趣小组(凯京爆破小组)研究网络信息安全的欲望。然而信息安全的防范,还得从底层编码开始做起。这样依赖性扫描工具(OWASP-Dependency-Check)就进入了我们的视线,既符合我们当前的需求又使用方便简单,自然而然的成为了我们探索的对象。
18969 0
|
缓存 Java 程序员
Spring中异步注解@Async的使用、原理及使用时可能导致的问题
本文主要介绍了Spring中异步注解的使用、原理及可能碰到的问题,针对每个问题文中也给出了方案。希望通过这篇文章能帮助你彻底掌握`@Async`注解的使用,知其然并知其所以然!
14207 4
|
6月前
|
存储 API 数据安全/隐私保护
Apipost vs Apifox:支持离线/强制登录,谁在捍卫开发者的数据安全?
在工具选型中,API管理工具是助手还是枷锁?文章通过分析Apifox强制登录、依赖云端,断网即失效;Apipost支持游客模式和本地存储,在极端环境下仍可用坐对比,揭露是否支持离线功能的本质是对数据主权的不同态度。从登录策略、离线能力到协作模式,可以看到,Apipost更尊重开发者自由与数据安全,适合对敏感性要求高的项目。最终建议选择工具时思考:若服务中断或断网,是否仍保有主动权?真正优秀的工具应如氧气般关键时不可或缺。
1093 9
Apipost vs Apifox:支持离线/强制登录,谁在捍卫开发者的数据安全?
|
11月前
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
2890 4
|
消息中间件 存储 缓存
RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?
本文主要向大家介绍如何利用 RocketMQ 可观测体系中的指标监控,对生产环境中典型场景:消息堆积、消息收发失败等场景配置合理的监控预警,快速发现问题,定位问题。
1888 0
RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?
|
缓存 Java
8 种 Java 内存溢出之一:Java Heap Space
8 种 Java 内存溢出之一:Java Heap Space
|
SQL Oracle 关系型数据库
数据库连接报错之IO异常(The Network Adapter could not establish the connection)
有以下四个原因: 1. ORACLE数据库 1、oracle配置 listener.ora 和tnsnames.ora 文件里面查看是否配置正确
3792 1