Verbindungspool – Entwicklung mobiler Anwendungen, Webdienste, SOA-Architektur – Technologie
Zum Inhalt springen

Verbindungspooling – Entwicklung mobiler Apps, Webservices, SOA-Architektur

Anzeigen

Was ist Verbindungspooling?

Verbindungspooling ermöglicht die Wiederverwendung vorhandener Verbindungen, um den Aufwand für das ständige Erstellen und Löschen von Verbindungen mit derselben Konfiguration zu reduzieren. Mit anderen Worten: Durch das Öffnen und Schließen von Verbindungen, die dieselbe Verbindungszeichenfolge und dieselben Anmeldeinformationen verwenden, kann eine verfügbare Verbindung im Pool wiederverwendet werden. Typische Anwendungen verwenden dieselben Verbindungsobjekte, um kontinuierlich Daten aus einer Datenbank abzurufen und zu aktualisieren. Verbindungspooling bietet ein wesentlich höheres Leistungsniveau, da die Datenbank nicht ständig Verbindungen erstellen und trennen muss. Verbindungspools werden nach Prozess, Anwendungsdomäne und Verbindungszeichenfolge getrennt. Für Verbindungszeichenfolgen, die integrierte Sicherheit verwenden, wird für jede eindeutige Identität ein separater Pool erstellt.

Verbindungspooling-Optionen steuern

Beim Erstellen von ADO.NET-Verbindungsobjekten ist das Verbindungspooling standardmäßig aktiviert. Sie können das Verhalten des Verbindungspoolings steuern (oder das Verbindungspooling ganz deaktivieren), indem Sie bestimmte Schlüsselwörter für Verbindungszeichenfolgen für das Verbindungspooling festlegen. Um beispielsweise das Verbindungspooling gezielt zu deaktivieren, legen Sie Pooling=False in Ihrer Verbindungszeichenfolge fest. Tabelle 5-7 enthält eine Liste von Schlüsselwörtern für Verbindungszeichenfolgen, mit denen gesteuert werden kann, wie eine bestimmte Verbindung mit dem Verbindungspool interagiert. Nicht alle Schlüsselwörter sind für alle Anbieter verfügbar. Beispielsweise verfolgt der OLE DB-Anbieter das Verbindungspooling (auch als Ressourcenpooling oder Sitzungen bezeichnet) basierend auf dem Wert, der für das Schlüsselwort OLE DB Services in der Verbindungszeichenfolge festgelegt ist.

Verbindungszeichenfolge für den TabellenverbindungspoolZusätzlich zu den Verbindungszeichenfolgeneigenschaften, die das Verbindungspooling-Verhalten steuern, stehen für Verbindungsobjekte auch Methoden zur Verfügung, die sich auch auf das Verbindungspooling auswirken können. Die verfügbaren Methoden werden normalerweise verwendet, wenn Sie Verbindungen in Ihrer Anwendung schließen und wissen, dass sie nicht erneut verwendet werden. Dadurch wird der Verbindungspool bereinigt, indem Verbindungen verworfen werden, anstatt sie an den Pool zurückzugeben, wenn sie geschlossen werden. Alle Verbindungen, die sich bereits im Pool befinden und geöffnet sind, werden beim nächsten Schließen verworfen. Tabelle 5-8 listet die verfügbaren Methoden für die Interaktion mit Verbindungspools auf.

Konfigurieren von Verbindungen für die Verwendung von Verbindungspooling

Standardmäßig ist bei allen in ADO.NET verfügbaren .NET Framework-Datenanbietern das Verbindungspooling aktiviert, die für die Arbeit mit Verbindungspooling verfügbare Steuerungsebene variiert jedoch je nach verwendetem Anbieter.

Konfigurieren des Verbindungspoolings mit SQL Server-Verbindungen

