了解命名属性和副本标识符限制对 Exchange 数据库的影响

 

适用于: Exchange Server 2010 SP3

上一次修改主题: 2016-11-28

Microsoft 使用消息传递 API (MAPI) 来连接不同的消息传输组件。MAPI 规范将大多数对象呈现为属性。为标识这些属性,MAPI 使用了标识符(称为属性标识符或 PropID)。

属性标识符是位于从 1 到 0xFFFF 范围内的一组十六进制值。这提供了足够用来表示 65,534 个属性的值。这些属性分为以下组(称为范围):

  • 可传输属性 - Exchange 可以随邮件一起发送的属性

  • 内部属性 - 只能由 Exchange 设置的属性

  • 不可传输属性 - Exchange 传递邮件时不在组织外部传递的属性

这些范围中的属性称为标准属性。标准 MAPI 属性具有固定的 ID 并代表所有低于 0x8000 的属性。

还有一个另外的范围,此范围是最大的一个组并且代表所有等于 0x8000 和高于的属性。此范围中的属性称为“命名属性”。命名属性为供应商提供了一种通过添加其自己的属性来扩展标准 MAPI 属性集的手段。

命名属性分为以下几个主要类别:

  • 名称为数字的属性 - 这些命名属性由 MicrosoftOutlook 之类的程序使用,通常是在源文件中定义的。

  • 名称为字符串值的属性 - 这些命名属性称为“字符串命名属性”。除了名称以外,这些属性中的每个属性都有一个关联的 GUID。这使得开发人员可以将命名属性划分成属性集。

由于没有为命名属性分配特定的 ID,MAPI 提供了一个工具,可以动态为命名属性创建唯一 ID 并保持命名属性与其唯一 ID 之间的持久映射。但是,动态创建这些 ID 意味着在不同的计算机上,命名属性的属性 ID 会有所不同。

Microsoft Exchange 信息存储服务为每个邮箱维护了一个命名属性表。通过 Internet 发送的邮件以 Message/RFC822 格式进行传输。这个文本格式包含纯文本邮件和含有一组“键-值”对的邮件头。RFC822 支持一组称为 X-header 的属性。当传输服务处理包含自定义信息的邮件时,传输服务将联系信息存储服务来为 X-header 注册命名属性。

注释注意:
包含相同 X-header 的任何后续邮件都不会导致 Exchange 注册额外的命名属性。

Exchange 将这些命名属性与包含相关 X-header 的邮件存储在一起。Microsoft 使用可扩展的命名空间 PS_INTERNET_HEADERS 将通过 Internet 接收的邮件中的 X-header 进行分组。

命名属性限制

下表总结了有关命名属性的一些要点:

  • X-header 是 Message/RFC822 邮件中存储着某些重要值的字段。

  • 命名属性是 Exchange 用于为特定值保留 ID 的方法。

  • 命名属性在分配后不可取消分配。该属性仍然保留用于特定名称和 GUID 组合。

由于可用命名属性的数量是固定的,因此 Exchange 使用一个配额系统来跟踪已分配的命名属性的数量。在该系统中,当可用命名属性 ID 接近用完时,信息存储服务会向您发出警告。当达到另一阈值时,信息存储服务将停止分配命名属性 ID。

命名属性用尽

虽然有许多程序使用命名属性,但这些属性中的大多数都由 Outlook 使用。当命名属性 ID 用尽时,Outlook 无法映射命名属性。在这种情况下,您会遇到如下所述的症状:

  • 不会传递所包含属性无法被映射的邮件。检查受影响邮件的邮件跟踪信息时,您会看到类似于以下内容的信息:

    550 5.2.0 STOREDRV.Deliver:Microsoft Exchange 信息存储服务报告了错误。下列信息应有助于查明导致此错误的原因:

    MapiExceptionNamedPropsQuotaExceeded:16.18969

  • 当在 Outlook 中安装将命名属性或 X-header 添加到消息的外接程序时,某些邮件可能不会被发送到组织中的其他用户。在这种情况下,发送用户会收到类似于以下内容的未送达报告 (NDR):

    该邮件到达了收件人的电子邮件系统,但是投递被拒绝。请尝试重新发送该邮件。如果发送仍然失败,请与系统管理员联系。

要回收 MicrosoftExchange Server 2010 中的命名属性,请使用 New-MoveRequest cmdlet 以及 DoNotPreserveMailboxSignature 参数。有关详细信息,请参阅New-MoveRequest

注释注意:
执行此操作将导致以下结果:仅保留至少在邮箱中的一封邮件上存在的命名属性,删除所有其余的命名属性。如果所有命名属性都仍然存在于任何邮件上,则不会回收任何命名属性。

Exchange 2010 中的属性更改

Exchange Server 2010 包括了用来解决 MicrosoftExchange Server 2007 中可能会出现的问题的一些改进。在 Exchange 2010 中,命名属性资源被移动到了邮箱级别而不是数据库级别。有关 Exchange 2007 中可能会出现的属性更改问题的详细信息,请参阅了解命名属性和副本标识符限制对 Exchange 数据库的影响

详细信息

有关对数据库进行管理的详细信息,请参阅管理存储组和数据库

 © 2010 Microsoft Corporation。保留所有权利。