在多个VFP应用程序中读取文件错误的随机1104错误

问题描述:

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

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

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

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

我们用新的虚拟机替换了文件服务器,但没有任何解脱(我们将它更改回旧的文件服务器)。

我们禁用了防病毒软件。

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

当发生错误时,Sysinternals进程监视器显示“INVALID_NETWORK_RESPONSE”事件。

我们在发生错误时捕获了服务器端和客户端的流量,并且由网络分析专家进行分析。他观察到一种特殊模式,客户端操作系统在VFP应用程序发出错误后开始从文件服务器检索相关文件。看起来VFP应用程序向OS请求一个文件,然后它得到一个异常响应或者只是在操作系统发送请求该文件的包之后才超时。再一次,这偶尔会发生。

OPLOCKS和SMB2已被禁用两个等式多年的服务器和客户端的所有计算机,一切都顺利运行到现在...

任何意见将不胜感激。

+0

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

我的第一条建议是重新启用OpLocks和SMB2。今天没有理由混淆这些项目,并且您正在失去大量SMB1级别的性能。

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

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

如果您尚未安装,请考虑安装Windows 7/Server 2008 R2 Enterprise Hotfix Rollup

+0

我们处于Server 2008/Windows 7环境中,我们仍然需要关闭OpLock和SMB2,否则我们会不断开始获取错误读取(和/或写入)文件和非法查找偏移量错误。我们还发现,当虚拟机外部的备份进程开始在主机上运行时,在负载过重的虚拟机上运行VFP可能会出现这些错误。 – LAK

+0

好吧,我们在数百个位置拥有多用户VFP9应用程序,并且我们从未触摸任何SMB2或OpLocks。所以我想YMMV。 –

  • 这个问题主要与SMB2有关!
  • 一些杀毒软件!
  • Windows更新!如果您通过DBF/DBC文件使用VFP应用程序。不要更新您的系统/操作系统。这是我个人的建议。在不久的将来,Windows Server 2012+或Windows 10+可能会出现大问题。

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