Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
14-1132911097
Koala
2005-11-25 12:31
2005.12.18
Срочно!!! Нужна помощь в востановлении данных....


14-1133170953
Gefest80
2005-11-28 12:42
2005.12.18
Indy


4-1129830394
Maksyta
2005-10-20 21:46
2005.12.18
Выключение, перезагрузка системы


14-1132752067
Виктор К.
2005-11-23 16:21
2005.12.18
Техническо задание для разработки ПО


4-1129817907
Максим
2005-10-20 18:18
2005.12.18
Определение старта процесса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский