ISAPI サーバー拡張機能の Dll です。彼らは、サーバーのプロセス空間で動作します。同時要求を ISAPI 拡張には、別のスレッドで処理されます。したがって、ISAPI 拡張機能のコードがスレッド セーフにする必要があります。
状況
COM の初期化を処理するために使用するデータベースへのアクセス方法は、スレッド セーフではありません。特定の問題は、1 つのスレッドで COM ライブラリを初期化し、別のスレッドを使用してデータにアクセスするにあります。Microsoft ODBC デスクトップ ドライバーの現在の実装は、このカテゴリーに入ります。Visual C で、出荷これらドライバー (dBase、Microsoft Visual FoxPro、Microsoft Access、Microsoft Excel、Paradox、および本文) は Microsoft Jet 3.0 データベース エンジンは、スレッド セーフではありませんを使用します。それ確実、ISAPI 拡張機能のマルチ スレッド環境では実行されないので、データ アクセス オブジェクト (DAO)、COM ベースの API も。
スレッド セーフではない他データベースへのアクセス方法がある可能性があります。
解像度
ISAPI サーバー拡張機能からデータベースにアクセスするには、マルチ スレッドの使用のため、設計およびテストされた ODBC ドライバーを使用します。Microsoft SQL Server 6.x の Microsoft の ODBC ドライバーを示します。
MFC ODBC データベース クラスは MFC 4.2 とのスレッド セーフです。これらのクラスを使用して、ODBC データベース ドライバーもスレッド セーフであることを確認してください。
MFC 4.2 の前に MFC ODBC データベース クラスを使用するアプリケーションでは、一度に 1 つだけのスレッド MFC データベース コードにアクセスすることを確認するには、クリティカル セクション内に配置、データベース コードが必要です。詳細についてを参照してください方式 CCriticalSectionクラス。
DAO COM ベースのオブジェクトを使用するため現在、MFC DAO データベース クラスのスレッド セーフでないです。
番号順テクニカル ノート|nbsp;カテゴリ別テクニカル ノート(&N)