Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.20;
Скачать: CL | DM;

Вниз

Программные глюки   Найти похожие ветки 

 
igorx ©   (2002-05-07 17:05) [0]

Моя программа получает запросы от клиентов по сокету,
формирует запрос к SQL-серверу, сует его в поток, запускает на выполнение, получает результат и отправляет его по сокету обратно клиенту. Периодически (1-2 раза в сутки) Windows2000
выгружает программу из памяти без всяких объяснений.
Может у кого-нибудь есть версии по этому поводу?


 
Reindeer Moss Eater   (2002-05-07 17:17) [1]

Надо просто почитать лог, который такие программы обязательно должны вести.


 
Johnny Smith ©   (2002-05-07 17:58) [2]

Reindeer Moss Eater прав. По всей видимости, возникают какие-то исключительные ситуации.
Всвязи с этим у меня есть пара вопросов: на каких сокетах работает твоя прога (TServerSocket&TClientSocket или других) и как создаешь поток?


 
igorx ©   (2002-05-08 09:14) [3]

Моя программа работает на TServerSocket&TClientSocket, фиксированное число потоков создается в начале программы
и затем (при попытке выполнения команды SQL) программа
ищет свободный поток, при его осутствии ставит команду в
очередь (TLIST).
Лог я разумеется смотрел. Никаких идей. По поводу искл.
ситуаций: во-первых - ВСЯ программа в try"ях (несколько
уровней!), во-вторых - вылетает без выдачи каких-либо
окон. А вообще, какие искл. ситуации могут вызвать такой вылет?



 
Reindeer Moss Eater   (2002-05-08 09:16) [4]

И что написано в последней строке лога твоей программы?


 
igorx ©   (2002-05-08 09:19) [5]

Использую TServerSocket&TClientSocket.
Создаю фиксированное число потоков в начале программы, затем выделяю их под выполнение команды, если нет свободного потока,
команду ставлю в очередь (TLIST).
Вся программа в try (несколько уровней). Лог разумеется я смотрел. Никаких идей (все время вылет в разных местах).
А вообще, по причине каких искл. ситуаций программа может так тихо умирать?


 
Reindeer Moss Eater   (2002-05-08 09:23) [6]

И все таки, что написано в последней строке лога твоей программы?



 
igorx ©   (2002-05-08 09:30) [7]

Прошу прощенья за дублирование информации в конференции.
Под "логом программы" я имел ввиду текстовый файл, в который она
выводит определенную информацию (проход контрольных точек). Вряд ли он чем-нибудь тебе поможет (тем более, там в последней строке каждый раз разное). А что под логом имеешь ввиду ты?


 
Reindeer Moss Eater   (2002-05-08 09:39) [8]

В таких случаях только лог и поможет.
Если это не так, то твой лог только занимает лишние кластеры диска.
А конструкции try ... except даны нам чтобы писать в лог что за ошибки происходят в программе.


 
Johnny Smith ©   (2002-05-08 10:34) [9]

2igorx
Я почему про сокеты-то спросил: обычно в серьезных прогах принято самим писать сокеты, т.е. оболочку вокруг WinSocket"а. Дело в том, что в Дельфях (да простит меня Борланд) кривовато написаны некоторые вещи (напр. сокеты и потоки). Я-то когда писал программульки на сокетах, не ориентировал их на серьезное применение, поэтому пользовался стандартными TServerSocket&TClientSocket. Но при этом я заюзал такую вещь, как TServerClientThread. При коннекте к серверу на нем создается новый поток (на протяжении всего сеанса связи), в котором слушаются запросы от клиента и отправляются ответы на них. Тут же, в потоке, ты можешь создавать классы для коннекта к БД и выполнения запросов. Таким образом, тебе, я думаю, удастся уйти от очереди (слишком муторная вещь, на мой взгляд). Если заинтересуешься, я на мыло брошу исходники.


 
igorx ©   (2002-05-08 12:43) [10]

Да брось пожалуйста на alshapa@box.vsi.ru



Страницы: 1 вся ветка

Текущий архив: 2002.05.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
1-64621
SPeller
2002-05-05 14:08
2002.05.20
DLL и её параметры


1-64664
ZimZum
2002-05-05 18:27
2002.05.20
Как сортировать данные в ComboBox?


1-64602
Korin
2002-05-07 18:19
2002.05.20
Нажатие кнопок мыши


3-64530
wHammer
2002-04-19 13:22
2002.05.20
Где взять компонент для построения отчетов как в 1С?


14-64791
Donal_Graeme
2002-04-10 10:06
2002.05.20
Kylix снова и снова :-)