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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM