【问题标题】:Random 1104 Error Reading File Errors in Multiple VFP Applications多个 VFP 应用程序中的随机 1104 错误读取文件错误
【发布时间】:2017-08-22 22:00:26
【问题描述】:

我们有多个使用 Visual Foxpro 8.0 开发的应用程序,在 VMware 上的 Windows 2008 R2 数据中心运行。我们在同一网络上还有一个 Citrix 场,用户在 Citrix 会话中运行另一个 VFP 8.0 应用程序。所有应用程序共享位于文件服务器(也包括 Windows 2008 R2 VM)上的同一组数据表。虚拟主机通过 10Gb LAN(托管交换机)连接。

自 7 月中旬以来,我们开始在多台服务器上的多个不同应用程序上看到随机 1104“读取文件时出错...”错误。它们都引用了文件服务器上的不同文件。

问题开始于 7 月中旬,并且频率逐渐增加。早些时候它在下午 3 点之前最频繁,现在它从清晨到下午晚些时候发生。它会影响 EDI 服务器(这些服务器在无人值守模式下运行批处理作业)和 Citrix 服务器以及各种应用程序。当 VFP 应用程序(其中任何一个)尝试使用 USE 命令打开数据库容器文件或单个表时,有时会执行 SQL Select 语句,或者加载在 DataEnvironment 中打开表的 VFP 表单时会发生这种情况

我们发现在同一时刻(最多一秒)运行不同应用程序的两台不同服务器上发生了相同的错误。我们还看到在同一台计算机上运行的两个不同应用程序同时出错。

我们用一个新的虚拟机替换了文件服务器,没有任何缓解(我们后来把它改回了旧的文件服务器)。

我们禁用了防病毒软件。

我们将所有主机上的 VMware 更新到最新版本。

发生错误时,Sysinternals Process Monitor 会显示“INVALID_NETWORK_RESPONSE”事件。

我们在发生错误时捕获了服务器端和客户端的流量,并让网络分析专家对其进行了分析。他观察到一种特殊的模式,即客户端操作系统在 VFP 应用程序引发错误后开始从文件服务器检索有问题的文件。似乎 VFP 应用程序从操作系统请求文件,然后它要么得到异常响应,要么只是超时,然后操作系统才发送请求文件的数据包。同样,这种情况偶尔会发生。

多年来,服务器端和客户端的所有计算机上的 OpLocks 和 SMB2 都已禁用,直到现在一切都运行顺利...

任何建议将不胜感激。

【问题讨论】:

  • 没有任何代码或日志很难理解你的问题。

标签: visual-foxpro foxpro


【解决方案1】:

我的第一条建议是重新启用 OpLocks 和 SMB2。就目前的情况而言,没有理由将其中任何一项都搞乱,而且您在 SMB1 级别运行时会损失大量性能。

根据我的经验,这些问题几乎总是由以下原因之一引起的。

  • 防病毒/反恶意软件。
  • 复制或在线备份软件,如 MozyPro。
  • Windows 搜索索引服务。

如果您还没有安装Windows 7 / Server 2008 R2 Enterprise Hotfix Rollup,您应该考虑安装。

【讨论】:

  • 我们处于 Server 2008/Windows 7 环境中,直到今天我们仍然需要关闭 OpLock 和 SMB2,否则我们开始收到错误读取(和/或写入)文件和非法搜索偏移错误不断地。我们还发现,当虚拟机外部的备份进程开始在主机上运行时,在负载很重的虚拟机上运行 VFP 可能会开始出现这些错误。
  • 好吧,我们在数百个位置都有一个多用户 VFP9 应用程序,我们从未在其中任何一个位置上接触过 SMB2 或 OpLocks。所以我猜是 YMMV。
【解决方案2】:
  • 该问题主要与 SMB2 相关!
  • 一些杀毒软件!
  • Windows 更新!如果您通过 DBF/DBC 文件使用 VFP 应用程序。不要更新您的系统/操作系统。这是我个人的建议。 Windows Server 2012+ 或 Windows 10+ 可能在不久的将来会出现大问题。

最重要的可能是: 您每秒的 I/O 请求是多少?如果您的 IO 请求大于 1000~2000 每秒,对于一个瓶颈的 dbf 文件;并且您的存储设备是 HDD -> 您需要将 HDD 切换/更新为 SSD。我建议使用 m.2 pro 系列 SSD。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多