0
我正在使用SQLAlchemy(仅限Core,不是ORM)创建与SQL Server 2008 SP3的连接。SQLAlchemy/pyODBC未发布数据库连接
在查看进程的网络连接时,我注意到与SQL Server(端口1433)的TCP/IP连接保持打开状态(ESTABLISHED
)。
示例代码:
from urllib.parse import quote_plus
from sqlalchemy.pool import NullPool
import sqlalchemy as sa
# parameters are read from a config file
db_params = quote_plus(';'.join(['{}={}'.format(key, val) for key, val in db_config.items()]))
# Hostname based connection
engine = sa.create_engine('mssql:///?odbc_connect={}'.format(db_params),
poolclass=NullPool)
conn = engine.connect()
conn.close()
engine.dispose()
engine = None
我增加了NullPool
和engine.dispose()
后,认为他们可能会解决挥之不去的连接,但很可惜。
我正在使用基于主机名的连接,如指定的here。
版本:
- 的Python 3.5.0(上Win7的32倍)
- SQLAlchemy的1.0.10
- pyODBC 3.0.10
编辑:我我重写了我的代码,只使用pyODBC而不是SQLAlchemy + pyODBC,问题依然存在。就我所知,这个问题是由pyODBC保持连接打开引起的。