Thanks for the quick reply. Correct, using the same recipe of cx_Oracle 
SessionPool + SQLAlchemy NullPool. 
If we handle the connection close explicitly to release to the pool, will 
that skip any exception handling on connections that Session object handles 
internally for db connections and also any rollbacks on errors?

On Monday, May 17, 2021 at 3:08:34 PM UTC-6 Mike Bayer wrote:

>
>
> On Mon, May 17, 2021, at 4:21 PM, Anupama Goparaju wrote:
>
> Hi,
>
> I see in the documentation 
> <https://docs.sqlalchemy.org/en/13/orm/session_basics.html> that we can 
> bind a connection to a SQLAlchemy session object:
>
> *# at the module level, the global sessionmaker,* *# bound to a specific 
> Engine* 
> Session = sessionmaker(bind=engine) 
>  
> *#** later, some unit of code wants to create a* *# Session that is bound 
> to a specific Connection* conn = engine.connect() 
> session = Session(bind=conn)
>
> How do we release the connection to an external connection pool safely? 
> For instance, if we are using a cx_Oracle SessionPool 
> <https://cx-oracle.readthedocs.io/en/latest/api_manual/session_pool.html> 
> to acquire and release connections? 
> session.close() is not doing that seamlessly in this case.
>
> if we do, session = Session(bind=engine) - it usually releases connection 
> to the pool seamlessly on session.close().
>
>
> if you acquire a connection using engine.connect(), you must release it to 
> the connection pool using connection.close().  this is independent of the 
> Session being bound to this Connection while it is acquired from the 
> pool.   Session.close() will not achieve this when you are using 
> Session(bind=connection) as the Session understands the scope of this 
> Connection is external to that Session.
>
> This is then a separate issue from the use of cx_Oracle's SessionPool, for 
> which we would assume you are using the recipe at 
> https://docs.sqlalchemy.org/en/14/dialects/oracle.html#using-cx-oracle-sessionpool
>  
> .
>
>
>
> Thanks,
> Anupama
>
>
>
> -- 
> SQLAlchemy - 
> The Python SQL Toolkit and Object Relational Mapper
>  
> http://www.sqlalchemy.org/
>  
> To post example code, please provide an MCVE: Minimal, Complete, and 
> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> description.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sqlalchemy+...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sqlalchemy/66a43491-e94b-4b9c-a2ff-6e4ec8ee2cccn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/sqlalchemy/66a43491-e94b-4b9c-a2ff-6e4ec8ee2cccn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/a47048cd-178b-4191-bc42-23abeede0d69n%40googlegroups.com.

Reply via email to