Oracle相关异常处理
sql *net 没有完全安装的解决方案
问题描述:
用sqlplus登陆正常
而使用plsql时 同样的用户登陆同个数据库时
就报错:
初始化错误
SQL*NET没有完全安装
OracleHomekey:software/oracle
OracleHomedir
解决办法:
在PLSQL Developer选择Tools > Preferences > options > "Oracle Home" and "OCI Library",例如:
如果找不到,多找一下菜单里面,有让填写【Oracle Home】【OCI Library】的地方
Oracle10g装在D:\oracle\
则:Oracle Home为D:\oracle\product\10.1.0
OCI Library为D:\oracle\product\10.1.0\Db_1\BIN\oci.dll
配置完以后重新启动PLSQL Developer,会发现登录界面多了一栏Connect as 的内容。然后可以进行登录。
ORA-03135: 连接失去联系
实际上我们new一个连接的时候,是从数据库连接池里面拿到的连接,这些连接放在.net Provider里面。Conn.Close()并不是关闭了连接,而是把连接还给了连接池。现在的问题是Oracle Provider的问题,而不是代码的问题。程序很久没有跟数据库交互,数据库服务器端就把连接的Open状态关了,但是Provider没有及时处理,依然给了C#代码用,所以就抛出了这个异常。
解决办法:不使用连接池,每次直连数据库,虽然不会出现这个问题,但是会有性能上的损失。
在app.config的配置文件中,在DataSource=(XXXXX)这个字符串中,加入不使用连接池Pooling =false
Data Source =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521)))(CONNECT_DATA =(SID=XXXXXXX)(SERVER=DEDICATED)));Pooling =false;User ID=XXXX;Password=XXXXX;
一般默认连接时长是10分钟,如果出现这个失去联系,最好不要频繁尝试,等一段时间后进行操作最好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了