![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
Есть приложение (сервер), которое постоянно ведет обмен данными по СОМ порту. Порт открывается при старте приложения и закрывается при остановке. Все бы хорошо, но после некоторого времени работы, сутки или 2-е (зависит от интенсивности обмена), СОМ порт отказывается работать. Вызовы ClearCommError или PurgeComm возвращают ошибку 1816 - Недостаточно квот для обработки команды.
Может нужно периодически закрывать и открывать порт? Или есть еще какие лекарства от такого ? Это сообщение отредактировал(а) voov - 9.7.2008, 15:09 |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
может утечки памяти какие есть?
Это сообщение отредактировал(а) ama_kid - 9.7.2008, 16:02 -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
C памятью все нормально. В диспетчере задач в списке процессов велись наблюдения, память не расла в течении всего времени работы. Дебагер также не сообщал об утечках при остановке приложения. В общем программа ведет себя вполне адекватно, пока не случается описаная выше ошибка.
Проблема связана именно с СОМ портом. Нет ли у винды каких приколов, типа максимального времени открытого СОМ порта. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: нет Всего: 261 |
С отказывается работеть - вроде бы как он подключен но на команды не реагирует, или отрубается коннект?
С какими параметрами порт открыт? что в DCB? |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
Порт открыт (9600, без паритета, 8 дата бит, 1 стоп бит, без контроля потока, Overlapped=true). Работает сутки-двое, ClearCommError дает ошибку 1816 (порт все еще открыт - проверяется по хендлу файла). По такому событию порт закрываем, пытаемся открыть - и PurgeComm дает ту же ошибку 1816.
|
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: 3 Всего: 6 |
Вполне возможно, что происходит утечка не памяти userspace, а памяти ядра. "Виноватыми" могут быть незакрытые handle чего-нить. Проверь, на все-ли использованные handle ты говоришь CloseHandle.
|
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
Не должно быть утечки, но чем черт не шутит...
Как можно проверить, отследить? Наблюдаю диспетчером задачь, на закладке БЫСТРОДЕЙСТВИЕ (Если происходит утечка памяти ядра, здесь же должно быть видно по счетчикам и графику) Делаю лог работы процесса через ЖУРНАЛ СЧЕТЧИКОВ (один из счетчиков - счетчик дескрипторов). Как еще можно проконтролировать? Какие еще идеи, мысли? |
|||
|
||||
| EnergoHokum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: 3 Всего: 6 |
Я утечки handle-ов смотрю через ProcessExplorer от Руссиновича. Скажи ему View -> Show Lower Pane, там будут (для выделенного процесса) все его дескрипторы. Ну и оставь на пару часов. Если что-то течёт, будет глазами заметно.
|
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: нет Всего: 8 |
оопс...
точно! утечка дескрипторов, растут прямо на глазах... всем, кто откликнулся, СПАСИБО! EnergoHokum, благодарю что тыкнул носом Это сообщение отредактировал(а) voov - 11.7.2008, 16:02 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |