2011-05-10 4 views
0

데이터베이스에 삽입을 확인하는 간단한 while 루프가 있습니다. 그것의 루프에 너무 오래 내 try catch "최대 풀 크기에 도달했습니다"오류 가져옵니다. 그래서 루프 하단에 나는 연결이 있습니다 clearallpools(); 그러나 그것은 여전히 ​​그것을 해결하지 못합니다.C# SQL max pool size에 도달했습니다.

while (!quit) 
{ 
connection to database strings timeout=400 

read from database 


connection.clearallpools(); 
} 
+0

명세서를 일괄 처리하십시오. 최대 수영장 크기를 치는 것은 아주 나쁜 일입니다. –

답변

3

당신은 아마 루프에 새 연결을 열어 하십시오.

위의 루프 열기 연결은 using 문이며 루프에서 사용합니다. 또한 clearallpools제거주의 : 아마

using(create new connection) 
{ 
    while (!quit) 
    { 
    connection to database strings timeout=400 

    read from database 


    // connection.clearallpools(); REMOVE THIS!!!! 
    } 
} 
4

당신이 당신의 연결을 종료되지 않습니다 ... 당신이 당신의 연결이 배치되어 보장 할

while(!quit){ 
    //do something here 
    using(var connection = GetMyConnection()){ 
     //do your db reads here 
    } 
    //do validations and something more here 
} 

을 사용할 수 있습니다/제대로 닫혀.

또한 풀을 지울 필요가 없습니다.

SQLConnection/DBConnection 개체는 IDisposable을 구현합니다. 당신은 당신은 연결 풀을 소모하고이

0

를 통해 이동 할 수 있습니다. 각 읽기 후에 풀로 풀어 놓을 연결을 닫아야합니다.