对脱机通讯簿的改进

 

上一次修改主题: 2005-10-11

本主题描述对脱机通讯簿进行的最新改进。Microsoft® Exchange Server 2003 和 Microsoft Office Outlook® 2003 都引入了脱机通讯簿 v3(a),其中包括了对脱机通讯簿的改进。此外,Exchange Server 2003 Service Pack 1 (SP1) 和 Outlook 2003 Service Pack 1 (SP1) 都包括了对脱机通讯簿的其他增强功能。最后,Exchange Server 2003 SP2 和 Outlook 2003 SP2 引入了脱机通讯簿版本 4 (OAB v4)。脱机通讯簿 v4 包括在早期版本的脱机通讯簿之上的重要性能改进以及其他改进。

note注意:
要使用 OAB v4 中的更改,脱机通讯簿服务器必须正在运行 Exchange Server 2003 SP2 或更高版本,并且 Outlook 客户端必须正在按 Unicode 格式运行 Outlook 2003 SP2 或更高版本。有关 Outlook 2003 SP2 的信息,请访问 Microsoft Office Online 网站(英文)。

Exchange Server 2003 中的改进

Exchange Server 2003 引入了称为脱机通讯簿 v3(a) 的新脱机通讯簿格式。脱机通讯簿 v3(a) 存储在名为 OAB 版本 3a 的系统文件夹中。脱机通讯簿 v3(a) 添加了对按 Unicode 格式存储脱机通讯簿的支持。早期版本的脱机通讯簿按美国国家标准学会 (ANSI) 格式存储其数据。

在 Exchange 系统管理器内部,可以找到在 OAB 版本 2 文件夹后列出的新的系统文件夹。OAB 版本 2 文件夹包含 ANSI 字符集格式的一组脱机通讯簿,这组脱机通讯簿由 Outlook 2003 到 Outlook 97 之间的 Outlook 版本使用。该文件夹中的每个邮件对象都表示脱机通讯簿的一次生成(通常每天发生)。邮件对象包含若干个高度压缩的文件。这些文件存放脱机通讯簿数据。此外,根据上一次生成创建的更改会保存在名为 Changes.oab 的文件中,以便 Outlook 只需下载上次下载以来发生的更改。

OAB 版本 3a 文件夹包含了 Unicode 格式的一组脱机通讯簿。这些脱机通讯簿由 Outlook 2003 使用。当您登录到 Outlook 2003 时,Outlook 2003 验证此文件夹是否存在,并会使用 Unicode 文件(如果这些文件可用)。对于 Outlook 2003,使用 Unicode 文件比使用 OAB 版本 2 子文件夹中的早期 ANSI 格式的文件更好。

Exchange Server 2003 SP1 中的改进

通过向 Exchange 管理员提供限制可在每个公用文件夹服务器上发生的完整脱机通讯簿并发下载的数量的能力,Exchange Server 2003 SP1 向 Exchange 管理员提供了额外的控制能力。Service Pack 1 还包括对脱机通讯簿监视功能的增强,这些增强提供了对发生的错误和异常进行记录的新功能。

脱机通讯簿下载限制

在 Server 2003 中,会为对 Exchange 完整脱机通讯簿下载的每个请求立即提供服务。例如,如果为 10,000 个用户提供服务的一个公用文件夹在一小时中收到 1,000 个请求,并且脱机通讯簿大小为 5MB,则服务器将传输 5 GB 的数据。根据网络链接速度和可用带宽数量,这样的通讯量可能会使网络在一个较长的时间段内超载。

为了防止 Exchange 服务器的网络适配器或连接到该网络适配器的网络超载,具有 SP1 的 Exchange Server 2003 提供了一种限制机制,使管理员能够通过设置带宽阈值来限制脱机通讯簿下载使用的网络带宽。

默认情况下,该限制功能处于关闭状态。将以下项添加到承载脱机通讯簿系统文件夹的所有公用文件夹服务器上的注册表,可激活该功能:

HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

Type: DWORD

Value: OAB Bandwidth Threshold (KBps)

Value Data: bandwidth threshold setting (Range: 0 to 4194304 (decimal))

从其名称可以看到,带宽阈值设置以千字节每秒 (KBps) 为单位,并且应当使用十进制值对其进行配置。例如,通过将注册表项设置为十进制值 5,000 来配置公用文件夹服务器,以便将 5,000 KBps 用作脱机通讯簿下载的带宽阈值(该带宽阈值大约为 40,960 Kbps 或 40.96 Mbps)。添加并配置该设置后,Exchange 将动态检测注册表项,并开始强制实施带宽限制而无需重新启动 Microsoft Exchange Information Store 服务。

