문제

나는 몇 시간 동안 잘 작동하는 사이트를 만들고 있지만 *.asmx 및 *.ashx 호출은 타이밍을 시작합니다.

예외 : "시간 초과가 만료되었습니다. 풀에서 연결을 얻기 전에 경과 한 시간 초과 기간은 모든 풀링 된 연결이 사용되었고 최대 풀 크기에 도달했기 때문에 발생했을 수 있습니다."

나는 subsonic을 ORM으로 사용하고 있습니다.

문제는 몇 분마다 실행되고 데이터베이스에 도달하는 예정된 작업을 기반으로합니다. SQL Server 2000의 "Current Activity"를 볼 때 다음과 같습니다.

  • "수면"상태가있는 100 개의 프로세스
  • 100 자물쇠

100 개의 프로세스는 응용 프로그램 ".NET SQLClient Data Provider"에서 나온 것이며 명령은 "대기 명령"입니다.

그래서 나는 그것이 문제라고 생각합니다. . 그러나 어떻게 문제를 해결합니까? 이것은 DB에서 교착 상태처럼 들리나요? 을하자마자

C : > iisrestart

, 모든 것이 괜찮습니다 (잠시 동안).

감사합니다 - 나는 이런 일을 한 적이 없으며 진행하는 가장 좋은 방법은 확실하지 않습니다.

남자 이름

도움이 되었습니까?

해결책

이 문제의 복제 일 수 있습니다. Connection Pooling이 SubSonic에서 올바르게 작동합니까?

LoadandCloseReader () 대신로드 ()로 개체를로드하는 경우 각 연결이 열려 있고 결국 연결 풀이 배출됩니다.

다른 팁

컬렉션에서 load ()를 호출 할 때 독자가 열린 상태로 남겨 둡니다. 리더가 닫기를 원하거나 사용 블록을 사용하는 경우 LoadandCloseReader () 호출하십시오.

소스 코드도 갖는 데 도움이됩니다.

나는 subsonic에 대해 아무것도 모르지만 아마도 당신은 데이터베이스 '컨텍스트'를 유출하고 있습니까? 데이터베이스 리소스를 완료 한 후에 모든 데이터베이스 리소스가 폐기되고 있는지 확인합니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top