Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Проблема с закрытием сокетов, чего-то я видимо не понимаю...

5 views
Skip to first unread message

Alexander V. Ivanov

unread,
May 20, 2005, 8:45:13 AM5/20/05
to
Добрый день.

Скоро неделю уже бьюсь с одной проблемой. Мыслей уже нету совсем...

Все действие происходит на NT 4 SP6, два компьютера, локальная сеть.

Есть Web-приложение CGI которое устанавливает IP соединение с сервером
приложений, шлет туда данные запроса и потом все полученное от него пихает
в stdout. Оно работает на одном компьютере вместе Web-сервером(IIS или
Apache
результаты одинаковы).

Есть другое приложение, работает на другом компьютере, оно шлет запрос к
моему
приложению и потом читает ответ пока не получит 0 на recv() или таймаут на
select().
Это не мое приложение, программа для генерации потока запросов...

Пока запросов мало, все работает нормально, но с ростом числа одновременных
запросов происходит следующее - генератор запросов начинает говорить, что
случился таймаут. При этом данные он таки получает полностью...

Ну я сначала подумал, что у себя в CGI не поймал закрытия сокета сервером
приложений и соответственно не завершился. Поэтому соединение Web-сервер
не рвет и ждет от меня еще данных. Но потом я убедился, что это не так,
сервер
соединение закрывает, я FD_CLOSE получаю и приложение завершается(во всяком
случае в списке задач его нету и сам файл на диске не занят). То есть все
данные
я Web-серверу отдал, но он по какой-то причине не рвет соединение. В запросе
я проверил, Connection: close, режим Keep-Alive я на сервере вообще от греха
выключил нафиг. Явление как уже сказал наблюдается и на Apache, и на IIS.
Так
что это видимо я как-то влияю на поведение Web-сервера, но как, понять не
могу...

Дальше-больше. Увеличил я таймаут в настройках запросчика и когда появляются
зависшие соединения(вижу по падению нагрузки) останавливаю сервер
приложений,
потом Web-сервер, потом перезагружаю компьютер. Но это никакого эффекта не
дает,
соединения с точки зрения запросчика продолжают быть в наличии...

Может кто подскажет мысль разумную, как быть и чего делать. А я пока
попробую
каким-нито сетевым монитором на это дело посмотреть...

With best regards, Alexander V. Ivanov. E-mail: aiv...@softlab.ru

0 new messages