1

我在 WSGI python web 应用程序中使用 SQLAlchemy 来查询数据库。如果我做两个并发请求,第二个请求总是抛出一个异常,SQL Server 声明

[24000] [FreeTDS][SQL Server]Invalid cursor state (0) (SQLExecDirectW)

不幸的是,我似乎无法使用缓存来阻止对数据库的额外请求。有没有其他方法可以解决这个问题?理想情况下使用原生 python 库(即不依赖另一个 python 模块)?

我唯一能想到的是使用线程来锁定进行数据库查询的函数,但我担心这会减慢应用程序的速度。

还有什么可以做的吗?这是配置问题吗?

我在 Centos 5.9 服务器上使用 FreeTDS v0.91,连接到 MS SQL Server 2008。

webapp 基于粘贴。

4

1 回答 1

1

您的两个并发请求是否使用不同的数据库连接?DBAPI 连接通常不是线程安全的。在 ORM 级别,您要确保每个请求都使用会话,以便每个请求都有自己的 Session 并因此具有专用的 DBAPI 连接。

于 2013-08-12T15:42:21.870 回答