TN067: Доступ до баз даних від сервера розширення ISAPI

Серверні розширення ISAPI є DLL. Вони працюють в просторі процес сервера. Одночасних запитів до розширення ISAPI обробляються окремі теми. Таким чином, потрібно код в розширення ISAPI потік Сейф.

Ситуація

Методи доступу бази даних, які використовують COM обробляти ініціалізації не є безпечним для потоку. Конкретні проблеми полягає в ініціалізації бібліотеки COM в один потік і потім, використовуючи інший потік для доступу до даних. Виконання робочого стола драйвери ODBC Microsoft підпадають під цю категорію. Ці драйвери (dBase, Microsoft Visual FoxPro, Microsoft Access, Microsoft Excel, парадокс і текст), що поставляються з Visual c + +, використовувати Microsoft Jet 3.0 database engine, який не є безпечним для потоку. Крім того, об'єкти доступу до даних (DAO) є COM заснований API, так що він не працює надійно у багатопоточних середовищі розширення ISAPI.

Там можуть бути й інші методи доступу бази даних, які не є безпечним для потоку.

Роздільна здатність

Доступ до бази даних з розширення ISAPI сервер, за допомогою драйвера ODBC, які розроблені та випробувані багатопоточних використання. Драйвери ODBC корпорації Майкрософт для Microsoft SQL Server 6. x є прикладом.

Класи бази даних MFC ODBC є потік Сейф з MFC 4.2. Будьте впевнені, що будь-який драйвер ODBC бази даних використовуються з цих класів також є безпечним для потоку.

Застосунки, що використовують класи бази даних MFC ODBC до версії MFC 4.2 повинні мати код бази даних, які розміщені всередині критичної секції, щоб гарантувати, що тільки одна тема отримує доступ до коду бази даних MFC одночасно. Докладніше перегляньте статтю клас CCriticalSection.

В даний час класи бази даних MFC DAO не є безпечним для потоку тому, що вони використовують об'єкти на основі DAO COM.

Технічні примітки за номером |nbsp; Технічні примітки за категоріями

Index