[MDAC]複数レコードセット使用時のメモリ使用量の増加

文書翻訳 文書翻訳
文書番号: 247140 - 対象製品
この記事は、以前は次の ID で公開されていました: JP247140
すべて展開する | すべて折りたたむ

概要

この資料は、アップデートされた Access ODBC ドライバをインストールすると、Access ODBC ドライバを使用している既存の ODBC アプリケーションが機能しなくなり、場合によっては開発者がアプリケーションのコードを書き直す必要が生じる現象について説明しています。

現象

Microsoft Data Access Components (以下、MDAC) 2.1 以降をセットアップすると、新しい Access ODBC ドライバがインストールされます。この新しい Access ODBC ドライバでは Microsoft Jet 4.0 データベース エンジンが使用されているため、Microsoft Access 2000 形式のデータベースだけでなく、それ以前のすべての Access データベース形式にアクセスすることができます。
なお、MDAC 1.5 および MDAC 2.0 に同梱されている Access ODBC ドライバでは、Microsoft Jet 3.5 データベース エンジンが使用されています。

アップデートされた Access ODBC ドライバをインストールすると、Microsoft Jet 4.0 データベース エンジンでの仕様変更や ODBC ドライバの旧バージョンとの互換性の問題により、Access ODBC ドライバを使用している既存の ODBC アプリケーションが機能しなくなり、場合によっては開発者がアプリケーションのコードを書き直す必要が生じます。

原因

Microsoft Jet 4.0 データベース エンジン では、親オブジェクトのデータベース接続が閉じられるまでキャッシュされたリソースが開放されません。ただし、これはメモリ リークではなく、親オブジェクトが閉じられるまで開放されないリソースの割り当てです。

状況

この現象は弊社にて Access ODBC ドライバの問題として認識しています。

回避策

親接続を定期的に閉じて開き直すことで、使用されているメモリが開放されます。

詳細

通常この問題は、1 つのデータベース接続下で複数のレコードセットを開いて閉じた後、各レコードセットである特定の操作を行った場合に発生します。たとえば、開いて閉じた各レコードセットでいくつかのレコードの追加や削除を行った場合に、メモリリークが発生することがあります。また、パラメータ化された SQL ステートメントを使用した場合にも発生する可能性があります。ただし、開いたそれぞれのレコードセットで一部のレコードの読み込みのみを行った場合には、メモリリークは発生しません。このメモリリークは少量であるため、ある特定の状況でメモリリークが発生するかどうかを確認するには、プロセスによって長時間使用されているプライベート バイトを監視する必要があります。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 247140 (最終更新日 2001-07-19) をもとに作成したものです。

プロパティ

文書番号: 247140 - 最終更新日: 2004年9月3日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft ODBC (Open Database Connectivity) Driver for Access 4.0
  • Microsoft OLE DB Provider for Jet 4.0
キーワード:?
kbqfe KB247140
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

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