Avatar billede hrc Mester
24. februar 2011 - 07:18 Der er 4 kommentarer og
1 løsning

ADOConnection i forbindelse med tråde

Jeg har en opdateringsrutine der skal flyttes ud i tråde. Jeg regner med at lade hver tråd plukke en opgave fra en TThreadList, den del er der ikke noget odiøst i. Det interessante er om jeg skal lave en en ADOConnection for hver tråd. Transaktioner kører jo på sessionsniveau (medmindre jeg laver "named transactions"), så min teori er, at for at udnytte serveren bedst muligt bør jeg lave en ADOConnection for hver tråd. Jeg efterlyser kommentarer?
Avatar billede kroning Nybegynder
24. februar 2011 - 10:24 #1
Jeg ved ikke helt hvad du snakker om (named transactions) men jeg tror jeg gør noget i stil med det du vil.
Jeg har en IdTCPServer (Indy) kørende, og hver gang en klient logger på denne server oprettes der en ADOconnection i en ny tråd til en MySQL server og det virker egentlig fint, det har kørt i et par år nu uden store problemer. En sjælden gang i mellem svigter ADOconnection oprettelsen dog og jeg får en "Katastrofal fejl", men jeg har så lavet det sådan at klienterne forsøger 2-3 gange i tilfælde af fejl.
Avatar billede hrc Mester
24. februar 2011 - 12:17 #2
kroning: Jeg vil gøre netop det samme. Normalt har jeg i programmet kun én ADOConnection men er (mindre og mindre) i tvivl om jeg behøvede oprette en ny for hver tråd.

En named transaction i ADO mod SQLserver gør, at man kan have nested transactions, eller parallelle - ADOConnections egen er ikke en sådan og måden er at fyre kommandoen afsted med Execute(' .. ')
Avatar billede kroning Nybegynder
24. februar 2011 - 13:13 #3
Man kan vel ikke bruge den samme ADOConnection i flere tråde da ADOConnection ikke er thread safe ?
Avatar billede hrc Mester
24. februar 2011 - 13:36 #4
Kroning: Hvis det er tilfældet, så har du svaret på mit spørgsmål. Jeg skulle egentlig bare have spurgt om den var "thread safe"...

... men det gør jeg rask væk nogle steder. Måske er det svaret på nogle af de "freak" exceptions jeg støder på hist og her...

Prøv lige at se dette link: http://stackoverflow.com/questions/1241844/is-delphis-tadoconnection-thread-safe. Det overlapper mit spørgsmål godt.

Lægger du et svar?
Avatar billede kroning Nybegynder
24. februar 2011 - 13:50 #5
Nu bruger jeg (stadig) Delphi 7 og den medfølgende ADOConnection, om den måske er blevet thread safe i senere Delphi versioner ved jeg ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester