2010年7月16日 星期五

已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並已達共用集區大小的最大值。

1.與DB的connection開太多且用完後沒有關閉,導致connection pool已滿
2.dataReader 用完後沒有關閉

我的情況是兩種可能都有 XD

改掉之後程式就正常了

還有一種方法就是將connection pool加大

設定的方法就是在connectionString最後面加上Max pool size = 200

類似這樣
Server=myServerAddress;Database=myDataBase;Uid=myUsernamePwd=myPassword;Max pool size = 200

參考資料

補充說明:參考資料

Min pool size 代表在connection pool裡最少有幾個連接數,假設你Min pool size設5
那connection pool建立的時候,裡面就會有5個conncetion。

Max pool size則代表connection pool裡最多能有幾個connection。


如果connectioin已達到Max pool size且connection pool中的connection全部都在使用中,要打開新的SqlConnection物件時,則要等待一個SqlConnection物件關閉,然後才可以使用新的SqlConnection物件。如果請求等待時間超過ConnectionTimeout屬性指定的秒數,則會拋出exception。

沒有留言:

張貼留言