INFO: How to Enable Verbindungspooling in einer ODBC-Anwendung

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 164221 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel beschreibt die Verbindungspooling in einer ODBC-Anwendung zu aktivieren.

Weitere Informationen

Microsoft ODBC, Version 3.0 führte das Konzept des Verbindungs-pooling.
Verbindungs-pooling kann eine Anwendung ODBC wiederverwenden einer vorhandenen
Verbindung aus einem Pool, sodass ODBC-Anwendung nicht verfügt wechseln
durch den vollständigen Verbindungsprozess für alle nachfolgenden Verbindungen.

Wenn eine ODBC-Anwendung eine Verbindung trennt, wird die Verbindung gespeichert.
in ein Pool anstelle der tatsächlich getrennt. Wie lange bleibt dieser Verbindung
hängt von der CPTimeout-Eigenschaft des ODBC-Treibers im Pool. Wenn das Kontrollkästchen
Timeout abläuft, die Verbindung geschlossen und aus dem Pool entfernt. Die ODBC-
Anwendung kann SQLConfigDriver verwenden, um den Wert des CPTimeout und diese ändern
Wert bezieht sich auf alle ODBC-Anwendungen, die den angegebenen ODBC-Treiber verwenden.

Der Standardwert für die CPTimeout ist 60 Sekunden. Das Verbindungspooling ist sehr nützlich, wenn eine ODBC-Anwendung wie Microsoft Internet
Informationen Server (z. B.) eine Verbindung herstellt und trennt die Verbindung häufig. Microsoft
Internet Information Server (IIS) Version 3.0 mit Active Server Pages (ASP)
nutzt die Vorteile der Verbindungs-pooling. Sie können für Verbindungs-pooling aktivieren
IIS den Benutzer durch den Wert der StartConnectionPool auf 1 ändern. StartConnectionPool befindet sich unter:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
Eine ODBC-Anwendung können SQLSetEnvAttr Verbindungs-pooling aktivieren. Es folgt ein Beispiel zum Aktivieren von Verbindungspooling in einer ODBC-Anwendung:
   #include <windows.h>
   #include <stdio.h>
   #include <sql.h>
   #include <sqlext.h>

   void main()
   {
   SQLHENV   henv;
   SQLHDBC   hdbc;
   int       i=0;

   if (!SQL_SUCCEEDED(SQLSetEnvAttr(
      NULL,  // make process level cursor pooling
      SQL_ATTR_CONNECTION_POOLING,
      (SQLPOINTER)SQL_CP_ONE_PER_DRIVER,
      SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CONNECTION_POOLING error\n");

   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv)))
      printf("SQLAllocHandle error\n");

   // set the ODBC behavior version.
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
   (SQLPOINTER) SQL_OV_ODBC2, SQL_IS_INTEGER)))
      printf("SQLSetEnvAttr/SQL_ATTR_ODBC_VERSION error\n");

   //set the matching condition for using an existing connection in the
   pool
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_CP_MATCH,
   (SQLPOINTER) SQL_CP_RELAXED_MATCH, SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CP_MATCH error\n");

while (i < 10) {
   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC,
      henv, &hdbc)))
      printf("SQLAllocHandle error\n");
      if (!SQL_SUCCEEDED(SQLConnect(hdbc,
   (unsigned char*)"testing\0", SQL_NTS,
      (unsigned char*)"sa\0", SQL_NTS,
   (unsigned char*)"\0", SQL_NTS)))
      printf("SQLConnect error\n");
   else
      printf("Connect successfully %d times\n", i);
   //the first time, the application calls SQLDisconenct, it will return
                 //the connection to the //pool
   SQLDisconnect(hdbc);

   if (!SQL_SUCCEEDED(SQLFreeHandle(SQL_HANDLE_DBC, hdbc)))
      printf("SQLFreeHandle error\n");
   i++;
   }
   SQLFreeHandle(SQL_HANDLE_ENV, henv);
   }
				
bei der ODBC-Anwendung ruft SQLDisconnect zum ersten Mal auf, die Verbindung zum Ressourcenpool gespeichert ist. Alle nachfolgenden SQLConnect/SQLDisconnect, die die erforderliche Bedingung übereinstimmt, wird die erste Verbindung wiederverwendet.

Eigenschaften

Artikel-ID: 164221 - Geändert am: Freitag, 7. Juli 2000 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Open Database Connectivity 3.0
Keywords: 
kbmt kbinfo kbprogramming KB164221 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 164221
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com