2009-06-24 4 views
0

Ich habe eine ältere Anwendung WinForms, die eine direkte Verbindung zu einer SQL Server 2005-Datenbank herstellen.Verbindungspooling für einen Rich-Client, der direkt auf eine Datenbank zugreift

Es sind viele Client-Anwendungen zur gleichen Zeit geöffnet (mehrere hundert), daher möchte ich die Anzahl der Verbindungen zur Datenbank minimieren.

Ich kann Verbindungen früh und oft freigeben und den Zeitüberschreitungswert niedrig halten.

Gibt es noch andere Dinge, die ich beachten muss?

Antwort

1

Versuchen Sie, dieselbe Verbindungszeichenfolge zu verwenden, wenn Sie eine neue Verbindung erstellen, daher verwendet .Net einen Verbindungspool.

Entsorgen Sie Ihre Verbindung so bald wie möglich.

Sie können die maximale Poolgröße in der Verbindungszeichenfolge selbst festlegen, um die maximale Anzahl aktiver Verbindungen zu bestimmen.

0

Sie sollten einen Verbindungspool einführen. In der Java-Welt bekommen Sie das normalerweise "kostenlos" mit einem Anwendungsserver. Allerdings wäre dies sowieso überdimensioniert, wenn Sie nur das Datenbankverbindungs-Pooling verwenden.

Die allgemeine Idee ist, einen Prozess (auf dem Server) eine begrenzte Anzahl von parallelen Verbindungen zur Datenbank zu öffnen. Sie würden dies in einer Art "Proxy" -Anwendung tun (ein Mini-Anwendungsserver der Art) und die teuren Datenbankverbindungen für eingehende Verbindungen zu Ihrer App wiederverwenden, die billiger zu erstellen und wegwerfen sind.

Natürlich müssen einige Änderungen auch auf der Client-Seite vorgenommen werden, also ist es vielleicht nicht die ideale Lösung, wenn Sie das nicht als Voraussetzung akzeptieren können.

+0

Ja, ich habe nicht wirklich die Möglichkeit, einen Anwendungsserver einzuführen (das übliche warum ich das mache). Also ist meine Hauptsorge, wie man die Datenbank nicht mit Verbindungen überflutet, die nichts tun, und auf der anderen Seite die Verbindungen ständig schließen, nur um sie ein paar Momente später wieder zu öffnen. –

Verwandte Themen