這是個老問題了!你就查兩點:
一、看所有open的連線是否都close了。
二、如果訪問量很大,加上Max Pool Size=512這一句,當然這是要以損失系統效能為代價的!
這樣以後一定可以解決你的問題!
解決方案一
我 想原因可能是併發操作。DataReader是獨佔連線的,就是說你的程式可能設計上有問題。比如說最大連線設100,假設有100個人同時使用 DataReader正在讀取資料庫內容,那麼當第101人讀取的時候,連線池中的連線已經沒有了,就會出現上面的錯誤。DataReader是獨佔連線 的,每個DataReader都要佔用一個連線。當然這個情況是偶爾出現的,所以會很長時間出現一次,因為只有同時有超過連線池最大連線數量的併發操作才 會發生。而且你加大併發數量只能暫時緩解問題,如果你加大到200個併發連線,如果有201 人同時操作怎麼辦?你說了你使用Connection物件的Close()方法,這是不行的,因為Close()方法僅僅是關閉連線,但這個連線沒有釋 放,還是被這個物件佔用,要釋放必須使用Connection的Dispose()方法顯式釋放連線才可以,否則這個物件佔用的連線只能等到垃圾收集的情 況下才能被釋放。這種情況肯定會出現“超時時間已到”的錯誤。
解決方法:
1 修改幾個關鍵頁面或訪問比較頻繁的資料庫訪問操作,使用DataAdapter和DataSet來獲取資料庫資料,不要使用DataReader。
2 在訪問資料庫的頁面上使用資料快取,如果頁面的資料不是經常更新(幾分鐘更新一次)的話,使用Cache物件可以不用訪問資料庫而使用快取中的內容,那麼可以大大減少連線數量。
3 修改程式碼,把使用Connection物件的地方都在Close()後面加上Dispose()呼叫。
4 建議對資料庫操作進行大的修改,建立自己的資料庫操作代理類,繼承System.IDisposable介面,強迫釋放資源,這樣就不會出現連線數量不夠的問題了。
解決方案二
解決方法(*):WEB.config 裡面:在資料庫連線加 Max Pool Size = 512;server=local;uid=;pwd=;database=2004;Max Pool Size = 512;">一勞永逸。
解決方案三
估計是連線(Connection)物件沒有Close。倒是不必Dispose,而DataReader用完後應該關閉,但不關閉也沒問題,只是不關閉的話此連線物件就一直不能用,只要你最終關閉了連線物件就不會出問題。
連線物件在Open後的操作都放在try塊中,後面跟一個finally塊:conn.Close();
*(轉)超時時間已到。超時時間已到 但是尚未從池中獲取連線。出現這種情況可能是因為所有池連線均在使用 並且達到了最大池大小。
相關文章
- SQL Server ManagementS tudio無法修改表,超時時間已到SQLServer
- Springboot 連線池wait_timeout超時設定Spring BootAI
- golang連線MySQL時候的連線池設定GolangMySql
- PostgreSQL 連線 超時異常SQL
- gRPC為什麼使用截止時間而不是超時時間?RPC
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 網路超時控制 + 指數補償法超時連線
- Redis連線超時排查實錄Redis
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- 關於在執行java連線MongoDB時遇到的連線超時問題JavaMongoDB
- 解決代理連線超時問題
- 應用連線超時排查DB MySQLMySql
- 使用預設pypi源出現連線超時的解決辦法
- 使用secureCRT連線伺服器,防超時斷開Securecrt伺服器
- 獲取時間戳,幾個時間點的時間戳時間戳
- 一次性講清楚「連線池獲取連線慢」的所有原因
- 今天,你遇到redis線上連線超時了嗎?Redis
- 使用Python獲取DNS解析時間和響應時間PythonDNS
- 爬蟲代理為什麼會出現超時的情況?爬蟲
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- FileZilla 連結伺服器提示 20 秒連線超時伺服器
- 線性時間構造最大堆
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- 時間戳轉化為時間格式時間戳
- Java 獲取本地時間與網路時間Java
- 可以獲取 model 並並且可以 dd (),但是 return 時為 null,且不能呼叫方法Null
- 關鍵應用和超融合基礎架構:時機已到架構
- 時間線自制
- 查詢時若時間為空,開始時間取今天的零點,結束時間取當前時間
- 電腦連線使用代理ip顯示超時怎麼辦
- Linux時間的獲取與使用Linux
- 網路連線總超時?從四層模型上解析網路是怎麼連線的模型
- 細說PHP筆記08(第12章)--日期和時間,建立時間戳,mktime轉換unix時間戳,獲取字串時間,獲得日期和時間資訊,日期和時間格式化輸出,microtime()獲取微秒數PHP筆記時間戳字串
- Feign,HTTP連線超時問題SocketTimeoutException: Read timed outHTTPException
- pymysql 處理 連線超時最好的解決方案MySql
- 如何檢視MySQL資料庫一段時間內的連線情況?兩種方式來解鎖~MySql資料庫
- 獲取系統時間
- php 獲取時間差PHP
- 獲取當前時間