Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Treiberfähige Verbindungspooling ist ein neues Feature des Treiber-Managers in Windows 8. Driver-bewusstes Verbindungspooling ermöglicht Treiberautoren, das Verhalten des Verbindungspoolings in ihrem ODBC-Treiber anzupassen.
Hinweis
Das treiberbewusste Verbindungspooling wird mit der Cursorbibliothek nicht unterstützt. Eine Anwendung erhält eine Fehlermeldung, wenn sie versucht, die Cursorbibliothek über SQLSetConnectAttr zu aktivieren, während treiberberücksichtigtes Verbindungspooling aktiviert ist.
Treiber-bewusstes Verbindungspooling behebt die folgenden Probleme im Zusammenhang mit dem Verbindungspooling des Treibermanagers:
Poolfragmentierung Der Treiber-Manager gibt nur eine Verbindung aus dem Pool zurück, wenn es sich um eine genaue Übereinstimmung mit der Verbindungszeichenfolge einer neuen Verbindungsanforderung handelt. Ein Grund dafür, dass der Treiber-Manager eine genaue Übereinstimmung erfordert, besteht darin, dass der Treiber-Manager nicht jedes treiberspezifische Verbindungszeichenfolgen-Schlüsselwort und seinen Wert versteht. Einige Schlüsselwortwerte für Verbindungszeichenfolgen (z. B. der Name der Datenbank) erfordern jedoch möglicherweise keine genaue Übereinstimmung, da der Treiber die Datenbank in weniger als der Zeit ändern kann, die zum Öffnen einer neuen Verbindung erforderlich ist (die genaue Zeitdifferenz hängt von der Datenquelle ab). Außerdem können Unterschiede bei einigen Verbindungsattributen (z. B. SQL_ATTR_CURRENT_CATALOG) mehr Zeit in Anspruch nehmen als Unterschiede in anderen Attributen (z. B. SQL_ATTR_LOGIN_TIMEOUT). Dies kann auch verhindern, dass der Treiber-Manager die kostengünstigste, wiederverwendbare Verbindung aus dem Pool verwendet. Wenn ein Treiber viele neue Verbindungen erstellen muss, kann die Leistung einer Anwendung verringert werden, und die Skalierbarkeit der Datenquelle kann verringert werden. Die Poolfragmentierung kann mit Treiber-bewusstem Verbindungspooling reduziert werden, da ein Treiber die Kosten für die erneute Nutzung einer Verbindung im Pool für eine Verbindungsanfrage besser abschätzen kann.
Keine Berücksichtigung der Anwendungspräferenz Einige Datenquellen können neue Verbindungen effizient öffnen (im Vergleich zum Zurücksetzen einiger Attribute), daher möchte eine Anwendung möglicherweise eine neue Verbindung öffnen, anstatt eine leicht nicht übereinstimmende Verbindung aus dem Pool wiederzuverwenden und einige Werte zurückzusetzen (obwohl dies während des Initialisierungsausdrucks des Verbindungspools langsamer sein kann). Einige Anwendungen können jedoch die Serverlast reduzieren und weniger Verbindungen eröffnen, obwohl möglicherweise höhere Kosten entstehen können, um Unstimmigkeiten für das korrekte Verhalten zu korrigieren. Ohne treiberbewusstes Verbindungs-Pooling können Sie diese Art von Präferenz nicht effektiv angeben, da der Treiber-Manager nicht alle treiberspezifischen Verbindungsattribute erkennt. Die treiberbewusste Verbindungspoolung ermöglicht es einem Treiber, die Benutzereinstellung (mit einem treiberspezifischen Attribut von SQLSetConnectAttr) abzurufen, damit er die Kosten für die erneute Nutzung einer Verbindung aus dem Pool basierend auf der Benutzereinstellung besser abschätzen kann.
Weitere Informationen zum treiberbewussten Verbindungspooling finden Sie in Developing Connection-Pool Awareness in einem ODBC-Treiber.
Ermitteln der Treiberunterstützung
Treiberbewusstes Verbindungspooling ist ein optionales Feature, das der Treiber möglicherweise nicht unterstützt. Um festzustellen, ob ein Treiber dies unterstützt, verwenden Sie den SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType von SQLGetInfo.
So aktivieren Sie Driver-Aware Verbindungspooling
Eine Anwendung kann die Verbindungspooling-Sensibilisierung eines Treibers verwenden, indem sie das attribut SQL_ATTR_CONNECTION_POOLING auf SQL_CP_DRIVER_AWARE mit SQLSetEnvAttr festlegen. Wenn ein Treiber das Verbindungspool-Bewusstsein nicht unterstützt, wird die Verbindungspoolverwaltung des Treiber-Managers verwendet (identisch mit der Angabe von SQL_CP_ONE_PER_HENV anstelle von SQL_CP_DRIVER_AWARE). ODBC 2.x- und 3.x-Anwendungen können dieses Feature aktivieren.