Hello, Perhaps this forum is more appropriate to ask than the SQLAlchemy group (see this same question over there <https://groups.google.com/forum/#!topic/sqlalchemy/jZY2X5Rjjlk>).
I would like to understand the interplay between a SQLA session and a Pyramid’s subrequest <https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/subrequest.html>. When a request is handled, a new session is created for that request as per the Pyramid/SQLA cookiecutter <https://github.com/Pylons/pyramid-cookiecutter-alchemy>, and it looks to me like subrequests create a new session too. When I set the pool_size <http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine.params.pool_size> of the engine to *N* and max_overflow <http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine.params.max_overflow> to *M* then I can issue only a max of *N+M* subrequests, after which I get an exception: Traceback (most recent call last): File "/…/site-packages/sqlalchemy/pool.py", line 1122, in _do_get return self._pool.get(wait, self._timeout) File "/…/site-packages/sqlalchemy/util/queue.py", line 156, in get raise Empty sqlalchemy.util.queue.Empty During handling of the above exception, another exception occurred: […] File "/…/site-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect return fn() File "/…/site-packages/sqlalchemy/pool.py", line 387, in connect return _ConnectionFairy._checkout(self) File "/…/site-packages/sqlalchemy/pool.py", line 766, in _checkout fairy = _ConnectionRecord.checkout(pool) File "/…/site-packages/sqlalchemy/pool.py", line 516, in checkout rec = pool._do_get() File "/…/site-packages/sqlalchemy/pool.py", line 1131, in _do_get (self.size(), self.overflow(), self._timeout)) sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 0 reached, connection timed out, timeout 30 for sqlalchemy.pool_size = 5 sqlalchemy.max_overflow = 0 When I up the pool size to fit all subrequests, then everything works fine and the SQLA log shows me a ROLLBACK for each subrequest and one COMMIT at the end which I think is the main request. Now I could set pool size to 0 to indicate no pool size limit, but I’m not sure if that would be the correct solution here. What’s the recommended approach here? Thanks! Jens -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/6c2f13c2-ea4d-4f9d-9d47-50dc98c6e583%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.