INFO : Comment faire pour activer le regroupement de connexions dans une application ODBC

Traductions disponibles Traductions disponibles
Numéro d'article: 164221 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article décrit comment activer le regroupement de connexion dans une application ODBC.

Plus d'informations

Microsoft ODBC version 3.0 a introduit le concept de la mise en pool des connexions.
Regroupement de connexions permet à une application ODBC de réutiliser un existant
connexion à partir d'un pool, de sorte que l'application ODBC ne doit pas aller
tout au long du processus de connexion complète de toutes les connexions ultérieures.

Lorsqu'une application ODBC déconnecte d'une connexion, la connexion est enregistrée
dans un pool au lieu de réellement déconnecté. La durée pendant laquelle cette connexion reste
dans le pool dépend de la propriété CPTimeout du pilote ODBC. Lorsque le
expiration du délai, la connexion est fermée et retirée du pool. ODBC
application peut utiliser SQLConfigDriver pour modifier la valeur de CPTimeout et cela
valeur s'applique à toutes les applications ODBC qui utilisent le pilote ODBC spécifié.

La valeur par défaut pour le CPTimeout est de 60 secondes. Regroupement de connexions est très utile lorsqu'une application ODBC comme Microsoft Internet
Informations serveur (par exemple) se connecte et se déconnecte fréquemment. Microsoft
Internet Information Server (IIS) version 3.0 avec ASP (Active Server Pages)
tire parti du regroupement de connexion. Vous pouvez activer le regroupement de connexion pour
Utilisateurs IIS en lui affectant la valeur de StartConnectionPool 1. StartConnectionPool se trouve sous :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
Une application ODBC peut utiliser SQLSetEnvAttr pour activer le regroupement de connexion. Voici un exemple de la procédure à suivre activer le groupement de connexions dans une application ODBC :
   #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);
   }
				
application lors de l'ODBC appelle SQLDisconnect la première fois, la connexion est enregistrée dans le pool. Tout SQLConnect/SQLDisconnect ultérieur qui correspond à la condition requise réutilise la première connexion.

Propriétés

Numéro d'article: 164221 - Dernière mise à jour: vendredi 7 juillet 2000 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Open Database Connectivity 3.0
Mots-clés : 
kbmt kbinfo kbprogramming KB164221 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 164221
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

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