永发信息网

iBatis缘何出现(ORA-01000)最多允许打开的游标数错误?如何验证问题发生的原因?

答案:2  悬赏:80  手机版
解决时间 2021-01-04 16:33
先说一下我这边的情况。

系统用Spring+iBatis连结Oracle,连结数据库的处理使用Spring接口。

数据更新处理中,同时有使用batch-mode更新数据和不使用batch-mode更新数据,
此时,在正式的数据库环境中出现了(ORA-01000)最多允许打开的游标数错误。
当把所有的数据更新处理改为不使用batch-mode,程序会正常运行。

想要找出发生错误的原因,在测试环境中再现类似的错误。
但是无论怎么弄,在测试环境中都无法实现。

OPEN_CURSORS降到了3,用JMeter同时连接多个线程虚拟真实环境的流量也没用。
整个程序就像着了魔一样,在测试环境中就是实现不了(ORA-01000)最多允许打开的游标数错误。

如题,请高人指点!

目前我最想知道的事,如何在不修改程序代码的前提下,实现发生(ORA-01000)最多允许打开的游标数错误的情况。

因为这个ORA-01000并不是在所有情况下都发生,我想找出发生ORA-01000的原因。
最佳答案
出现这个错误的原因多是因为ResultSet或者是statement没有被及时关闭造成的。你JMeter测试的时候尽管OPEN_CURSORS降到了3,但是资源被正常关闭的情况下还是可以运行正常。
解决这个问题,可以用V$OPEN_CURSOR VIEW来查看具体出问题的是哪些SQL,从而找到问题点。
SELECt SID, USER_NAME, SQL_TEXT FROM V$OPEN_CURSOR;
执行上面的语句,查看哪些session打开了游标。
另外,由于ORA-01000错误,多半是多次循环处理中出现的问题,可以用如下SQL查看被多次发行的SQL
SQL> SELECt OC.SID, OC.USER_NAME, ST.SQL_TEXT, OC.NUM_CURSORS
2 FROM V$SQL ST
3 INNER JOIN (
4 SELECt SID, USER_NAME, ADDRESS, HASH_VALUE, COUNT(*) NUM_CURSORS
5 FROM V$OPEN_CURSOR
6 GROUP BY SID, USER_NAME, ADDRESS, HASH_VALUE
7 HAVINg COUNT(*) > 1
8 ) OC
9 ON OC.ADDRESS = ST.ADDRESS
10 AND OC.HASH_VALUE = ST.HASH_VALUE
11 ORDER BY OC.SID;
如果检索结果中NUM_CURSORS的数目很大,说明那条SQL发行的时候没有被正常关闭,从而找到问题点。
全部回答
你好 楼主。 很幸运的看到你的问题。 但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。 对于你的问题我爱莫能助! 可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。 希望我的回答也能够帮到你! 祝你好运。 快过年了, 最后祝您全家幸福健康快乐每一天!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
口算下列各题.23×4=320×6=180×30=7×50=5
神武如何快速刷成就
请问死神中泰虎他们去虚圈,怎么回来了?
属鸡的宝宝起小名
会计印章可以用蓝色的吗
---IhearthatBaiShancan’taffordhisschoolin
如何强加微信好友
当x=8时,x2=________,2x=________,x+2=___
He spent too much time talking on phone w
注射除皱有哪些
浙江音乐学校一个学期学费是多少?
-It’s nearly ten years since my father wo
单选题马克思说:“如果我们选择了最能为人类
单选题我国天山北坡和北疆大部分地区,冬、春
找出句中画线的熟语使用错误的一项A.所有的空
推荐资讯
蓝筹股票是什么意思?
非开放城市的学生怎么去台湾自由行
---Mybossoftenmademeworklonghoursadaywitho
懒投资可靠吗
打衣柜免漆板,买什么牌子的好,没有甲醛
怎么把酷我音乐里面的歌曲复制到百度云里面?
下列各组量中,具有相反意义的量是A.东走5米
舜发于畎亩之中,傅说举于版筑之间,胶鬲举于
单选题相同物质的量的不同固体的体积并不相同
请问从太原的漪汾小区到四十九中坐什么公交车
比亚迪汽车充电站提供多少伏的充电?380还是22
单选题于下列物质属于混合物的是A.液态氧B.石
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?