[ vlaiv @ 19.03.2007. 14:30 ] @
Da li su IBX Thread safe i na kom "nivou"? Odnosno, Ako imam TIBDatabase i TIBTransaction zajednicke za vise thread-ova dok TIBQuery i TIBSQL ima svaki thread zasebno, hoce li to radi? |
[ vlaiv @ 19.03.2007. 14:30 ] @
[ morlic @ 19.03.2007. 17:52 ] @
Neka svaka transakcija ima svoju Database i Transaction komponentu. Napravi ili koristi neki db connection pool.
Procitaj: http://blogs.teamb.com/craigstuntz/articles/441.aspx [ vlaiv @ 20.03.2007. 11:05 ] @
:) Hvala na odgovoru ...
Vec gledao datu stranicu ali sam se ponadao da moze i ovako ... Nista, jednostavnije mi je da pravim critical section i da svi thread-ovi koriste iste komponente ... Ionako nije high volume aplikacija, thread-ovi su tu samo zato sto mi je tako jednostavnije da implementiram TCPServer eventove za Indy ... [ morlic @ 20.03.2007. 12:41 ] @
Ako tako radis, "gusis" aplikaciju, i moras da stavis kriticnu sekciju pre bilo kakvog koriscenja DB komponenti i da radis release po zavrsetku koriscenja. Naravno kad udjes u kriticnu sekciju moras da proveris konekciju na bazu, transakciju itd., kako bi bio siguran da ce nit moci da koristi komponente kako treba. Ako brzina nije vrlina onda ovo moze da prodje. Jer ako jedna nit radi upit koji traje par desetina sekundi ili minuta (sasvim moguce u praksi) sve ostale niti ce biti blokirane, tako da moras da pazis i na timeout u mreznoj komunikaciji. Mada ruku na srce ni IB (sem od 7.x verzije) ni FB (sem od Vulcan verzije) nisu optimizovani za pravi visenitni rad (da ne pominjem dva ili vise procesora na sistemu). FB 2.0 je to malo popravio, ali nije to to jos uvek.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|