정보: ODBC 응용 프로그램에서 연결 풀링을 설정하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 164221 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

이 문서에서는 ODBC 응용 프로그램에서 연결 풀링을 사용하도록 설정하는 방법에 대해 설명합니다.

추가 정보

Microsoft ODBC 버전 3.0 연결 풀링을 개념을 도입했습니다.
연결 풀링은 ODBC 응용을 프로그램에서 기존 다시 사용할 수 있습니다.
연결 풀에서 ODBC 응용 프로그램이 이동할 필요가 없기 때문에,
모든 후속 연결에 대해 전체 연결 과정을.

ODBC 응용 프로그램이 연결의 연결을 끊을 때 연결이 저장됩니다.
실제로 대신 풀로 연결이 끊어졌습니다. 이 연결이 얼마나 오래 유지됩니다.
풀에서 ODBC 드라이버의 CPTimeout 속성에 따라 다릅니다. 때 해당
제한 시간이 만료될, 연결이 닫히고 풀에서 제거합니다. ODBC
응용 프로그램 SQLConfigDriver CPTimeout, 값 및 이를 변경할 수 있습니다.
값이 지정된 ODBC 드라이버를 사용하고 있는 모든 ODBC 응용 프로그램에만 적용됩니다.

CPTimeout, 기본값은 60초입니다. 연결 풀링은 ODBC 응용 프로그램이 때 Microsoft 인터넷 같은 매우 유용하게 사용됩니다.
(예를 들어) 정보 서버는 연결하고 자주 연결을 끊습니다. Microsoft
인터넷 정보 서버 (IIS) 버전 3.0 Active Server Pages (ASP)
연결 풀링을 이용할 수 있습니다. 대한 연결 풀링을 사용할 수 있습니다.
StartConnectionPool 값을 1로 변경하여 IIS 사용자. StartConnectionPool 아래에 있습니다.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
ODBC 응용 SQLSetEnvAttr 연결 풀링을 사용할 수 있습니다. 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);
   }
				
처음 SQLDisconnect 때 ODBC 응용 프로그램에서 호출하는, 연결 풀에 저장됩니다. 모든 후속 SQLConnect/필요한 조건과 일치하는 SQLDisconnect 첫 번째 연결을 다시 사용합니다.

속성

기술 자료: 164221 - 마지막 검토: 2000년 7월 7일 금요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Open Database Connectivity 3.0
키워드:?
kbmt kbinfo kbprogramming KB164221 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

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