こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2003でメモリ不足になります。

 Access2003をクライアントに、Oracle9iをDBサーバとして2層クライアントサーバシステムを会社で運用しています。しかし、Access2003のMDBを4つ同時に立ち上げて業務を行うためか、3時間でメモリ使用量が500MBになります。端末の物理メモリ容量は512MBのため、3時間で動作がとても緩慢になってしまいます。

 MDBからDBサーバへのアクセス作業を行ううちに、メモリが完全に解放されずに残るケースがあり、それが蓄積されているようです。データベースへの参照(SELECT)よりも、書き込み処理(INSERT, UPDATE,DELETE)を行った後に使用メモリの蓄積が発生しやすいです。

 また、フォームの開閉時よりも、別のMDBにフォーカスを移すと、メモリの解放が行われず、メモリの蓄積が発生しているようです。複数のMDBを起動している場合、一番最後のMDBを終了させるとメモリ使用量が元に戻ります。

 背景としましては、最近、会社の基幹システムを刷新しました。刷新したといっても、ソースコードは変更せずに、Oracle7.2 Server/Access97で動作していたクライアントサーバシステムを、Oracle9.2 Server/Access2003に変更し、その変更に伴い動作がおかしくなる部分を修正しただけです。

 MDBを複数立ち上げなくてはならないのは、とても基幹システムの規模が保守につぐ保守で大きくなってしまったため、MDBを機能単位で分割しているからです。

 Access2003からOracle9.2へのアクセスはODBCを利用しています。クライアントのOSはWindows2000Professional sp4、サーバOSはWindowsServer2003、Oracle9.2はStandard Editionです。

 Access97時代にはこれほどのメモリ使用量にはならず、現在はお昼休みに全てのMDBをいったん終了してから再度使用する運用でなんとか切り抜けています。

 どなたか解決のヒントをご教授いただければ幸いです。

投稿日時 - 2004-09-06 09:46:44

QNo.990506

困ってます

質問者が選んだベストアンサー

Access 2003 + IME 2003 の環境でメモリリークが発生することがあるらしいですが、Access が「応答なし」になったりはしませんか?

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;884086&Product=acc2003

投稿日時 - 2004-09-06 14:14:04

お礼

ありがとうございます!
さっそく試してみます。

投稿日時 - 2004-09-06 21:02:47

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

Nothingは万能ではないですので、多様しても効果は無いです。

Nothingによってメモリーの解放はされますがそれはわずかであり
大本のアクセスが使用しているメモリーはそう簡単に減るものではないです。
(おそらくDB周りの操作で使われたオブジェクト開放にNothingを使われているのだと思われます)

膨大にリークするということは、それ以外の部分に
コーティングの改善が必要かと思います。

投稿日時 - 2004-09-06 12:29:57

アクセス97とアクセス2000ではかなり内部仕様が違ってきますんで なんともいえませんが
おそらソースの手直しをしないと 現状の問題解決にはならないかと思います。

つまり、ソースのコンバートはアクセス97互換であってアクセス2000に最適化されては動かないのが普通。

アクセス97はどのようなコーティングをされているのかは不明ですが、メモリー関係の処理をちゃんとすれば
問題ないはず・・・(参考書などのサンプルを流用したもはよくリークしますよ)。

投稿日時 - 2004-09-06 10:34:42

お礼

早速のご回答ありがとうございます。

Access97からAccess2003にコンバートする際は、いったんAccess200形式にコンバートし、それをさらにAccess2002-2003形式に変換しました。Access2000以上ではコードの記述がかなりシビアになっているので、その不具合部分を中心に修正を行いました。
メモリの開放についてはNothingを必ず入れているので問題はないと思っていたのですが。。。

投稿日時 - 2004-09-06 11:13:09

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-