diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-07-05 10:28:20 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-07-05 10:28:20 -0400 |
| commit | 9204b6610c9667ba2e4f73440339d2f520631777 (patch) | |
| tree | b8088e80154c2d0938dde9ef67b11ed1d4d1d52a /lib/sqlalchemy/dialects | |
| parent | 3dc9a4a2392d033f9d1bd79dd6b6ecea6281a61c (diff) | |
| download | sqlalchemy-9204b6610c9667ba2e4f73440339d2f520631777.tar.gz | |
Document pyodbc built-in pooling
PyODBC apparently pools connections by default and this
is a module-wide setting only. Documenent that this happens
and how to disable it.
Fixes: #5440
Change-Id: I415bda7beb2211c66991b6c804b0ddb4d79e427f
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/pyodbc.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index 6cf45e7b8..14eb0adc7 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -70,6 +70,32 @@ illustrated below using ``urllib.parse.quote_plus``:: engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params) +Pyodbc Pooling / connection close behavior +------------------------------------------ + +PyODBC uses internal `pooling +<https://github.com/mkleehammer/pyodbc/wiki/The-pyodbc-Module#pooling>`_ by +default, which means connections will be longer lived than they are within +SQLAlchemy itself. As SQLAlchemy has its own pooling behavior, it is often +preferable to disable this behavior. This behavior can only be disabled +globally at the PyODBC module level, **before** any connections are made:: + + import pyodbc + + pyodbc.pooling = False + + # don't use the engine before pooling is set to False + engine = create_engine("mssql+pyodbc://user:pass@dsn") + +If this variable is left at its default value of ``True``, **the application +will continue to maintain active database connections**, even when the +SQLAlchemy engine itself fully discards a connection or if the engine is +disposed. + +.. seealso:: + + `pooling <https://github.com/mkleehammer/pyodbc/wiki/The-pyodbc-Module#pooling>`_ - + in the PyODBC documentation. Driver / Unicode Support ------------------------- |
