2011-12-10 4 views
2

저는 python 및 피라미드 프레임 워크에 새로운 있습니다. 최근 SQLSoup에 데이터베이스 (postgres) 요구 사항을 처리하기 위해 도입되었습니다.SqlAlchemy "이미 너무 많은 클라이언트"오류

dbEngine1 = SqlSoup(settings['sqlalchemy.db1.url']) 
users = dbEngine1.users.fetchall() 

피라미드 앱을 사용하는 짧은 기간 후에 모든 것이 잘 작동하지만이 오류 메시지가 표시됩니다. 나는 포스트 그레스의 모든 유휴 연결을

sorry, too many clients already 

는 내 질문은, 내가이 유휴 연결을 종료 어떻게, 내가 코드의 라인을 추가하는 시도 도시로 (약 50 예외 아래 던지기 전에 연결을 공회전) 해제 피라미드를 죽여야 아래에 있지만 도움이되지 않습니다.

dbEngine1 = SqlSoup(settings['sqlalchemy.db1.url']) 
users = dbEngine1.users.fetchall() 
dbEngine1.engine.connect().close() 

SQLAlchemy 전문가의 포인터는 무엇입니까?

답변

1

피라미드 앱에 대한 각 요청마다 dbEngine1을 생성하는 것처럼 보입니다.

webapp의 SqlSoup를 올바르게 사용 하시려면 SA 세션을 사용해야합니다.

this page의 "세션 액세스"섹션을 참조하십시오.

가 어떻게 연결 풀을 사용하는 등 원료 SA으로이 유휴 연결을

SqlSoup를 닫 않는 유휴 상태 폴더의 유틸리티 쿼리에서 풀의 각 연결이 실행됩니다. 이 연결 풀은 한 번 만들어야합니다.

+0

"Accessing the Session"에 대한 링크 – TheGrimmScientist