This is topic Ощибки при запуске и работе DrawServ in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.
Здравствуйте уважаемые! При продолжительной эксплуатации ТМ вер5.12 обнаружили постоянную ошибку которая происходит при запуске DrawServ с ярлыка при автозагрузке ОС и в процессе работы при подключении сразу нескольких граф консолей. Ошибка исключение "нарушение прав доступа" (0хс0000005), адрес 0х0042... адрес зависит от текущего распред памяти. Лог файл с дампам памяти высылаем вам отдельно. Ждем объяснений. для справки ОС Win NT 4.0 sp 3, ОЗУ 256Мб, 3 сетевые карты
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если не ошибаюсь в WinNT 4.0 в ранних SP были проблемы с DCOM, поэтому вполне вероятно, что у Вас сервер "падает", когда к нему консоли по DCOM подключаются. Самый последний SP для NT4.0 - это SP6. Поэтому, для начала - рекомендуем Вам установить на Вашу систему все последние обновления.
Posted by Гунин В.И. (Участник № / Member № 450) on :
Проверили Ваше предположение на счет сервис пака установка 6-го ситуацию в корне не изменила. При запуске DrawServ с ярлыка при автозагрузке ОС ошибка возникает таже и DCOM вообщем тут ни причем. Мы Вам выслали лог файлы и что самое интересное ошибки повторяются! И на разных серверах возникают ошибки по одним и тем-же адрессам и почти в той-же последовательности. Ваши предложения?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Сервер файл сохранения состояния ведет? Если да - попробуйте его удалить и запустить снова.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1.Можете ли Вы продиагностировать момент, когда у Вас запускается МРВ при автозагрузке? Не может ли быть так, что он стартует раньше каких-то служб? 2.После установки service pack, проблема осталась только при загрузке МРВ или также в процессе работы при подключении консолей? 3.Какова строка запуска МРВ в ярлыке?
Posted by Гунин В.И. (Участник № / Member № 450) on :
Сервер ведет файл сохранения состояния. Пробовали его удалить и запустить снова - результат тот-же по 1) Вполне может ли быть так, что он стартует раньше каких-то служб. А как пустит DrawServ после загрузки всех служб. И почему он не дожидается окончания загрузки необходимых служб? по 2) после установки сервиспака ситуация не изменилась, ПРОДОЛЖАЮТСЯ ОТКАЗЫ и при старте и в процессе работы, но зависимость от подключения граф. консолей не прослеживается. по 3) строка запуска соответствует запуску сервера матобработки (DrawServ) из помощи. А какая тут зависимость?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. На счет автозапуска. Автозапуск можно реализовать несколькими способами,в том числе и через реестр. Как сделано у Вас? Возможно, тут есть некая зависимость поскольку Вы утверждаете что при запуске это происходит стабильно. 2. По строке запуска. Дополнительная информация никогда не помешает. Так что если есть возможность - укажите.
Posted by Гунин В.И. (Участник № / Member № 450) on :
Автозагрузка выполнена с ярлыка который помещен в StartUp для всех пользователей. содержание Ярлыка D:\TM\RealTimeMonitor\DrawServ.exe /P:d:\TM\RealTimeMonitor\orion /F:serv1 /RUN /CONSOLE
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Падение сервера при запуске скорее всего действительно связано с файлом дампа. Есть некоторые рекомендации относительно этого механизма: 1) Управляйте сохранением в дамп! Не оставляйте это на самотек системы - она ведь без управления пытается на каждом цикле пересчета состояние системы сохранить! Делайте это менее часто, например - раз в минуту. Для этого есть специальный канал в системе ТМ, который может управлять этим механизмом. 2) Не сохраняйте состояние абсолютно всех каналов в базе! Практика показывает, что необходимость в сохранении состояний требуется только для 5-10% каналов от их общего числа. Используйте объект "Без восстановления" для того, чтобы система не сохраняла дамп по всем каналам.
Posted by Гунин В.И. (Участник № / Member № 450) on :
Мы в итоге сделали автозагрузку DrawServ задержкой его старта на 10 сек. Ваши пожелания по поводу уменьшения каналов сохраняемых в файле восстановления системы мы попытаемся учесть, но есть потребность сохранять атрибут множитель практически для всех каналов. Практика показала, что сохранять надо 80-90% каналов, т.к. изменения БК (проекта) на работающем оборудовании является сложной организационной задачей. Я правильно понял, что каналы помещенны е в объект "Без восстановления" не СОХРАНЯЮТСЯ в дампе или они просто не подчитываются
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Про объект "Без восстановления" - это действительно так. Поэтому в предыдущем моем сообщении по пункту №2 - нужно понимать, что данный объект используется не для запрета сохранения, а для запрета восстановления данных.
Posted by TheBug(R) (Участник № / Member № 275) on :
Проблема с DrawServ при запуске из Автозагрузки под NT, проявляется довольно часто, даже в простых проектах (около 16 каналов, без файла сохранения, без NetLink'ов). Как правило все её обходят написанием bat-файла в котором делается задержка. Если компьютер не очень быстродействующий, то 10 секунд бывает мало, но в большинстве случаев - это решает проблему.
P.S. Сегодня полдня бился над тем, что DrawServ вылетал при загрузке проекта . Единственное, что помогло - это замена его на DrawServ из среды разработки. В заголовке пишет, что Профайлер, но мне кажется - это не так страшно, как Dr.Watson
Posted by Сафронов (Участник № / Member № 408) on :
При запуске DrawServ.exe узла контроллера МФК на ПК появляется сообщение об ошибке и необходимости перезапуска. Затем предлагается переключить удаленный сервер. С чем это может быть связано? Некоторое время назад (когда проект был несколько меньше)запускали таким же образом на ПК профайлер и никаких ошибок не было.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Какая ошибка? 2) Запустите под Профайлером и посмотрите - что в лог-файле?
Posted by Сафронов (Участник № / Member № 408) on :
Дословно привожу сообщение об ошибке в появившемся окне : "DrawServ.exe вызвало ошибку и будет закрыто. Необходимо перезапустить программу. Создан журнал ошибок." В лог-файле криминала нет. Ошибка исчезла после того как, повторно скопировали БК с ПК, где разрабатывался проект. БК, с которой происходила ошибка, открывалась в РБК без ошибок.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
А при обновлении БК проекта Вы копировали только файл *.DBB или еще какие-либо файлы?
Posted by Сафронов (Участник № / Member № 408) on :
Копировали только файл *.DBB. Проект, запускающийся с ошибкой, сохранился, можем выслать.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Давайте - поглядим...
Posted by Сафронов (Участник № / Member № 408) on :
Отправили
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Получили - сейчас посмотрим..
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Проверка показала, что причину сбоя вызывает канал с совершенно непонятным индексом. При загрузке в РБК этого не наблюдается - только в Сервере мат. обработки. Возможно, что сам dbb-файл проекта имеет повреждение.
Попутно - пара советов по Вашему проекту: 1) Осторожнее с запуском узла контроллера на ПК под ОС Windows - у Вас в проекте есть каналы для работы с платами УСО контроллера, а они напрямую с портами ввода\вывода работают в системе. Может что-нибуть работать не совсем корректно, а иногда и "падать", ведь в ПК у Вас же нет того оборудования, для которого были созданы эти каналы. 2) В узле контроллера есть канал, у которого FBD есть и на Трансляции и на Управлении - так под Микро МРВ та FBD, что на Управлении, работать не будет! И еще - есть канал подтипа Управление, для которого не задана FBD.
Posted by grish (Участник № / Member № 3067) on :
Здравствуйте! У нас возникла схожая проблема: DrawServ аварийно завершает работу. Сервер матобработки и графическая консоль запускаются раздельно. Сначала стартует DrawServ. После запуска PicRT не происходит прием данных с контроллера через действующий логический адаптер (номер адаптера берется из дампа). При каждом запуске граф. консоли приходится менять номер адаптера на другой, и затем снова выставлять прежний номер. Только после этого устанавливается связь с микро мрв. Однако при пересчете данных, поступивших с контроллера, происходит аварийное завершение работы DrawServ. Замена проекта (на сохраненный в работоспособном состоянии) не помогает. Очистка файла дампа также не дает результата. Переустановка DrawServ на другую рабочую станцию (с созданием нового DUMP`а и подключением работоспособного проекта) также не решила проблему. Еще одна деталь: продолжительность работы DrawServ до аварийного завершения зависит от способа входа в Windows: при работе в сеансе обычного пользователя DrawServ "вылетает" почти сразу (несколько секунд) после начала пересчета поступающих с микро-мрв данных; при работе в сеансе администратора сбой сервера матобработки происходит не сразу, но стабильно.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Данные с контроллера по NetBIOS после запуска DrawServ никак не должны зависеть от того, запущена ли графическая консоль.
Консоль получает данные от DrawServ по DCOM. Права доступа по DCOM существенно зависят от прав пользователей ОС и от настроек DCOM, что в значительной мере определяется настройками соответствующих компонентов ОС. Кроме того, на обмен по DCOM могут влиять различные службы сетевого контроля.
Версии Windows 2000 и XP не гарантируют постоянство номеров логических адаптеров NetBIOS. Поэтому после загрузки DrawServ нельзя гарантировать появление связи по ранее заданному логическому адаптеру.
Возможно, обмен по одной физической сети по NetBIOS и по DCOM приводит к конфликтам ресурсного характера.
В последних версиях Windows эти проблемы существенно усугубляются.
Именно по этим причинам в Trace Mode 6 мы отказались от использования NetBIOS и DCOM.
Posted by grish (Участник № / Member № 3067) on :
"Чехарда" с логическими адаптерами некритична. Права пользователей на доступ по DCOM также несущественны, так как использование административных прав не дает стабильной работы DrawServ.
Дело в том, что до появления проблемы DrawServ работал без сбоев. Проблема появилась "на ровном месте", никакие настройки ОС не менялись. DCOM и сеть были настроены в соответствие с вашими рекомендациями и сервер матобработки длительное время работал стабильно. Журнал системных событий Windows2000 не содержит записей о каких-либо конфликтах сетевых служб.
Кроме того, мрв был полностью установлен на другую рабочую станцию и на ней возникли те же сбои. Маловероятно, что один и тот же системный конфликт возник сразу в двух ОС.
При всей парадоксальности ситуации общие признаки указывают на ПО TraceMode. Хотелось бы узнать ваши соображения по поводу возможных неполадок самой скада-системы.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если бы ничего не менялось, то ничего бы и не изменилось. Если SCADA и проект не менялись, значит конфликт возник за счет изменения окружения - ОС, другие приложения, сеть. Для того чтобы выяснить причину, надо все вернуть назад, к тому состоянию, когда "сервер матобработки длительное время работал стабильно". Возможно, у Вас произошли автоматические обновления ОС или других приложений, которые повлияли на функционирование проекта. Trace Mode 5 в связи с консервацией кода с 2003 г. не тестировалась на совместимость с обновлениями ОС.
Posted by Marina (Участник № / Member № 2971) on :
Здравствуйте! Подвисает Trace Mode. Перестает работать сервер матобработки. В журнале событий ОС появляется следующее сообщение: Event Type: Error Event Source: Application Error Event Category: None Event ID: 1000 Date: 21.01.2010 Time: 11:56:16 User: N/A Computer: SZR-35-6-2 Description: Ошибка приложения drawserv.exe, версия 1.0.0.1, модуль drawserv.exe, версия 1.0.0.1, адрес 0x0005a5ae.
Других событий с Event Type: Error , которые предшествовали бы данному событию, в журнале нет. Что может вызывать ошибку? ОС: Windows XP, Trace Mode 5.11
И еще вопрос. В файле, который создает профайлер, появляется сообщение: RS:PurgeComm error. Что оно означает?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
RS:PurgeComm error
Это сообщение об ошибке функции очистки буфера COM-порта.
Сбой может быть как на аппаратном уровне, так и вызываться высоким уровнем помех в RS-сети. Обмен по этому COM-порту будет безусловно нарушен, а у каналов, которые обращаются к этому COM-порту, будет выставляться признак недостоверности.
Одним из следствий такой ситуации может быть также получение по COM-порту ложной информации, которая в каких-то ситуациях после ее обработки может привести либо к выполнению недопустимых операций (например, арифметических), либо к обращению к неразрешенным областям памяти. В этих случаях возможны фатальные ошибки с падением drawserv.exe.
Если фатальных последствий нет, можно попытаться восстановить обмен реинициализацией COM-порта с помощью канала Диагностика/RS-reinit.