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

Вниз

Проблема с IBX версия 2   Найти похожие ветки 

 
Zoostal   (2005-11-01 16:21) [0]

В общем вопрос уже я задавал, но видимо неправильно. Обрисую ситуацию по-другому, более правильно чтоли.

Что имеем:
1) Поток №1 который создает свою TIBDateBase, пару TIBTable и TIBQuery. Поток занимается тем что просматривает таблицу в базе на предмет опрелеленных строк в ней (ищутся записи в которых поле статус=0). Если такая запись/записи есть то ставит статус=3 как признак занятости и передает ID записи в поток №2. По сути это диспетчер заданий распределяющий таким образом задачи для "рабочих" потоков типа поток №2

2) Поток №2 получает ID записи и пытается вычитать необходимые данные из других полей чтобы проделать работу которую получил. Он тоже создает свои TIBDateBase, пару TIBTable и TIBQuery.

3) В обоих потоках параметры транзакций настроены так:
IBTransaction1.AllowAutoStart:=True;
IBTransaction1.AutoStopAction:=saCommit;
IBTransaction1.Params.Add("read_committed");
IBTransaction1.Params.Add("rec_version");
IBTransaction1.Params.Add("nowait");

И что собственно получается:

Поток №2 крутится в цикле пока не получает задание... и вот когда он его получает и пытается начать работать с базой все встает (при том деббугер затыкается в первом потоке на работе  с базой). То есть как только они оба начинают работать с базой то все встает. То есть например дебуггер просто уходит в "никуда" (не переходит на следующую строку кода) и все.

Подскажите пожалуйста в чем проблема ? Как ни странно раньше этот код работал(!) правда на IB 5.5, а сейчас FireBird 1.5

Что-то конфликтует, но я не понимаю что :(


 
Johnmen ©   (2005-11-01 16:33) [1]

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


 
Noosfert   (2005-11-01 16:37) [2]

а почему ? В принципе я такое уже делал и вроде все работало. Собственно то что я описал - программа-сервер. К базе обращаются всего  3 клиента программы в максимуме (включая сервер).


 
Johnmen ©   (2005-11-01 16:42) [3]

>Собственно то что я описал - программа-сервер.

Э-э-э... Трёхзвенка у тебя?


 
Noosfert   (2005-11-01 16:50) [4]

у меня в общем так:
1) БД - для хранения и обмена данными
2) сервер который "шерстит" базу на предмет наличия "работ" от рабочего места или конфигуратора. Если что нашел  - выполняет и кладет в базу результат. Сервер на самом деле 5-ти модемный.
3) Конфигуратор - складывает в базу новую конфигурацию и дает серверу задание выполнить саму конфигурацию
4) Рабочее место - кладет в базу на выполнение задачи пользователя.

Как это назвать даже не знаю :)



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
14-1133088075
by
2005-11-27 13:41
2005.12.18
Есть ли жизнь после делфи? Куда шагать дальше?


2-1133364334
Mak55
2005-11-30 18:25
2005.12.18
Добрый вечер! Покажите плиз пример с использ. ProgressBar


2-1133392267
Alloc
2005-12-01 02:11
2005.12.18
IniFiles


14-1132775185
тихий вовочка
2005-11-23 22:46
2005.12.18
Статьи и книги по программированию


6-1125862548
Alpine
2005-09-04 23:35
2005.12.18
Как сохранить страницу загруженную в WebBrowser ?