Главная страница
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.034 c
1-64655
VJar
2002-05-07 14:15
2002.05.20
Запрет на перетаскивание


1-64652
zx
2002-05-08 13:44
2002.05.20
TempDir


3-64454
volodya_
2002-04-24 17:55
2002.05.20
Кодировка


14-64788
Roach
2002-04-08 22:44
2002.05.20
Чуваки у меня проблема!!!


1-64716
Gnom
2002-05-06 19:44
2002.05.20
RTF to HTML