Главная страница
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.015 c
14-64785
alex9999
2002-04-10 04:01
2002.05.20
ну так... про жизнь


7-64845
Ogu
2002-02-20 21:29
2002.05.20
Сканирование дерева каталогов с прогрессбаром


3-64483
cranium
2002-04-22 03:17
2002.05.20
Ошибка при создании процедуры


6-64753
amg
2002-03-07 04:00
2002.05.20
Разделение данных на пакеты


7-64858
samos
2002-02-22 15:48
2002.05.20
Народ!!!! Очень нуно Каким образом сделать IExplore многопользовательским ДЛЯ wIN9XXX