Жизнь замечательных багов Microsoft Exchange (и не только)

    Microsoft — удивительная компания. Не редко она готова удивить не только новыми продуктами и приобретениями, но и довольно экстравагантными багами.

    Здесь хабравчане пытаются побороть высокую загрузку процессора, отсутствие обновлений Windows Update. Сизифов труд! Но и на этом поле битвы можно одержать локальную победу. До следующего обновления. This behavior is by design.

    Настойчивость, аналитическое мышление, отточенный навык связывать казалось бы абсолютно несвязанные факты — абсолютно необходимы Windows-администратору.

    Поделюсь забавным случаем из практики.

    По долгу службы мой почтовый клиент — Microsoft Outlook в связке с Microsoft Exchange.

    Это очень серьезная и функциональная комбинация. Microsoft знает толк в электронной почте, спасибо отцу-основателю, для которого электронная почта была любимым инструментом, лично изменившему поиск в Outlook по Ctrl+F на форвардинг письма.

    У этой комбинации есть три недостатка — дорого, очень дорого, и сложно. Microsoft Exchange это тяжелый продукт. Некоторые простые вещи реализованы очень сложно, и чтобы разобраться в простейшей проблеме надо хорошо знать продукт.

    К сути вопроса. В вашем почтовом клиенте есть адресная книга? В Outlook + Exchange есть, и не одна.
    Помимо личного списка контактов, хранящегося в почтовом ящике, Exchange отдает клиентам адресную книгу всей организации.



    В online режиме Outlook подключается к серверу для того, чтобы получить списки получателей. В крупных инсталляциях число почтовых пользователей измеряется десятками тысяч, и нагрузка на серверы может оказаться довольно значительной. Поэтому Microsoft давно перешла по умолчанию на схему синхронизации.

    Клиент синхронизирует данные почтовых папок и загружает с сервера offline адресную книгу. Сначала клиент качает полную адресную книгу, размер которой может составлять десятки и сотни мегабайт, а потом, на ежедневной основе, небольшие бинарные патчи с изменениями. «Пропатченная» книга хранится в виде набора файлов:


    В один прекрасный день я заметил, что в моем почтовом клиенте — устаревшая адресная книга. День уже не казался таким прекрасным. Попробовал обновить ее вручную — не обновилась.

    Проверил сервер. Адресная книга лежала в точке распространения и регулярно обновлялась сервером. У моих коллег не было такой проблемы.

    Утром следующего дня я опять остался без обновлений. Может проблема в том, что я — администратор Exchange? Звучит забавно, но была история, что для администраторов Exchange Outlook всегда скачивает полную адресную (сейчас уже не могу найти подтверждение этого факта). Нет, без администраторских привилегий книга не качается. Хорошо, удалил профиль. Нулевой результат.

    Запустил Wireshark. Нажимаем скачать — и ничего.

    Остался ultima ratio regum — поискать в support.microsoft.com. И что же?
    Статья «HTTP version of the Outlook Offline Address Book (OAB) does not download» в качестве решения проблемы предлагает «обновить драйверы беспроводной мыши».

    Обновить драйверы беспроводной мыши, чтобы скачивать offline адресную книгу в Outlook? Бред.
    Был бы, если бы у меня единственного не была установлена Microsoft Wireless Mouse 8000.



    Ставим последний пакет Intellipoint, запускаем «Скачать адресную книгу» и… Она скачивается.

    А разгадка одна — безблагодатность MAPI idle tasks. Разработчики MAPI (Mail API, с его помощью Outlook общается с Exchange) сделали так, что некоторые вещи происходят только тогда, когда компьютер простаивает. Скачивание Offline Address Book (в том числе и принудительным нажатием кнопки) — одно из них. Что значит «простаивает» для разработчиков Outlook? Простаивает — значит пользователь не двигает мышью, а драйвер не присылает ОС новых координат курсора. Гениально.

    Не менее продвинутые разработчики драйверов для мышей Microsoft решили, что надо посылать ОС статусное сообщение даже в том случае, если мышь не двигается. Надежность прежде всего, а то вдруг приемник или порт уснут.

    Вот тут и нашла коса на камень. Событие IDLE не наступало никогда. Но боль и слезы пользователей не были не замечены, и разработчики драйвера исправили «неправильное» поведение мыши.

    Спасибо за внимание. На этом пятиминутку ненависти будем считать законченной.

    UPD: Кстати, есть хороший документ The Mysterious Outlook Outbox: The Whole Story. Рекомендую.
    Мини-FAQ по OAB: https://support.microsoft.com/en-us/kb/841273
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 24

      0
      Сделать хотя бы так: Скачивать медленно когда не IDLE? Для слабаков! (Раз уж так беспокоятся что бы винда не тормозила при скачке...).
        +6
        «Нельзя просто так взять и скачать адресную книгу». (с)
        Сначала надо проверить, не в онлайн ли режиме мы… Потом проверить в реестре нет ли запрета на скачку книги. Надо найти точку распространения. Оценить не великоват ли патч и не скачать ли полную. Выждать удачный момент… Зарядить задание скачивания в BITS… True guru еще шагов 10 допишут.
          +1
          Тут заржал, спасибо!
          «лично изменившему поиск в Outlook по Ctrl+F на форвардинг письма.»

          Вот кстати отличная подборка в ответах и вопросах поддержки MS:
          http://www.jazzkeyboard.com/jilly/funny-microsoft-q-articles-from-the-technet-support-knowledge-base/
            0
            Хорошая подборочка.
            Dancer does not start when music plays — неплохо, неплохо!
              0
              WORKAROUND
              To work around this issue in any version of Dancer, manually start Dancer. To manually start Dancer, right-click the Dancer icon in the notification area on the task bar, and then click Start Dancing.

              проще уже самому сплясать
                0
                Dancer dancer
                I can't live with it I'm gonna die without it
                Dancer dancer
                Ain't no doubt about it

                // не удержался
              0
              Временами пользуюсь OWA. Нужно ли говорить что «Ctrl+r» = Reply? Если бы еще при нажатии этого сочетания клавиш когда сессия отвалилась он уведомлял как либо, а так отрисовывает вьюху создания письма…
              +1
              Вспоминается старинная история, когда проблема с отрисовкой шрифтов в IE решалась очисткой корзины в Outlook.
                0
                Просторы интернета видимо не сохранили этот случай )
                  0
                  Было много лет назад и не со мной. Смутно припоминается, что:
                  начиналось с превышения файла с письмами лимита в 4 ГБ, а при запуске браузера какой-то модуль обращался к этому файлу, сжирал память из-за чего выгружались шрифты.
                0
                Может проблема в том, что я — администратор Exchange?


                Просто интересно. Зачем вы даете такие права своей рабочей учетной записи? Может еще и под администратором домена работаете, чтобы лишний раз пароль не вводить?
                  +1
                  Да надо отобрать давно, конечно. Лишнюю учетку сделать — целая бюрократия. Проще права между парой имеющихся передавать. Доменный администратор, конечно, отдельная учетка, но до идеала из этой статьи — https://habrahabr.ru/post/283482/

                  Решение без дополнительных затрат: заводить для управления инфраструктурой даже не 2-3 учетные записи, как принято (надеюсь, у вас так?):
                  — для локальной работы;
                  — для администрирования серверов и ПК;
                  — для контроллеров домена,
                  а как минимум 4 учетные записи (а то и больше), в соответствии с условными «зонами доверия» в домене, и не применять их вне своей зоны. То есть, держать отдельные учетные записи:
                  — для работы со своей личной машиной;
                  — для входа на контроллеры домена и управлением ими.
                  — для серверов;
                  — для рабочих станций;
                  — для удаленных филиалов, если там оказался ваш домен, но при этом вы не уверены, что там происходит в конкретный момент времени;
                  — для зоны DMZ, если вдруг доменные хосты оказались в DMZ;


                  пока далеко.
                    0
                    Новую учётку сделать — бюрократия, а сидеть под админом бюрократия не запрещает?
                      0
                      В этом раскрывается истинная суть бюрократии — парализовывать нормальную работу, распыляя внимание на соблюдение 150 регламентов вместо того, чтобы делать дело. ) Исправлюсь.
                  0
                  Вы сделали мне вечер, спасибо! ))
                    0
                    Предложу возможный workaround по обновлению адресной книги: отключать мышь (от ноута), драйвер по идее будет при этом неактивным, т.к. система переключится на touchpad, и можно закачать последние изменения в адресной книги, после чего можно обратно включать приемник usb мыши. В случае настольной системы, нужен будет определенный уровень знания для дачи команды обновления адресной книги с клавиатуры, без использования мыши.
                      0
                      Да, но для этого нужно связать в голове мышь и загрузку адресной книги.
                      Что бы такая мысль пришла в голову, нужно сильно ударится головой и не один раз :)))
                      0
                      А ночью почему синхронизация не шла, ночью ведь мышь не двигается.
                        0
                        Она и днем не двигается, но милый драйвер говорит что она двигается из точки X в точку X. ) Но ночью, в любом случае, машины в гибернации.

                        На самом деле довольно просто в качестве workaround перейти на online address book, но это не спортивное поведение.
                          0
                          Могли бы отключать мышку для синхронизации календарей. У вас был бы эпичный переключатель синхронизации на пузике у мышки!
                        +2
                        Мне одному кажется странной логика разработчиков Microsoft «если у нас сделана криво синхронизация, мы пропатчим драйвер мышки»? В следующий раз, не виндовая мышка будет так же реализована и опять все сломается? ИМХО, стоило переписать синхронизацию так чтобы она смотрела в том числе на загрузка проца и активность приложений и медленно и печально, но грузила контакты даже во время работы. А то это выглядит скорее как костыль, чем реальный фикс.
                          0
                          О тогда начинается любимая игра «это придумали не они». Вроде «это баг не в Outlook, а в MAPI», «это не баг, это фича», «делать исправление для MAPI слишком дорого, потому что его нужно тестировать с 100500 версиями Outlook+Exchange».
                            0
                            Да понятно, что костыль, как правило, проще вкрутить, только рано или поздно опять все сломается при такой политике.
                          0
                          Вспоминается цитата из сериала «Солдаты»:
                          «Я переставил драйвер коврика мышки, и вирус как бы испугался и самоуничтожился».

                          Only users with full accounts can post comments. Log in, please.