超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
[重要通告]如您遇疑難雜癥,本站支持知識付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
“超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小 ”
今天調(diào)試一個(gè)網(wǎng)站,出現(xiàn)了上面的這個(gè)問題,提示 超時(shí)時(shí)間已到XX 下面上圖
超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.InvalidOperationException: 超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
解決方式如下:
<add name="ConnStr" connectionString="Data Source=.;Initial Catalog=dbName;Persist Security Info=True;User ID=sa;Password=pwd;Enlist=true;Pooling=true;Max Pool Size = 300; Min Pool Size=0; Connection Lifetime = 300;packet size=1000;" providerName="System.Data.SqlClient"/>
除了連接字符串的問題外,還要注意用完的鏈接要及時(shí)關(guān)閉 ?同時(shí)把網(wǎng)上看到的幾種解決方式一起放在此,都大致相同;
======================================================================
NET網(wǎng)站出錯信息如下:
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.InvalidOperationException: 超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
源錯誤:
執(zhí)行當(dāng)前 Web 請求期間生成了未處理的異常??梢允褂孟旅娴漠惓6褩8櫺畔⒋_定有關(guān)異常原因和發(fā)生位置的信息。 |
“/”應(yīng)用程序中的服務(wù)器錯誤。
超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
可能原因如下:并發(fā)操作,Connection用后沒有關(guān)閉,或者因?yàn)镈ataReader連接獨(dú)占連接。
解決方法:
???????? 1 修改幾個(gè)關(guān)鍵頁面或訪問比較頻繁的數(shù)據(jù)庫訪問操作,使用DataAdapter和DataSet來獲取數(shù)據(jù)庫數(shù)據(jù),不要使用DataReader。
2 在訪問數(shù)據(jù)庫的頁面上使用數(shù)據(jù)緩存,如果頁面的數(shù)據(jù)不是經(jīng)常更新(幾分鐘更新一次)的話,使用Cache對象可以不用訪問數(shù)據(jù)庫而使用緩存中的內(nèi)容,那么可以大大減少連接數(shù)量。
3 修改代碼,把使用Connection對象的地方都在Close()后面加上Dispose()調(diào)用。
4 建議對數(shù)據(jù)庫操作進(jìn)行大的修改,建立自己的數(shù)據(jù)庫操作代理類,繼承System.IDisposable接口,強(qiáng)迫釋放資源,這樣就不會出現(xiàn)連接數(shù)量不夠的問題了。
華麗的分割線=====================華麗的分割線=========================================華麗的分割線
connectionStrings>
<add name="ConfigConStr" connectionString="Data Source=localhost;Initial Catalog=庫;uid=用戶名;pwd=密碼;Packet Size=8192;Max Pool Size=1000" providerName="System.Data.SqlClient" />
</connectionStrings>
將連接池?cái)?shù)目改大點(diǎn)即可。如上述代碼
華麗的分割線=====================華麗的分割線=========================================華麗的分割線
=======================================================
“/ASP.Web”應(yīng)用程序中的服務(wù)器錯誤。
--------------------------------------------------------------------------------
超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
說明: 執(zhí)行當(dāng)前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細(xì)信息。
異常詳細(xì)信息: System.InvalidOperationException: 超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
這是個(gè)老問題了!你就查兩點(diǎn):
一、看所有open的連接是否都close了。
二、如果訪問量很大,加上Max?? Pool?? Size=512這一句,當(dāng)然這是要以損失系統(tǒng)性能為代價(jià)的!
這樣以后一定可以解決你的問題!
解決方案一
我 想原因可能是并發(fā)操作。DataReader是獨(dú)占連接的,就是說你的程序可能設(shè)計(jì)上有問題。比如說最大連接設(shè)100,假設(shè)有100個(gè)人同時(shí)使用 DataReader正在讀取數(shù)據(jù)庫內(nèi)容,那么當(dāng)?shù)?01人讀取的時(shí)候,連接池中的連接已經(jīng)沒有了,就會出現(xiàn)上面的錯誤。DataReader是獨(dú)占連接 的,每個(gè)DataReader都要占用一個(gè)連接。當(dāng)然這個(gè)情況是偶爾出現(xiàn)的,所以會很長時(shí)間出現(xiàn)一次,因?yàn)橹挥型瑫r(shí)有超過連接池最大連接數(shù)量的并發(fā)操作才 會發(fā)生。而且你加大并發(fā)數(shù)量只能暫時(shí)緩解問題,如果你加大到200個(gè)并發(fā)連接,如果有201 人同時(shí)操作怎么辦?你說了你使用Connection對象的Close()方法,這是不行的,因?yàn)镃lose()方法僅僅是關(guān)閉連接,但這個(gè)連接沒有釋 放,還是被這個(gè)對象占用,要釋放必須使用Connection的Dispose()方法顯式釋放連接才可以,否則這個(gè)對象占用的連接只能等到垃圾收集的情 況下才能被釋放。這種情況肯定會出現(xiàn)“超時(shí)時(shí)間已到”的錯誤。
解決方法:
1 修改幾個(gè)關(guān)鍵頁面或訪問比較頻繁的數(shù)據(jù)庫訪問操作,使用DataAdapter和DataSet來獲取數(shù)據(jù)庫數(shù)據(jù),不要使用DataReader。
2 在訪問數(shù)據(jù)庫的頁面上使用數(shù)據(jù)緩存,如果頁面的數(shù)據(jù)不是經(jīng)常更新(幾分鐘更新一次)的話,使用Cache對象可以不用訪問數(shù)據(jù)庫而使用緩存中的內(nèi)容,那么可以大大減少連接數(shù)量。
3 修改代碼,把使用Connection對象的地方都在Close()后面加上Dispose()調(diào)用。
4 建議對數(shù)據(jù)庫操作進(jìn)行大的修改,建立自己的數(shù)據(jù)庫操作代理類,繼承System.IDisposable接口,強(qiáng)迫釋放資源,這樣就不會出現(xiàn)連接數(shù)量不夠的問題了。
解決方案二
解決方法(*):WEB.config 里面:在數(shù)據(jù)庫連接加 Max Pool Size = 512;server=local;uid=;pwd=;database=2004;Max Pool Size = 512;">一勞永逸。
解決方案三
估計(jì)是連接(Connection)對象沒有Close。倒是不必Dispose,而DataReader用完后應(yīng)該關(guān)閉,但不關(guān)閉也沒問題,只是不關(guān)閉的話此連接對象就一直不能用,只要你最終關(guān)閉了連接對象就不會出問題。
連接對象在Open后的操作都放在try塊中,后面跟一個(gè)finally塊:conn.Close();
錯誤:?? 3154一般是由于恢復(fù)數(shù)據(jù)庫備份時(shí)指定的數(shù)據(jù)庫名和原有數(shù)據(jù)庫中數(shù)據(jù)庫相同引起的
你指定一個(gè)不易重復(fù)的名字,
或者在恢復(fù)時(shí)指定選項(xiàng):覆蓋現(xiàn)存數(shù)據(jù)庫
本人在將SQL2000數(shù)據(jù)庫導(dǎo)入SQL2005出錯,錯誤信息如下:
還原 對于 服務(wù)器“EDWARD//TRACY”失敗。 (Microsoft.SqlServer.Smo)
有關(guān)幫助信息,請單擊: http://go.microsoft.com/fwlink?Prod...er&LinkId=20476
------------------------------
其他信息:
執(zhí)行 Transact-SQL 語句或批處理時(shí)發(fā)生了異常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
備份集中的數(shù)據(jù)庫備份與現(xiàn)有的 /''foodgood/'' 數(shù)據(jù)庫不同。
RESTORE DATABASE 正在異常終止。 (Microsoft SQL Server,錯誤: 3154)
今天我準(zhǔn)備把sql2000 的備份數(shù)據(jù)庫 sp.bak 還原在sql2005 上 (因?yàn)檎n堂上用的是sql2000 而我自己電腦里裝的是sql2005 )遇到了點(diǎn)麻煩。就是象sql2000 一樣操作還原時(shí)出現(xiàn)了點(diǎn)問題。說不能還原,最后找到了點(diǎn)方法終于搞定。
1,在sql2005上新建一個(gè)數(shù)據(jù)庫比如:商品
2,選擇要還原的 sql2000備份文件
3,這里很重要,選中“覆...”看圖
sql2000 備份的數(shù)據(jù)庫還原到sql2005后,選擇“數(shù)據(jù)庫關(guān)系圖”提示:此數(shù)據(jù)庫沒有有效所有者,因此無法安裝數(shù)據(jù)庫關(guān)系圖支持對象。若要繼續(xù),請首先使用“數(shù) 據(jù)庫屬性”對話框的“文件”頁或? ALTER? AUTHORIZATION? 語句將數(shù)據(jù)庫所有者設(shè)置為有效登錄名,然后再添加數(shù)據(jù)庫關(guān)系圖支持對象。
解決方法如下:
1、設(shè)置兼容級別為90(2005為90)
USE? [master]
GO
EXEC? dbo.sp_dbcmptlevel? at dbname=''數(shù)據(jù)庫名'',? @new_cmptlevel=90
GO
或是選責(zé)你還原的數(shù)據(jù)庫,點(diǎn)右鍵,選屬性->選項(xiàng)->兼容級別,選擇sqlserver2005(90) 然后確定,
這時(shí),你在該數(shù)據(jù)庫下展開“數(shù)據(jù)庫關(guān)系圖”節(jié)點(diǎn)時(shí)會有個(gè)提示,"此數(shù)據(jù)庫缺少一個(gè)或多個(gè)使用數(shù)據(jù)庫關(guān)系圖所需的支持對象,是否創(chuàng)建",選擇“是”即可。
2、通過以上的方法操作,如果問題依然存在的話,按下列方法繼續(xù)
選擇你的數(shù)據(jù)庫,然后選擇"安全性"->"用戶",選擇dbo,打開屬性頁,如登錄名為空的話,新建查詢,然后
use [你的數(shù)據(jù)庫名]
EXEC?? sp_changedbowner?? ''sa''
執(zhí)行成功后,你再選擇"數(shù)據(jù)庫關(guān)系圖"節(jié)點(diǎn),時(shí)提示 “此數(shù)據(jù)庫缺少一個(gè)或多個(gè)使用數(shù)據(jù)庫關(guān)系圖所需的支持對象,是否創(chuàng)建",選擇“是”即可。 就可以看到原先建的關(guān)系圖了。
1、 對Table中的詳細(xì)內(nèi)容,以不同的顏色間隔開相鄰的兩行。
A:選擇Table的Detail行,選擇屬性中的BackgroundColor,值選擇表達(dá)式,輸入:=iif(RowNumber(Nothing) Mod 2, "White", "Beige")。
2、設(shè)置每面顯示Table表頭或表尾
A:選擇Table Header或Table Footer,將屬性中的RepeatOnNewpage設(shè)為True dot
3、在每頁都顯示放入的圖片或標(biāo)題頭等信息。
A:只須在Table Header中加行數(shù),把你要顯示的內(nèi)容放到單元格中,然后再按第二條方式設(shè)置后就可以了。
============================================================================
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!