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保持連接打開引起的。