ORA-03135: 连接失去联系
程序在运行中出现登录失败的情况,翻找日志错误还是在系统程序中查找到的
Exception information: Exception type: OracleException Exception message: ORA-03135: 连接失去联系 在 Oracle.ManagedDataAccess.Client.OracleException.HandleError(OracleTraceLevel level, OracleTraceTag tag, OracleTraceClassName className, OracleTraceFuncName funcName, Exception ex, OracleLogicalTransaction oracleLogicalTransaction)
下面是从网上找到的
实际上我们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;
————————————————
版权声明:本文为CSDN博主「黑螃蟹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tommy1100/article/details/84616060
分类:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)