gpt4 book ai didi

.net - DB2 查询偶尔得到 SQL0925N : Processing cancelled due to interrupt error

转载 作者:行者123 更新时间:2023-12-01 02:33:37 31 4
gpt4 key购买 nike

我有一个与 DB2 数据库交互的 .Net 应用程序( Entity Framework ,不确定该细节是否重要)。有时,我会在查询中收到以下错误:

ERROR [57014] [IBM][DB2] SQL0952N  Processing was cancelled due to an interrupt.

这是整个错误文本(内部异常)。它没有 SQLSTATE。

同样,这不会每次都发生(即使对于相同的查询)。例如,我可以一遍又一遍地运行相同的查询,并且只看到错误发生 5 次中的 1 次。查询的持续时间总是相当一致的。

我搜索了一些文档并找到了以下内容:
http://www-01.ibm.com/support/docview.wss?uid=swg21450816

只是为了排除故障,我按照上述文档中的建议设置 QueryTimeout=0在我的连接字符串中。这没有帮助,我仍然以大致相同的速度得到错误。我什至试过 QueryTimeout=500 ……同样的结果。有趣的是,在测试中,当此错误发生时,它大约发生在 30 秒标记处(文档中提到的是默认超时)。我是否仍在以某种方式使用默认超时设置?

连接字符串如下:
<add name="myConn" connectionString="(entity framework stuff);provider=IBM.Data.DB2;provider connection string=&quot;Database=myDB;User ID=myId;Server=myServer;QueryTimeout=0&quot;" providerName="System.Data.EntityClient" />
  • 是否有其他超时设置覆盖或优先于我在连接字符串中指定的设置?
  • 有没有可能我处理的不是超时问题而是其他一些问题?我已经读过这可能是锁定的迹象......但我可以在测试中重现这一点,因为当时唯一一个访问数据库的人。会不会是别的东西?

  • 编辑

    我刚刚尝试设置 QueryTimeout=1认为这肯定会导致每个查询超时。这似乎没有影响。在 WELL 超过一秒钟后,5 个查询中有 4 个仍然完成。我在这里缺少什么?

    最佳答案

    我能够通过设置 CommandTimeout 来解决这个问题。在我的 EF 数据上下文中,如下所示:

    using (dataContext = new myDB2Entities())
    {
    dataContext.CommandTimeout = 60;
    // DB CODE
    }

    我现在明白 QueryTimeout我一直尝试使用的设置只是一个时间间隔,并且在每个时间间隔数据库都会检查应用程序是否仍在等待响应。我没有解决应用程序在默认 30 秒后发出中断的事实。

    关于.net - DB2 查询偶尔得到 SQL0925N : Processing cancelled due to interrupt error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570439/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com