ORA-01000: 超出打开游标的最大数的问题

昨天在一个自己编写的windows服务运行中出现了这个问题,功能大体上是通过调用web服务从一个数据库获取数据更新到另一个数据库中(这2个数据库业务实现的要求有相似之处,但表结构设计差异较大,彼此又存在数据交互的需要,因此就采用了这种设计方案),每天23点进行一次操作,白天测试用了几条数据跑没发现任何问题,部署以后晚上在真实环境下运行出现了如下错误:ORA-01000: 超出打开游标的最大数

仔细检查了代码发现我只在RSyncTer方法中声明并打开一个数据库连接,而在RSyncTer方法中调用的OperateTer方法以及OperateTer方法调用的GetTEngineInfo方法统统使用了这个连接,再看一下操作数据库的底层方法里并没有关闭连接,我只是在RSyncTer方法的finally块里关闭了连接,这样看似是仅使用了一个连接,目的是想减少对连接资源的占用,但在运行时由于涉及的多个方法都要用到数据库连接(通过传连接参数)实际上是循环一次执行一条数据打开了多个连接,要命的是这些连接每次都没关闭,对数据库查询来说就是打开了多个游标,数据量大的时候(当时运行环境也就1500条的样子)这个问题才会出现了。看来大家在使用第三方数据访问类时(本人这个项目所用到的类也是直接从网上down的)仔细检查一下还是很有必要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值