2011-03-03 1 views
1

Я использую SQLAlchemy 0.6.6 для базы данных Postgres 8.3 в Windows 7 и PY 2.6. Я оставляю настройки по умолчанию для настройки пула при создании моего движка, который равен pool_size = 5, max_overflow = 10.Проблемы с объединением соединений SQLAlchemy - Postgres на Windows

По какой-то причине соединения продолжают накапливаться, и я периодически получаю «Слишком много клиентов» от PG. Я уверен, что соединения закрываются в блоке finally, так как это приложение доступно только через WSGI (CherryPy) и использует шаблон соединения/запроса. Я также регистрирую, когда соединения закрываются, чтобы убедиться.

Я попытался посмотреть, что происходит, добавив echo_pool = true во время создания моего движка, но ничего не регистрируется. Я могу видеть инструкцию SQL, проходящую через консоль, когда я устанавливаю echo = True, но ничего для объединения.

В любом случае, это сводит меня с ума, потому что мой коллега, который находится на Mac, не имеет ни одной из этих проблем (я знаю, получаю Mac), поэтому я пытаюсь понять, является ли это результатом ошибка или что-то в этом роде. Google ничего не дал, поэтому я надеюсь получить здесь какую-то помощь.

Спасибо, куб.см

+0

Ваш код проверяет соединения из пула или позволяет SQLAlchemy обрабатывать его с помощью сеанса, привязанного к движку? Используете ли вы ScopedSession? –

+0

Я использую SA из коробки, что означает, что объединение по умолчанию включено. Также используется ScopedSession. По умолчанию ScopedSession используется для объединения пулов? –

+0

Вышеприведенный комментарий привел меня к выводу, что место ScopedSession используется неправильно, закрывая соединение. Благодаря! Мне все равно хотелось бы узнать, как увидеть эхо-соединение Connection Pooling, но это для другого сообщения. –

ответ

0

Оказывается, там был ScopedSession используется за пределами нормального использования приложения и близко не было в конце концов.