Wohin mit der Datenbank?

Dario Linsky

Erfahrenes Mitglied
Hiho,

der Titel list sich vielleicht etwas komischt, aber genau das ist mein Problem... Oder besser gesagt: Wohin mit der Datenbank-Connection?
Soll für jeden Benutzer eine Connection erstellt und in die Session gelegt werden? Soll ich eine Connection für die gesamte Anwendung zur Verfügung stellen? Oder gibt's evtl. sogar irgendetwas Vergleichbares wie die ConnectionBroker-Klassen für J2EE, womit die vorhandenen Ressourcen auf die einzelnen User optimal verteilt werden?
Bei jedem Seitenaufruf eine Datenbankverbindung herstellen, die nötigen Abfragen ausführen und nachher alles sauber wieder schließen, halte ich für nicht ganz optimal. Wenn das sein müsste, könnte ich auch gleich bei PHP bleiben. ;)
Also muss die Connection irgendwo an einer globalen Stelle abgelegt werden. Was ist da also am besten geeignet, um die Ressourcen vom Server möglichst zu schonen?

Grüße, Dario
 
Hallo,

meines Wissens macht einen Großteil der von dir angesprochenen Arbeit C# für dich.
Such mal nach Connection pooling in C# in der google oder in der MSDN und du wirst sicher fündig.
Soweit ich weiß, wird mit conn.close() das Connection-Objekt nicht zerstört, sondern vorgehalten (gecacht), bis ein Aufruf mit exakt den gleichen Parametern für die Connection ausgeführt wird.
Bei Stateless-Systemen hast du keine Möglichkeit, nach dem Seitenaufruf die DB-Verbindung zum User offen zu halten, da die Kommunikation zum Benutzern nach der Übertragung unterbrochen wird. Sessions sind auch nur Cookies, die nicht verhindern können, das eine erneute Userabfrage ein erneutes Laden der Seite inklusive DB-Verbindung usw. benötigt.
 
Zurück