Exchange - Управление клиентскими сессиями

Записка от 26.04.2012

Иногда пользователи 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 это невозможно сделать напрямую. Есть только косвенные способы, чтобы сбросить клиентские сессии:

  1. Перезагрузить почтовый сервер, где находится ящик пользователя (неприемлимо - затронет других пользователей).
  2. Размонтировать и смонтировать хранилище, в котором находится ящик пользователя (неприемлимо - затронет других пользователей).
  3. Переместить ящик проблемного пользователя на другой сервер/в другое хранилище и вернуть обратно (самый оптимальный косвенный вариант).

Итак, я советую использовать перемещение ящика проблемного пользователя между хранилищами, так как в момент миграции все сессии к почтовому ящику закрываются.

Кстати, в упомянутом выше блоге рекомендуется увеличить количество возможных сессий для одного почтового ящика, но я бы не советовал этого делать, так как это вызовет более интенсивное использование ресурсов сервера, а желаемый результат так и не будет достигнут - пользователи так и будут блокировать свои сессии. Причина блокировки - разрывы в связи между клиентом и сервером. Микроразрывы в работе сети подвешивают сессии: когда на клиенте объект (письмо, задача, встреча) закрывается, а в этот момент связь с сервером теряется, сессия не закрывается на стороне сервера - мы получаем повисшую сессию. Описанный пример видно более наглядно, когда пользователь переключатся с кабеля на WiFi и обратно, в этот момент у компьютера меняется IP адрес, сессии открытые со старого IP адреса остаются висеть на стороне сервера, пока не истечет их время жизни (обычно 24 часа).

Ватные палочки CLEANIC круглая коробка 100шт тут

Вверх