2011-12-10 15 views
2

私はPythonとピラミッドの枠組みにかなり新しいです。最近私はSQLSoupにデータベース(postgres)のニーズに対応するために導入されました。SQLAlchemyの「あまりにも多くのクライアント、すでに」エラー

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

すべてがしかし、ピラミッドのアプリを使用しての短い期間の後、私はこのエラーメッセージが出てい、素晴らしい取り組んでいます。示すように、私はpostgresの中のすべてのアイドリングの接続を解放するためにピラミッドを殺さなければならない(約50例外の下に投げる前に接続をアイドリング)

sorry, too many clients already 

私の質問は、私はこのアイドリング接続を閉じないか、ですが、私はコードの行を追加してみました以下のようになりますが、それは役に立ちません。

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

SQLAlchemy gurusからのポインタはありますか?あなたはあなたのピラミッドアプリへのリクエストごとにdbEngine1を作成するよう

答えて

1

は思えます。あなたはSAのセッションを使用しなければならないWebアプリケーションに適切な使用方法についてはSqlSoup

this pageの「セッションへのアクセス」を参照してください。

私は、このような生のSAなどSqlSoupは、接続プールを使用して、このアイドリング接続

を閉じてくださいどのように、アイドル状態のutilのクエリでは、プール内の各接続が実行されます。この接続プールは一度作成する必要があります。

+0

「セッションへのアクセス」のリンクが間違っています。 – TheGrimmScientist

関連する問題