Page 1 of 1
Thread's und DbCloseAll
Posted: Wed Oct 28, 2020 2:55 pm
by Horst
Hallo
Ich habe gemerkt , dass DBCloseAll () in einem Thread ebenso Auswirkungen auf einen anderen Thread hat.
Ist das normal ? und kann man da auch mit DbServer:close () in den Hammer laufen ?
Gruss
Horst
Thread's und DbCloseAll
Posted: Wed Oct 28, 2020 3:06 pm
by wriedmann
Hallo Horst,
Klar, DBCloseAll() ist dafür gedacht, alle offenen DBF-Verbindungen zu schließen.
DBServer:Close() schließt nur die Verbindung zur Tabelle, die in diesem DBServer geöffnet war.
Da musste das Entwicklungteam extra die Thread-Information mit dazunehmen.
Der Garbage Collector läuft nämlich in einem eigenen Thread, daher muß ein DBServer auch threadübergreifend geschlossen werden können.
Wolfgang
Thread's und DbCloseAll
Posted: Wed Oct 28, 2020 4:37 pm
by Horst
Hallo Wolfgang
Ich weiss nur noch, dass ich bei meinen CGI's den DbCloseall() reinmachen musste weil irgendwie sonst eine DB noch offen blieb obwohl die EXE schon beendet war. Werde nun besonders vorsichtig sein müssen beim öffnen und schliessen von Db's
Gruss
Horst
Thread's und DbCloseAll
Posted: Wed Oct 28, 2020 5:43 pm
by robert
Horst,
I do not understand your question. What do you mean with "effects on another thread" ?
Robert
Thread's und DbCloseAll
Posted: Wed Oct 28, 2020 7:08 pm
by Horst
Hallo Robert
i do:
WHILE SELF:closeToken:IsCancellationRequested == FALSE
context := messages:Take(SELF:closeToken:Token)
SELF:Response(context)
END WHILE
//Response is a thread - hope so
then in Response ()
CASE cProgramm == "elektro_main.exe"
cString := StartElektroArtikel (oRequest, cInputString) // its in a DLL
StartElektroArtikel () ends with DbCloseall () and Return cString
and now when i call the StartElektroArtikel (oRequest, cInputString) many times , the thread close the database and in the parallel thread i have a error because the DB is closed.
i hope you understand me, hard to explain. i uploaded the app in "WebServer mit Login und Artikelverwaltung"
Horst