Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ISAPI und Datenbanken (https://www.delphipraxis.net/79685-isapi-und-datenbanken.html)

hsg 26. Okt 2006 14:06


ISAPI und Datenbanken
 
Hallöchen zusammen,

ich habe nun endlich erfolgreich meine ISAPI-Dll erstellt.
Darin habe ich ein paar Actions die Werte in einer Datenbank verändern. Auch das funktioniert, so weit ich das zur Zeit beurteilen kann, einwandfrei.

Nun kommt mein Problem bzw. Frage: Wie verhält es sich eine ISAPI-Dll bei mehrfachem gleichzeitigen Zugriff :?:
Bei meinen Test habe ich immer den Server für mich allein, aber später sollen mehrere Personen gleichzeitig auf den Server zugreifen und meine Funktionen intensiv nutzen.

Die Datenbank selber wird zur Zeit beim Laden der DLL instantiert und erst beim Entladen wieder geschlossen. Gerade die Action die die Datenbank verändert, macht mir da nun ein wenig Sorgen: kann es dort zu einem gleichzeitigen Zugriff von mehreren Clients kommen?
Oder sollte ich die Datenbank bei jeder Action öffnen und dann wieder schliessen? Geht da nicht zuviel Performance verloren?

Wer bringt Licht in das Dunkle?

Gruß Jörg

Mavarik 26. Okt 2006 14:11

Re: ISAPI und Datenbanken
 
Welche Datenbank benutzt Du und welche Komponente?

Wo hast Du die Komponente erzeugt?

Frank :coder:

hsg 26. Okt 2006 14:17

Re: ISAPI und Datenbanken
 
Hallo Mavarik,

Datenbank ist "Advantage Database Server", Komponente der Datenbankschnittstelle ist TAdsDataSet (Implementierung von TDataSet von ADS direkt), diese liegen in einem Datamodul, welches ich im OnCreate-Ereignis des TWebModule erzeuge und im OnDestroy wieder freigebe.

Gruß Jörg

Mavarik 26. Okt 2006 14:33

Re: ISAPI und Datenbanken
 
OK Kenne ich leider nicht...

Ich nehme die ADO...

Soviel ich weiss, wird das Datenmodul entsprechend of im Thread geöffnet...

Ich würde aber pro Aufruf:

1. die Connection Aufbauen
2. Datenbank öffnen
3. Aktion Durchführen
4. Datenbank close
5. Connection close

Durchführen...

Frank

PS.: NIX Globales - klar...

hsg 26. Okt 2006 14:40

Re: ISAPI und Datenbanken
 
Zitat:

Zitat von Mavarik
OK Kenne ich leider nicht...

Soviel ich weiss, wird das Datenmodul entsprechend of im Thread geöffnet...

PS.: NIX Globales - klar...

Der Hersteller hiess früher Extended Systems, wurde dann von iAnywhere aufgekauft (ehemalig Sybase).

Die Dll wird ja nur einmal geladen, wird denn für jede Anfrage ein neues WebModul eröffnet? Wenn ja, dann ist mein Problem doch gelöst oder?

Wenn ich nur ein Datenmodul habe, ist es doch quasi global?

Mavarik 26. Okt 2006 15:06

Re: ISAPI und Datenbanken
 
Zitat:

Zitat von hsg
Die Dll wird ja nur einmal geladen, wird denn für jede Anfrage ein neues WebModul eröffnet? Wenn ja, dann ist mein Problem doch gelöst oder?

Wenn ich nur ein Datenmodul habe, ist es doch quasi global?

Ich meine nicht...

Ein Load vom WebModul, ein Load von Datenmodul... Und pro paralellen Thread ein Webmodul...

Ich habe mir "nur" gemerkt und so mache ich es auch.. wie ich oben geschrieben habe...

Frank

hsg 27. Okt 2006 09:06

Re: ISAPI und Datenbanken
 
Zitat:

Zitat von Mavarik
Ein Load vom WebModul, ein Load von Datenmodul... Und pro paralellen Thread ein Webmodul...

Ich habe mir "nur" gemerkt und so mache ich es auch.. wie ich oben geschrieben habe...

Frank

Sorry, den Satz verstehe ich nicht wirklich... Das WebModul wird nur einmal erzeugt und damit auch das entsprechende DataModul. Was passiert nun genau bei einem Request?

Danke und Gruß Jörg


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz