![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зависание в Win2K при закрытии сокета [D7, informix]
Torin © (2006-09-01 16:55:00)Уважаемые мастера!
Проект, в котором я участвую (уже) пишется (и поддерживается) около 5 лет (разными людьми, большая текучка). Вкрадце: Informix, MIDAS, куча DLL и т.д.
Работа с сервером приложений: TClientDataSet через TSocketConnection.
При выходе из программы происходит зависание в Win2K: программа висит себе в памяти и не закрывается. От количества открытых наборов данных и объема запрошенных (переданных) данных это никак не зависит.
В WinXP (разных версий) такого не наблюдается.
Подскажите, с чем это может быть связано и как с этим бороться.
ANB (2006-09-13 16:04:00) [1]
> Torin © (13.09.06 15:43) [30]
> А флажек "использовать рантаймовые пакеты" при сборке проекта
> включен ?
??????
Torin (2006-09-13 15:43:00) [2]Проблема не решена - ИЗ ПОД ДЕЛЬФИ все нормально отрабатывает. прога закрывается.
Без дельфи на Win2K SP4 прога при закрытии виснет. Смотрю через ProcessExplorer: Manager.exe (собственно прога), RPCRT4.dll, RTUTILS.DLL
Висят себе, висят.... и закрываются... через 5 минут.
ANB (2006-09-05 14:01:00) [3]
> Используются DLL
А флажек "использовать рантаймовые пакеты" при сборке проекта включен ?
Torin (2006-09-05 13:31:00) [4]Используются DLL
НО
На первом этапе (запрос логина и пароля) никакие DLL не грузятся. Поднимается только сокет и открываются CDS в DataModule.
Я тут же выхожу из программы (опять же, никаких DLL) и прога "висит" в памяти (в списке процессов!!!) :-0 Хотя какие процессы, ести все открывается в основной форме (ну и DataModule) и ВСЕ!!!!!
ANB (2006-09-05 13:04:00) [5]Или DLL ?
ANB (2006-09-05 13:03:00) [6]
> Torin © (05.09.06 12:52) [25]
Пакеты в проге используются ?
Torin (2006-09-05 12:52:00) [7]Проблема не решена. Из-под дельфи прога не виснет. А без дельфи - виснет. В чем еще может быть хрень?????
Сергей М. (2006-09-04 15:14:00) [8]
> ANB © (04.09.06 14:56) [23]
Мало ли какая хрень там еще фигурирует
ANB (2006-09-04 14:56:00) [9]
> Сергей М. © (04.09.06 14:39) [22]
Фигурирует фраза "из под делфи работает" :)
Сергей М. (2006-09-04 14:39:00) [10]
> ANB © (04.09.06 14:37) [21]
Врешь.
В авторских постах нигде не фигурирует слово "отладчик".
ANB (2006-09-04 14:37:00) [11]
> Этого достаточно для анализа причины "виса" под встроенным
> отладчиком.
У него под отладчиком не виснет. Почему то . . .
Сергей М. (2006-09-04 14:35:00) [12]
> Torin © (04.09.06 14:32) [19]
У тебя есть исх.текст sconnect.pas.
Этого достаточно для анализа причины "виса" под встроенным отладчиком.
Torin (2006-09-04 14:32:00) [13]Позакрывал все TDataSet-ы в Data-модулях перед закрытием сокета.
Все равно не работает (висит) :(
Может ли быть проблема на серверной части? Типа перед закрытием клиент отправляет запрос серваку, а тот не отвечает?
Почему тогда под XP работает?
Сергей М. (2006-09-04 13:46:00) [14]
> Torin © (04.09.06 13:04) [12]
Тогда деактивируй все компоненты доступа к данным, использующие интерфейс IAppServer
ANB (2006-09-04 13:44:00) [15]
> Torin © (04.09.06 13:43) [16]
все правильно. А теперь залезь внутрь компонента и поставь отладочную печать там.
Torin (2006-09-04 13:43:00) [16]
> Тогда воткнуть отладочную печать.
Что значит "воткнуть отладочную печать"? Я пишу текстовые строки о загрузке/выгрузке ВСЕГО в log (после каждой строчки повтыкал). Именно так я и вычислил, ГДЕ оно виснет. Или есть еще способы "отладочной печати"? :-о
ANB (2006-09-04 13:29:00) [17]
> Torin © (04.09.06 13:17) [14]
Тогда воткнуть отладочную печать. Но так вообще то не бывает.
Torin (2006-09-04 13:17:00) [18]Дык это... если из-под дельфяка то не виснет, а так - виснет. :(
ANB (2006-09-04 13:07:00) [19]
> Torin © (04.09.06 13:04) [12]
Пройтись отладчиком по библиотеке и определить, что виснет.
Torin (2006-09-04 13:04:00) [20]
> DM.SC.AppServer := Unassigned;
Свойство AppServer - только для чтения.
> DM.SC.Disconnect;
Disconnect(DM.SC)
Все равно виснет :(