每次发生脱机通讯簿下载请求时,都会验证请求者在 Exchange 服务器上的管理权限。如果用于请求的安全上下文与 Exchange Server 计算机上的本地管理员等效,则会假定一个内部函数正在请求下载。在此事件中,允许请求者继续进行完全下载。但是,仍将传输到管理客户端的字节数,作为下载的完整脱机通讯簿平均字节数的一部分进行计算。如果请求者没有管理权限,则确定最后十秒内下载的完整脱机通讯簿平均字节数。如果该值小于配置的阈值,则允许完全下载。

note注意:
将前面所述的注册表项设置为 0,则最多允许一个没有管理权限的客户端以十秒为间隔一次下载一个完整脱机通讯簿。

设置脱机通讯簿下载带宽阈值时,建议您在各个服务器上将阈值配置为不会导致 Exchange 服务器的网络适配器或网络超载的值。如果尚未收集并分析网络和 Exchange 服务器性能数据,则应该在配置注册表项之前执行此操作。

另外,还建议您监视下列脱机通讯簿性能对象:

  • MSExchangeIS | OAB:Full downloads bytes/sec   可在脱机通讯簿下载使网络超载时监视此性能对象。此信息使您可以确定在该情况下为每个公用文件夹服务器使用了多少带宽。确定了正在使用的带宽后,应将带宽阈值配置为该值的 60%。
  • MSExchangeIS | OAB:Full download attempts blocked   通过此性能对象,可以确定因为已超出带宽阈值设置而已阻止了多少个完全下载尝试。每阻止一个尝试,此计数器就会递增 1。

在实现脱机通讯簿下载限制之前,请注意下列问题:

  • 此功能不会减少已下载字节的总数。
  • 此功能会限制整个服务器的完整脱机通讯簿。计划使用此功能时,使用多宿主网络的 Exchange 服务器的管理员需要将此因素考虑在内,因为将针对两个网段上的客户端产生该限制。
  • 通过限制完整脱机通讯簿下载使用的带宽,该功能可能会延长所有客户获取其更新的完整脱机通讯簿所用的时间。由于此原因,此功能仅应由需要防止其网络超载的客户使用。此外,应尽可能高地设置阈值。
  • 要恢复到默认行为,请删除该注册表值。

应用此注册表设置之后,在 Outlook 客户端尝试下载完整脱机通讯簿的情况下,公用文件夹存储会确定在前十秒内下载的完整脱机通讯簿平均字节数。将出现以下两种行为之一:

  • 如果该值小于配置的阈值,则客户端可继续执行完全下载。
  • 如果该值大于配置的阈值,则客户端无法继续执行完整脱机通讯簿下载,性能对象会以 1 递增,并且 Outlook 客户端会在 Outlook 同步文件夹中报告以下错误消息:"Microsoft Exchange Server" 报告了错误 (0x8004010B):“因为 Microsoft Exchange Server 计算机正忙,无法执行此功能。请重试。”此后,Outlook 客户端将每小时尝试一次下载完整脱机通讯簿,直到成功。

有关如何配置此设置的详细步骤,请参阅 Microsoft 知识库文章 867623“Throttling full offline Address Book downloads to limit the effect on a LAN in Exchange Server 2003”(英文)。

简单邮件传输协议地址不匹配

在 Exchange Server 2003 Service Pack 1 之前,由于简单邮件传输协议 (SMTP) 地址的不匹配,可能发生公司范围的脱机通讯簿完全下载。在 SMTP 地址问题中,创建了一个差异更新,但 Outlook 无法正确分析该更新。

组织中所有已启用邮件的对象(邮箱、联系人和通讯组)必须具有 mail 属性和 proxyAddresses 属性。proxyAddresses 属性必须包含别名与 mail 属性相同的主 SMTP 代理。例如,如果 mail 属性为 someone@contoso.com,则 SMTP:someone@contoso.com 必须位于 proxyAddresses 属性中。有效主 SMTP 代理的格式必须为“SMTP:<alias>@<domain.com>”(不是“smtp:”),其中 alias 是用户的电子邮件别名,domain.com 是公司的域名。

