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

Вниз

TIBDatabase - потокобезопасен?   Найти похожие ветки 

 
Piter ©   (2005-10-31 19:06) [0]

Можно ли к одному TIBDatabase подключать различные TIBQuery, создаваемые в разных потоках?


 
Андрей Жук ©   (2005-10-31 20:10) [1]

Ты вроде бы это спрашивал...
Используй FIB+, там точно потокобезопасно.


 
Sergey Masloff   (2005-10-31 20:36) [2]

Нет.
Насчет FIB+ не знаю но есть поводы сомневаться.


 
Zacho ©   (2005-10-31 23:20) [3]

gds32.dll (fbclient.dll) не потокобезопасен, т.ч. и IBX и FIBPlus тоже непотокобезопасны. Да и нет никакого смысла использовать запросы в разных потоках через одно подключение, т.к. в контексте одного подключения все запросы всё равно выполняются последовательно. Т.ч. общее правило - на каждый поток своё подключение.


 
Piter ©   (2005-10-31 23:53) [4]

Zacho ©   (31.10.05 23:20) [3]
на каждый поток своё подключение


Ты имеешь в виду, в каждом потоке свой Database и свои Query?

Но как это согласуется с:

gds32.dll (fbclient.dll) не потокобезопасен

?

Тогда получается из одного процесса вообще нельзя устанавливать больше одного коннекта к базе???


 
Johnmen ©   (2005-11-01 00:02) [5]

Процесс<>поток


 
Piter ©   (2005-11-01 00:11) [6]

Johnmen ©   (01.11.05 0:02) [5]
Процесс<>поток


да я в курсе :)
А что из этого следует?

Утверждается, что GDI32.dll не потокобезопасен.

Как я это понимаю? Я так понимаю - что в одном процессе нельзя вызывать функции gdi32.dll из разных потоков, верно?

Это соответственно, приводит к выводу:

Piter ©   (31.10.05 23:53) [4]
Тогда получается из одного процесса вообще нельзя устанавливать больше одного коннекта к базе???


 
Zacho ©   (2005-11-01 00:28) [7]

Piter ©   (01.11.05 0:11) [6]
Как я это понимаю? Я так понимаю - что в одном процессе нельзя вызывать функции gdi32.dll из разных потоков, верно?

Это соответственно, приводит к выводу:

Piter ©   (31.10.05 23:53) [4]
Тогда получается из одного процесса вообще нельзя устанавливать больше одного коннекта к базе???


Во-первых, вывод совершенно не верен. Процессы не имееют никакого отношения к кол-ву подключении. Хоть 1000 подключений установи из одного процесса или одного потока.
Во-вторых, из разных потоков вызывать функции gds32.dll можно, но либо вызовы нужно синхронизировать, либо они должны быть в контексте разных подключений.

Ещё раз и немного более развёрнуто повторю общее правило:
В одном потоке можно работать с произвольным количеством подключений.
С каждым конкретным подключением одновременно можно работать только из одного потока. Если нужно работать с БД в разных потоках, то для разных потоков должны быть отдельные подключения.


 
Piter ©   (2005-11-01 01:13) [8]

Zacho ©   (01.11.05 0:28) [7]

ага, все, понял.

То есть, для каждого потока свой TIBDatabase - правильно?


 
Piter ©   (2005-11-01 01:16) [9]

Народ, немного не в тему - а где почитать про транзакции? Я то я никак не пойму зачем нужен TIBTransaction. Особенно эту фразу:

"TIBTransaction provides discrete transaction control over a one or more database connections in a database application."

И также немного непонятно зачем нужен IBSQL, если есть  IBQuery.


 
Zacho ©   (2005-11-01 01:45) [10]

Piter ©   (01.11.05 1:13) [8]
То есть, для каждого потока свой TIBDatabase - правильно?


Совершенно верно.

Piter ©   (01.11.05 1:16) [9]
Народ, немного не в тему - а где почитать про транзакции?


http://www.ibase.ru/devinfo/ibtrans.htm
http://www.ibase.ru/devinfo/ibx.htm

> И также немного непонятно зачем нужен IBSQL, если есть
>  IBQuery

Как раз наоборот, TIBQuery нафиг не нужен, он сделан для облегчения перевода старых проектов с BDE на IBX или если предпологается в будущем переводить проект на BDE-like компоненты. А так для всего чего угодно достаточно TIBDataSet и TIBSQL.


 
Zacho ©   (2005-11-01 01:52) [11]

Piter ©   (01.11.05 1:16) [9]
"TIBTransaction provides discrete transaction control over a one or more database connections in a database application."


Насколько я понял, "more database connections" - имеется в виду механизм 2PC (two phase commit). Подробно о 2PC можешь найти информацию на http://www.ibase.ru/develop.htm



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

Форум: "Базы";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.014 c
14-1132826938
ANB
2005-11-24 13:08
2005.12.18
Кому нужна программа автоматизированного тестирования ?


8-1121245455
Wlasikkk
2005-07-13 13:04
2005.12.18
Как вывести определённый участок изображения???????


1-1132221959
murzik
2005-11-17 13:05
2005.12.18
Общий NumberFormat в Excel-е


2-1133386090
system
2005-12-01 00:28
2005.12.18
как в treeview загрузить структуру диска и ...


14-1132753711
Карелин Артем
2005-11-23 16:48
2005.12.18
Подскажите софт для форматирования SQL-запросов.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский