【问题标题】:Django and SQL Server 2005 - Zombie status?Django 和 SQL Server 2005 - 僵尸状态?
【发布时间】:2010-11-16 11:47:49
【问题描述】:

我正在使用 Django 1.2 和 django-mssql

在执行以下操作时

for unicorn in Unicorn.objects.all():
    print unicorn.color

我在第 100 次迭代时遇到以下错误:

com_error: (-2147352567, '发生异常。', (0, u'Microsoft SQL Server Nativ e Client 10.0', u'对象处于僵尸状态。一个物体可能会进入一个僵尸 调用 ITransaction::Commit 或 ITransaction::Abort 时的状态,或者当 已创建存储对象但尚未释放。', None, 0, -2147418113), Non e)


有什么想法吗?这真的让我很烦...开始讨厌整个 Windows Server 世界...:(

【问题讨论】:

  • COM 错误不是开玩笑(我是一名前 DirectX 开发人员,我在噩梦中看到了 COM 错误),COM 错误 + 僵尸是真正的生化危机 :-)

标签: sql-server django django-models django-mssql


【解决方案1】:

我遇到了类似的问题,我通过在 for 循环中使用之前强制检索完整的 QuerySet 来解决它。 所以,试试这个:

for unicorn in list(Unicorn.objects.all()):
    print unicorn.color

【讨论】:

  • @RadiantHex:你觉得它有用吗?您找到问题的原因了吗?
【解决方案2】:

另一种方法是在base.DatabaseFeature中设置'can_use_chunked_read = True':

sqlserver_ado/base.py: 16

class DatabaseFeatures(BaseDatabaseFeatures):
    uses_custom_query_class = True
    can_use_chunked_reads = False

我刚刚设置了它,错误就消失了。 让我知道它是否也能解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-15
    • 2017-03-15
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多