note注意:
主 SMTP 代理以“SMTP:”开头(全部大写),其他 SMTP 代理以“smtp:”开头(全部小写)。

与 SMTP 地址相关的其他要考虑的因素包括:

  • SMTP 相对可分辨名称的最大长度(at 符号 (@) 前面的部分)为 63 个字符。
  • 别名和域名不能以下列任何字符开头:空格、!"#$%&`()*+,-./ 或任何不可打印的字符。域名通常以字母或数字开头,但在开头错误键入一个空格是一个常见错误。
  • 与脱机通讯簿下载相关的 SMTP 问题仅影响差异更新。用户的 Active Directory® 目录服务条目必须更改为可显示在差异更新文件中。如果组织中存在具有 Active Directory 中相同 displayName 属性的其他用户,则该条目可能会显示在差异更新中(如同已进行了更改)。

在具有 SP1 的 Server 2003 中,SMTP 地址不匹配不会再引起对完整脱机通讯簿下载的需求,因为使用不匹配地址的用户不会添加到脱机通讯簿中。相反,遇到这样的用户时,会在脱机通讯簿服务器的应用程序事件日志中生成下列事件。

事件源:

MSExchangeSA

事件 ID:

9325

事件类型:

错误

说明:

OALGen 将跳过地址列表 %2 中的用户条目 %1,因为 SMTP 地址 %3 无效。

为了确定是否要将一个用户添加到脱机通讯簿,OABGen 执行若干验证任务以确定每个用户的 SMTP 代理地址是否正确以及该地址是否不匹配或其格式是否不正确。如果任何一个验证任务失败,则该用户不会添加到脱机通讯簿,并且会记录上述事件日志条目。

对脱机通讯簿监视功能的增强

作为最佳实践,建议您定期监视脱机通讯簿下载。这包括定期复查脱机通讯簿事件日志条目。在 Exchange Server 2003 SP1 之前,脱机通讯簿通常记录成功的信息性事件。失败事件和内部异常不会被记录,这在某些情况下会使得解决脱机通讯簿问题非常困难。为了提高脱机通讯簿事件日志记录的有用性,Exchange Server 2003 SP1 包含了几项更改。例如:

  • Exchange 记录所有脱机通讯簿生成错误,即使诊断日志记录设置为“无”时也是如此。
  • Exchange 会针对强制实施完整脱机通讯簿下载的情况记录事件。
  • Exchange 记录由 API 程序返回到脱机通讯簿子系统的异常(如文件系统、目录、公用文件夹、内存、模板问题或模板生成异常),以及导致了完整脱机通讯簿下载的强制执行的被添加或删除的父级可分辨名称。
  • Exchange 在事件的说明部分中记录从 API 程序返回的错误代码。
  • Exchange 会记录常见故障,如缺少公用文件夹副本、发生磁盘空间不足的情况以及地址列表为空。
  • Exchange 会将附加信息添加到每个事件中,用以显示哪个脱机通讯簿集合失败和哪个地址列表正在被处理。
  • Exchange 不再记录在 Exchange Server 2003 Service Pack 1 之前会记录的用途较少的某些事件。

如果脱机通讯簿配置对象名称中或脱机地址列表名称中的字符不能映射到基于 Microsoft Windows Server™ 2003 的服务器代码页,则在记录事件时,这些字符会替换为问号 (?)。使用未映射到 Exchange Server 计算机上安装的代码页的其他语言中的字符时,可能会发生此问题。有关如何解决此问题的信息,请参阅 Microsoft 知识库文章 842126“Offline Address Book monitoring enhancements in Exchange Server 2003 Service Pack 1”(英文)。

Outlook 2003 中的改进

Outlook 2003 包括脱机通讯簿的几个增强功能,包括对脱机通讯簿 v3(a) 的支持、对 Unicode 的支持和更新的组策略设置,这些增强功能使管理员能够控制脱机通讯簿体验。

新 Unicode 格式

以 Unicode 模式使用 Outlook 特别有利于具有多语言需求的组织和需要大型 Outlook 文件的用户。早期版本的 Outlook 提供对电子邮件正文中多语言 Unicode 数据的支持。但是,Outlook 数据(如邮件的收件人行和主题行以及联系人项目的 ContactNameBusinessTelephoneNumber 属性)仅限于由系统代码页定义的字符。Outlook 2003 不再有此限制,前提是 Outlook 正在 Unicode 模式下运行,并且使用 Exchange Server 作为邮件服务器。作为最佳实践,建议使用 Unicode 模式。如果用户配置文件、Exchange 服务器和管理员设置的配置允许使用 Unicode 模式,则 Unicode 模式为默认模式。

