Rozszerzenia serwera ISAPI są biblioteki DLL. Pracują w przestrzeni procesu serwera. Równoczesne żądania do rozszerzenia ISAPI są obsługiwane przez osobne wątki. W związku z tym kod w rozszerzeniu ISAPI musi być odławiany w wątku.
Sytuacja
Metody dostępu bazy danych, wykorzystujące COM do obsługi inicjowanie nie są bezpieczne wątek. Szczególny problem polega na inicjowanie biblioteki COM w jeden wątek, a następnie użyć innego wątku uzyskania dostępu do danych. Obecna implementacja sterowniki Microsoft ODBC Desktop mieści się w tej kategorii. Te sterowniki (dBase, Microsoft Visual FoxPro, program Microsoft Access, Microsoft Excel, Paradox i tekst), które statek z Visual C++, użyj aparatu bazy danych Microsoft Jet w wersji 3.0, który nie jest bezpieczny wątku. Ponadto hosta skryptów systemu Windows (DAO, Data Access Objects) jest API opartego na modelu COM, więc nie działać niezawodnie w środowisku wielowątkowym rozszerzenia ISAPI.
Mogą istnieć inne metody dostępu bazy danych, które nie są bezpieczne wątek.
Rozdzielczość
Do dostępu do bazy danych z rozszerzeniem ISAPI serwera, należy użyć sterownika ODBC, które zostały zaprojektowane i przetestowane użytku wielowątkowe. Przykładem są sterowniki ODBC firmy Microsoft dla programu Microsoft SQL Server 6.x.
Klasami baz danych MFC ODBC są bezpieczne wątek o MFC 4.2. Należy upewnić się, że dowolny sterownik bazy danych ODBC, używanych z tych klas jest także bezpieczne wątek.
Aplikacje korzystające z klasy bazy danych MFC ODBC wersji MFC 4.2 muszą mieć kod bazy danych umieszczony wewnątrz sekcji krytycznej dla zapewnienia, że tylko jeden wątek dostępów kod bazy danych MFC naraz. Aby uzyskać więcej informacji zobacz klasy CCriticalSection.
Obecnie klas MFC DAO bazy danych nie są bezpieczne wątek, ponieważ używają obiektów opartych na modelu COM DAO.
Uwagi techniczne przez liczbę |nbsp; Uwagi techniczne według kategorii