2012-04-12 2 views
7

연결 문자열 매개 변수의 이름과이 블로그 게시물의 이름 (http://fxjr.blogspot.co.uk/2010/04/npgsql-connection-pool-explained.html)은 Npgsql이 연결 문자열에 설정된 MaxPoolSize 값을 초과하지 않는다고 생각하게합니다. 그러나 docs (http://npgsql.projects.postgresql.org/docs/manual/UserManual.html)에서는 "연결 풀의 최대 크기입니다. 풀에 풀 크기의 연결이있을 경우 풀에 반환 할 때 풀링 된 연결이 삭제됩니다. 기본값 : 20 "Npgsql 연결 풀이 최대 값에 도달 할 때 발생하는 현상

이것은 풀이 실제로 MaxPoolSize보다 커질 수 있으며 실제로는 Npgsql이 반환되는 즉시 풀에서 연결을 적극적으로 제거하기 시작한 수준이라는 것을 나타냅니다.

저는 답변을 찾으려고했지만 MaxPoolSize에 도달하면 어떤 일이 발생하는지 정확히 알 수 있습니다. 다른 사람 아시 겠죠?

편집 : 우리는 Npgsql 2.0.6.0을 추가해야합니다. 다른 종속성은 그 버전까지만 지원되기 때문입니다.

+0

왜 소스를 보지 않으시겠습니까? "MaxPoolSize"를 찾기에 충분히 쉬워야합니다. – xanadont

답변

5

저는 이것이 minpoolsize에 관한 사본 붙여 넣기 문제 일 수 있다고 생각합니다. Npgsql은 maxpoolsize 연결 이상을 생성하지 않습니다. 이 값에 도달하면 새 연결 요청은 사용 가능한 연결 요청이있을 때까지 대기합니다.

어떤 문제가 2.0.6에서만 작동합니까?

+0

빠른 답변을 주셔서 감사합니다. 특정 기능은 2.06에 의존하지 않지만 우리는 현재 2.0.6에 대해 구축 된 업 그레 이드 가능한 상용 데이터 액세스 계층을 가지고 있습니다. 나는 거기에 npgsql의 최신 버전으로 우리의 테스트를 실행하려고 시도 할 것이다. 풀링을 처리하는 방법은 현재 우리가 하나의 사이트로 많은 별도의 사이트를 통합하는 변경에 중요합니다. 여러 개의 작은 응용 프로그램 풀을 하나의 큰 풀로 가져갑니다. – ClearCarbon

+0

OK, 2.0.11.93으로 가야합니다. 사용자 테스트에 따라 성능을 30 % 향상시키는 연결 풀링에 대한 몇 가지 개선 사항이 있었기 때문입니다. 제발, 괜찮은지 알려주세요. –

관련 문제