Иногда пользователи MS Exchange сталкиваются с такими проблемами, когда они не могут открыть свой почтовый ящик через программу MS Outlook, хотя сетевое подключение есть, почтовый сервер доступен, коллеги по работе не испытывают аналогичных проблем с использованием почты.
Проблема заключается в том, что в MS Exchnage имеются ограничения на количество MAPI сессий к почтовому ящику. Если их количество превышает 16 (для MS Exchange 2010), то все попытки создать новую сессию будут отклоняться сервером (эта проблема обсуждается в этой ветке форума Microsoft).
Чтобы узнать, сколько подключений открыто к почтовому ящику, можно воспользоваться командой PowerShell на почтовом сервере или в сеансе PowerShell к почтовому серверу (как открыть сеанс для управления почтового сервера со своего компьютера рассказано тут).
Итак, команда Get-LogonStatistics позволяет узнать, сколько же сессий открыто к почтовому ящику:
Get-LogonStatistics -Identity VitBoch | FT username, clientname, clientversion, LogonTime, LastAccessTime
На выходе эта команда выдает таблицу с описанием сессий к ящику, например:
UserName ClientName ClientVersion LogonTime LastAccessTime -------- ---------- ------------- --------- -------------- Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:05 26.04.2012 10:45:06 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:06 26.04.2012 14:31:50 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:24:14 26.04.2012 14:37:31 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:33:10 26.04.2012 14:33:45 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:07 26.04.2012 10:45:07 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:36:37 26.04.2012 14:37:10 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:08 26.04.2012 14:36:57 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:36:59 26.04.2012 14:37:32 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:36:36 26.04.2012 14:37:32 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:43 26.04.2012 14:37:28 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:45:43 26.04.2012 10:45:43 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 14:36:37 26.04.2012 14:37:12 Bochkarev Vitaly MBX12 3585.0.33038.1 26.04.2012 10:46:03 26.04.2012 13:31:39
Чтобы посмотреть все сессии, открытые на почтовом сервере, можно воспользоваться такой командой:
Get-LogonStatistics -Server MBX12 |Sort username | FT username, clientversion, LogonTime, LastAccessTime
Если выявлено, что у пользователя сессий больше, чем 16 штук, то необходимо их как-то закрыть. Но проблема состоит в том, что в MS Exchange 2010 это невозможно сделать напрямую. Есть только косвенные способы, чтобы сбросить клиентские сессии:
- Перезагрузить почтовый сервер, где находится ящик пользователя (неприемлимо - затронет других пользователей).
- Размонтировать и смонтировать хранилище, в котором находится ящик пользователя (неприемлимо - затронет других пользователей).
- Переместить ящик проблемного пользователя на другой сервер/в другое хранилище и вернуть обратно (самый оптимальный косвенный вариант).
Итак, я советую использовать перемещение ящика проблемного пользователя между хранилищами, так как в момент миграции все сессии к почтовому ящику закрываются.
Кстати, в упомянутом выше блоге рекомендуется увеличить количество возможных сессий для одного почтового ящика, но я бы не советовал этого делать, так как это вызовет более интенсивное использование ресурсов сервера, а желаемый результат так и не будет достигнут - пользователи так и будут блокировать свои сессии. Причина блокировки - разрывы в связи между клиентом и сервером. Микроразрывы в работе сети подвешивают сессии: когда на клиенте объект (письмо, задача, встреча) закрывается, а в этот момент связь с сервером теряется, сессия не закрывается на стороне сервера - мы получаем повисшую сессию. Описанный пример видно более наглядно, когда пользователь переключатся с кабеля на WiFi и обратно, в этот момент у компьютера меняется IP адрес, сессии открытые со старого IP адреса остаются висеть на стороне сервера, пока не истечет их время жизни (обычно 24 часа).