【描述】

在Exchange的环境中,安装有Forefront for Exchange,在一次例行更新后,发现Exchange邮件用户不能正常收发邮件,邮件堵在提交队列中。

【原因】

Forefront更新超时,扫描引擎没有回滚到原来的状态,从而导致Forefrnt无法正常工作,导致Exchange传输引擎发生错误。

在默认情况下,Forefront的引擎更新超时为5分钟,如果一个引擎更新不能在5分钟内完成,更新过程将被取消,Forefront将回滚到原有状态。

【分析】

我们分析了服务器的日志文件,得到如下的一些内容:

Log Name: Application
Source: FSEAgent
Date: 5/17/2010 22:22:10 PM
Event ID: 5170
Level: Error
Keywords: Classic
User: N/A

Log Name: Application
Source: GetEngineFiles
Date: 5/17/2010 08:11:23 AM
Event ID: 6012
Level: Error
Keywords: Classic
User: N/A
WormList
0x80070102
Description: Unable to acquire the scan engine update mutex within the designated timeout period.

Log Name: Application
Source: GetEngineFiles
Date: 5/17/2010 11:12:56 AM
Event ID: 6014
Level: Error
Keywords: Classic
User: N/A
Norman
http://forefrontdl.microsoft.com/server/scanengineupdate/x86/Norman
Proxy Settings: Disabled
0xC0001F58
Description: The operation timed out.

Log Name: Application
Source: GetEngineFiles
Date: 5/17/2010 11:46:50 AM
Event ID: 6014
Level: Error
Keywords: Classic
User: N/A
CAVet
http://forefrontdl.microsoft.com/server/scanengineupdate/x86/CAVet
Proxy Settings: Disabled
0xC0001F58
Description: The operation timed out.

我们可以从如上的日志中发现,Forefornt在尝试下载和更新Norman引擎时,出现问题,并没有进行回滚作业,Norman也遭到了损坏。从而导致了5170错误的发生。

【解决】

既然我们找到了问题的原因,就需要从Norman引擎下手解决。

我们需要找到Norman引擎更新文件,改文件一般存放在C:\Program Files (x86)\Microsoft Forefront Security\Exchange Server\Data\Engines\x86 下。我们将原有的Norman引擎进行重命名,然后重新启动MSExchangeIS服务,此时Forefront扫描引擎回滚到原有的状态,问题消失。

【后续】

为了避免Forefront因更新较大的文件时再次发生此类问题,我们修改了Forefornt默认的更新超时时间。

打开注册表(修改注册表时请做好备份),找到如下键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Forefront Server Security\Exchange Server\

添加新的DWORD value:EngineDownloadTimeout,并键入更大的数值,如600,保存即可。

Forefront for Exchange 2010也可以在全局设置中进行设置。

有关Forefornt for Exchange 2010更改超时时间的设置,有篇KB也做了详细的描述:

Forefront Server Security or Forefront Protection 2010 for Exchange Server does not obtain scan engine updates, and the following error message is logged in the Programlog.txt file: "Error: The <EngineName> scan engine update timed out":http://support.microsoft.com/kb/939411/en-us