1. 问题描述:

两个公共邮箱,分别由多人同时配置Exchange模式使用,部分人员正常配置使用,其他人员配置完Outlook后,打开出现如下错误:

clip_image002

出现错误的人员在同环境下配置POP模式可以正常使用。

2. 查找原因:

1) Outlook客户端配置Exchange模式成功,说明邮箱用户访问Exchange前端CAS服务器没有问题。由错误提示看出当前配置文件无法连接到邮箱,问题可能出现在用户邮箱所在的后端Mailbox服务器。

2) 分别登陆上挂载A和B所在数据库的邮箱服务器,查看事件查看器日志,发现如下错误日志“事件ID9646”,通过对比ExchangeGuid确认为两个用户的报错信息:

通过命令查看A和B邮箱的相关信息:

Get-Mailbox A |fl

clip_image004

Get-Mailbox b |fl

clip_image006

错误提示超出了32个“session”类型的对象的最大限制。

同时还有另外一个报错日志,信息如下

clip_image007

3. 问题分析:

针对第一个错误,微软官方解答:Exchange Server对每个用户能够建立的会话数量做了限制,在缺省情况下,每个用户能建立的最大mapi session 数量为32。当然,您可以根据自己的需要来修改该值的大小。这些mapi session是指从Outlook 客户端到Exchange 服务器之间的建立的会话,而且没有被服务器释放的。导致连接没有断开的原因有多种,比如用户通过不稳定的网络如无线网络连接到Exchange服务器,这样可能会导致连接没有及时断开。

本例的情况是由于同一邮箱同时配置使用的人员较多,超出mapi session连接数量的默认限制,阻止其他MAPI客户端的连接。

针对第二个错误,超出了单个会话中单个邮箱可以打开的项目数250(此处为objtMessage)施加的限制。

4. 解决方案:

针对第一个错误,可修改MaxObjsPerMapiSession值,扩大32个Session的限制。

clip_image009

若要向注册表项限制 MAPI 客户端可以使用在同一时间的资源的最大数量,请按照下列步骤操作:

1) 启动注册表编辑器 (regedit)。

2) 导航到下列注册表子项:

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem。

3) 右键单击“ParametersSystem”,指向“新建”,然后单击“DWORD (32 位) 值”。

会在结果窗格中创建新值。

4) 将该注册表项重命名为以下值之一,然后按 Enter:

l 每个用户允许的最大会话数“Maximum Allowed Sessions Per User” 此限制指定每个用户允许的最大会话数。

l 每个用户允许的最大服务会话数“Maximum Allowed Service Sessions Per User” 此限制指定每个用户允许的最大服务会话数。

l 每个服务允许的最大 Exchange 会话数“Maximum Allowed Exchange Sessions Per Service” 此限制指定每个服务允许的最大 Exchange 会话数。默认值为 10,000,最大值为 65536。

l 每个服务允许的最大并发 Exchange 会话数“Maximum Allowed Concurrent Exchange Sessions Per Service” 此限制指定每个服务允许的最大并发 Exchange 会话数。

l 禁用会话限制“Disable Session Limit” 此限制禁用会话限制。将该值设置为“0”可关闭会话限制。将该值设置为“1”可打开会话限制。

5) 右键单击新创建的注册表项Maximum Allowed Sessions Per User,然后单击“修改”。

6) 在“数值数据”框中,键入要限制此项使用的对象数,然后单击“确定”。使用上表可查看默认设置。

针对第二个错误,可修改每个会话的最大打开项目数,objtMessage对象类型的值,默认250。

clip_image011

修改每个会话的最大打开项目数,操作步骤如下:

1) 启动注册表编辑器 (regedit)。

2) 导航到下列注册表子项:

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem

3) 右键单击“ParametersSystem”,指向“新建”,然后单击“注册表项”。会在控制台树中创建新注册表项。

4) 将该注册表项重命名为“MaxObjsPerMapiSession”,然后按 Enter。

右键单击“MaxObjsPerMapiSession”,指向“新建”,然后单击“DWORD (32 位) 值”。会在结果窗格中创建新值。

5) 将该注册表项重命名为 <Object_type>,其中 <Object_type> 为所修改的注册表对象类型的名称。例如,若要修改可以打开的邮件数,请此处使用 objtMessage。按 Enter。

6) 右键单击新创建的注册表项,然后单击“修改”。

7) 在“数值数据”框中,键入要限制此项使用的对象数,然后单击“确定”。例如,键入“350”可增大对象的值。

8) 重新启动 Microsoft Exchange 信息存储服务。

5. 操作风险

1) 在编辑注册表之前,需要将其备份;编辑完成后需重启操作系统使其生效;不正确地编辑注册表,可能导致出现严重问题,从而需要重新安装操作系统。

2) 对Exchange 存储连接和使用限制,用以保护服务器性能稳定,避免因资源耗尽宕机,更改策略会增加宕机风险。