【问题标题】:EOFException while executing query in sql在sql中执行查询时出现EOFException
【发布时间】:2020-12-01 01:16:59
【问题描述】:

代码从过去 1 年开始正常运行,但从过去 1 周开始,我在执行选择查询时收到 EOFException:查询如下

SELECT col1,col2,col3,col4 from Table where col1 in ('val1','val2','val3','val4')

当我尝试从 SQL 执行查询时,查询工作正常,但是当实用程序尝试执行此查询时,实用程序卡住了。 当我重新启动实用程序时,它开始正常工作,然后在 2-3 小时后再次卡住并在一小时后给出 EOFException。

例如,我在下午 5:00 重新启动了该实用程序,因此,它工作正常到晚上 7:00,当它在晚上 7:00 开始执行此查询时,该实用程序卡住,然后在8:00 PM 该问题出现在生产环境中,但无法找到任何根本原因。

一些使用 MySQL 和 Mariadb 的人建议增加 net_read_timeout 变量的值,但我无法增加它,因为我使用的是 SQLServer 2012 并且无法找到任何此类变量。

【问题讨论】:

  • 如果查询在 Microsoft SQL Server Management Studio 中执行时工作正常,那么“实用程序”一定是问题所在。你能指定这个神秘的“实用程序”吗?你可以访问它的源代码吗?

标签: sql-server eofexception


【解决方案1】:

假设您的实用程序与 SQL Server 不在同一台机器上,请尝试一下。基本上Remote query timeout 设置可能是你的罪魁祸首(可能是这种情况,考虑到你提到一小时的截止时间)。

对于 SQL Server,右键单击服务器,然后选择 properties。然后在Connections 选项卡上,您可以检查并将“远程查询超时”的值更改为 0。在我的屏幕截图中,该值设置为 600(10 分钟)。如果你的显示 3600,你很可能找到了截止的原因。

【讨论】:

  • 是的,该实用程序与 sql db 在不同的服务器上。我检查了这个超时值,在我的 sql server 中也是 600
  • @AYUSHIAgrahari - 我不知道。我不是网络工程师。但请与您的网络团队交谈,了解他们是否配置了某些内容?
猜你喜欢
  • 2016-11-11
  • 2023-03-03
  • 1970-01-01
  • 2021-05-11
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
相关资源
最近更新 更多