ISAPI 서버 확장은 Dll입니다. 그들은 서버 프로세스 공간에서 작동 합니다. 동시 요청을 ISAPI 확장을 별도 스레드에 의해 처리 됩니다. 따라서, ISAPI 확장 코드 스레드 안전 있어야。
상황
COM을 사용 하 여 초기화를 처리 하는 데이터베이스 액세스 방법을 스레드로부터 안전 하지 않습니다. 특정 문제가에서 하나의 스레드에서 COM 라이브러리를 초기화 하 고 다음 다른 스레드를 사용 하 여 데이터에 액세스 하는 것입니다. Microsoft ODBC 데스크톱 드라이버의 현재 구현은이 분류에 빠진다. Visual c + +와 함께 제공 하 이러한 드라이버 (dBase, Microsoft Visual FoxPro, Microsoft Access, Microsoft Excel, Paradox, 및 텍스트)는 스레드로부터 안전 하지 않습니다 Microsoft Jet 3.0 데이터베이스 엔진을 사용 합니다. 또한 데이터 액세스 개체 (DAO) 이므로 COM 기반 API는 ISAPI 확장의 다중 스레드 환경에서 안정적으로 실행 되지 않습니다.
스레드로부터 안전 하지 않은 다른 데이터베이스 액세스 방법이 있을 수 있습니다.
해상도
ISAPI 서버 확장에서 데이터베이스를 액세스 하려면 설계 되 고 테스트 된 ODBC 드라이버를 사용 하 여 다중 스레드 사용에 대 한. Microsoft SQL Server 6.x에 대 한 마이크로소프트의 ODBC 드라이버는 예。
MFC ODBC 데이터베이스 클래스는 MFC 4.2의로 스레드로부터 안전 합니다. 이러한 클래스를 사용 하는 모든 ODBC 데이터베이스 드라이버는 또한 스레드로부터 안전 해야 합니다.
MFC 4.2 버전 하기 전에 MFC ODBC 데이터베이스 클래스를 사용 하는 응용 프로그램 데이터베이스 코드를 단 하나의 스레드가 한 번에 MFC 데이터베이스 코드를 액세스할 수 있도록 중요 섹션 안에 배치 해야 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. CCriticalSection 클래스。
현재 MFC DAO 데이터베이스 클래스는 하지 스레드로부터 안전 DAO COM 기반 개체를 사용 하기 때문에。
기술 노트 번호로 |nbsp; 카테고리별 기술 노트(&N)