Postgresql 8.1.21 で Django プロジェクトを実行しています (Django 1.1.1、Python2.5、psycopg2、Apache2 と mod_wsgi 3.2 を使用)。最近、この素敵なエラーが発生しました:
OperationalError: FATAL: connection limit exceeded for non-superusers
私はこれに立ち向かう最初の人ではありません。このエラーについては、特に psycopg で多くの議論がありますが、その多くは古いバージョンの Django に焦点を当てているか、Django 自体のコードの編集を含む解決策を提供しています。Django ORM (または、この場合は psycopg のいずれか、実際に責任がある方) が Postgre 接続を開いたままにする問題を解決する方法の簡潔な説明をまだ見つけていません。
すべてのビューの最後に追加するだけconnection.close()
で、この問題は解決しますか? さらに良いことに、この問題を決定的に解決し、このエラーのお尻を蹴った人はいますか?
編集: 後で Postgresql の制限を 500 接続に引き上げました。これにより、エラーが発生するのを防ぎましたが、過剰なメモリ使用量に置き換えられました。