1) Существуют 2 сервера DoubleForce MPB и графическая консоль NetLinkLight. 2) В файле "проект.ini" прописано [Servers] S1=server1 S2=server2 Timeout=5 Auto=1 Система на DF Win2kServer SP4, на консоли Win2k Proff SP4.
Запускаем проект, подключаемся к любому из серверов - все ОК.
Отключаем этот сервер от сети "В НАДЕЖДЕ НА ТО, ЧТО КОНСОЛЬ ПЕРЕКЛЮЧИТСЯ НА ДРУГОЙ МРВ ЧЕРЕЗ 5 СЕК"....
Но происходит следующее. Консоль "зависает" на ~3-4минуты, т.е. сама ОС работает но в окне консоли ничего не обновляется, если открыть, и закрыть проводник, то его изображение "останется" в окне консоли...
А тот сервер, к которому была подключена консоль "зависает" на ~20 секунд Т.е. в момент "потери" сети значение канала (Диагностика-Дубль) 1 и цифра не меняется в течении 20 сек, потом сразу 21, а у партнера-то все нормально чифра "бежит" последовательно от 1 до 21???
Примерно через 4 минуты консоль переключается все-таки на другой МРВ.
Подскажите почему так происходит и как заставить консоль переключаться на другой МРВ за 5 сек, описанные в файле .ini
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Какой релиз ТМ5 Вы используете?
Posted by Droshnev (Участник № / Member № 132) on :
5.12 на всех машинах.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Сейчас провел тесты по Вашему описанию. В тестах использовались следующие сетевые платы: 1) 3Com EtherLink XL 10/100 PCI For Complete PC Manage 2) Intel 8255x-based PCI Ethernet Adapter (10/100)
(2) - Сервер№1, (1) - Сервер№2 и на нем же был запущен графический клиент.
На сервере №1 в реестре пробовал ключ DisableDHCPMediaSense=1 и DisableDHCPMediaSense=0 При обоих настройках проверялось два типа потери связи: с физическим разрывом сети и останов сервера ТМ без разрыва сети. При обеих настройках DisableDHCPMediaSense результаты были одинаковы: При разрыве сети - Консоль переключалась на резерный сервер №2 в течении 20-40 секунд. При останове сервера без разрыва сети - консоль переключалась на резервный сервер в течение 5-10 секунд. То, что ключ DisableDHCPMediaSense влиял на работу адаптера я проверял командой "ipconfig /all" - при DisableDHCPMediaSense=0 данная команда при физическом разрыве связи сообщала, что сеть не доступна, а при DisableDHCPMediaSense=1 даже при физически отключенном кабеле данная команда ничего не сообщала об этом.
Однако в тестировании не было никаких ситуаций, когда сервер №2 при обрыве связи "замирал" на 20 секунд (хотя, если Вы контролировали замирание через графическую консоль, то это объяснимо - смотрите коментарии ниже), а графический клиент ни разу не превысил 40 секунд при переключении на резервный ПК.
Задержка переключения при физическом обрыве сети может быть объяснена - сама Microsoft дает коментарии по этому поводу в MSDN: "The default-damping interval is 20 seconds for disconnect events and 10 seconds for connect events. Upon receiving a notification, TCP/IP starts/restarts the interfaces and adds/removes the corresponding IP addresses and route entries." Самое интересное, что данные параметры настраеваемы, но только в Windows CE! В WinXP и в Win2K они недоступны и вполне вероятно прошиты в самой системе как константы (можете попробовать поискать в реестре параметры ConnectDampingInterval и DisconnectDampInterval - мне их найти не удалось). Кроме того - также была проверена ситуация с физическим обрывом сети на обмене по ОРС не между приложениями ТМ, а сторонним ПО - при физическом обрыве сети DCOM восстанавливал обмен только по истечении 40 секунд после восстановления связи по сети! С этим мы уже ничего поделать не можем, потому как все это реализовано так на уровне самой ОС!
Почему у Вас происходят такие большие задержки в 3-4 минуты на переключение - мне пока не понятно. Также рекомендую Вам посмотреть все журналы событий системы на предмет каких-либо записей по этому поводу. А также - попробовать все то же самое под WinXP. Кроме того - наш инженер, который проверял до этого ситуацию с диагностикой кода ошибок сети на сетевых адаптерах с ключом DisableDHCPMediaSense в реестре сказал, что данный ключ критичен в основном только для адаптеров у которых есть BNC-коннектор на коаксиал. Про этот факт также упоминается в MSDN: "A majority of modern NICs implement MediaSense but none of the 10Base2 cards are capable due to the lack of line voltage on the coaxial cable." "NOTE: 10b2 or coaxial (RG-58) Ethernet cable is not a connection-based media. Because of this, Windows does not attempt to detect a "connect" state if this type of cabling is used."
И еще одно, не думаю, что это может быть причиной, но все же - посмотрите пожалуйста в настройках DCOM, какой протокол в сиписке стоит для DCOM по умолчанию? Дело в том, что у Microsoft там всегда по умолчанию стоит что-то вроде NetBEUI или IPX, а в MSDN сказано, что: "NOTE: NetBEUI and IPX do not recognize Media Sense." А ведь консоль работает с удаленным сервером по DCOM и тогда потеря физической связи по сети может действительно приводить к очень большим задержкам на переключение. Попробуйте в списке оставить только один TCP/IP протокол, может поможет!?
Posted by Droshnev (Участник № / Member № 132) on :
Провели ответные тесты. В тестах использовались следующие сетевые платы: 1) Realtek RTL8139 - клиент WinXP SP1 2) Intel 82544GC - серверы Win2k Server Sp4
В настройках DCOM поставили протокол "Ориентированный на подключение TCP/IP" на всех 3-х машинах.
DisableDHCPMediaSense на всех 3-х машинах поставлен = 0
При "останове" текущего МРВ консоль переключается за ~10сек.
При обрыве сети с текущим МРВ происходит следующее:
Консоль через 40сек виснет(файл 01.jpg выслал в письме на адрес hotline@adastra.ru, до зависания 02.jpg) через 165 сек переключается на резервный сервер (при настройках 5 сек).
Сервер МРВ, к которому была подключена консоль при обрыве сети "виснет" на 14 сек - судим по каналу Диагностика - Дубль. Было 1 - пауза 14,15,16...
Да, кстати подскажите пожалуйста, что значит Сеть-Ошибка 3, код 64, и Сеть-Ошибка 4, код 19?
Отправил дубликат письма со вложенными файлами на hotline@adastra.ru.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) "Убил" целый день на поиски и испытания, но так и не удалось заставить ОС при физическом разрыве сети отслеживать удаленный сервер чаще, чем заложено в системе. Сегодня отправил запросы на различные специализированные форумы, будем ждать ответа - может кто-то уже сталкивался с подобной ситуацией. Поэтому пока ничего нельзя поделать с тем, что переключение консоли при физическом разрыве связи (или выключении питания ПК) будет несколько медленнее, чем при нештатном завершении работы МРВ или ОС на этом ПК. 2) С "замиранием" сервера МРВ при переключении более досконально буду разбираться завтра, поэтому пока никаких результатов нет. 3) Относительно ошибок сети: Ошибка Сеть - это аналог канала ДИАГНОСТИКА-Сеть, это коды ошибок обмена по сети ТМ5, все описание есть в справочной системе. Ошибка Код - аналог канала ДИАГНОСТИКА-Код сети, это коды ошибок самого сетевого клиента ОС, поэтому описание этих кодов нужно смотреть в описании на сетевой клиент, который Вы используете (так как зачастую в 99% - это клиент от MS, то часть известных нам кодов может быть найдена в описании этого канала в нашей справочной системе).