Hallo, vielleicht kann mir ja jemand auf die Sprünge helfen,
ich habe eine tHTTPApplication mit Threaded := True,
In mehreren Routen sollen nun Daten aus mySQL und aus MSSQL mittels Zeos Datenbankkomponenten an die Clients
gesendet werden. Das Prozedere selber, das Json Gefrickel und das leidige {} Getöse auf der Clientseite sind nur lästig
aber nicht das Problem.
Aber, wenn ich mich recht erinnere, dann sind die DB-Komponenten nicht Thread-sicher, oder ?
Muss ich also bei jedem Aufruf eine Connection und die Query(s) neu erstellen, weil diese in einem
Thread läuft? Und dann natürlich am Ende auch wieder freigeben?
Mit meinen Möglichkeiten kann ich einen quasi gleichzeitigen Aufruf einer Route aus mehreren Clients nicht simulieren.
PS: wie man den http Server auf https umstellt ist auch noch ein Rätsel für mich, aber ich suche mich da erstmal selber schlau
fpWEB und Zeos
-
- Beiträge: 724
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: fpWEB und Zeos
Ich glaube du meinst hier TfpHttpServer. Ich habe alles was du hier beschreibst in mein Server verwendet, ZEOS, Threaded:=true, Https und JSON.
Ich mache alles für jede Request Connection-, Querys- und andere Objekte zu erstellen und freizugeben in OnHandleRequest-Ereignis.
Ich habe festgestellt, dass es Exceptions auftaucht, wenn man Threaded:=true macht und zwar bei TZConnection.Create. Es taucht sporadisch auf, aber trotzdem macht es die App nutzlos, weil es nicht mehr reagiert, beim Erreichen von TfpHttpServer.QueueSize friert das ganze.
Ich habe jetzt meine App hinter nginx, TfpHttpServer.Threaded:=false und jetzt läuft es. Verwende nicht für TfpHttpServer die FreePascal 3.2.2., weil es Fehler enthält, verwende Mainversion (Developerversion).
Und die ganze JSON sind nicht schwer, dass ist einfach, wenn ich Zeit habe lade ich mein Beispielserver hier hoch.
Ich mache alles für jede Request Connection-, Querys- und andere Objekte zu erstellen und freizugeben in OnHandleRequest-Ereignis.
Ich habe festgestellt, dass es Exceptions auftaucht, wenn man Threaded:=true macht und zwar bei TZConnection.Create. Es taucht sporadisch auf, aber trotzdem macht es die App nutzlos, weil es nicht mehr reagiert, beim Erreichen von TfpHttpServer.QueueSize friert das ganze.
Ich habe jetzt meine App hinter nginx, TfpHttpServer.Threaded:=false und jetzt läuft es. Verwende nicht für TfpHttpServer die FreePascal 3.2.2., weil es Fehler enthält, verwende Mainversion (Developerversion).
Und die ganze JSON sind nicht schwer, dass ist einfach, wenn ich Zeit habe lade ich mein Beispielserver hier hoch.