如果希望组织中的用户将 Unicode 用于 Outlook,则可使用多种方法来部署 Outlook,以便用户能够以 Unicode 模式运行。一个部署选择是通过建立一个环境来鼓励对 Unicode 的使用。在该环境中(对于大多数用户而言)满足了 Outlook 为了允许使用 Unicode 模式所要检查的条件。除非您将选项设置为使用 ANSI,否则在默认情况下会使用 Unicode(如果满足该条件)。另一个选择是通过设置自动新建 Unicode 用户文件的选项,要求 Outlook 使用 Unicode。或者,可以使用这些方法的组合。

Outlook 2003 SP1 中的改进

Outlook 2003 SP1 包括一些增强功能,这些增强功能为管理员提供有关完整脱机通讯簿下载的信息,如完全下载的开始时间。脱机通讯簿日志记录还提供进行完全下载的原因,使管理员能够确定下载是否是所期望的,或下载的发生是否是因为 Outlook 或 Exchange Server 中的某个问题(已知或未知)。

默认情况下,只要 Outlook 执行了完整脱机通讯簿下载,Outlook 2003 SP1 就会在应用程序事件日志中生成事件。要确定脱机通讯簿下载,请在应用程序事件日志中查找下列事件。

事件源:

Outlook

事件 ID:

27

事件类型:

错误、警告或信息

说明:

根据事件的原因不同而不同

确定触发完整脱机通讯簿下载的事件后,您可以使用信息性事件的数据部分来确定完全下载的原因。有关如何确定完全下载的原因的详细信息,请参阅脱机通讯簿疑难解答

Exchange Server 2003 SP2 和 Outlook 2003 SP2 中的改进

Exchange Server 2003 SP2 和 Outlook 2003 SP2 都引入了脱机通讯簿版本 4 (OAB v4)。OAB v4 包括 OAB v3(a) 中引入的所有改进以及其他改进。具体地说,这些改进中的许多改进有助于最大程度地减小用户下载脱机通讯簿信息时对网络的影响。

note注意:
要实现 OAB v4 中的增强功能,脱机通讯簿服务器必须正在运行 Exchange Server 2003 SP2 或更高版本,并且 Outlook 客户端必须正在以 Unicode 格式运行 Outlook 2003 SP2 或更高版本。有关 Outlook 2003 SP2 的详细信息,请访问 Microsoft Office Online 网站(英文)。有关 Outlook 2003 SP2 的新管理功能的详细信息,请访问 Microsoft Office 2003 Editions Resource Kit 网站(英文)。

以下部分描述 OAB v4 中的一些改进。有关 OAB v4 的其他信息,请参阅 OAB Version 4 in Exchange Server 2003 Service Pack 2(英文)How Outlook 2003 SP2 and Exchange Server 2003 SP2 OAB Version 4 Work Together(英文)

OAB v4 中对完全下载的改进

Exchange Server 2003 通过完全下载和差异下载,使用户的脱机通讯簿文件保持最新。对于使用 OAB v4 的 Outlook 客户端,少数几种情况可能会导致电子邮件客户端下载完整脱机通讯簿。当客户端通过差异更新下载脱机通讯簿更改而不是下载完整脱机通讯簿时,会提高网络性能和客户端性能。以下方案讨论了某些情况,在这些情况下,对于使用 OAB v4 客户端将不再会发生完整脱机通讯簿下载。

  • 在早期版本的 OAB(v2 和 v3a)中,删除或添加目录中父级可分辨名称会导致完整脱机地址列表下载。当客户端使用 OAB v4 时,这些更改会立即通过差异下载进行处理。
  • 在早期版本的 OAB(v2 和 v3a)中,修改 legacyExchangeDN 值总是会导致完整脱机通讯簿下载。当客户端使用 OAB v4 时,这些更改会立即通过差异下载进行处理。
  • 在早期版本的 OAB(v2 和 v3a)中,对大部分或全部客户端脱机通讯簿属性进行单个更改(例如,改变所有员工的电话号码)总是会导致脱机通讯簿下载。当客户端使用 OAB v4 时,这些更改会立即通过差异下载进行处理。

有关完整脱机通讯簿下载可对网络产生的影响,请参阅使用脱机通讯簿