Standardmäßig verwendet das SqlConnection-Objekt automatisch Verbindungspooling. Jedes Mal, wenn Sie Sqlconnection.Open mit einer eindeutigen Verbindungszeichenfolge aufrufen, wird ein neuer Pool erstellt. Steuern Sie das Verbindungspooling-Verhalten, indem Sie Verbindungspool-Schlüsselwörter in der Verbindungszeichenfolge festlegen, wie zuvor in Tabelle 5-7 beschrieben. Stellen Sie sich beispielsweise eine Verbindung vor, bei der Sie die Mindestpoolgröße festlegen möchten. Indem Sie dem Schlüsselwort „Min. Poolgröße“ einen Wert größer als Null zuweisen, stellen Sie sicher, dass der Pool nicht zerstört wird, bis die Anwendung beendet wird. Um die minimale Poolgröße auf 5 festzulegen, verwenden Sie eine Verbindungszeichenfolge ähnlich der folgenden:

Data Source=SqlServerName;Initial Catalog=DatabaseName; Integrierte Sicherheit=True;Mindestpoolgröße=5

Die minimale Poolgröße ist standardmäßig 0, was bedeutet, dass jede Verbindung wie angefordert erstellt und initialisiert werden muss. Dadurch erhöht sich die minimale Poolgröße in der Verbindungszeichenfolge, die angegebene Anzahl von Verbindungen wird erstellt und ist einsatzbereit, was die Zeit verkürzen kann Es ist erforderlich, die Verbindung über diese ersten Verbindungen herzustellen.

Verbindungspooling mit Oracle-Verbindungen konfigurieren

Verbindungen, die den .NET Framework-Datenanbieter für Oracle verwenden, verwenden standardmäßig automatisch Verbindungspooling. Sie können steuern, wie die Verbindung Pooling verwendet, indem Sie Schlüsselwörter für Verbindungszeichenfolgen festlegen. Tabelle 5-10 enthält Einzelheiten zu den Verbindungszeichenfolge-Schlüsselwörtern, die zum Ändern von Verbindungspooling-Aktivitäten verfügbar sind.

Behandlung von Verbindungsfehlern

Wenn SQL Server eine Warnung oder einen Fehler zurückgibt, erstellt und löst der .NET Framework-Datenanbieter für SQL Server eine SqlException aus, die Sie in Ihrer Anwendung abfangen können, um das Problem zu beheben. Wenn die SqlException ausgelöst wird, überprüfen Sie die Eigenschaft SqlException.Errors, um auf die Sammlung von Fehlern zuzugreifen, die vom SQL Server zurückgegeben werden. Die SqlException.Errors-Eigenschaft ist eine SqlErrorCollection-Klasse (eine Sammlung von SqlError-Klassen), die immer mindestens ein SqlError-Objekt enthält.

WEITERE INFORMATIONEN SQL Server-Fehler

SqlConnection bleibt für Nachrichten mit einem Schweregrad von 19 oder weniger geöffnet, wird jedoch normalerweise automatisch geschlossen, wenn der Schweregrad 20 oder höher ist.

Zusammenfassung

  • Verbindungspooling ist standardmäßig aktiviert.
  • Verbindungspooling-Optionen werden in der Verbindungszeichenfolge definiert, mit Ausnahme des ODBC-Anbieters, der das Dialogfeld „ODBC-Datenquellenadministrator“ unter Windows verwendet.
  • Ein SqlException-Objekt wird erstellt, wenn auf dem SQL-Server ein Fehler erkannt wird.
  • Jede Instanz einer SqlException-Ausnahme enthält mindestens eine SqlError-Warnung, die die tatsächlichen Serverfehlerinformationen enthält.
  • Die Windows-Authentifizierung (auch „Integrierte Sicherheit“ genannt) ist die empfohlene Methode, um eine sichere Verbindung zu Daten herzustellen.
  • Speichern Sie Verbindungszeichenfolgen, die vertrauliche Informationen enthalten, in der Konfigurationsdatei der Anwendung und verschlüsseln Sie alle Einstellungen, die vertrauliche Informationen enthalten.