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

posted @ 2022-03-31 15:15  w_junguang  阅读(7233)  评论(0编辑  收藏  举报