无法生成完整脱机通讯簿时的考虑因素

在 Exchange Server 2003 SP2 之前的 Exchange Server 版本中,如果无法生成差异文件,则始终强制执行完整的脱机通讯簿下载。在运行 Exchange Server 2003 SP2 和更高版本的服务器上,如果无法生成差异文件,则不会总是强制执行完整脱机通讯簿下载。具体地说,在某些情况下,虽然运行 Exchange Server 2003 SP2 的脱机通讯簿服务器确定了差异下载更为高效,但是 Exchange Server 可能无法为某些客户端生成差异文件。

对于使用 OAB v2 或 v3a 的 Outlook 客户端,如果 Exchange Server 确定了差异下载更为高效,并且无法在运行 Exchange Server 2003 SP2 的服务器上生成差异文件,则 Exchange Server 将不会自动强制执行完整脱机通讯簿下载。在默认情况下,Exchange 会记录 MSExchangeSA 事件 9360,表明无法生成差异文件,并且不会生成完整脱机通讯簿文件。若要更改此默认设置,必须编辑该事件日志消息中指定的 Windows 注册表。

对于使用 OAB v4 的客户端,更改脱机通讯簿格式可以解决使服务器停止生成差异文件的那些问题。对于使用新脱机通讯簿格式的客户端,服务器不会由于不生成差异文件而试图强制执行完整的脱机通讯簿下载。但是,如果差异文件的大小与完整脱机通讯簿大小之比大于预先设置的分数,则使用 OAB v4 或更高版本的 Outlook 客户端可能仍决定执行完全下载。

有关此功能的详细信息,请参阅使用脱机通讯簿中的“在无法生成差异文件时生成完整的脱机通讯簿下载文件”。

有关如何配置此设置的信息,请参阅如何在无法生成差异文件时生成完整的脱机通讯簿下载文件

脱机通讯簿下载中的大小减小

在 OAB v4 中,完整的脱机通讯簿下载和差异下载在大小方面有所减小。根据估计,在大多数 Exchange Server 环境中,完整的脱机通讯簿文件大小将减少 30% - 40%。这样的文件大小减少会显著提高脱机通讯簿下载性能。这些改进是通过为脱机通讯簿文件采用改进的压缩机制而实现的。具体地说,使用了较新的 LZX 算法(由 Binpatch 使用)来压缩 OAB v4。这些改进还是因为脱机通讯簿下载文件不再包含使具有不同本地设置的客户端可正确查看脱机通讯簿的索引而实现的。

脱机通讯簿索引基于客户端上的区域设置

在 OAB v4 中,客户端使用在客户端上配置的区域设置(语言和国家)来执行脱机通讯簿索引。具体地说,无论服务器上的区域设置是什么,客户端都会生成区域设置特定的索引。使用基于客户端的区域设置使相同服务器上的用户(使用不同区域设置)可以正确查看脱机通讯簿,因为脱机通讯簿是根据其区域设置而不是服务器进行排序的。

诊断日志记录的改进

利用诊断日志记录的改进,可以更方便地注意到在脱机通讯簿下载时可能出现的问题。具体地说,已经添加了一些事件以帮助您监视下列问题。

  • 当至少一个属性因为其超过了其大小限制而被从脱机通讯簿中删除时,将记录一个警告事件。有关此事件的详细信息,请参阅使用脱机通讯簿中的“管理脱机通讯簿文件大小”。
  • 当生成差异下载失败时将记录一个错误事件。有关此事件的详细信息,请参阅使用脱机通讯簿中的“在无法生成差异文件时生成完整的脱机通讯簿下载文件”。

管理脱机通讯簿文件大小的能力

如果配置了 Exchange Server 2003 以限制特定属性类型的大小,则 Exchange Server 2003 SP2 可帮助您进一步提高 OAB v4 下载的性能。要进行此更改,可以在注册表中针对单个属性类型以字节为单位指定最大大小。事件会记录在应用程序日志中,用以帮助您跟踪对这些设置的更改。有关详细步骤,请参阅如何管理脱机通讯簿文件大小

增加差异下载阈值

对于使用 OAB v4 的客户端,如果差异文件的大小不超过完整脱机地址列表大小的一半 (50%),则允许脱机通讯簿的差异下载。对于使用 OAB v2 或 v3a 的 Outlook 客户,允许的默认限制仍然是八分之一 (12.5%)。