Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам:
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 1)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 2)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 3)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 4)
Параметры Free/busy (свободен/занят) – это священная Грааль для перехода с GroupWise на Exchange. В первой части этой статьи мы рассмотрим работу с Exchange 2003. Во второй части мы рассмотрим работу с Exchange 2007.
В этой статье я:
- Объясню, как запрашивается и передается информация free/busy между GroupWise и Exchange 2003
- Объясню, как проверять, чтобы нужная информация передавалась.
- Объясню, как Exchange 2007 все осложняет.
Заявление Microsoft о поддержке
Официально функциональная совместимость GroupWise 7 с Exchange Server не поддерживается Microsoft.
Официальная политика для совместной работы с GroupWise определена в
Exchange поддержке для Novell GroupWise версий 6.x и 7.x
Компания Microsoft специально говорит:-
- Microsoft Exchange Server 5.5, Microsoft Exchange 2000 Server и Microsoft Exchange Server 2003 поддерживает Novell GroupWise версий 4.1x, 5.0, 5.1, 5.2x, и 5.5x.
- Exchange Server 2003 Service Pack 2 поддерживает Novell GroupWise версий 4.1x, 5.0, 5.1, 5.2x, 5.5x, 6.x и 6.5x.
- Novell GroupWise версии 7 не тестировалась с компонентами Exchange, которые перечислены в этом разделе. Таким образом, Novell GroupWise версии 7 не поддерживается.
- Для этих версий Novell GroupWise не будет поддержки в инструментах коннекторов или миграции (Connector or Migration Tools) других версий Microsoft Exchange Server.
Это последнее утверждение является самым важным. В планы компании не входит поддержка функциональной совместимости GroupWise с Exchange 2007 или последующими версиями Exchange.
Полагаю, что это заявление вряд ли изменится.
Это слегка усложняет жизнь.
- Для GroupWise отсутствует коннектор с Exchange 2007.
- Exchange 2003 не поддерживается вне GroupWise 6.5.
Это предполагает, что для того, чтобы перейти с GroupWise на Exchange Server 2007, вам потребуется использовать Exchange 2003 Server, а также – что в среде GroupWise 7 вам нужно будет установить дополнительный GroupWise 6.5 Post Office, чтобы разместить на нем GroupWise API.
Позвольте внести ясность по поводу того, что функциональная совместимость между Exchange 2003 с Service Pack 2 и GroupWise 7 на самом деле работает, хотя официально это не утверждается, однако неподдерживаемый процесс перехода таит в себе значительную опасность для любого миграционного проекта.
В этой статье мы используем
- Exchange 2003 SP 2
- GroupWise 7 на Netware 6.5
Мы не вносили никаких изменений в нашу базовую установку Exchange 2003. Более того, мы не придали никакого значения изменению поведения разрешения 'Send As' в Exchange 2003 и изменениям разрешения 'send as'.
Прежде чем мы зайдем слишком далеко, нужно сделать поправку. Во второй части мы настроили API шлюз и External Foreign Domain (внешний чужой домен) с одинаковыми именами. Мы назвали их Exchange.
Это было неудачной идеей. Если вы еще не следовали инструкциям предыдущих частей, то не беспокойтесь, они были исправлены, однако если вы уже настроили свой шлюз и домен, то приносим свои извинения, поскольку вам придется изменить настройки шлюза.
Мы оставили внешний чужой домен под названием Exchange, поскольку это отлично вписывается в политику получателя Exchange. Чтобы различить два объекта NDS, мы решили назвать шлюз GW2MEX.
Мы бы хотели поблагодарить Мэта Дункина из компании Salford Software за его помощь в диагностировании почтового потока между нашими тестовыми серверами и за определение того, что самой вероятной причиной проблемы было дублированное имя объектов.
GroupWise и Exchange 2003
В четвертой части мы настроили коннектор календаря на работу с коннектором Microsoft для Novell GroupWise. Мы запустили API и все службы Microsoft Exchanges, а также узнали, что необходимо делать, чтобы убедиться в корректной работе API и запущенных служб.
Далее мы настроим нашу систему на мониторинг информационного потока между Exchange и GroupWise, чтобы можно было видеть, что происходит, когда мы осуществляем поиск free/busy между системами.
В 4 части мы создали объект регистрации DWORD под названием Archive со значением 1 в HKLM\SYSTEM\CurrentControlSet\Services\LME-GWISE\Parameters на сервере Exchange Server, на котором запущены коннекторы. Это создает архивную копию всех сообщений, передаваемых между GroupWise и Exchange в структуре директорий \Program Files\Exchsrvr\conndata\gwrouter.
Мы также следуем инструкциям в статье How to Enable and Increase Logging for Microsoft Exchange Connectivity Controller Connectors, чтобы увеличить уровень записи логов. В этой статье мы увеличим уровни записи диагностических логов для MSExchangeCalCon до максимального значения по всем категориям, как показано на рисунке 1. Следует учитывать, что эти увеличенные уровни записи логов потребляют ресурсы и место на диске, поэтому, когда мы убедимся в том, что все работает корректно, мы можем отключить их.
Вместо того, чтобы цитировать огромные отрывки из статей по диагностике, которые имеются в наличии в огромном количестве, позвольте мне вкратце рассказать о том, что происходит, когда вы запрашиваете информацию free/busy между Exchange и GroupWise.
Для обработки запросов и ответов free/busy на сервере Exchange используется две директории, расположенных в \conndata\gwrouter. Это директории \togwise и \freebusy.
В GroupWise API тоже используется две директории, wpgate\API\API_IN и wpgate\API\API_OUT
И наконец, непосредственно на GroupWise есть директории WPCSIN и WPCSOUT.
Сообщения передаются между Exchange и GroupWise, проходя через все шесть директорий, как показано на схеме 1 для каждого free/busy запроса и ответа.
Запросы Free/busy с Exchange на GroupWise располагаются в директории \togwise, а маршрутизатор для Novell GroupWise перемещает эти сообщения в директорию \API_IN в структуре папок API. Отсюда шлюз API обрабатывает сообщения и перемещает их в \WPSCIN, где они обрабатываются GroupWise MTA.
В обратном направлении сообщения с GroupWise на Exchange запускаются в \WPCSOUT, где их находит шлюз API и перемещает в \API_OUT, после чего они передаются маршрутизатором для Novell GroupWise в директорию \freebusy.
Это довольно простой процесс. Запросы и ответы free/busy с Exchange на GroupWise используют тот же путь, равно как и запросы и ответы с GroupWise на Exchange.
Используя архивный редактор регистрации, созданный в четвертой части, мы можем вести запись всех сообщений из папок \togwise и \freebusy, а также можем отслеживать эти запросы и ответы.
Тестирование в Outlook
Я считаю, что самым простым способом тестирования free/busy с GroupWise на Exchange является использование группового графика (Group Schedule) по причинам, которые вскоре станут понятны вам. Я использую Outlook 2003 на Windows XP SP2.
В Outlook 2003 я создал групповой график под названием GroupWise, как показано на рисунке 2, и добавил всех пользователей GroupWise (почтовые ящики которых все еще лежат на GroupWise), которые отображены в списке глобальных адресов Exchange.
Когда я открою групповой график для GroupWise, произойдет следующее.
Для каждого пользователя GroupWise в моем групповом графике Outlook запрашивает публичную папку Schedule+free/busy для информации free/busy.
В зависимости от свойств настроенных во вкладке Общие коннектора календаря, показанного на рисунке 3, Exchange будет либо предоставлять информацию free/busy непосредственно обратно в Outlook, если информация храниться в КЭШе и записана не ранее 15 минут назад, или если информация отсутствует в публичной папке free/busy или записана более пятнадцати минут назад, Exchange отправляет free/busy запрос на GroupWise.
Эти запросы free/busy можно посмотреть в папке \Program Files\Exchsrvr\conndata\gwrouter\archive\togwise.
К примеру, простой запрос free/busy для Ian West генерирует файл с названием EGW4C.api в директории togwise.
Если я буду наблюдать за шлюзом API на своем сервере GroupWise, когда запись логов диагностики имеет атрибут Verbose (подробный), я увижу, что EGW4C.API обрабатывается, как входящее сообщение, как показано на рисунке 4.
Затем я смогу увидеть соответствующее исходящее сообщение пятнадцатью секундами позже.
Если я выберу опцию в Outlook Обновлять free/busy в течение 15 минут после оригинальной трансакции, то не будет отправлено или принято никаких дополнительных сообщений между двумя системами, и представленная информация free/busy будет браться из публичной папки free/busy.
Когда запись диагностических логов API настроена с атрибутом Diag (F10, затем F2, затем F1), сохраненные в директорию wpgate\API\.PRC файлы логов будут содержать дополнительную информацию.
03-29-08 18:40:35 Processing inbound message - File: EGW4C.API 03-29-08 18:40:35 Msg-ID: AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; . 03-29-08 18:40:45 Processing outbound message... . 03-29-08 18:40:45 Orig-Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41 :2008.3.29.18.41.37;
The Msg-ID: and the Orig-Msg-ID= reference is the same one included in the archived EGW4C.api file.
WPC-API= 1.2; MSG-TYPE= Search; Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; From= WPD= dom1; WPPO= GW2MEX; WPU= EXCHANGE2003-SA; CDBA= dom1.GW2MEX.EXCHANGE2003-SA; ; To= WPD= DOM1; WPPO= PO1; WPU= Iain; CDBA= DOM1.PO1.Iain; ; Begin-Time= 29/3/2008 18:41; End-Time= 28/5/2008 19:41; -END-
Запрос free/busy, содержащийся в EGW4C.api файле, взят из директории \gwrouter\togwise на Exchange Server и передан в директорию wpgate\API\API_IN на GroupWise Server. API распознает, что этот тип сообщения является поиском
MSG-TYPE= Search;
и передает его на GroupWise для обработки.
GroupWise обрабатывает сообщение, и ответ помещается в директорию API_OUT, откуда он затем принимается маршрутизатором Microsoft Exchange Router для Novell GroupWise и перемещается в директорию gwrouter\freebusy.
Ответ на запрос free/busy выглядит примерно так.
WPC-API= 1.2; Header-Char= T50; Msg-Type= SEARCH; Orig-Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; To= CDBA= dom1.GW2MEX.EXCHANGE2003-SA; ; Busy-For= CDBA= DOM1.PO1.Iain; Busy-Report= Start-Time= 29/3/08 0:00; End-Time= 31/3/08 8:00; , . . . Start-Time= 28/5/08 17:00; End-Time= 29/5/08 0:00; ; Send-Options= None; -END-
В этих парах файлов для параметров Start-Time (время начала) и End-Time (время окончания) установлено значение в 60 дней, которое является значением по умолчанию для опции Количество дней для запросов информации free/busy с внешних календарей, установленным во вкладке Общие коннектора календаря, показанной на рисунке 3, а также на рисунке 5 в качестве примера.
Как подробно говорится в статье PSS ID: 304726 'XFOR: Exchange Calendar Connector Free-and-Busy Searches Display Busy Time from 5:00 P.M. Through 8:00 A.M.' эта информация эффективно отмечает каждого пользователя GroupWise как занятого с 17:00 до 08:00 следующего дня, а также как занятого в течение всех выходных.
Информация free/busy, отображенная в моем групповом графике для пользователей GroupWise, показана на рисунке 6.
Это действительное визуальное подтверждение того, что запросы free/busy с Outlook/Exchange на GroupWise работают.
Тестирование на GroupWise
Обратный процесс столь же прост.
На своем клиенте GroupWise я выбрал опцию New Appt, как показано на рисунке 7.
Затем я выбрал опцию Busy Search, как показано на рисунке 8.
Я нажимаю Пригласить на собрание' как показано на рисунке 9.
Наконец, я ввожу имя пользователя с почтовым ящиком Exchange, как показано на рисунке 10 и нажимаю OK.
На GroupWise PO, с которого запущен API, я видел исходящее сообщение, за которым пять секунд спустя следовал соответствующий ответ, как показано на рисунке 11.
На клиенте GroupWise free/busy Статус: изменился с состояния Ожидаю ответа, как показано на рисунке 12
на состояние Доступен, как показано на рисунке 13.
На данный момент я могу посмотреть информацию busy в Индивидуальном графике, как показано на рисунке 14.
Я могу посмотреть в директорию \freebusy на сервере Exchange, чтобы найти free/busy запрос с GroupWise, и могу найти ответ в директории \togwise.
Исходящий запрос free/busy с GroupWise:
WPC-API= 1.2; Header-Char= T50; Msg-Type= SEARCH; From-Text= Matt Dunkin; From= WPD= DOM1; WPPO= PO1; WPU= Matt; FN= Matt; LN= Dunkin; S= Dunkin; G= Matt; ; To= WPD= Exch; WPPO= First Administrative Group; WPU= Flavia; WPPONUM= 1; WPUNUM= 1; FN= Flavia; LN= Wright; UD5= Microsoft Exchange Connector for Novell GroupWise; S= Wright; G= Flavia; CDBA= 0001:0001; ; All-To= WPD= Exch; WPPO= First Administrative Group; WPU= Flavia; WPPONUM= 1; WPUNUM= 1; FN= Flavia; LN= Wright; UD5= Microsoft Exchange Connector for Novell GroupWise; S= Wright; G= Flavia; , WPD= DOM1; WPPO= PO1; WPU= Matt; WPPONUM= 2; WPUNUM= 1; FN= Matt; LN= Dunkin; S= Dunkin; G= Matt; ; Msg-Id= 47EFC6FC.B99A.04EB.000; To-Text= Flavia.First Administrative Group.Exch, ; Subject= BUSY SEARCH: Flavia Wright, Matt Dunkin; Date-Sent= 30/3/08 17:59; Security= Normal; Send-Options= None; Status-Request= Opened; Begin-Time= 31/3/08 0:00; End-Time= 7/4/08 0:00; Msg-Priority= Normal; -END-
И соответствующий ответ с Exchange:
WPC-API= 1.2; MSG-TYPE= Search; Orig-Msg-ID= 47EFC6FC.B99A.04EB.000; To= WPD= DOM1; WPPO= PO1; WPU= Matt; ; Busy-For= CDBA= 0001:0001; ; Busy-Report= Start-Time= 31/3/2008 9:0; End-Time= 31/3/2008 12:0;, Start-Time= 31/3/2008 13:0; End-Time= 31/3/2008 17:0;, Start-Time= 1/4/2008 14:0; End-Time= 1/4/2008 16:0; ; -END-
Следует упомянуть о некоторой информации, содержащейся в файлах, которые передаются между Exchange и GroupWise.
Exchange обычно запрашивает 60 дней для free/busy по умолчанию.
Begin-Time= 29/3/2008 18:41; End-Time= 28/5/2008 19:41;
А GroupWise обычно требует лишь 7 дней
Begin-Time= 31/3/08 0:00; End-Time= 7/4/08 0:00;
Также следует обратить внимание на то, что запрос free/busy с Exchange отправляется обслуживающей системной программой (system attendant)
WPU= EXCHANGE2003-SA;
Это очень важно, поскольку данной программе нужен GWISE прокси адрес, иначе процесс работать не будет. Вот почему в четвертой части мы предложили просто изменить стандартную политику получателя (Default Recipient Policy) на Exchange, как указано в Event ID 6001 messages are logged when you use Exchange 2000 Calendar Connector
Наконец, если вы следовали инструкциям ведения логов How to Enable and Increase Logging for Microsoft Exchange Connectivity Controller Connectors и создали директорию \logs в \conndata, файлы логов в этой директории предоставят вам гораздо больше информации и могут помочь в диагностировании возможных проблем, хотя для их подробного описания у нас нет достаточно места.
Работа в режиме консоли
Если вы следовали всему вышесказанному, то у вас должна быть работающая система. Однако, одним полезным методом, позволяющим вам более детально понять, что происходит за кулисами, является запуск коннектора календаря в режиме консоли на сервере Exchange. Для этого нужно запустить Calcon.exe из директории \Exchsrvr\bin.
Вот некоторая ключевая информация, на которую нужно обратить внимание:
[00000D70]: The Calendar Connector will process calendar requests made to the "Schedule+ Free Busy Information - first administrative group" system folder on the following servers: EXCHANGE2003
Это говорит нам о том, какую публичную папку free/busy коннектор календаря собирается использовать. Нам нужно убедиться в том, что информация free/busy для first administrative group копируется в EXCHANGE2003
[00000D70] (Debug): API_IN Directory is 'C:\Program files\Exchsrvr\conndata\gwrouter\togwise\'
[00000D70] (Debug): API_OUT Directory is 'C:\Program Files\Exchsrvr\conndata\gwrouter\freebusy\'
Эти две линии подтверждают назначение директорий между \togwise и \API_IN, а также между \freebusy и \API_OUT, как показано на рисунке 2
[00000D70]: The Calendar Connector has logged onto the "Schedule+ Free Busy Information - first administrative group" system folder on EXCHANGE2003 to process calendar queries for site first administrative group.
[00000D70]: The Calendar Connector has logged onto the "Schedule+ Free Busy Information - first administrative group" system folder on EXCHANGE2003 to submit calendar query responses.
Эти две строки подтверждают, что коннектор календаря успешно зарегистрировался в папке Schedule + Free Busy для первой административной группы и будет принимать и обрабатывать запросы информации free/busy.
Exchange 2007
Итак, как же все изменяется при использовании Exchange 2007? Вообще-то, никак. Я установил Exchange 2007 в свою организацию Exchange 2003. Я использовал один сервер Exchange 2007 с несколькими ролями, на котором были запущены почтовые ящики, CAS и Hub Transport. За исключением настроек коннектора отправления и установки SP1 сервер был абсолютно готов к работе.
Заметка:Установка Exchange 2007 не будет описана в этой статье, так как подробно описана в других статьях на этом сайте.
Я переместил свои почтовые ящики Exchange 2003, используя опцию Move Mailbox' в консоли управления Exchange Management Console.
Тут же почтовый поток в обоих направления продолжает работать. Просмотр Free/busy с GroupWise на Exchange тоже работает, но сначала free/busy с Exchange на GroupWise не работает.
Я использовал следующие PowerShell команды, чтобы добавить сервер Exchange 2007 в копии публичных папок. В нижеприведенных командах имя моего сервера Exchange 2003 - EXCHANGE2003, а база данных публичной папки на этом сервере - Public Folder Store (EXCHANGE2003)
Set-PublicFolder 'Identity '\NON_IPM_SUBTREE\SCHEDULE+ FREE BUSY\EX:/o=Company/ou=First Administrative Group' 'Replicas 'EXCHANEG2003\Public Folder Store (EXCHANGE2003)'
Set-PublicFolder 'Identity '\NON_IPM_SUBTREE\SCHEDULE+ FREE BUSY\EX:/o=Company/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)' 'Replicas 'EXCHANEG2003\Public Folder Store (EXCHANGE2003)"
Позвольте мне повторить. Просмотр Free/busy между GroupWise 7 и Exchange 2007, через коннектор календаря Exchange 2003 теперь работает в обоих направлениях!
Если кто-то захочет демо-ролик этого процесса или еще поговорить об этом, напишите мне, я с нетерпением жду.
Итак, следует ли вам поступать именно так?
Описав все настройки, учитывая то, чего это стоит, я не уверен, что это правильный способ!
Позвольте мне объяснить;
Каждый просмотровой запрос free/busy отправляется индивидуально. У меня есть групповой график с 14 GroupWise почтовыми ящиками. Когда я обновляю информацию free/busy, эти 14 почтовых ящиков генерируют 28 сообщений между Exchange и GroupWise.
В зависимости от Временных параметров шлюза API, если говорить точнее Продолжительность бездействия в спящем режиме (Idle Sleep Duration), как показано на рисунке 15, (которые можно найти, нажав правой клавишей на GW2MEX объекте шлюза в NetWare Administrator и выбрав Details'), каждый из этих обменов free/busy может занимать примерно от 10 до 15 секунд. Для 14 почтовых ящиков процесс обновления информации free/busy занимает около 2 минут. На мой взгляд, это не подходит для более масштабных процессов перехода.
Резюме
Итак, мы убедились в том, что можно передавать информацию Free/busy между GroupWise и Exchange, но мы настоятельно рекомендуем вам по возможности избегать такого сценария перехода. Это определенно процесс, который не соответствует требованиям перехода, и в то же время довольно склонен к внезапным сбоям, что может потребовать перезапуска коннекторов для исправления проблемы. В любом случае, отделы или команды, которые осуществляют переход, скорее всего, будут совместно использовать информацию free/busy, и одновременно пытаться по максимуму сократить период совместного использования разных систем!
В следующей статье мы рассмотрим сам процесс перехода!
Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам:
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 1)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 2)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 3)
- Переход с GroupWise на Exchange 2007 – Функциональная совместимость и миграция (часть 4)