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
Moderator: wriedmann
Thread's und DbCloseAll
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
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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Thread's und DbCloseAll
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
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
Horst,
I do not understand your question. What do you mean with "effects on another thread" ?
Robert
I do not understand your question. What do you mean with "effects on another thread" ?
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
Thread's und DbCloseAll
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
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