事情发生在用C#将本地Oracle数据库上传到阿里云数据库的过程中。
可参考之前文章:微信小程序-小程序云开发操作阿里云mysql数据库实现手机端信息展示
我向阿里云中插入数据时,MySql一直报错,错误信息如下:
MySql.Data.MySqlClient.MySqlException: There is already an open DataReader associated with this Connection which must be closed first.
窗体加载时,建立数据库连接并打开。以为只用建立一次连接就可以。
(如果每次查询时都生成新连接的话不会存在这个问题,但那样数据库占用的资源相对会高很多)每个线程中都调用sqlCom方法。在这个执行过程中,就产生了上面所述的错误。
当初之所以这样写,是参照着当时写的Oracle操作的类。
但是对于Oracle来说,如果使用了方案-2,则在执行过程中,如果多次调用方法,比如for循环中,则有可能会出现错误
ORA-12516 "TNS监听程序找不到符合协议堆栈要求的可用处理程序"
原因就是oracle的会话数超出了限制,一般都是由于多次connect建立多个连接会话引起的,最后导致oracle无法响应新的请求,从而出现ora-12516错误。对于这种情况,我们可以采用方案-1的方法,在窗体加载时,直接打开数据库连接。在整个程序生命周期中,只建立一次连接。
文章转载自数字化设备人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1484次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
902次阅读
2025-03-17 11:33:53
MySQL8.0统计信息总结
闫建(Rock Yan)
551次阅读
2025-03-17 16:04:03
RAC 19C 删除+新增节点
gh
550次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
506次阅读
2025-03-13 14:38:19
SQL优化 - explain查看SQL执行计划(一)
金同学
442次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
430次阅读
2025-03-13 00:29:43
Oracle DataGuard高可用性解决方案详解
孙莹
380次阅读
2025-03-26 23:27:33
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
372次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
347次阅读
2025-04-01 08:47:17